aboutsummaryrefslogtreecommitdiffstats
path: root/testdir/safearg.cwk
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 /testdir/safearg.cwk
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 'testdir/safearg.cwk')
-rw-r--r--testdir/safearg.cwk14
1 files changed, 14 insertions, 0 deletions
diff --git a/testdir/safearg.cwk b/testdir/safearg.cwk
new file mode 100644
index 0000000..4f29b9f
--- /dev/null
+++ b/testdir/safearg.cwk
@@ -0,0 +1,14 @@
+#include <safearg.h>
+
+END {
+ for (x in ARGV) {
+ if (x != 0)
+ printf("ARGV[%s]=%s\n", x, ARGV[x])
+ }
+ for (x in argv) {
+ if (x != 0)
+ printf("argv[%s]=%s\n", x, argv[x])
+ }
+ printf("a=%s\n", a)
+ printf("b=%s\n", a)
+}