#!/usr/bin/env perl #*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) 2016 - 2022, 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.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 # ########################################################################### sub showline { my ($l) = @_; $l =~ s/([^\x20-\x7f])/sprintf "%%%02x", ord $1/eg; return $l; } my $root = $ARGV[0]; open(F, "perl $root/lib/optiontable.pl < $root/include/curl/curl.h|"); binmode F; my @gen=; close(F); open(F, "<$root/lib/easyoptions.c"); binmode F; my @file=; close(F); if(join("", @gen) ne join("", @file)) { print "easyoptions.c need to be regenerated!\n"; printf "easyoptions.c is %u lines\n", scalar(@file); printf "generated file is %u lines\n", scalar(@gen); my $e = 0; for my $i (0 .. $#gen) { # strip CRLFs to unify $gen[$i] =~ s/[\r\n]//g; $file[$i] =~ s/[\r\n]//g; if($gen[$i] ne $file[$i]) { printf "File: %u:%s\nGen: %u:%s\n", $i+1, showline($file[$i]), $i+1, showline($gen[$i]); $e++; if($e > 10) { # only show 10 lines diff last; } } } exit 1 if($e); }