quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

mksymbolsmanpage.pl (8824B)


      1 #!/usr/bin/env perl
      2 # ***************************************************************************
      3 # *                                  _   _ ____  _
      4 # *  Project                     ___| | | |  _ \| |
      5 # *                             / __| | | | |_) | |
      6 # *                            | (__| |_| |  _ <| |___
      7 # *                             \___|\___/|_| \_\_____|
      8 # *
      9 # * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
     10 # *
     11 # * This software is licensed as described in the file COPYING, which
     12 # * you should have received as part of this distribution. The terms
     13 # * are also available at https://curl.se/docs/copyright.html.
     14 # *
     15 # * You may opt to use, copy, modify, merge, publish, distribute and/or sell
     16 # * copies of the Software, and permit persons to whom the Software is
     17 # * furnished to do so, under the terms of the COPYING file.
     18 # *
     19 # * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
     20 # * KIND, either express or implied.
     21 # *
     22 # * SPDX-License-Identifier: curl
     23 # *
     24 # ***************************************************************************
     25 
     26 use POSIX qw(strftime);
     27 my @ts;
     28 if(defined($ENV{SOURCE_DATE_EPOCH})) {
     29     @ts = localtime($ENV{SOURCE_DATE_EPOCH});
     30 } else {
     31     @ts = localtime;
     32 }
     33 my $date = strftime "%b %e, %Y", @ts;
     34 my $year = strftime "%Y", @ts;
     35 
     36 print <<HEADER
     37 ---
     38 c: Copyright (C) Daniel Stenberg, <daniel\@haxx.se>, et al.
     39 SPDX-License-Identifier: curl
     40 Title: libcurl-symbols
     41 Section: 3
     42 Source: libcurl
     43 Protocol:
     44   - All
     45 See-also:
     46   - libcurl (3)
     47   - libcurl-easy (3)
     48   - libcurl-multi (3)
     49   - libcurl-security (3)
     50   - libcurl-thread (3)
     51 Added-in: n/a
     52 ---
     53 # libcurl symbols
     54 
     55 This man page details version information for public symbols provided in the
     56 libcurl header files. This lists the first version in which the symbol was
     57 introduced and for some symbols two additional information pieces:
     58 
     59 The first version in which the symbol is marked "deprecated" - meaning that
     60 since that version no new code should be written to use the symbol as it is
     61 marked for getting removed in a future.
     62 
     63 The last version that featured the specific symbol. Using the symbol in source
     64 code makes it no longer compile error-free after that specified version.
     65 
     66 This man page is automatically generated from the symbols-in-versions file.
     67 HEADER
     68     ;
     69 
     70 sub nameref {
     71     my ($n)=@_;
     72     if($n =~ /^CURLOPT_/) {
     73         if($n eq "CURLOPT_RTSPHEADER") {
     74             $n = "CURLOPT_HTTPHEADER";
     75         }
     76         elsif($n eq "CURLOPT_WRITEHEADER") {
     77             $n = "CURLOPT_HEADERDATA";
     78         }
     79         elsif($n eq "CURLOPT_WRITEINFO") {
     80             ; # now obsolete
     81         }
     82         else {
     83             return "$n(3)";
     84         }
     85     }
     86     elsif($n =~ /^CURLMOPT_/) {
     87         return "$n(3)";
     88     }
     89     elsif($n =~ /^CURLINFO_/) {
     90         my %infotypes = (
     91             'CURLINFO_TEXT' => 1,
     92             'CURLINFO_HEADER_IN' => 1,
     93             'CURLINFO_HEADER_OUT' => 1,
     94             'CURLINFO_DATA_IN' => 1,
     95             'CURLINFO_DATA_OUT' => 1,
     96             'CURLINFO_SSL_DATA_IN' => 1,
     97             'CURLINFO_SSL_DATA_OUT' => 1,
     98             );
     99         if($infotypes{$n}) {
    100             return "CURLOPT_DEBUGFUNCTION(3)";
    101         }
    102     }
    103     elsif($n =~ /^CURLALTSVC_/) {
    104         return "CURLOPT_ALTSVC_CTRL(3)";
    105     }
    106     elsif($n =~ /^CURLAUTH_/) {
    107         return "CURLOPT_HTTPAUTH(3)";
    108     }
    109     elsif($n =~ /^CURLFORM_/) {
    110         return "curl_formadd(3)";
    111     }
    112     elsif($n =~ /^CURLKH/) {
    113         return "CURLOPT_SSH_KEYFUNCTION(3)";
    114     }
    115     elsif($n =~ /^CURLE_/) {
    116         return "libcurl-errors(3)";
    117     }
    118     elsif($n =~ /^CURLM_/) {
    119         return "libcurl-errors(3)";
    120     }
    121     elsif($n =~ /^CURLUE_/) {
    122         return "libcurl-errors(3)";
    123     }
    124     elsif($n =~ /^CURLHE_/) {
    125         return "libcurl-errors(3)";
    126     }
    127     elsif($n =~ /^CURLSHE_/) {
    128         return "libcurl-errors(3)";
    129     }
    130     elsif($n =~ /^CURLPROTO_/) {
    131         return "CURLINFO_PROTOCOL(3)";
    132     }
    133     elsif($n =~ /^CURLPX_/) {
    134         return "CURLINFO_PROXY_ERROR(3)";
    135     }
    136     elsif($n =~ /^CURLPROXY_/) {
    137         return "CURLOPT_PROXYTYPE(3)";
    138     }
    139     elsif($n =~ /^CURLSSLBACKEND_/) {
    140         return "curl_global_sslset(3)";
    141     }
    142     elsif($n =~ /^CURLSSLOPT_/) {
    143         return "CURLOPT_SSL_OPTIONS(3)";
    144     }
    145     elsif($n =~ /^CURLSSLSET_/) {
    146         return "curl_global_sslset(3)";
    147     }
    148     elsif($n =~ /^CURLUPART_/) {
    149         return "curl_url_get(3)";
    150     }
    151     elsif($n =~ /^CURLU_/) {
    152         return "curl_url_get(3)";
    153     }
    154     elsif($n =~ /^CURLVERSION_/) {
    155         return "curl_version_info(3)";
    156     }
    157     elsif($n =~ /^CURLSHOPT_/) {
    158         if($n eq "CURLSHOPT_NONE") {
    159             $n = "curl_share_setopt";
    160         }
    161         return "$n(3)";
    162     }
    163     elsif($n =~ /^CURLWS_/) {
    164         return "curl_ws_send(3)";
    165     }
    166     elsif($n =~ /^CURL_FORMADD_/) {
    167         return "curl_formadd(3)";
    168     }
    169     elsif($n =~ /^CURL_HTTPPOST_/) {
    170         return "curl_formadd(3)";
    171     }
    172     elsif($n =~ /^CURL_GLOBAL_/) {
    173         return "curl_global_init(3)";
    174     }
    175     elsif($n =~ /^CURL_HTTP_VERSION_/) {
    176         return "CURLOPT_HTTP_VERSION(3)";
    177     }
    178     elsif($n =~ /^CURL_LOCK_/) {
    179         return "CURLSHOPT_SHARE(3)";
    180     }
    181     elsif($n =~ /^CURL_SSLVERSION_/) {
    182         return "CURLOPT_SSLVERSION(3)";
    183     }
    184     elsif($n =~ /^CURL_VERSION_/) {
    185         return "curl_version_info(3)";
    186     }
    187     elsif($n =~ /^CURL_RTSPREQ_/) {
    188         return "CURLOPT_RTSP_REQUEST(3)";
    189     }
    190     elsif($n =~ /^CURLH_/) {
    191         return "curl_easy_header(3)";
    192     }
    193     elsif($n =~ /^CURL_TRAILERFUNC_/) {
    194         return "CURLOPT_TRAILERFUNCTION(3)";
    195     }
    196     elsif($n =~ /^CURLOT_/) {
    197         return "curl_easy_option_next(3)";
    198     }
    199     elsif($n =~ /^CURLFINFOFLAG_/) {
    200         return "CURLOPT_CHUNK_BGN_FUNCTION(3)";
    201     }
    202     elsif($n =~ /^CURLFILETYPE_/) {
    203         return "CURLOPT_CHUNK_BGN_FUNCTION(3)";
    204     }
    205     elsif($n =~ /^CURL_CHUNK_BGN_FUNC_/) {
    206         return "CURLOPT_CHUNK_BGN_FUNCTION(3)";
    207     }
    208     elsif($n =~ /^CURL_CHUNK_END_FUNC_/) {
    209         return "CURLOPT_CHUNK_END_FUNCTION(3)";
    210     }
    211     elsif($n =~ /^CURLSSH_AUTH_/) {
    212         return "CURLOPT_SSH_AUTH_TYPES(3)";
    213     }
    214     elsif($n =~ /^CURL_POLL_/) {
    215         return "CURLMOPT_SOCKETFUNCTION(3)";
    216     }
    217     elsif($n =~ /^CURLMSG_/) {
    218         return "curl_multi_info_read(3)";
    219     }
    220     elsif($n =~ /^CURLFTPAUTH_/) {
    221         return "CURLOPT_FTPSSLAUTH(3)";
    222     }
    223     elsif($n =~ /^CURLFTPMETHOD_/) {
    224         return "CURLOPT_FTP_FILEMETHOD(3)";
    225     }
    226     elsif($n =~ /^CURLFTPSSL_/) {
    227         return "CURLOPT_USE_SSL(3)";
    228     }
    229     elsif($n =~ /^CURLFTP_CREATE_/) {
    230         return "CURLOPT_FTP_CREATE_MISSING_DIRS(3)";
    231     }
    232     elsif($n =~ /^CURLGSSAPI_DELEGATION_/) {
    233         return "CURLOPT_GSSAPI_DELEGATION(3)";
    234     }
    235     elsif($n =~ /^CURLHEADER_/) {
    236         return "CURLOPT_HEADEROPT(3)";
    237     }
    238     elsif($n =~ /^CURLHSTS_/) {
    239         return "CURLOPT_HSTS_CTRL(3)";
    240     }
    241     elsif($n =~ /^CURLIOCMD_/) {
    242         return "CURLOPT_IOCTLFUNCTION(3)";
    243     }
    244     elsif($n =~ /^CURLIOE_/) {
    245         return "CURLOPT_IOCTLFUNCTION(3)";
    246     }
    247     elsif($n =~ /^CURLMIMEOPT_/) {
    248         return "CURLOPT_MIME_OPTIONS(3)";
    249     }
    250     elsif($n =~ /^CURLPAUSE_/) {
    251         return "curl_easy_pause(3)";
    252     }
    253     elsif($n =~ /^CURLPIPE_/) {
    254         return "CURLMOPT_PIPELINING(3)";
    255     }
    256     elsif($n =~ /^CURLSOCKTYPE_/) {
    257         return "CURLOPT_SOCKOPTFUNCTION(3)";
    258     }
    259     elsif($n =~ /^CURLSTS_/) {
    260         return "CURLOPT_HSTSREADFUNCTION(3)";
    261     }
    262     elsif($n =~ /^CURLUSESSL_/) {
    263         return "CURLOPT_USE_SSL(3)";
    264     }
    265     elsif($n =~ /^CURL_CSELECT_/) {
    266         return "curl_multi_socket_action(3)";
    267     }
    268     elsif($n =~ /^CURL_FNMATCHFUNC_/) {
    269         return "CURLOPT_FNMATCH_FUNCTION(3)";
    270     }
    271     elsif($n =~ /^CURL_HET_/) {
    272         return "CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS(3)";
    273     }
    274     elsif($n =~ /^CURL_IPRESOLVE_/) {
    275         return "CURLOPT_IPRESOLVE(3)";
    276     }
    277     elsif($n =~ /^CURL_SEEKFUNC_/) {
    278         return "CURLOPT_SEEKFUNCTION(3)";
    279     }
    280     elsif($n =~ /^CURL_TIMECOND_/) {
    281         return "CURLOPT_TIMECONDITION(3)";
    282     }
    283     elsif($n =~ /^CURL_REDIR_POST_/) {
    284         return "CURLOPT_POSTREDIR(3)";
    285     }
    286 }
    287 
    288 while(<STDIN>) {
    289     if($_ =~ /^(CURL[A-Z0-9_.]*) *(.*)/i) {
    290         my ($symbol, $rest)=($1,$2);
    291         my ($intro, $dep, $rem);
    292         if($rest =~ s/^([0-9.]*) *//) {
    293            $intro = $1;
    294         }
    295         if($rest =~ s/^([0-9.]*) *//) {
    296            $dep = $1;
    297         }
    298         if($rest =~ s/^- *([0-9.]*)//) {
    299            $rem = $1;
    300         }
    301         print "\n## $symbol\nIntroduced in $intro.";
    302         if($dep) {
    303             print " Deprecated since $dep.";
    304         }
    305         if($rem) {
    306             print " Last used in $rem.";
    307         }
    308         my $see = $rem || $dep ? "" : nameref($symbol);
    309         if($see) {
    310             print " See $see.";
    311         }
    312         print "\n";
    313     }
    314 }