312 lines
8.6 KiB
Perl
312 lines
8.6 KiB
Perl
|
#!/usr/bin/env perl
|
||
|
# ***************************************************************************
|
||
|
# * _ _ ____ _
|
||
|
# * Project ___| | | | _ \| |
|
||
|
# * / __| | | | |_) | |
|
||
|
# * | (__| |_| | _ <| |___
|
||
|
# * \___|\___/|_| \_\_____|
|
||
|
# *
|
||
|
# * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||
|
# *
|
||
|
# * This software is licensed as described in the file COPYING, which
|
||
|
# * you should have received as part of this distribution. The terms
|
||
|
# * are also available at https://curl.se/docs/copyright.html.
|
||
|
# *
|
||
|
# * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||
|
# * copies of the Software, and permit persons to whom the Software is
|
||
|
# * furnished to do so, under the terms of the COPYING file.
|
||
|
# *
|
||
|
# * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||
|
# * KIND, either express or implied.
|
||
|
# *
|
||
|
# * SPDX-License-Identifier: curl
|
||
|
# *
|
||
|
# ***************************************************************************
|
||
|
|
||
|
use POSIX qw(strftime);
|
||
|
my @ts;
|
||
|
if (defined($ENV{SOURCE_DATE_EPOCH})) {
|
||
|
@ts = localtime($ENV{SOURCE_DATE_EPOCH});
|
||
|
} else {
|
||
|
@ts = localtime;
|
||
|
}
|
||
|
my $date = strftime "%b %e, %Y", @ts;
|
||
|
my $year = strftime "%Y", @ts;
|
||
|
|
||
|
print <<HEADER
|
||
|
---
|
||
|
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||
|
SPDX-License-Identifier: curl
|
||
|
Title: libcurl-symbols
|
||
|
Section: 3
|
||
|
Source: libcurl
|
||
|
See-also:
|
||
|
- libcurl (3)
|
||
|
- libcurl-easy (3)
|
||
|
- libcurl-multi (3)
|
||
|
- libcurl-security (3)
|
||
|
- libcurl-thread (3)
|
||
|
---
|
||
|
# libcurl symbols
|
||
|
|
||
|
This man page details version information for public symbols provided in the
|
||
|
libcurl header files. This lists the first version in which the symbol was
|
||
|
introduced and for some symbols two additional information pieces:
|
||
|
|
||
|
The first version in which the symbol is marked "deprecated" - meaning that
|
||
|
since that version no new code should be written to use the symbol as it is
|
||
|
marked for getting removed in a future.
|
||
|
|
||
|
The last version that featured the specific symbol. Using the symbol in source
|
||
|
code will make it no longer compile error-free after that specified version.
|
||
|
|
||
|
This man page is automatically generated from the symbols-in-versions file.
|
||
|
HEADER
|
||
|
;
|
||
|
|
||
|
sub nameref {
|
||
|
my ($n)=@_;
|
||
|
if($n =~ /^CURLOPT_/) {
|
||
|
if($n eq "CURLOPT_RTSPHEADER") {
|
||
|
$n = "CURLOPT_HTTPHEADER";
|
||
|
}
|
||
|
elsif($n eq "CURLOPT_WRITEHEADER") {
|
||
|
$n = "CURLOPT_HEADERDATA";
|
||
|
}
|
||
|
elsif($n eq "CURLOPT_WRITEINFO") {
|
||
|
; # now obsolete
|
||
|
}
|
||
|
else {
|
||
|
return "$n(3)";
|
||
|
}
|
||
|
}
|
||
|
elsif($n =~ /^CURLMOPT_/) {
|
||
|
return "$n(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLINFO_/) {
|
||
|
my %infotypes = (
|
||
|
'CURLINFO_TEXT' => 1,
|
||
|
'CURLINFO_HEADER_IN' => 1,
|
||
|
'CURLINFO_HEADER_OUT' => 1,
|
||
|
'CURLINFO_DATA_IN' => 1,
|
||
|
'CURLINFO_DATA_OUT' => 1,
|
||
|
'CURLINFO_SSL_DATA_IN' => 1,
|
||
|
'CURLINFO_SSL_DATA_OUT' => 1,
|
||
|
);
|
||
|
if($infotypes{$n}) {
|
||
|
return "CURLOPT_DEBUGFUNCTION(3)";
|
||
|
}
|
||
|
}
|
||
|
elsif($n =~ /^CURLALTSVC_/) {
|
||
|
return "CURLOPT_ALTSVC_CTRL(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLAUTH_/) {
|
||
|
return "CURLOPT_HTTPAUTH(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLFORM_/) {
|
||
|
return "curl_formadd(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLKH/) {
|
||
|
return "CURLOPT_SSH_KEYFUNCTION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLE_/) {
|
||
|
return "libcurl-errors(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLM_/) {
|
||
|
return "libcurl-errors(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLUE_/) {
|
||
|
return "libcurl-errors(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLHE_/) {
|
||
|
return "libcurl-errors(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLSHE_/) {
|
||
|
return "libcurl-errors(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLPROTO_/) {
|
||
|
return "CURLINFO_PROTOCOL(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLPX_/) {
|
||
|
return "CURLINFO_PROXY_ERROR(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLPROXY_/) {
|
||
|
return "CURLOPT_PROXYTYPE(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLSSLBACKEND_/) {
|
||
|
return "curl_global_sslset(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLSSLOPT_/) {
|
||
|
return "CURLOPT_SSL_OPTIONS(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLSSLSET_/) {
|
||
|
return "curl_global_sslset(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLUPART_/) {
|
||
|
return "curl_url_get(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLU_/) {
|
||
|
return "curl_url_get(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLVERSION_/) {
|
||
|
return "curl_version_info(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLSHOPT_/) {
|
||
|
if($n eq "CURLSHOPT_NONE") {
|
||
|
$n = "curl_share_setopt";
|
||
|
}
|
||
|
return "$n(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLWS_/) {
|
||
|
return "curl_ws_send(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_FORMADD_/) {
|
||
|
return "curl_formadd(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_HTTPPOST_/) {
|
||
|
return "curl_formadd(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_GLOBAL_/) {
|
||
|
return "curl_global_init(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_HTTP_VERSION_/) {
|
||
|
return "CURLOPT_HTTP_VERSION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_LOCK_/) {
|
||
|
return "CURLSHOPT_SHARE(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_SSLVERSION_/) {
|
||
|
return "CURLOPT_SSLVERSION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_VERSION_/) {
|
||
|
return "curl_version_info(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_RTSPREQ_/) {
|
||
|
return "CURLOPT_RTSP_REQUEST(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLH_/) {
|
||
|
return "curl_easy_header(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_TRAILERFUNC_/) {
|
||
|
return "CURLOPT_TRAILERFUNCTION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLOT_/) {
|
||
|
return "curl_easy_option_next(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLFINFOFLAG_/) {
|
||
|
return "CURLOPT_CHUNK_BGN_FUNCTION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLFILETYPE_/) {
|
||
|
return "CURLOPT_CHUNK_BGN_FUNCTION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_CHUNK_BGN_FUNC_/) {
|
||
|
return "CURLOPT_CHUNK_BGN_FUNCTION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_CHUNK_END_FUNC_/) {
|
||
|
return "CURLOPT_CHUNK_END_FUNCTION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLSSH_AUTH_/) {
|
||
|
return "CURLOPT_SSH_AUTH_TYPES(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_POLL_/) {
|
||
|
return "CURLMOPT_SOCKETFUNCTION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLMSG_/) {
|
||
|
return "curl_multi_info_read(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLFTPAUTH_/) {
|
||
|
return "CURLOPT_FTPSSLAUTH(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLFTPMETHOD_/) {
|
||
|
return "CURLOPT_FTP_FILEMETHOD(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLFTPSSL_/) {
|
||
|
return "CURLOPT_USE_SSL(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLFTP_CREATE_/) {
|
||
|
return "CURLOPT_FTP_CREATE_MISSING_DIRS(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLGSSAPI_DELEGATION_/) {
|
||
|
return "CURLOPT_GSSAPI_DELEGATION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLHEADER_/) {
|
||
|
return "CURLOPT_HEADEROPT(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLHSTS_/) {
|
||
|
return "CURLOPT_HSTS_CTRL(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLIOCMD_/) {
|
||
|
return "CURLOPT_IOCTLFUNCTION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLIOE_/) {
|
||
|
return "CURLOPT_IOCTLFUNCTION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLMIMEOPT_/) {
|
||
|
return "CURLOPT_MIME_OPTIONS(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLPAUSE_/) {
|
||
|
return "curl_easy_pause(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLPIPE_/) {
|
||
|
return "CURLMOPT_PIPELINING(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLSOCKTYPE_/) {
|
||
|
return "CURLOPT_SOCKOPTFUNCTION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLSTS_/) {
|
||
|
return "CURLOPT_HSTSREADFUNCTION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURLUSESSL_/) {
|
||
|
return "CURLOPT_USE_SSL(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_CSELECT_/) {
|
||
|
return "curl_multi_socket_action(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_FNMATCHFUNC_/) {
|
||
|
return "CURLOPT_FNMATCH_FUNCTION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_HET_/) {
|
||
|
return "CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_IPRESOLVE_/) {
|
||
|
return "CURLOPT_IPRESOLVE(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_SEEKFUNC_/) {
|
||
|
return "CURLOPT_SEEKFUNCTION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_TIMECOND_/) {
|
||
|
return "CURLOPT_TIMECONDITION(3)";
|
||
|
}
|
||
|
elsif($n =~ /^CURL_REDIR_POST_/) {
|
||
|
return "CURLOPT_POSTREDIR(3)";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
while(<STDIN>) {
|
||
|
if($_ =~ /^(CURL[A-Z0-9_.]*) *(.*)/i) {
|
||
|
my ($symbol, $rest)=($1,$2);
|
||
|
my ($intro, $dep, $rem);
|
||
|
if($rest =~ s/^([0-9.]*) *//) {
|
||
|
$intro = $1;
|
||
|
}
|
||
|
if($rest =~ s/^([0-9.]*) *//) {
|
||
|
$dep = $1;
|
||
|
}
|
||
|
if($rest =~ s/^- *([0-9.]*)//) {
|
||
|
$rem = $1;
|
||
|
}
|
||
|
print "\n## $symbol\nIntroduced in $intro.";
|
||
|
if($dep) {
|
||
|
print " Deprecated since $dep.";
|
||
|
}
|
||
|
if($rem) {
|
||
|
print " Last used in $rem.";
|
||
|
}
|
||
|
my $see = $rem || $dep ? "" : nameref($symbol);
|
||
|
if($see) {
|
||
|
print " See $see.";
|
||
|
}
|
||
|
print "\n";
|
||
|
}
|
||
|
}
|