texlive[72336] Build/source/texk/web2c/euptexdir: euptex: Better
commits+takuji at tug.org
commits+takuji at tug.org
Sat Sep 21 14:12:20 CEST 2024
Revision: 72336
https://tug.org/svn/texlive?view=revision&revision=72336
Author: takuji
Date: 2024-09-21 14:12:20 +0200 (Sat, 21 Sep 2024)
Log Message:
-----------
euptex: Better support for kcatcode=20 (modifier)
Modified Paths:
--------------
trunk/Build/source/texk/web2c/euptexdir/eptex.ech
trunk/Build/source/texk/web2c/euptexdir/pdfutils.ch
Modified: trunk/Build/source/texk/web2c/euptexdir/eptex.ech
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/eptex.ech 2024-09-21 09:54:18 UTC (rev 72335)
+++ trunk/Build/source/texk/web2c/euptexdir/eptex.ech 2024-09-21 12:12:20 UTC (rev 72336)
@@ -309,6 +309,14 @@
@d if_tdir_code=if_case_code+4 { `\.{\\iftdir}' }
@z
+ at x procedure conditional
+@!m,@!n:integer; {to be tested against the second operand}
+@!p,@!q:pointer; {for traversing token lists in \.{\\ifx} tests}
+ at y
+@!m,@!n,@!s,@!v,@!nn,@!jj:integer; {to be tested against the second operand}
+@!p,@!q:pointer; {for traversing token lists in \.{\\ifx} tests}
+ at z
+
@x [30.???] |scan_font_ident|: recognize \lastnodefont
else begin print_err("Missing font identifier");
@y
@@ -736,13 +744,35 @@
@y
if check_kanji(info(p)) then {|wchar_token|}
begin
- if BYTE1(toBUFF(info(p) mod max_cjk_val))<>0 then
- begin buffer[m]:=BYTE1(toBUFF(info(p) mod max_cjk_val)); buffer2[m]:=1; incr(m); end;
- if BYTE2(toBUFF(info(p) mod max_cjk_val))<>0 then
- begin buffer[m]:=BYTE2(toBUFF(info(p) mod max_cjk_val)); buffer2[m]:=1; incr(m); end;
- if BYTE3(toBUFF(info(p) mod max_cjk_val))<>0 then
- begin buffer[m]:=BYTE3(toBUFF(info(p) mod max_cjk_val)); buffer2[m]:=1; incr(m); end;
- buffer[m]:=BYTE4(toBUFF(info(p) mod max_cjk_val)); buffer2[m]:=1; incr(m);
+ if (isinternalUPTEX) then begin
+ s:=toUCS(ktokentochr(info(p)));
+ nn:=UVSgetcodepointlength(s);
+ jj:=1;
+ while jj<=nn do begin
+ v:=UVSgetcodepointinsequence(s,jj);
+ if (v>0) then begin
+ v:=UCStoUTF8(v);
+ if BYTE1(v)<>0 then
+ begin buffer[m]:=BYTE1(v); buffer2[m]:=1; incr(m); end;
+ if BYTE2(v)<>0 then
+ begin buffer[m]:=BYTE2(v); buffer2[m]:=1; incr(m); end;
+ if BYTE3(v)<>0 then
+ begin buffer[m]:=BYTE3(v); buffer2[m]:=1; incr(m); end;
+ buffer[m]:=BYTE4(v); buffer2[m]:=1; incr(m);
+ end;
+ incr(jj);
+ end
+ end
+ else begin
+ v:=toBUFF(info(p) mod max_cjk_val);
+ if BYTE1(v)<>0 then
+ begin buffer[m]:=BYTE1(v); buffer2[m]:=1; incr(m); end;
+ if BYTE2(v)<>0 then
+ begin buffer[m]:=BYTE2(v); buffer2[m]:=1; incr(m); end;
+ if BYTE3(v)<>0 then
+ begin buffer[m]:=BYTE3(v); buffer2[m]:=1; incr(m); end;
+ buffer[m]:=BYTE4(v); buffer2[m]:=1; incr(m);
+ end;
p:=link(p);
end
else
Modified: trunk/Build/source/texk/web2c/euptexdir/pdfutils.ch
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/pdfutils.ch 2024-09-21 09:54:18 UTC (rev 72335)
+++ trunk/Build/source/texk/web2c/euptexdir/pdfutils.ch 2024-09-21 12:12:20 UTC (rev 72336)
@@ -1176,7 +1176,7 @@
and (illegal_Ucharcat_wchar_catcode(cur_val)) then
begin print_err("Invalid code ("); print_int(cur_val);
@.Invalid code@>
- print("), should be in the ranges 1..4, 6..8, 10..13, 16..19");
+ print("), should be in the ranges 1..4, 6..8, 10..13, 16..20");
help1("I'm going to use 12 instead of that illegal code value.");@/
error; cat:=12;
end else cat:=cur_val;
@@ -1184,7 +1184,7 @@
begin if illegal_Ucharcat_wchar_catcode(cur_val) then
begin print_err("Invalid code ("); print_int(cur_val);
@.Invalid code@>
- print("), should be in the ranges 16..19");
+ print("), should be in the ranges 16..20");
help1("I'm going to use 18 instead of that illegal code value.");@/
error; cat:=other_kchar;
end else cat:=cur_val;
More information about the tex-live-commits
mailing list.