diff options
author | wl <wl> | 2013-01-07 06:11:55 +0000 |
---|---|---|
committer | wl <wl> | 2013-01-07 06:11:55 +0000 |
commit | 252bac7d299094e44f1d0aedffb67034d601ad04 (patch) | |
tree | 1e08467c2fe08b4c27f8b95106bc6136b6dab88e | |
parent | d76a4f413276ed26cc5950d638e2f1cf2e2bb6ec (diff) | |
download | groff-252bac7d299094e44f1d0aedffb67034d601ad04.tar.gz |
[eqn] Handle border cases of `delim on' and `delim off'.
* src/preproc/eqn/lex.cpp (do_delim): Handle multiple sequences of
`delim on' gracefully (ditto for `delim off').
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | src/preproc/eqn/lex.cpp | 12 |
2 files changed, 15 insertions, 4 deletions
@@ -1,3 +1,10 @@ +2013-01-07 Werner LEMBERG <wl@gnu.org> + + [eqn] Handle border cases of `delim on' and `delim off'. + + * src/preproc/eqn/lex.cpp (do_delim): Handle multiple sequences of + `delim on' gracefully (ditto for `delim off'). + 2013-01-06 Werner LEMBERG <wl@gnu.org> [eqn] Add `delim on'. diff --git a/src/preproc/eqn/lex.cpp b/src/preproc/eqn/lex.cpp index 899ecaeb..ed8930f5 100644 --- a/src/preproc/eqn/lex.cpp +++ b/src/preproc/eqn/lex.cpp @@ -1071,13 +1071,17 @@ void do_delim() else { if (c == 'o' && d == 'f' && peek_char() == 'f') { (void)get_char(); - start_delim_saved = start_delim; - end_delim_saved = end_delim; + if (start_delim) + start_delim_saved = start_delim; + if (end_delim) + end_delim_saved = end_delim; start_delim = end_delim = '\0'; } else if (c == 'o' && d == 'n' && !compatible_flag) { - start_delim = start_delim_saved; - end_delim = end_delim_saved; + if (start_delim_saved) + start_delim = start_delim_saved; + if (end_delim_saved) + end_delim = end_delim_saved; } else { start_delim = c; |