texlive[45482] Build/source/texk/web2c: eptexdir, euptexdir: more fix

commits+hironobu at tug.org commits+hironobu at tug.org
Fri Oct 6 15:02:37 CEST 2017


Revision: 45482
          http://tug.org/svn/texlive?view=revision&revision=45482
Author:   hironobu
Date:     2017-10-06 15:02:37 +0200 (Fri, 06 Oct 2017)
Log Message:
-----------
eptexdir, euptexdir: more fix for \pdfprimitive (H. Kitagawa)

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/eptexdir/ChangeLog
    trunk/Build/source/texk/web2c/eptexdir/pdfutils.ch
    trunk/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-eptex.log
    trunk/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-test.tex
    trunk/Build/source/texk/web2c/euptexdir/ChangeLog
    trunk/Build/source/texk/web2c/euptexdir/tests/pdfprimitive-euptex.log

Modified: trunk/Build/source/texk/web2c/eptexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/eptexdir/ChangeLog	2017-10-06 00:19:17 UTC (rev 45481)
+++ trunk/Build/source/texk/web2c/eptexdir/ChangeLog	2017-10-06 13:02:37 UTC (rev 45482)
@@ -1,3 +1,10 @@
+2017-10-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* pdfutils.ch: Merge prim_eqtb into eqtb, to avoid a bug in
+	the use of \pdfprimitive inside vertical mode.
+	* tests/pdfprimitive-test.tex, tests/pdfprimitive-eptex.log:
+	Add more tests for \pdfprimitive.
+
 2017-09-24  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
 
 	* pdfutils.ch: Avoid overwriting prim_* entries by primitive().

Modified: trunk/Build/source/texk/web2c/eptexdir/pdfutils.ch
===================================================================
--- trunk/Build/source/texk/web2c/eptexdir/pdfutils.ch	2017-10-06 00:19:17 UTC (rev 45481)
+++ trunk/Build/source/texk/web2c/eptexdir/pdfutils.ch	2017-10-06 13:02:37 UTC (rev 45482)
@@ -410,7 +410,9 @@
   {permanent `\.{\\special}'}
 @d frozen_primitive=frozen_control_sequence+11
   {permanent `\.{\\pdfprimitive}'}
- at d frozen_null_font=frozen_control_sequence+12
+ at d prim_eqtb_base=frozen_primitive+1
+ at d prim_size=2100 {maximum number of primitives }
+ at d frozen_null_font=prim_eqtb_base+prim_size+1
   {permanent `\.{\\nullfont}'}
 @z
 
@@ -445,7 +447,6 @@
 
 @ Primitive support needs a few extra variables and definitions
 
- at d prim_size=2100 {maximum number of primitives }
 @d prim_prime=1777 {about 85\pct! of |primitive_size|}
 @d prim_base=1
 @d prim_next(#) == prim[#].lh {link for coalesced lists}
@@ -454,9 +455,9 @@
 @d prim_eq_level_field(#)==#.hh.b1
 @d prim_eq_type_field(#)==#.hh.b0
 @d prim_equiv_field(#)==#.hh.rh
- at d prim_eq_level(#)==prim_eq_level_field(prim_eqtb[#]) {level of definition}
- at d prim_eq_type(#)==prim_eq_type_field(prim_eqtb[#]) {command code for equivalent}
- at d prim_equiv(#)==prim_equiv_field(prim_eqtb[#]) {equivalent value}
+ at d prim_eq_level(#)==prim_eq_level_field(eqtb[prim_eqtb_base+#]) {level of definition}
+ at d prim_eq_type(#)==prim_eq_type_field(eqtb[prim_eqtb_base+#]) {command code for equivalent}
+ at d prim_equiv(#)==prim_equiv_field(eqtb[prim_eqtb_base+#]) {equivalent value}
 @d undefined_primitive=0
 @d biggest_char=255 { 65535 in XeTeX }
 
@@ -463,7 +464,6 @@
 @<Glob...@>=
 @!prim: array [0..prim_size] of two_halves;  {the primitives table}
 @!prim_used:pointer; {allocation pointer for |prim|}
-@!prim_eqtb:array[0..prim_size] of memory_word;
 @z
 
 @x \[if]pdfprimitive
@@ -474,10 +474,6 @@
 no_new_control_sequence:=true; {new identifiers are usually forbidden}
 prim_next(0):=0; prim_text(0):=0;
 for k:=1 to prim_size do prim[k]:=prim[0];
-prim_eq_level(0) := level_zero;
-prim_eq_type(0) := undefined_cs;
-prim_equiv(0) := null;
-for k:=1 to prim_size do prim_eqtb[k]:=prim_eqtb[0];
 @z
 
 @x \[if]pdfprimitive
@@ -1039,6 +1035,7 @@
     if cur_cs<>undefined_primitive then begin
       cur_cmd := prim_eq_type(cur_cs);
       cur_chr := prim_equiv(cur_cs);
+      cur_tok := cs_token_flag+prim_eqtb_base+cur_cs;
       goto reswitch;
       end;
     end;
@@ -1050,7 +1047,6 @@
 @y
 @<Dump the hash table@>=
 for p:=0 to prim_size do dump_hh(prim[p]);
-for p:=0 to prim_size do dump_wd(prim_eqtb[p]);
 @z
 
 @x \[if]pdfprimitive: undump prim table
@@ -1058,7 +1054,6 @@
 @y
 @ @<Undump the hash table@>=
 for p:=0 to prim_size do undump_hh(prim[p]);
-for p:=0 to prim_size do undump_wd(prim_eqtb[p]);
 @z
 
 @x

Modified: trunk/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-eptex.log
===================================================================
--- trunk/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-eptex.log	2017-10-06 00:19:17 UTC (rev 45481)
+++ trunk/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-eptex.log	2017-10-06 13:02:37 UTC (rev 45482)
@@ -17,5 +17,30 @@
 l.22 \show\pdfstrcmp
                      % ==> \pdfstrcmp
 
+T T
+! Undefined control sequence.
+l.29 \setbox0=\vbox{\pdfprimitive\ \undefined
+                                             }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+
+! Undefined control sequence.
+l.31 \setbox0=\vbox{\pdfprimitive\vrule\undefined
+                                                 }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+
+
+Overfull \hbox (0.4pt too wide) in paragraph at lines 31--31
+[]|
+
+\hbox(0.0+0.0)x0.0 []
+
  )
 No pages of output.

Modified: trunk/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-test.tex
===================================================================
--- trunk/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-test.tex	2017-10-06 00:19:17 UTC (rev 45481)
+++ trunk/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-test.tex	2017-10-06 13:02:37 UTC (rev 45482)
@@ -20,4 +20,14 @@
 \ifpdfprimitive\fuga\message{T}\else\message{F}\fi  % ==> F (macro)
 
 \show\pdfstrcmp % ==> \pdfstrcmp
+
+% fix for overwriting entries (170924)
+\ifpdfprimitive\ \message{T}\else\message{F}\fi     % ==> T
+\ifpdfprimitive\vrule\message{T}\else\message{F}\fi % ==> T
+
+% fix for back_input in vertical mode (170924)
+\setbox0=\vbox{\pdfprimitive\ \undefined}
+% ==> ``! Undefined control sequence.'' error
+\setbox0=\vbox{\pdfprimitive\vrule\undefined}
+% ==> ``! Undefined control sequence.'' error
 \end

Modified: trunk/Build/source/texk/web2c/euptexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/ChangeLog	2017-10-06 00:19:17 UTC (rev 45481)
+++ trunk/Build/source/texk/web2c/euptexdir/ChangeLog	2017-10-06 13:02:37 UTC (rev 45482)
@@ -1,3 +1,7 @@
+2017-10-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* tests/pdfprimitive-euptex.log: Adapt to eptex update.
+
 2017-09-09  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
 
 	* euptex.defines: Add a new function setstdinenc().

Modified: trunk/Build/source/texk/web2c/euptexdir/tests/pdfprimitive-euptex.log
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/tests/pdfprimitive-euptex.log	2017-10-06 00:19:17 UTC (rev 45481)
+++ trunk/Build/source/texk/web2c/euptexdir/tests/pdfprimitive-euptex.log	2017-10-06 13:02:37 UTC (rev 45482)
@@ -17,5 +17,30 @@
 l.22 \show\pdfstrcmp
                      % ==> \pdfstrcmp
 
+T T
+! Undefined control sequence.
+l.29 \setbox0=\vbox{\pdfprimitive\ \undefined
+                                             }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+
+! Undefined control sequence.
+l.31 \setbox0=\vbox{\pdfprimitive\vrule\undefined
+                                                 }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+
+
+Overfull \hbox (0.4pt too wide) in paragraph at lines 31--31
+[]|
+
+\hbox(0.0+0.0)x0.0 []
+
  )
 No pages of output.



More information about the tex-live-commits mailing list