On Sun, 01 May 2022 00:48:17 -0400, "Ted Unangst" wrote:
> I don't think we need to concern ourselves with cross awk compatibility here.
>
> Despite the misleading comment, /usr/bin/awk supports toupper.
This must have been to support very old versions of awk (pre-nawk)
since toupper and tolower were added to AT&T awk in October of 1987.
It is also required by POSIX.
OK millert@
- todd
>
> Index: makesyscalls.sh
> ===
> RCS file: /home/cvs/src/sys/kern/makesyscalls.sh,v
> retrieving revision 1.15
> diff -u -p -r1.15 makesyscalls.sh
> --- makesyscalls.sh 9 Dec 2021 00:26:10 - 1.15
> +++ makesyscalls.sh 1 May 2022 04:45:49 -
> @@ -70,28 +70,6 @@ sysent="sysent.switch"
>
> trap "rm $sysdcl $sysprotos $sysent" 0
>
> -# Awk program (must support nawk extensions)
> -# Use "awk" at Berkeley, "nawk" or "gawk" elsewhere.
> -awk=${AWK:-awk}
> -
> -# Does this awk have a "toupper" function? (i.e. is it GNU awk)
> -isgawk=`$awk 'BEGIN { print toupper("true"); exit; }' 2>/dev/null`
> -
> -# If this awk does not define "toupper" then define our own.
> -if [ "$isgawk" = TRUE ] ; then
> - # GNU awk provides it.
> - toupper=
> -else
> - # Provide our own toupper()
> - toupper='
> -function toupper(str) {
> - _toupper_cmd = "echo "str" |tr a-z A-Z"
> - _toupper_cmd | getline _toupper_str;
> - close(_toupper_cmd);
> - return _toupper_str;
> -}'
> -fi
> -
> # before handing it off to awk, make a few adjustments:
> # (1) insert spaces around {, }, (, ), *, and commas.
> # (2) get rid of any and all dollar signs (so that rcs id use safe)
> @@ -111,8 +89,7 @@ s/\$//g
> 2,${
> /^#/!s/\([{}()*,]\)/ \1 /g
> }
> -' < $2 | $awk "
> -$toupper
> +' < $2 | awk "
> BEGIN {
> # to allow nested #if/#else/#endif sets
> savedepth = 0