summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/eptexdir/pdfutils.ch
diff options
context:
space:
mode:
authorHironobu Yamashita <h.y.acetaminophen@gmail.com>2017-11-30 22:04:44 +0000
committerHironobu Yamashita <h.y.acetaminophen@gmail.com>2017-11-30 22:04:44 +0000
commit84e7e267840191e1744e3be02017373f54165a9f (patch)
tree757e7b22f2eaaa94a04e63bd45f5f10f2ac2be9c /Build/source/texk/web2c/eptexdir/pdfutils.ch
parent2568ba5fe39456a77b0d8c0004bedb4216df342e (diff)
eptexdir, euptexdir: fix \pdfprimitive (synchronized pdftex r784)
git-svn-id: svn://tug.org/texlive/trunk@45956 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/eptexdir/pdfutils.ch')
-rw-r--r--Build/source/texk/web2c/eptexdir/pdfutils.ch31
1 files changed, 23 insertions, 8 deletions
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;