diff options
author | Hironobu Yamashita <h.y.acetaminophen@gmail.com> | 2017-11-30 22:04:44 +0000 |
---|---|---|
committer | Hironobu Yamashita <h.y.acetaminophen@gmail.com> | 2017-11-30 22:04:44 +0000 |
commit | 84e7e267840191e1744e3be02017373f54165a9f (patch) | |
tree | 757e7b22f2eaaa94a04e63bd45f5f10f2ac2be9c | |
parent | 2568ba5fe39456a77b0d8c0004bedb4216df342e (diff) |
eptexdir, euptexdir: fix \pdfprimitive (synchronized pdftex r784)
git-svn-id: svn://tug.org/texlive/trunk@45956 c570f23f-e606-0410-a88d-b1316a301751
7 files changed, 101 insertions, 43 deletions
diff --git a/Build/source/texk/web2c/eptexdir/ChangeLog b/Build/source/texk/web2c/eptexdir/ChangeLog index c0d11070f03..b401945ab7e 100644 --- a/Build/source/texk/web2c/eptexdir/ChangeLog +++ b/Build/source/texk/web2c/eptexdir/ChangeLog @@ -1,3 +1,10 @@ +2017-11-30 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> + + * pdfutils.ch: \pdfprimitive gives no error if argument is not a + primitive, just do nothing. (Synchronized pdftex r784, tl r45936) + * tests/pdfprimitive-test.tex, tests/pdfprimitive-eptex.log: + Add more tests for \pdfprimitive. + 2017-10-06 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> * pdfutils.ch: Merge prim_eqtb into eqtb, to avoid a bug in diff --git a/Build/source/texk/web2c/eptexdir/pdfutils.ch b/Build/source/texk/web2c/eptexdir/pdfutils.ch index ead8cdb3ff9..610519dfb44 100644 --- a/Build/source/texk/web2c/eptexdir/pdfutils.ch +++ b/Build/source/texk/web2c/eptexdir/pdfutils.ch @@ -555,6 +555,23 @@ for k:=j+1 to j+l-1 do table, since we can use the character code itself as a direct address. @z +@x print_cs: \pdfprimitive +else begin l:=text(p); +@y +else begin + if (p>=prim_eqtb_base)and(p<frozen_null_font) then + l:=prim_text(p-prim_eqtb_base)-1 else l:=text(p); +@z + +@x +else print_esc(text(p)); +@y +else if (p>=prim_eqtb_base)and(p<frozen_null_font) then + print_esc(prim_text(p-prim_eqtb_base)-1) +else print_esc(text(p)); +@z + + @x \[if]pdfprimitive @p @!init procedure primitive(@!s:str_number;@!c:quarterword;@!o:halfword); var k:pool_pointer; {index into |str_pool|} @@ -666,12 +683,6 @@ if cur_cs<>undefined_primitive then begin p:=get_avail; info(p):=cs_token_flag+frozen_primitive; link(p):=loc; loc:=p; start:=p; end; - end -else begin - print_err("Missing primitive name"); - help2("The control sequence marked <to be read again> does not")@/ - ("represent any known primitive."); - back_error; end; end @@ -685,11 +696,15 @@ expansion creating new errors. @<Reset |cur_tok| for unexpandable primitives, goto restart @>= begin get_token; -cur_cs := prim_lookup(text(cur_cs)); +if cur_cs < hash_base then + cur_cs := prim_lookup(cur_cs-single_base) +else + cur_cs := prim_lookup(text(cur_cs)); if cur_cs<>undefined_primitive then begin cur_cmd := prim_eq_type(cur_cs); cur_chr := prim_equiv(cur_cs); - cur_tok := (cur_cmd*@'400)+cur_chr; + cur_cs := prim_eqtb_base+cur_cs; + cur_tok := cs_token_flag+cur_cs; end else begin cur_cmd := relax; diff --git a/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-eptex.log b/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-eptex.log index 898df1856c8..81688a1f803 100644 --- a/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-eptex.log +++ b/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-eptex.log @@ -3,23 +3,14 @@ entering extended mode %&-line parsing enabled. **pdfprimitive-eptex (./pdfprimitive-eptex.tex -RELAX macro:->\message {RELAX} FUGA -! Missing primitive name. -<to be read again> - \fuga -l.13 \pdfprimitive\fuga - % ==> ``! Missing primitive name.'' error -The control sequence marked <to be read again> does not -represent any known primitive. - -FUGA F T F F F +RELAX macro:->\message {RELAX} FUGA F T F F F > \pdfstrcmp=\pdfstrcmp. -l.22 \show\pdfstrcmp +l.28 \show\pdfstrcmp % ==> \pdfstrcmp T T ! Undefined control sequence. -l.29 \setbox0=\vbox{\pdfprimitive\ \undefined +l.35 \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 @@ -28,7 +19,7 @@ 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 +l.37 \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 @@ -37,10 +28,30 @@ 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 +Overfull \hbox (0.4pt too wide) in paragraph at lines 37--37 []| \hbox(0.0+0.0)x0.0 [] - ) +<1> +! Missing number, treated as zero. +<to be read again> + \- +l.43 \count42=\pdfprimitive\- + 2\A +A number should have been here; I inserted `0'. +(If you can't figure out why I needed to see a number, +look up `weird error' in the index to The TeXbook.) + +<0> +! Missing number, treated as zero. +<to be read again> + \vrule +l.44 \count42=\pdfprimitive\vrule + 3\A +A number should have been here; I inserted `0'. +(If you can't figure out why I needed to see a number, +look up `weird error' in the index to The TeXbook.) + +<0> ) No pages of output. diff --git a/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-test.tex b/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-test.tex index 150354bd608..2f7211d26c7 100644 --- a/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-test.tex +++ b/Build/source/texk/web2c/eptexdir/tests/pdfprimitive-test.tex @@ -1,6 +1,12 @@ %#!euptex pdfprimitive-test.tex \catcode`\{=1\catcode`\}=2 \scrollmode +\catcode`\Q=14 +\ifdefined\pdfprimitive\else\catcode`\Q=11 \fi + +Q\let\pdfprimitive\primitive\let\ifpdfprimitive\ifprimitive +\catcode`\Q=11 + \def\relax{\message{RELAX}} \def\fuga{\message{FUGA}} \let\input=\halign @@ -30,4 +36,12 @@ % ==> ``! Undefined control sequence.'' error \setbox0=\vbox{\pdfprimitive\vrule\undefined} % ==> ``! Undefined control sequence.'' error + +\setbox0=\hbox{% + \def\A{\message{<\the\count42>}\ignorespaces} + \count42=\pdfprimitive\X 1\A + \count42=\pdfprimitive\- 2\A + \count42=\pdfprimitive\vrule 3\A +} + \end diff --git a/Build/source/texk/web2c/euptexdir/ChangeLog b/Build/source/texk/web2c/euptexdir/ChangeLog index ffe54da6bc5..d4c3b66cd01 100644 --- a/Build/source/texk/web2c/euptexdir/ChangeLog +++ b/Build/source/texk/web2c/euptexdir/ChangeLog @@ -1,3 +1,8 @@ +2017-11-30 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> + + * pdfstrcmp-eup-post.ch, tests/pdfprimitive-euptex.log: Adapt + to eptex update. + 2017-10-06 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> * tests/pdfprimitive-euptex.log: Adapt to eptex update. diff --git a/Build/source/texk/web2c/euptexdir/pdfstrcmp-eup-post.ch b/Build/source/texk/web2c/euptexdir/pdfstrcmp-eup-post.ch index 16752d25b5f..c0961189104 100644 --- a/Build/source/texk/web2c/euptexdir/pdfstrcmp-eup-post.ch +++ b/Build/source/texk/web2c/euptexdir/pdfstrcmp-eup-post.ch @@ -3,11 +3,6 @@ @y cur_tok := (cur_cmd*max_char_val)+cur_chr; @z -@x - cur_tok := (cur_cmd*@'400)+cur_chr; -@y - cur_tok := (cur_cmd*max_char_val)+cur_chr; -@z @x procedure print_kanji(@!s:integer); {prints a single character} diff --git a/Build/source/texk/web2c/euptexdir/tests/pdfprimitive-euptex.log b/Build/source/texk/web2c/euptexdir/tests/pdfprimitive-euptex.log index ed737b9f805..abef8db42e7 100644 --- a/Build/source/texk/web2c/euptexdir/tests/pdfprimitive-euptex.log +++ b/Build/source/texk/web2c/euptexdir/tests/pdfprimitive-euptex.log @@ -3,23 +3,14 @@ entering extended mode %&-line parsing enabled. **pdfprimitive-euptex (./pdfprimitive-euptex.tex -RELAX macro:->\message {RELAX} FUGA -! Missing primitive name. -<to be read again> - \fuga -l.13 \pdfprimitive\fuga - % ==> ``! Missing primitive name.'' error -The control sequence marked <to be read again> does not -represent any known primitive. - -FUGA F T F F F +RELAX macro:->\message {RELAX} FUGA F T F F F > \pdfstrcmp=\pdfstrcmp. -l.22 \show\pdfstrcmp +l.28 \show\pdfstrcmp % ==> \pdfstrcmp T T ! Undefined control sequence. -l.29 \setbox0=\vbox{\pdfprimitive\ \undefined +l.35 \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 @@ -28,7 +19,7 @@ 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 +l.37 \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 @@ -37,10 +28,30 @@ 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 +Overfull \hbox (0.4pt too wide) in paragraph at lines 37--37 []| \hbox(0.0+0.0)x0.0 [] - ) +<1> +! Missing number, treated as zero. +<to be read again> + \- +l.43 \count42=\pdfprimitive\- + 2\A +A number should have been here; I inserted `0'. +(If you can't figure out why I needed to see a number, +look up `weird error' in the index to The TeXbook.) + +<0> +! Missing number, treated as zero. +<to be read again> + \vrule +l.44 \count42=\pdfprimitive\vrule + 3\A +A number should have been here; I inserted `0'. +(If you can't figure out why I needed to see a number, +look up `weird error' in the index to The TeXbook.) + +<0> ) No pages of output. |