2019-11-21 21:54:37 +08:00
|
|
|
#!/usr/bin/env perl
|
|
|
|
#***************************************************************************
|
|
|
|
# _ _ ____ _
|
|
|
|
# Project ___| | | | _ \| |
|
|
|
|
# / __| | | | |_) | |
|
|
|
|
# | (__| |_| | _ <| |___
|
|
|
|
# \___|\___/|_| \_\_____|
|
|
|
|
#
|
2023-01-02 20:51:48 +08:00
|
|
|
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
2019-11-21 21:54:37 +08:00
|
|
|
#
|
|
|
|
# This software is licensed as described in the file COPYING, which
|
|
|
|
# you should have received as part of this distribution. The terms
|
2020-11-04 21:02:01 +08:00
|
|
|
# are also available at https://curl.se/docs/copyright.html.
|
2019-11-21 21:54:37 +08:00
|
|
|
#
|
|
|
|
# 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
|
2022-05-17 17:16:50 +08:00
|
|
|
#
|
2019-11-21 21:54:37 +08:00
|
|
|
###########################################################################
|
|
|
|
#
|
|
|
|
#
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
|
|
|
|
|
|
|
# we may get the dir root pointed out
|
|
|
|
my $root=$ARGV[0] || ".";
|
|
|
|
|
|
|
|
my %error; # from the include file
|
|
|
|
my %docs; # from libcurl-errors.3
|
|
|
|
|
|
|
|
sub getdocserrors {
|
2023-03-29 04:29:36 +08:00
|
|
|
open(my $f, "<", "$root/docs/libcurl/libcurl-errors.3");
|
|
|
|
while(<$f>) {
|
2019-11-21 21:54:37 +08:00
|
|
|
if($_ =~ /^.IP \"(CURL[EM]_[^ \t\"]*)/) {
|
|
|
|
my ($symbol) = ($1);
|
|
|
|
if($symbol =~ /OBSOLETE/) {
|
|
|
|
;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$docs{$symbol}=1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-03-29 04:29:36 +08:00
|
|
|
close($f);
|
2019-11-21 21:54:37 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
sub getincludeerrors {
|
2023-03-29 04:29:36 +08:00
|
|
|
open(my $f, "<", "$root/docs/libcurl/symbols-in-versions");
|
|
|
|
while(<$f>) {
|
2019-11-21 21:54:37 +08:00
|
|
|
if($_ =~ /^(CURL[EM]_[^ \t]*)[ \t]*([0-9.]+)[ \t]*(.*)/) {
|
|
|
|
my ($symbol, $added, $rest) = ($1,$2,$3);
|
|
|
|
if($rest =~ /^([0-9.]+)/) {
|
|
|
|
# removed!
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$error{$symbol}=$added;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-03-29 04:29:36 +08:00
|
|
|
close($f);
|
2019-11-21 21:54:37 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
getincludeerrors();
|
|
|
|
getdocserrors();
|
|
|
|
|
|
|
|
for(sort keys %error) {
|
|
|
|
if($error{$_} && !$docs{$_}) {
|
|
|
|
print "$_ is not in libcurl-errors.3\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
for(sort keys %docs) {
|
|
|
|
if($docs{$_} && !$error{$_}) {
|
|
|
|
print "$_ is not in symbols-in-versions\n";
|
|
|
|
}
|
|
|
|
}
|