From: Daniel Stenberg Date: Thu, 13 Feb 2025 07:51:22 +0000 (+0100) Subject: managen: correct the warning for un-escaped '<' and '>' X-Git-Tag: curl-8_13_0~498 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c561c94ec3e2259b023c228e3b0c5244c27bcdd3;p=thirdparty%2Fcurl.git managen: correct the warning for un-escaped '<' and '>' 1. make sure the check is done before the backticks are replaced 2. ignore less-than and greater-than used within backticks (adjust proxy.md that now showed a two-space warning) Closes #16315 --- diff --git a/docs/cmdline-opts/proxy.md b/docs/cmdline-opts/proxy.md index afaa29837e..2a10d36252 100644 --- a/docs/cmdline-opts/proxy.md +++ b/docs/cmdline-opts/proxy.md @@ -22,7 +22,7 @@ Use the specified proxy. The proxy string can be specified with a protocol:// prefix. No protocol specified or http:// it is treated as an HTTP proxy. Use socks4://, socks4a://, socks5:// or socks5h:// to request a specific SOCKS version to be -used. (Added in 7.21.7) +used. (Added in 7.21.7) Unix domain sockets are supported for socks proxy. Set localhost for the host part. e.g. socks5h://localhost/path/to/socket.sock diff --git a/scripts/managen b/scripts/managen index 20abfc12ef..3cf026eda0 100755 --- a/scripts/managen +++ b/scripts/managen @@ -391,6 +391,23 @@ sub render { $d =~ s/`%VERSION`/$version/g; $d =~ s/`%GLOBALS`/$globals/g; + if(!$quote) { + if($d =~ /^(.*) /) { + printf STDERR "$f:$line:%d:ERROR: 2 spaces detected\n", + length($1); + return 3; + } + my $back = $d; + + # remove all backticked pieces + $back =~ s/\`(.*?)\`//g; + + if($back =~ /[^\\][\<\>]/) { + print STDERR "$f:$line:1:WARN: un-escaped < or > used: $back\n"; + return 3; + } + } + # convert backticks to double quotes $d =~ s/\`/\"/g; @@ -410,17 +427,6 @@ sub render { } } - if(!$quote) { - if($d =~ /^(.*) /) { - printf STDERR "$f:$line:%d:ERROR: 2 spaces detected\n", - length($1); - return 3; - } - elsif($d =~ /[^\\][\<\>]/) { - print STDERR "$f:$line:1:WARN: un-escaped < or > used\n"; - return 3; - } - } # convert backslash-'<' or '> to just the second character $d =~ s/\\([><])/$1/g; # convert single backslash to double-backslash