diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-07-17 18:55:55 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-07-17 18:55:55 -0700 |
commit | 5293e86e5185b959a442633c93445ecfde107d1e (patch) | |
tree | 4a4dfd4b07a85d5243baf5336768a0b53a5ff15c /bin | |
parent | dcdb116a4ec5106483aeef7f0b4454e7f03b790d (diff) | |
download | cppawk-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-x | bin/cppawk | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -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 ) |