aboutsummaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-07-17 18:55:55 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-07-17 18:55:55 -0700
commit5293e86e5185b959a442633c93445ecfde107d1e (patch)
tree4a4dfd4b07a85d5243baf5336768a0b53a5ff15c /bin
parentdcdb116a4ec5106483aeef7f0b4454e7f03b790d (diff)
downloadcppawk-5293e86e5185b959a442633c93445ecfde107d1e.tar.gz
cppawk-5293e86e5185b959a442633c93445ecfde107d1e.tar.bz2
cppawk-5293e86e5185b959a442633c93445ecfde107d1e.zip
Implement -E option and <safearg.h> header.
The -E option is not passed through to the Awk implementation any more, which is not particularly useful, because the option resembles -f, and its argument requires likewise handling. We achieve the semantics that -E <name> is equivalent to -f <name> --. From the GNU Awk user's perspective, this is a regression in the semantics of -E which also has the effect of suppressing the processing of arguments which look like variable assignments. To make up for that, we provide the <safearg.h> header which suppresses all implicit treatment of the remaining arguments.
Diffstat (limited to 'bin')
-rwxr-xr-xbin/cppawk11
1 files changed, 8 insertions, 3 deletions
diff --git a/bin/cppawk b/bin/cppawk
index bb58c78..c35b4fd 100755
--- a/bin/cppawk
+++ b/bin/cppawk
@@ -150,10 +150,15 @@ while [ $# -gt 0 ] ; do
-U* | -D* | -I* | -iquote* )
prepro_opts="$prepro_opts $(quote "$1")"
;;
- -f )
- [ $# -gt 1 ] || die "-f requires argument"
- [ -z "$awk_file" ] || die "-f can be only given once"
+ -f | -E )
+ [ $# -gt 1 ] || die "%s requires argument" $1
+ [ -z "$awk_file" ] || die "%s can be only given once" $1
awk_file=$2
+ if [ $1 = -E ] ; then
+ shift
+ shift
+ break
+ fi
shift
;;
-F | -v | -E | -i | -l | -L )