Often it is not known, when output is diverted, whether the diverted
text is actually needed. Since all non-empty diversion are brought back
on the main output stream when the end of input is seen, a method of
discarding a diversion is needed. If all diversions should be
discarded, the easiest is to end the input to m4
with
`divert(-1)' followed by an explicit `undivert':
divert(1) Diversion one: divnum divert(2) Diversion two: divnum divert(-1) undivert ^D
No output is produced at all.
Clearing selected diversions can be done with the following macro:
define(`cleardivert', `pushdef(`_num', divnum)divert(-1)undivert($@)divert(_num)popdef(`_num')') =>
It is called just like undivert
, but the effect is to clear the
diversions, given by the arguments. (This macro has a nasty bug! You
should try to see if you can find it and correct it.)
Go to the first, previous, next, last section, table of contents.