123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #!/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
- #
- ###########################################################################
- # Check that libcurl-errors.3 and the public header files have the same set of
- # error codes.
- use strict;
- use warnings;
- # we may get the dir roots pointed out
- my $root=$ARGV[0] || ".";
- my $buildroot=$ARGV[1] || ".";
- my $manpge = "$buildroot/docs/libcurl/libcurl-errors.3";
- my $curlh = "$root/include/curl";
- my $errors=0;
- my @hnames;
- my %wherefrom;
- my @mnames;
- my %manfrom;
- sub scanheader {
- my ($file)=@_;
- open H, "<$file";
- my $line = 0;
- while(<H>) {
- $line++;
- if($_ =~ /^ (CURL(E|UE|SHE|HE|M)_[A-Z0-9_]*)/) {
- my ($name)=($1);
- if(($name !~ /OBSOLETE/) && ($name !~ /_LAST\z/)) {
- push @hnames, $name;
- if($wherefrom{$name}) {
- print STDERR "double: $name\n";
- }
- $wherefrom{$name}="$file:$line";
- }
- }
- }
- close(H);
- }
- sub scanmanpage {
- my ($file)=@_;
- open H, "<$file";
- my $line = 0;
- while(<H>) {
- $line++;
- if($_ =~ /^\.IP \"(CURL(E|UE|SHE|HE|M)_[A-Z0-9_]*)/) {
- my ($name)=($1);
- push @mnames, $name;
- $manfrom{$name}="$file:$line";
- }
- }
- close(H);
- }
- opendir(my $dh, $curlh) || die "Can't opendir $curlh: $!";
- my @hfiles = grep { /\.h$/ } readdir($dh);
- closedir $dh;
- for(sort @hfiles) {
- scanheader("$curlh/$_");
- }
- scanmanpage($manpge);
- print "Result\n";
- for my $h (sort @hnames) {
- if(!$manfrom{$h}) {
- printf "$h from %s, not in manpage\n", $wherefrom{$h};
- }
- }
- for my $m (sort @mnames) {
- if(!$wherefrom{$m}) {
- printf "$m from %s, not in any header\n", $manfrom{$m};
- }
- }
|