Follow-up Comment #1, bug #66187 (group groff): Experimentation reveals that I can go *this* far with disabling the mandatory state changes in these functions in "node.cpp" without triggering any regressions.
diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp index 0a7b8bffe..4082a3eef 100644 --- a/src/roff/troff/node.cpp +++ b/src/roff/troff/node.cpp @@ -902,7 +902,6 @@ void troff_output_file::start_device_extension(tfont *tf, color *gcol, void troff_output_file::start_device_extension() { flush_tbuf(); - do_motion(); put("x X "); } And then... diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp index 4082a3eef..e61a075bc 100644 --- a/src/roff/troff/node.cpp +++ b/src/roff/troff/node.cpp @@ -825,8 +825,7 @@ public: void right(hunits); void down(vunits); void moveto(hunits, vunits); - void start_device_extension(tfont * /* tf */, - color * /* gcol */, color * /* fcol */, + void start_device_extension(color * /* fcol */, bool /* omit_command_prefix */ = false); void start_device_extension(); void write_device_extension_char(unsigned char c); @@ -886,15 +885,18 @@ inline void troff_output_file::put(unsigned int i) put_string(ui_to_a(i), fp); } -void troff_output_file::start_device_extension(tfont *tf, color *gcol, - color *fcol, +void troff_output_file::start_device_extension(color *fcol, bool omit_command_prefix) { + flush_tbuf(); +#if 0 set_font(tf); stroke_color(gcol); +#endif fill_color(fcol); - flush_tbuf(); +#if 0 do_motion(); +#endif if (!omit_command_prefix) put("x X "); } @@ -3957,7 +3959,7 @@ node *device_extension_node::copy() void device_extension_node::tprint_start(troff_output_file *out) { - out->start_device_extension(tf, gcol, fcol, lacks_command_prefix); + out->start_device_extension(fcol, lacks_command_prefix); } void device_extension_node::tprint_char(troff_output_file *out, Reading carefully, we see that only `fill_color()` is left active. If I disable that, too, the page background in "msboxes.pdf" turns black as Deri and I discussed in bug #64484. So, minimally, we just need `fl` to accept an argument that causes the fill color command to be reƫmitted. And then, I think, change the `pdfbackground` macro to use such an argumentful `fl` request. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?66187> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/
signature.asc
Description: PGP signature