summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/enctexdir
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-02-13 16:30:22 +0000
committerKarl Berry <karl@freefriends.org>2023-02-13 16:30:22 +0000
commitf76d5cbdd3fdc27b30b766d71320ee55de5ec6ce (patch)
treee9adc749f7439faff650af494c01d1e4b59642e4 /Build/source/texk/web2c/enctexdir
parent2131616250d722feba376b19704b1c97b532480f (diff)
move "\special shipout" change to enctex-pdftex.ch, so it is not applied to tex
git-svn-id: svn://tug.org/texlive/trunk@65813 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/enctexdir')
-rw-r--r--Build/source/texk/web2c/enctexdir/enctex-pdftex.ch27
1 files changed, 24 insertions, 3 deletions
diff --git a/Build/source/texk/web2c/enctexdir/enctex-pdftex.ch b/Build/source/texk/web2c/enctexdir/enctex-pdftex.ch
index 8cb1a7a6d5b..00b5ddb72ae 100644
--- a/Build/source/texk/web2c/enctexdir/enctex-pdftex.ch
+++ b/Build/source/texk/web2c/enctexdir/enctex-pdftex.ch
@@ -1,8 +1,8 @@
% $Id$
% enctex1.ch is applied first.
-% Then this change is applied for pdfTeX et al.,
-% assuming that tracingstacklevels.ch, partoken.ch, and showstream.ch has been included,
-% as specified in the *.am files.
+% Then this change is applied for pdfTeX et al. (but not TeX),
+% assuming that tracingstacklevels.ch, partoken.ch, and showstream.ch
+% have been included, as specified in the *.am files.
% encTeX: \mubytein \mubyteout \mubytelog and \specialout
@x [17.236] l.4954
@@ -14,3 +14,24 @@
@d spec_out_code=web2c_int_base+9 {if positive then print specials by mubytes}
@d web2c_int_pars=web2c_int_base+10 {total number of web2c's integer parameters}
@z
+
+% see pdftex.web for more about this.
+@x [53.1353] - encTeX: late \special stores specialout and mubyteout values
+begin new_whatsit(latespecial_node,write_node_size); write_stream(tail):=null;
+p:=scan_toks(false,false); write_tokens(tail):=def_ref;
+@y
+begin new_whatsit(latespecial_node,write_node_size);
+if spec_out + mubyte_zero < 0 then write_stream(tail) := 0
+else if spec_out + mubyte_zero >= 2*mubyte_zero then
+ write_stream(tail) := 2*mubyte_zero - 1
+ else write_stream(tail) := spec_out + mubyte_zero;
+if mubyte_out + mubyte_zero < 0 then write_mubyte(tail) := 0
+else if mubyte_out + mubyte_zero >= 2*mubyte_zero then
+ write_mubyte(tail) := 2*mubyte_zero - 1
+ else write_mubyte(tail) := mubyte_out + mubyte_zero;
+if (spec_out = 2) or (spec_out = 3) then
+ if (mubyte_out > 2) or (mubyte_out = -1) or (mubyte_out = -2) then
+ write_noexpanding := true;
+p:=scan_toks(false,false); write_tokens(tail):=def_ref;
+write_noexpanding := false;
+@z