* guile-snarf.in: Be sure to exit with an error if CPP does.
[bpt/guile.git] / libguile / guile-snarf.in
index b9a9a0c..0a776df 100644 (file)
@@ -1,9 +1,16 @@
 #!/bin/sh
 # Extract the initialization actions for builtin things.
 
+temp="/tmp/snarf.$$"
+trap "rm -f $temp" 0 1 2 15
+
 ## Let the user override the preprocessor autoconf found.
 test -n "${CPP+set}" || CPP="@CPP@"
-${CPP} -DSCM_MAGIC_SNARFER "$@" | grep "^ *% *% *%" | sed -e "s/^ *% *% *%//"
+
+## We must use a temporary file here, instead of a pipe, because we
+## need to know if CPP exits with a non-zero status.
+${CPP} -DSCM_MAGIC_SNARFER "$@" > ${temp} || exit $?
+< ${temp} grep "^ *% *% *%" | sed -e "s/^ *% *% *%//"
 
 ## Apparently, AIX's preprocessor is unhappy if you try to #include an
 ## empty file.