Added the `return' request to end a macro immediately. It simply
commitb72ddc4db0f408b0dfab83d65776c10c334c3043
authorWerner LEMBERG <wl@gnu.org>
Fri, 9 Mar 2001 00:18:21 +0000 (9 00:18 +0000)
committerWerner LEMBERG <wl@gnu.org>
Fri, 9 Mar 2001 00:18:21 +0000 (9 00:18 +0000)
treee44a8b2f71031df57dff3adfb719758292034a3a
parent428b7414662d202c5e977fad609315972d3768ab
Added the `return' request to end a macro immediately.  It simply
pops iterators from the input stack until a macro iterator is found.

* src/roff/troff/input.cc (input_iterator::is_macro,
macro_iterator::is_macro): New member.
(input_return_boundary): New class to signal an immediate return
to while_request().
(input_stack::add_return_boundary, input_stack::is_return_boundary):
New functions.
(input_stack::clear): Use it.
(input_stack::pop_macro): New function.
(while_request): Use `is_return_boundary()'.
(return_macro_request): New function.
(init_input_requests): Use it.

* src/roff/troff/TODO: Updated.
* NEWS, src/roff/troff/troff.man, man/groff.man: Document it.

* src/roff/troff/input.cc (input_iterator::is_boundary): Minor
cleanup.
ChangeLog
NEWS
man/groff.man
src/roff/troff/TODO
src/roff/troff/input.cc
src/roff/troff/troff.man