summaryrefslogtreecommitdiffstats
path: root/bin/9l
diff options
context:
space:
mode:
authorIgor Burago <igor@igorburago.com>2023-12-18 15:12:48 +0800
committerDan Cross <crossd@gmail.com>2023-12-18 10:10:55 -0500
commit0bc1ff0fa0c68da2031c5c92768a150a35294b80 (patch)
tree1852359c6bcf56aefa9f54d4420b613a86f39a2e /bin/9l
parent984c2824e3569479bace65bdaf9e78a2eb36dd58 (diff)
downloadplan9port-0bc1ff0fa0c68da2031c5c92768a150a35294b80.tar.gz
plan9port-0bc1ff0fa0c68da2031c5c92768a150a35294b80.zip
9l: refactor the warning-silencing mechanics to match that of 9c
Diffstat (limited to 'bin/9l')
-rwxr-xr-xbin/9l35
1 files changed, 20 insertions, 15 deletions
diff --git a/bin/9l b/bin/9l
index 3b8cf680..5432fe41 100755
--- a/bin/9l
+++ b/bin/9l
@@ -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