aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* narg: 16 argument safety red zone.Kaz Kylheku2022-03-281-8/+21
|
* Settle on single, most general __varexpand.Kaz Kylheku2022-03-282-130/+79
| | | | | The nested form based on the reduce concept is more general; one macro does it all.
* __varexpand_simple: get rid of __rep_ macros.Kaz Kylheku2022-03-281-136/+1
| | | | | | | There is no need for __varexpand_simple to carry its own set of 32 macros, because it's just a special case of __varexpand_infix, with the same helper macro duplicated as mac1 and mac2.
* Test for features not awks.Kaz Kylheku2022-03-282-1/+5
| | | | | Let's start the practice of setting up some feature macros in base.h. Then test for features elsewhere.
* Simplify definition of variadic macros.Kaz Kylheku2022-03-282-8/+16
|
* Remove stray character in macro expansion.Kaz Kylheku2022-03-281-1/+1
| | | | | This would affect 15 argument variadic macros, like case clauses with exactly 15 keys.
* Fix some include guards lacking trailing _H.Kaz Kylheku2022-03-282-3/+3
|
* README: mention new case header.Kaz Kylheku2022-03-281-2/+7
|
* README: awkloop: test return value of geline rightKaz Kylheku2022-03-281-1/+1
|
* Document <case.h> with own man page; bump date.Kaz Kylheku2022-03-283-4/+173
|
* New <case.h> header and macro.Kaz Kylheku2022-03-278-4/+553
| | | | | | This provides a portable case statement implemented directly as switch on GNU Awk, and using other approaches on other Awks that do not have switch.
* man page: redesign __gawk_ver semantics.Kaz Kylheku2022-03-261-20/+16
|
* man page: revise BUGS section.Kaz Kylheku2022-03-261-34/+15
|
* Document __gawk_ver symbol.Kaz Kylheku2022-03-261-0/+34
| | | | | In the future, some cppawk headers will react to this symbol's value, if it is defined.
* runtests: remove script.sh and output.Kaz Kylheku2022-03-261-0/+1
|
* Alignment issue in license header.Kaz Kylheku2022-03-251-1/+1
|
* Use awk for testsuite rather than cppawk.Kaz Kylheku2022-03-252-3/+3
| | | | | | There are ways in which cppawk can be fundamentally broken which will cause the test suite to appear to succeed, but without actually running any tests.
* Bump version to 20220325.20220325Kaz Kylheku2022-03-242-2/+2
|
* Pass -std=c99 to cpp to remove crap like #define linux.Kaz Kylheku2022-03-242-2/+8
|
* New --dump-macros option.Kaz Kylheku2022-03-243-0/+17
|
* Run all test cases with and without --nobash option.Kaz Kylheku2022-03-243-47/+49
|
* If Bash is available, use process substitution.Kaz Kylheku2022-03-243-3/+29
|
* README: rearrangement; revise Gawk @include discussion.Kaz Kylheku2022-03-241-17/+30
|
* __FILE__ in main program resolves to original name.Kaz Kylheku2022-03-243-5/+20
|
* don't delete hash-bang line; replace with #Kaz Kylheku2022-03-242-1/+10
| | | | This preserves the line numbers.
* bugfix: collapse: don't eat blank lines.Kaz Kylheku2022-03-242-5/+21
|
* don't create temp file when not needed.Kaz Kylheku2022-03-241-14/+17
|
* test case for --prepro-only with -f.Kaz Kylheku2022-03-241-0/+5
|
* bugfix: execing awk causes temp files to persist.Kaz Kylheku2022-03-243-1/+9
|
* Bump version; remove beta status from man page.Kaz Kylheku2022-03-242-2/+2
|
* Keep empty cppawk-include directory.Kaz Kylheku2022-03-241-0/+1
|
* README: Roadmap section.Kaz Kylheku2022-03-231-2/+17
|
* get rid of <stdver.h> header.Kaz Kylheku2022-03-234-25/+25
| | | | cppawk internally defines __cppawk_ver now.
* Tail-call awk using exec.Kaz Kylheku2022-03-231-1/+1
| | | | | Why have cppawk in memory while awk is running; it's done its job.
* clearer code around handling of awk file's directory.Kaz Kylheku2022-03-231-1/+2
|
* move mocks into testdir.Kaz Kylheku2022-03-233-2/+2
|
* hygiene: shell escape $awk and $prepro.Kaz Kylheku2022-03-234-21/+14
| | | | | | | | Since $awk and $prepro are now controlled via command line options, and are being fed to eval, we should shell escape them. Two of our test cases rely on the loose interpolation behavior; we fix those using proper external mock programs testawk and testcpp.
* hygiene: what if $awk matches name of function?Kaz Kylheku2022-03-232-0/+21
| | | | | | | | We use the "command" command to make sure we are running an external awk and preprocessor. For instance if someone were to try "cppawk --awk=quote", that would be targetting the quote function inside cppawk and not that users Awk program that happens to be called "quote".
* Add options --prepro and --awk.Kaz Kylheku2022-03-233-5/+77
|
* README: condense, improve focus.Kaz Kylheku2022-03-231-72/+29
|
* bugfix: missing space breaks --prepro-only.Kaz Kylheku2022-03-222-1/+9
| | | | | Fix issue with interpolation of $prepro_opts in the case when the awk program is in the command line.
* README: add missing :::c.Kaz Kylheku2022-03-221-0/+1
|
* README: revise bullet 3.Kaz Kylheku2022-03-221-6/+14
|
* Continue README.Kaz Kylheku2022-03-221-7/+27
|
* Add markdown README.Kaz Kylheku2022-03-221-0/+93
|
* Handle situations when cpp breaks a line into pieces.Kaz Kylheku2022-03-192-3/+38
| | | | | | | | | | | | | | | | | | | There are situations in which GNU cpp breaks a single line of input into multiple lines. These are indicated by linemarkers that repeat the current line number, for instance: # 3 "file" this # 3 "file" is # 3 "file" all line three line four line five We now remove these repeat linemarkers and collapse the indicated lines back into one line, also eliminating the leading whitespace that tries to preserve the column.
* Add INSTALL file.Kaz Kylheku2022-03-181-0/+14
|
* Add cppawk-include directory and <stdver.h> header.Kaz Kylheku2022-03-184-0/+24
|
* Add awkloop example to man page.Kaz Kylheku2022-03-181-0/+25
|
* Simplify and revise quoting.Kaz Kylheku2022-03-182-12/+23
|