diff options
author | G. Branden Robinson <g.branden.robinson@gmail.com> | 2020-10-21 00:29:24 +1100 |
---|---|---|
committer | G. Branden Robinson <g.branden.robinson@gmail.com> | 2020-10-21 00:43:31 +1100 |
commit | bcdf2f4c7c28328c711c6a7ac2ea17f2ecd5cdd4 (patch) | |
tree | 477382c6a16a8ec21603ba25fbf9c5703b33140b /ChangeLog | |
parent | 7964eb52debd3f09ce9125ca063c742448854fa8 (diff) | |
download | groff-git-bcdf2f4c7c28328c711c6a7ac2ea17f2ecd5cdd4.tar.gz |
src/roff/troff/env.cpp: Avoid infinite loop.
* src/roff/troff/env.cpp (environment::possibly_break_line): Emit break
warning and return if the output width is not positive. The code
assumes that it will be and loops infinitely if it isn't. I _think_
this is because we're not able to get width data for (some?) CJK
glyphs. Based on a patch by Osamu Sayama.
Fixes <https://savannah.gnu.org/bugs/index.php?44018>.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -1,5 +1,20 @@ 2020-10-20 G. Branden Robinson <g.branden.robinson@gmail.com> + * src/roff/troff/env.cpp (environment::possibly_break_line): + Emit break warning and return if the output width is not + positive. The code assumes that it will be and loops infinitely + if it isn't. I _think_ this is because we're not able to get + width data for (some?) CJK glyphs. Based on a patch by Osamu + Sayama. + + * src/roff/groff/tests/\ + do_not_loop_infinitely_when_breaking_cjk.sh: Test it. + * src/roff/groff/groff.am: Run test. + + Fixes <https://savannah.gnu.org/bugs/index.php?44018>. + +2020-10-20 G. Branden Robinson <g.branden.robinson@gmail.com> + * src/preproc/tbl/table.cpp (table::init_output): Save the value of \n[.tabs] when starting a table. In the reset macro, restore the saved value. |