diff --git a/README.md b/README.md index fc33abe0..bee3b942 100644 --- a/README.md +++ b/README.md @@ -274,6 +274,7 @@ The `@pragma` keyword enables you to modify Hawk’s behavior. You can place a p | entry | global | function name | | change the program entry point | | implicit | file | on, off | on | allow undeclared variables | | multilinestr | file | on, off | off | allow a multiline string literal without continuation | +| rwpipe | file | on, off | on | allow the two-way pipe operator `\|&` | | striprecspc | global | on, off | off | removes leading and trailing blank fields in splitting a record if FS is a regular expression mathcing all spaces | | stripstrspc | global | on, off | on | trim leading and trailing spaces when converting a string to a number | | numstrdetect | global | on, off | on | trim leading and trailing spaces when converting a string to a number | diff --git a/t/Makefile.am b/t/Makefile.am index 94538c30..ce5d1819 100644 --- a/t/Makefile.am +++ b/t/Makefile.am @@ -26,6 +26,7 @@ EXTRA_DIST = $(check_SCRIPTS) $(check_ERRORS) tap.inc err.sh \ journal-toc.hawk journal-toc.in journal-toc.out journal-toc-html.out \ bibtex-to-html.hawk bibtex-to-html.out \ fs-test.hawk fs-test.in fs-test.out \ + JSON.awk.in JSON.awk.out \ two-way-pipe.hawk two-way-pipe.out check_PROGRAMS = t-001 t-002 t-003 t-004 t-005 t-006 t-007 t-008 t-009 diff --git a/t/Makefile.in b/t/Makefile.in index 52f8f821..00acba3f 100644 --- a/t/Makefile.in +++ b/t/Makefile.in @@ -650,6 +650,7 @@ EXTRA_DIST = $(check_SCRIPTS) $(check_ERRORS) tap.inc err.sh \ journal-toc.hawk journal-toc.in journal-toc.out journal-toc-html.out \ bibtex-to-html.hawk bibtex-to-html.out \ fs-test.hawk fs-test.in fs-test.out \ + JSON.awk.in JSON.awk.out \ two-way-pipe.hawk two-way-pipe.out t_001_SOURCES = t-001.c tap.h diff --git a/t/h-003.hawk b/t/h-003.hawk index 410d2b6b..9bb2cf23 100644 --- a/t/h-003.hawk +++ b/t/h-003.hawk @@ -60,7 +60,7 @@ function run_test (x, more_opts, in_name, set_out_name, out_name) cmd=sprintf("%s %s -f %s/%s.hawk --modlibdirs=%s %s > %s", ARGV[0], more_opts, TDIR, x, hawk::modlibdirs(), inf, outf); } ##print cmd; - system (cmd); + system(cmd); same = are_files_identical(expf, outf); if (same <= 0) @@ -75,6 +75,17 @@ function run_test (x, more_opts, in_name, set_out_name, out_name) } } +function run_github_step_JSON_awk() { + @local url, tgt, tgt_hawk; + url = "https://raw.githubusercontent.com/step-/JSON.awk/refs/heads/master/JSON.awk"; + tgt = sprintf("%s.%d", "JSON.awk", sys::getpid()); + tgt_hawk = sprintf("%s/%s.hawk", TDIR, tgt); + + system(sprintf("curl -k -o %s %s", tgt_hawk, url)); + run_test(tgt, "", "JSON.awk", 0, "JSON.awk"); + sys::unlink(tgt_hawk); +} + function main() { run_test("journal-toc", "", @nil, 0, @nil); @@ -83,6 +94,7 @@ function main() run_test("fs-test", "", "fs-test", 0, "fs-test"); run_test("two-way-pipe", "", @nil, 0, "two-way-pipe"); - tap_end (); + run_github_step_JSON_awk(); + tap_end(); }