summaryrefslogtreecommitdiffstats
path: root/contrib/groff/src/roff/troff/env.cc
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/groff/src/roff/troff/env.cc')
-rw-r--r--contrib/groff/src/roff/troff/env.cc21
1 files changed, 16 insertions, 5 deletions
diff --git a/contrib/groff/src/roff/troff/env.cc b/contrib/groff/src/roff/troff/env.cc
index 56f357c..c0743441 100644
--- a/contrib/groff/src/roff/troff/env.cc
+++ b/contrib/groff/src/roff/troff/env.cc
@@ -1117,7 +1117,7 @@ void point_size()
void space_size()
{
int n;
- if (get_integer(&n) && !compatible_flag) {
+ if (get_integer(&n)) {
curenv->space_size = n;
if (has_arg() && get_integer(&n))
curenv->sentence_space_size = n;
@@ -2135,7 +2135,7 @@ void environment::add_html_tag_tabs()
}
}
-void environment::do_break()
+void environment::do_break(int spread)
{
if (curdiv == topdiv && topdiv->before_first_page) {
topdiv->begin_page();
@@ -2146,7 +2146,7 @@ void environment::do_break()
if (line) {
line = new space_node(H0, line); // this is so that hyphenation works
space_total++;
- possibly_break_line();
+ possibly_break_line(0, spread);
}
while (line != 0 && line->discardable()) {
width_total -= line->width();
@@ -2185,17 +2185,27 @@ int environment::is_empty()
return !current_tab && line == 0 && pending_lines == 0;
}
-void break_request()
+void do_break_request(int spread)
{
while (!tok.newline() && !tok.eof())
tok.next();
if (break_flag) {
- curenv->do_break();
+ curenv->do_break(spread);
curenv->add_html_tag(".br");
}
tok.next();
}
+void break_request()
+{
+ do_break_request(0);
+}
+
+void break_spread_request()
+{
+ do_break_request(1);
+}
+
void title()
{
if (curdiv == topdiv && topdiv->before_first_page) {
@@ -3014,6 +3024,7 @@ void init_env_requests()
init_request("cc", control_char);
init_request("c2", no_break_control_char);
init_request("br", break_request);
+ init_request("brp", break_spread_request);
init_request("tl", title);
init_request("ta", set_tabs);
init_request("linetabs", line_tabs_request);
OpenPOWER on IntegriCloud