diff options
-rwxr-xr-x | cppawk | 13 | ||||
-rw-r--r-- | testcases | 13 |
2 files changed, 21 insertions, 5 deletions
@@ -78,21 +78,24 @@ collapse() awk ' $1 == "#" { if ($2 != curline || $3 != curfile) { print - if (line != "") + if (have_line) { printf("%s\n", line); - line = "" } } + line = "" + have_line = 0 } } startline = $2 curline = startline - 1 curfile = $3; next } 1 { if (++curline > startline) - { if (line != "") + { if (have_line) { printf("%s\n", line) line = "" } } else { sub(/^[ \t]+/, "") } - line = line $0 } - END { printf("%s\n", line); }' + line = line $0 + have_line = 1 } + END { if (have_line) + printf("%s\n", line); }' } prepro_opts="$prepro_opts -I$selfdir/cppawk-include" @@ -210,3 +210,16 @@ gone ./cppawk --prepro-only -f testdir/program.cwk | grep BEGIN : BEGIN { print ((42) > (73) ? (42) : (73)) } +-- +39: +./cppawk --prepro-only 'foo + +bar + +baz' | ./cppawk '/foo/,/baz/' +: +foo + +bar + +baz |