<verify>
<stdout>
-CURL_EXTERN int curl_strequal
-CURL_EXTERN int curl_strnequal
-CURL_EXTERN curl_mime *curl_mime_init
-CURL_EXTERN void curl_mime_free
-CURL_EXTERN curl_mimepart *curl_mime_addpart
-CURL_EXTERN CURLcode curl_mime_name
-CURL_EXTERN CURLcode curl_mime_filename
-CURL_EXTERN CURLcode curl_mime_type
-CURL_EXTERN CURLcode curl_mime_encoder
-CURL_EXTERN CURLcode curl_mime_data
-CURL_EXTERN CURLcode curl_mime_filedata
-CURL_EXTERN CURLcode curl_mime_data_cb
-CURL_EXTERN CURLcode curl_mime_subparts
-CURL_EXTERN CURLcode curl_mime_headers
-CURL_EXTERN CURLFORMcode curl_formadd
-CURL_EXTERN int curl_formget
-CURL_EXTERN void curl_formfree
-CURL_EXTERN char *curl_getenv
-CURL_EXTERN char *curl_version
-CURL_EXTERN char *curl_easy_escape
-CURL_EXTERN char *curl_escape
-CURL_EXTERN char *curl_easy_unescape
-CURL_EXTERN char *curl_unescape
-CURL_EXTERN void curl_free
-CURL_EXTERN CURLcode curl_global_init
-CURL_EXTERN CURLcode curl_global_init_mem
-CURL_EXTERN void curl_global_cleanup
-CURL_EXTERN CURLsslset curl_global_sslset
-CURL_EXTERN struct curl_slist *curl_slist_append
-CURL_EXTERN void curl_slist_free_all
-CURL_EXTERN time_t curl_getdate
-CURL_EXTERN CURLSH *curl_share_init
-CURL_EXTERN CURLSHcode curl_share_setopt
-CURL_EXTERN CURLSHcode curl_share_cleanup
-CURL_EXTERN curl_version_info_data *curl_version_info
-CURL_EXTERN const char *curl_easy_strerror
-CURL_EXTERN const char *curl_share_strerror
-CURL_EXTERN CURLcode curl_easy_pause
-CURL_EXTERN CURL *curl_easy_init
-CURL_EXTERN CURLcode curl_easy_setopt
-CURL_EXTERN CURLcode curl_easy_perform
-CURL_EXTERN void curl_easy_cleanup
-CURL_EXTERN CURLcode curl_easy_getinfo
-CURL_EXTERN CURL *curl_easy_duphandle
-CURL_EXTERN void curl_easy_reset
-CURL_EXTERN CURLcode curl_easy_recv
-CURL_EXTERN CURLcode curl_easy_send
-CURL_EXTERN CURLcode curl_easy_upkeep
-CURL_EXTERN int curl_mprintf
-CURL_EXTERN int curl_mfprintf
-CURL_EXTERN int curl_msprintf
-CURL_EXTERN int curl_msnprintf
-CURL_EXTERN int curl_mvprintf
-CURL_EXTERN int curl_mvfprintf
-CURL_EXTERN int curl_mvsprintf
-CURL_EXTERN int curl_mvsnprintf
-CURL_EXTERN char *curl_maprintf
-CURL_EXTERN char *curl_mvaprintf
-CURL_EXTERN CURLM *curl_multi_init
-CURL_EXTERN CURLMcode curl_multi_add_handle
-CURL_EXTERN CURLMcode curl_multi_remove_handle
-CURL_EXTERN CURLMcode curl_multi_fdset
-CURL_EXTERN CURLMcode curl_multi_wait
-CURL_EXTERN CURLMcode curl_multi_poll
-CURL_EXTERN CURLMcode curl_multi_wakeup
-CURL_EXTERN CURLMcode curl_multi_perform
-CURL_EXTERN CURLMcode curl_multi_cleanup
-CURL_EXTERN CURLMsg *curl_multi_info_read
-CURL_EXTERN const char *curl_multi_strerror
-CURL_EXTERN CURLMcode curl_multi_socket
-CURL_EXTERN CURLMcode curl_multi_socket_action
-CURL_EXTERN CURLMcode curl_multi_socket_all
-CURL_EXTERN CURLMcode curl_multi_timeout
-CURL_EXTERN CURLMcode curl_multi_setopt
-CURL_EXTERN CURLMcode curl_multi_assign
-CURL_EXTERN char *curl_pushheader_bynum
-CURL_EXTERN char *curl_pushheader_byname
-CURL_EXTERN CURLU *curl_url
-CURL_EXTERN void curl_url_cleanup
-CURL_EXTERN CURLU *curl_url_dup
-CURL_EXTERN CURLUcode curl_url_get
-CURL_EXTERN CURLUcode curl_url_set
-CURL_EXTERN const char *curl_url_strerror
-CURL_EXTERN const struct curl_easyoption *curl_easy_option_by_name
-CURL_EXTERN const struct curl_easyoption *curl_easy_option_by_id
-CURL_EXTERN const struct curl_easyoption *curl_easy_option_next
-CURL_EXTERN CURLHcode curl_easy_header
-CURL_EXTERN struct curl_header *curl_easy_nextheader
+curl_strequal
+curl_strnequal
+curl_mime_init
+curl_mime_free
+curl_mime_addpart
+curl_mime_name
+curl_mime_filename
+curl_mime_type
+curl_mime_encoder
+curl_mime_data
+curl_mime_filedata
+curl_mime_data_cb
+curl_mime_subparts
+curl_mime_headers
+curl_formadd
+curl_formget
+curl_formfree
+curl_getenv
+curl_version
+curl_easy_escape
+curl_escape
+curl_easy_unescape
+curl_unescape
+curl_free
+curl_global_init
+curl_global_init_mem
+curl_global_cleanup
+curl_global_sslset
+curl_slist_append
+curl_slist_free_all
+curl_getdate
+curl_share_init
+curl_share_setopt
+curl_share_cleanup
+curl_version_info
+curl_easy_strerror
+curl_share_strerror
+curl_easy_pause
+curl_easy_init
+curl_easy_setopt
+curl_easy_perform
+curl_easy_cleanup
+curl_easy_getinfo
+curl_easy_duphandle
+curl_easy_reset
+curl_easy_recv
+curl_easy_send
+curl_easy_upkeep
+curl_easy_header
+curl_easy_nextheader
+curl_mprintf
+curl_mfprintf
+curl_msprintf
+curl_msnprintf
+curl_mvprintf
+curl_mvfprintf
+curl_mvsprintf
+curl_mvsnprintf
+curl_maprintf
+curl_mvaprintf
+curl_multi_init
+curl_multi_add_handle
+curl_multi_remove_handle
+curl_multi_fdset
+curl_multi_wait
+curl_multi_poll
+curl_multi_wakeup
+curl_multi_perform
+curl_multi_cleanup
+curl_multi_info_read
+curl_multi_strerror
+curl_multi_socket
+curl_multi_socket_action
+curl_multi_socket_all
+curl_multi_timeout
+curl_multi_setopt
+curl_multi_assign
+curl_pushheader_bynum
+curl_pushheader_byname
+curl_easy_option_by_name
+curl_easy_option_by_id
+curl_easy_option_next
+curl_url
+curl_url_cleanup
+curl_url_dup
+curl_url_get
+curl_url_set
+curl_url_strerror
+curl_ws_recv
+curl_ws_send
+curl_ws_meta
</stdout>
</verify>
use strict;
use warnings;
+my $sort = 0;
+
# we may get the dir root pointed out
-my $root=$ARGV[0] || ".";
+my $root = shift @ARGV;
+while(defined $root) {
+
+ if($root =~ /--heading=(.*)/) {
+ print "$1\n";
+ $root = shift @ARGV;
+ next;
+ }
+ elsif($root =~ /--sort/) {
+ $sort = 1;
+ $root = shift @ARGV;
+ next;
+ }
-my @incs = (
- "$root/include/curl/curl.h",
- "$root/include/curl/easy.h",
- "$root/include/curl/mprintf.h",
- "$root/include/curl/multi.h",
- "$root/include/curl/urlapi.h",
- "$root/include/curl/options.h",
- "$root/include/curl/header.h",
- );
+ last;
+}
+
+if(!defined $root) {
+ $root = ".";
+}
+
+$root = "$root/include/curl";
+opendir(D, "$root") || die "Cannot open directory $root: $!\n";
+my @dir = readdir(D);
+closedir(D);
+
+my @incs;
+foreach (sort(@dir)) {
+ if($_ =~ /\.h$/) {
+ push(@incs, "$root/$_");
+ }
+}
my $verbose=0;
my $summary=0;
my %doc;
my %rem;
-sub scanheader {
- my ($f)=@_;
+my @out;
+foreach my $f (@incs) {
open H, "<$f" || die;
my $first = "";
while(<H>) {
if (/^(^CURL_EXTERN .*)\(/) {
my $decl = $1;
$decl =~ s/\r$//;
- print "$decl\n";
+ $decl =~ /([a-z_]+)$/;
+ push(@out, "$1");
}
elsif (/^(^CURL_EXTERN .*)/) {
# handle two-line declarations
my $decl = $1;
$decl =~ s/\r$//;
$first .= $decl;
- print "$first\n";
+ $first =~ /([a-z_]+)$/;
+ push(@out, "$1");
}
$first = "";
}
close H;
}
-foreach my $i (@incs) {
- scanheader($i);
+if($sort) {
+ @out = sort(@out);
+}
+
+foreach (@out) {
+ print("$_\n");
}