#!/usr/bin/env perl #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 2017, Daniel Stenberg, , 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.haxx.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. # ########################################################################### # Usage: # cat ../../include/curl/curl.h | perl mk-lib1521.pl > lib1521.c # minimum and maximum 32 signed values my $minlong = - (1<<31)+1; my $maxlong = (1<<31); print <
, 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.haxx.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. * ***************************************************************************/ #include "test.h" #include "memdebug.h" /* This source code is generated by mk-lib1521.pl ! */ struct data { char *blaha; }; static int func(void) { return 0; } #define LO $minlong #define HI $maxlong #define OFF_VAL (curl_off_t) 3123123123 #define OFF_LO (curl_off_t) LO #define OFF_HI (curl_off_t) HI #define OFF_NO (curl_off_t) 0 int test(char *URL) { CURL *curl; CURL *dep; CURLSH *share; (void)URL; /* not used */ dep = curl_easy_init(); share = curl_share_init(); curl = curl_easy_init(); if(curl) { struct data object; HEADER ; while() { if($_ =~ /^ CINIT\(([^ ]*), ([^ ]*), (\d*)\)/) { my ($name, $type, $val)=($1, $2, $3); my $w=" "; my $pref = "$w(void)curl_easy_setopt(curl, CURLOPT_$name,"; my $i = ' ' x (length($w) + 23); if($type eq "STRINGPOINT") { print "${pref} \"string\");\n"; print "${pref} NULL);\n"; } elsif($type eq "LONG") { print "${pref} 0L);\n"; print "${pref} 22L);\n"; print "${pref} LO);\n"; print "${pref} HI);\n"; } elsif($type eq "OBJECTPOINT") { if($name =~ /DEPENDS/) { print "${pref} dep);\n"; } elsif($name =~ /SHARE/) { print "${pref} share);\n"; } else { print "${pref} &object);\n"; } print "${pref} NULL);\n"; } elsif($type eq "FUNCTIONPOINT") { print "${pref} &func);\n"; print "${pref} NULL);\n"; } elsif($type eq "OFF_T") { # play conservative to work with 32bit curl_off_t print "${pref} OFF_NO);\n"; print "${pref} OFF_VAL);\n"; print "${pref} OFF_LO);\n"; } else { print "\n---- $type\n"; } } } print <