[pdftex] group object is lost if there is an xform object

Karl Berry karl at freefriends.org
Wed Apr 13 02:49:54 CEST 2022


    -@<Write out pending forms@>;
    -@<Write out pending images@>
    +@<Write out pending images@>;
    +@<Write out pending forms@>

Thanks Marcel. I installed that change in TL r63017.
I imagine Akira will propagate it to the Windows binaries shortly.
--best, karl.


Index: ChangeLog
===================================================================
--- ChangeLog	(revision 63010)
+++ ChangeLog	(working copy)
@@ -1,3 +1,10 @@
+2022-04-12  Marcel Kr\"uger  <tex at 2krueger.de>
+
+	* pdftex.web (Write out resource list): Write forms last,
+	to avoid recursive xforms clobbering |pdfpagegroupval|.
+	https://tug.org/pipermail/pdftex/2022-April/009276.html
+	https://tug.org/pipermail/pdftex/2022-April/009280.html
+
 2022-03-21  Karl Berry  <karl at tug.org>
 
 	* TL'22 release.
Index: pdftex.web
===================================================================
--- pdftex.web	(revision 63010)
+++ pdftex.web	(working copy)
@@ -1,4 +1,4 @@
-% Copyright 1996-2021 Han Th\^e\llap{\raise 0.5ex\hbox{\'{}}} Th\`anh,
+% Copyright 1996-2022 Han Th\^e\llap{\raise 0.5ex\hbox{\'{}}} Th\`anh,
 % <thanh@@pdftex.org>
 
 % This file is part of pdfTeX.
@@ -19166,10 +19166,14 @@ pdf_end_text;
 pdfshipoutend(shipping_page);
 pdf_end_stream
 
-@ @<Write out resource lists@>=
+@ We need to write forms last, since the recursive call to |ship_out|
+would reset global state such as |pdfpagegroupval|, which is needed
+while writing images.
+
+@<Write out resource lists@>=
 @<Write out pending raw objects@>;
-@<Write out pending forms@>;
-@<Write out pending images@>
+@<Write out pending images@>;
+@<Write out pending forms@>
 
 @ @<Write out resources dictionary@>=
 pdf_begin_dict(pdf_last_resources, 1);


More information about the pdftex mailing list.