aboutsummaryrefslogtreecommitdiffstats
path: root/testcases
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 /testcases
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 'testcases')
-rw-r--r--testcases33
1 files changed, 33 insertions, 0 deletions
diff --git a/testcases b/testcases
index d95e25f..1af3714 100644
--- a/testcases
+++ b/testcases
@@ -251,3 +251,36 @@ $cppawk --dump-macros '#define foo_bar 42' | grep foo_bar
$cppawk --dump-macros x | (grep -q '#define [A-Za-z]' || echo "clean")
:
clean
+--
+44:
+$cppawk -f x -E x
+:
+ERR
+--
+45:
+$cppawk -E testdir/program.cwk
+:
+73
+--
+46:
+$cppawk -E testdir/program.cwk -f testdir/program.cwk
+:
+73
+--
+47:
+$cppawk -E testdir/arg.cwk a=3 b=4 testdir/data
+:
+ARGV[1]=a=3
+ARGV[2]=b=4
+ARGV[3]=testdir/data
+a=3
+b=4
+--
+48:
+echo | $cppawk -E testdir/safearg.cwk a=3 b=4 testdir/data
+:
+argv[1]=a=3
+argv[2]=b=4
+argv[3]=testdir/data
+a=
+b=