123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313 |
- #!/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
- Protocol:
- - All
- 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";
- }
- }
|