Initial commit of an evil piece of C preprocessor abuse I dreamed up
last week, which lets you build custom loop constructs using macros
that expand to preposterously long and convoluted chains of ifs and
whiles and fors and labels.


git-svn-id: svn://svn.tartarus.org/sgt@9428 cda61777-01e9-0310-a592-d414129be87e
Sort out the ignore properties. (Accidentally checked in the
.gitignore I'd been using in my temporary repo!)


git-svn-id: svn://svn.tartarus.org/sgt@9429 cda61777-01e9-0310-a592-d414129be87e
Add a couple more macros, with which I can greatly simplify the
implementation of WHILE_INTERLEAVED.


git-svn-id: svn://svn.tartarus.org/sgt@9430 cda61777-01e9-0310-a592-d414129be87e
Rewrite the makefile to test more thoroughly: it now tests in C99, C++
and C89 modes every time.


git-svn-id: svn://svn.tartarus.org/sgt@9431 cda61777-01e9-0310-a592-d414129be87e
Move a variable declaration to stop C++ compilers from complaining
about the jumped-over initialisation.


git-svn-id: svn://svn.tartarus.org/sgt@9432 cda61777-01e9-0310-a592-d414129be87e
Write a new macro 'for_general', and add a test of it.


git-svn-id: svn://svn.tartarus.org/sgt@9433 cda61777-01e9-0310-a592-d414129be87e
Substantially reorganise the writeup to move all the else-clause stuff
into a separate section. The previous organisation was bothering me
because of the heavy emphasis on else-using constructions in the intro
section and the de-emphasis on same in the mechanism section; now the
else stuff all stands alone as a refinement, and I think it flows
better.


git-svn-id: svn://svn.tartarus.org/sgt@9434 cda61777-01e9-0310-a592-d414129be87e
A minor copy-edit, after I spotted a rather confused glitch in
mid-sentence ('repeatedly calls it function').


git-svn-id: svn://svn.tartarus.org/sgt@9473 cda61777-01e9-0310-a592-d414129be87e
Couple of tiny wording tweaks, and add missing italicisation of a
comment in a code example.


git-svn-id: svn://svn.tartarus.org/sgt@9577 cda61777-01e9-0310-a592-d414129be87e