Previous: Divnum, Up: Diversions [Contents][Index]
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:
Discard the contents of each of the listed numeric diversions.
define(`cleardivert', `pushdef(`_n', divnum)divert(`-1')undivert($@)divert(_n)popdef(`_n')') ⇒
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; or see Answers).