24 |
# |
# |
25 |
# Process INFILE using the C pre-processor and some other programs. |
# Process INFILE using the C pre-processor and some other programs. |
26 |
# Write output to a file named OUTFILE or to the standard output when no |
# Write output to a file named OUTFILE or to the standard output when no |
27 |
# OUTFILE has been specified or when OUTFILE is "-". When writing |
# OUTFILE has been specified or when OUTFILE is "-". |
|
# to a file, ignore lines from the input matching the following grep(1) |
|
|
# regular expression: |
|
|
# |
|
|
# ^#include ".*OUTFILE" |
|
28 |
# |
# |
29 |
# If there are errors during processing, delete OUTFILE and exit with |
# If there are errors during processing, delete OUTFILE and exit with |
30 |
# non-zero status. |
# non-zero status. |
106 |
trap "rm -f $temp" 0 1 2 15 |
trap "rm -f $temp" 0 1 2 15 |
107 |
|
|
108 |
if [ ! "$outfile" = "-" ]; then |
if [ ! "$outfile" = "-" ]; then |
109 |
self_blind_regexp='^#include ".*'`basename $outfile`'"' |
modern_snarf "$@" $infile > $outfile |
|
clean_infile=$infile.clean.c # temp file in same dir as infile |
|
|
# so that #include "foo" works |
|
|
# (e.g., see libguile/eval.c). |
|
|
# use .c to satisfy cpp heuristics. |
|
|
|
|
|
# clean input file |
|
|
trap "rm -f $cleanfile" 0 1 2 15 |
|
|
grep -v "$self_blind_regexp" $infile > $clean_infile |
|
|
modern_snarf "$@" $clean_infile > $outfile |
|
110 |
else |
else |
111 |
modern_snarf "$@" $infile |
modern_snarf "$@" $infile |
112 |
fi |
fi |