1#!/usr/bin/env perl 2 3print <<HEAD 4/*************************************************************************** 5 * _ _ ____ _ 6 * Project ___| | | | _ \\| | 7 * / __| | | | |_) | | 8 * | (__| |_| | _ <| |___ 9 * \\___|\\___/|_| \\_\\_____| 10 * 11 * Copyright (C) Daniel Stenberg, <daniel\@haxx.se>, et al. 12 * 13 * This software is licensed as described in the file COPYING, which 14 * you should have received as part of this distribution. The terms 15 * are also available at https://curl.se/docs/copyright.html. 16 * 17 * You may opt to use, copy, modify, merge, publish, distribute and/or sell 18 * copies of the Software, and permit persons to whom the Software is 19 * furnished to do so, under the terms of the COPYING file. 20 * 21 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 22 * KIND, either express or implied. 23 * 24 * SPDX-License-Identifier: curl 25 * 26 ***************************************************************************/ 27 28/* This source code is generated by optiontable.pl - DO NOT EDIT BY HAND */ 29 30#include "curl_setup.h" 31#include "easyoptions.h" 32 33/* all easy setopt options listed in alphabetical order */ 34struct curl_easyoption Curl_easyopts[] = { 35HEAD 36 ; 37 38my $lastnum=0; 39 40sub add { 41 my($opt, $type, $num)=@_; 42 my $name; 43 # remove all spaces from the type 44 $type =~ s/ //g; 45 my $ext = $type; 46 47 if($opt =~ /OBSOLETE/) { 48 # skip obsolete options 49 next; 50 } 51 52 if($opt =~ /^CURLOPT_(.*)/) { 53 $name=$1; 54 } 55 $ext =~ s/CURLOPTTYPE_//; 56 $ext =~ s/CBPOINT/CBPTR/; 57 $ext =~ s/POINT\z//; 58 $type = "CURLOT_$ext"; 59 60 $opt{$name} = $opt; 61 $type{$name} = $type; 62 push @names, $name; 63 if($num < $lastnum) { 64 print STDERR "ERROR: $opt has bad number: $num < $lastnum\n"; 65 exit 2; 66 } 67 else { 68 $lastnum = $num; 69 } 70} 71 72 73my $fl; 74while(<STDIN>) { 75 my $l = $_; 76 if($fl) { 77 # continued deprecation 78 if($l =~ /(.*)\),/) { 79 $fl .= $1; 80 81 # the end 82 my @p=split(/, */, $fl); 83 add($p[0], $p[1], $p[2]); 84 undef $fl; 85 } 86 else { 87 # another line to append 88 chomp $l; 89 $fl .= $l; 90 } 91 } 92 93 if(/^ *CURLOPTDEPRECATED\((.*)/) { 94 $fl = $1; 95 chomp $fl; 96 } 97 98 if(/^ *CURLOPT\(([^,]*), ([^,]*), (\d+)\)/) { 99 my($opt, $type, $num)=($1,$2,$3); 100 add($opt, $type, $num); 101 } 102 103 # alias for an older option 104 # old = new 105 if(/^#define (CURLOPT_[^ ]*) *(CURLOPT_\S*)/) { 106 my ($o, $n)=($1, $2); 107 # skip obsolete ones 108 if(($n !~ /OBSOLETE/) && ($o !~ /OBSOLETE/)) { 109 $o =~ s/^CURLOPT_//; 110 $n =~ s/^CURLOPT_//; 111 $alias{$o} = $n; 112 push @names, $o, 113 } 114 } 115} 116 117 118for my $name (sort @names) { 119 my $oname = $name; 120 my $a = $alias{$name}; 121 my $flag = "0"; 122 if($a) { 123 $name = $alias{$name}; 124 $flag = "CURLOT_FLAG_ALIAS"; 125 } 126 $o = sprintf(" {\"%s\", %s, %s, %s},\n", 127 $oname, $opt{$name}, $type{$name}, $flag); 128 if(length($o) < 80) { 129 print $o; 130 } 131 else { 132 printf(" {\"%s\", %s,\n %s, %s},\n", 133 $oname, $opt{$name}, $type{$name}, $flag); 134 } 135} 136 137print <<FOOT 138 {NULL, CURLOPT_LASTENTRY, CURLOT_LONG, 0} /* end of table */ 139}; 140 141#ifdef DEBUGBUILD 142/* 143 * Curl_easyopts_check() is a debug-only function that returns non-zero 144 * if this source file is not in sync with the options listed in curl/curl.h 145 */ 146int Curl_easyopts_check(void) 147{ 148 return ((CURLOPT_LASTENTRY%10000) != ($lastnum + 1)); 149} 150#endif 151FOOT 152 ; 153