diff options
| author | Igor Burago <igor@igorburago.com> | 2023-12-18 15:12:48 +0800 |
|---|---|---|
| committer | Dan Cross <crossd@gmail.com> | 2023-12-18 10:10:55 -0500 |
| commit | 0bc1ff0fa0c68da2031c5c92768a150a35294b80 (patch) | |
| tree | 1852359c6bcf56aefa9f54d4420b613a86f39a2e /bin | |
| parent | 984c2824e3569479bace65bdaf9e78a2eb36dd58 (diff) | |
9l: refactor the warning-silencing mechanics to match that of 9c
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/9c | 12 | ||||
| -rwxr-xr-x | bin/9l | 35 |
2 files changed, 26 insertions, 21 deletions
@@ -1,6 +1,6 @@ #!/bin/sh -test -f $PLAN9/config && . $PLAN9/config +test -f "$PLAN9/config" && . "$PLAN9/config" usegcc() { cc=${CC9:-gcc} @@ -52,7 +52,7 @@ quiet() ignore=$ignore'|warn_unused_result' ignore=$ignore'|expanded from macro' - grep -v '__p9l_autolib_' $1 | + grep -v '__p9l_autolib_' "$1" | egrep -v "$ignore" | sed 's/ .first use in this function.$//; s/\"\([^\"][^\"]*\)\", line \([0-9][0-9]*\)/\1:\2/g' | $(which uniq) 1>&2 # avoid built-in uniq on SunOS @@ -143,10 +143,10 @@ case "$tag" in exit 1 esac -# N.B. Must use temp file to avoid pipe; pipe loses status. +# Must use temp file to avoid pipe; pipe loses status. xtmp=${TMPDIR-/tmp}/9c.$$.$USER.out -$cc -DPLAN9PORT -I$PLAN9/include $cflags "$@" 2>$xtmp +$cc -DPLAN9PORT -I"$PLAN9/include" $cflags "$@" 2>"$xtmp" status=$? -quiet $xtmp -rm -f $xtmp +quiet "$xtmp" +rm -f "$xtmp" exit $status @@ -2,7 +2,7 @@ [ "$1" = "" ] && exit 1 -test -f $PLAN9/config && . $PLAN9/config +test -f "$PLAN9/config" && . "$PLAN9/config" libsl="" frameworks="" doautolib=true @@ -324,23 +324,28 @@ esac if $verbose then - echo $ld -L$PLAN9/lib "$@" $libsl $extralibs $frameworks + echo $ld -L"$PLAN9/lib" "$@" $libsl $extralibs $frameworks fi -xtmp="${TMPDIR-/tmp}/9l.$$.$USER.out" -xxout() { - sed 's/.*: In function `[^:]*: *//' $xtmp | egrep . | - egrep -v 'is (often|almost always) misused|is dangerous, better use|text-based stub' - rm -f $xtmp +quiet() +{ + ignore='^$' + ignore=$ignore'|is (often|almost always) misused' + ignore=$ignore'|is dangerous, better use' + ignore=$ignore'|text-based stub' + + sed 's/.*: In function `[^:]*: *//' "$1" | + egrep -v "$ignore" } -if $ld -L$PLAN9/lib "$@" $libsl $extralibs $frameworks >$xtmp 2>&1 +# Must use temp file to avoid pipe; pipe loses status. +xtmp=${TMPDIR-/tmp}/9l.$$.$USER.out +$ld -L"$PLAN9/lib" "$@" $libsl $extralibs $frameworks >"$xtmp" 2>&1 +status=$? +quiet "$xtmp" +rm -f "$xtmp" +if [ "$status" -ne 0 ] then - xxout - exit 0 -else - xxout - rm -f $target - exit 1 + rm -f "$target" fi - +exit $status |