aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-03-18 09:31:20 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-03-18 09:31:20 -0700
commit750ca3854099771112a2420784220d86f7e97af6 (patch)
tree9d9d119a179871d138c3b52e2a129c632299dc95
parent9b9fdbda81790c06973d77c4b3c5b75be9dbebde (diff)
downloadcppawk-750ca3854099771112a2420784220d86f7e97af6.tar.gz
cppawk-750ca3854099771112a2420784220d86f7e97af6.tar.bz2
cppawk-750ca3854099771112a2420784220d86f7e97af6.zip
Test -f option.
Bugfix: because the preprocessed version of the file is in a temporary directory, #include "..." looks for files in that directory. We must tell the preprocessor to look for include files in the original directory. In the case when the awk script comes from the command line, we already took care of this by pointing the preprocessor to $(pwd).
-rwxr-xr-xcppawk3
-rw-r--r--testcases5
-rw-r--r--testdir/program.cwk7
3 files changed, 14 insertions, 1 deletions
diff --git a/cppawk b/cppawk
index d89059b..86e4d27 100755
--- a/cppawk
+++ b/cppawk
@@ -128,7 +128,8 @@ trap 'rm -f $tmp_file' EXIT INT TERM
if [ -n "$awk_file" ] ; then
tmp_file=$(mktemp)
- $delhashbang "$awk_file" | $prepro $(syntax "$prepro_opts") - > $tmp_file
+ $delhashbang "$awk_file" | \
+ $prepro $incopt$(dirname "$awk_file") $(syntax "$prepro_opts") - > $tmp_file
[ $prepro_only ] \
&& cat $tmp_file \
|| $awk $(syntax "$awk_opts") -f $tmp_file "$@"
diff --git a/testcases b/testcases
index 71b9169..8011eca 100644
--- a/testcases
+++ b/testcases
@@ -121,3 +121,8 @@ BEGIN { }
./cppawk -v foo="'\"" 'BEGIN { print foo }'
:
'"
+--
+23:
+./cppawk -f testdir/program.cwk
+:
+73
diff --git a/testdir/program.cwk b/testdir/program.cwk
new file mode 100644
index 0000000..58ea47c
--- /dev/null
+++ b/testdir/program.cwk
@@ -0,0 +1,7 @@
+/*
+ * cppawk program
+ */
+
+#include "header.cwh"
+
+BEGIN { print max(42, 73) }