texlive[59699] Build/source/texk/web2c: ptex: no re-eval of kcatcode

commits+hironobu at tug.org commits+hironobu at tug.org
Fri Jun 25 11:14:15 CEST 2021


Revision: 59699
          http://tug.org/svn/texlive?view=revision&revision=59699
Author:   hironobu
Date:     2021-06-25 11:14:15 +0200 (Fri, 25 Jun 2021)
Log Message:
-----------
ptex: no re-eval of kcatcode for \ifcat

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/ptexdir/ChangeLog
    trunk/Build/source/texk/web2c/ptexdir/ptex-base.ch
    trunk/Build/source/texk/web2c/uptexdir/ChangeLog
    trunk/Build/source/texk/web2c/uptexdir/tests/test_if.tex
    trunk/Build/source/texk/web2c/uptexdir/uptex-m.ch

Modified: trunk/Build/source/texk/web2c/ptexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ChangeLog	2021-06-25 09:02:22 UTC (rev 59698)
+++ trunk/Build/source/texk/web2c/ptexdir/ChangeLog	2021-06-25 09:14:15 UTC (rev 59699)
@@ -6,6 +6,9 @@
 	* ptex-base.ch (line_break): consider when link(temp_head)=tail
 	and it is a disp_node.
 	https://github.com/texjporg/tex-jp-build/issues/123
+	* ptex-base.ch: Partially revert the commit on 2019-05-06;
+	no re-eval kcatcode of Japanese character token in \if and \ifcat.
+	This is because the behavior was inconsistent against \ifx.
 
 2021-03-23  Karl Berry  <karl at tug.org>
 

Modified: trunk/Build/source/texk/web2c/ptexdir/ptex-base.ch
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ptex-base.ch	2021-06-25 09:02:22 UTC (rev 59698)
+++ trunk/Build/source/texk/web2c/ptexdir/ptex-base.ch	2021-06-25 09:14:15 UTC (rev 59699)
@@ -2542,7 +2542,7 @@
   end
 @z
 
- at x [28.502] l.10138 - pTeX: ifx : Test character : KANJI character
+ at x [28.502] l.10138 - pTeX: if[cat] : Test character : KANJI character
 if (cur_cmd>active_char)or(cur_chr>255) then {not a character}
   begin m:=relax; n:=256;
   end
@@ -2554,7 +2554,7 @@
   end;
 @y
 if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then
-  begin n:=cur_chr; m:=kcat_code(kcatcodekey(n));
+  begin m:=cur_cmd; n:=cur_chr;
   end
 else if (cur_cmd>active_char)or(cur_chr>255) then
   begin m:=relax; n:=max_cjk_val;
@@ -2563,8 +2563,8 @@
   end;
 get_x_token_or_active_char;
 if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then
-  begin cur_cmd:=kcat_code(kcatcodekey(cur_chr));
-  end
+  begin cur_cmd:=cur_cmd;
+  end {dummy}
 else if (cur_cmd>active_char)or(cur_chr>255) then
   begin cur_cmd:=relax; cur_chr:=max_cjk_val;
   end;

Modified: trunk/Build/source/texk/web2c/uptexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/ChangeLog	2021-06-25 09:02:22 UTC (rev 59698)
+++ trunk/Build/source/texk/web2c/uptexdir/ChangeLog	2021-06-25 09:14:15 UTC (rev 59699)
@@ -1,3 +1,8 @@
+2021-06-25  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* uptex—m.ch: Adapt to ptex-base.ch for no re-eval.
+	* tests/test_if.tex: Update.
+
 2021-03-23  Karl Berry  <karl at tug.org>
 
 	* TL'21.

Modified: trunk/Build/source/texk/web2c/uptexdir/tests/test_if.tex
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/tests/test_if.tex	2021-06-25 09:02:22 UTC (rev 59698)
+++ trunk/Build/source/texk/web2c/uptexdir/tests/test_if.tex	2021-06-25 09:14:15 UTC (rev 59699)
@@ -1,29 +1,56 @@
+%#!ptex
 \kcatcode`あ=18
 \def\xA{あ}\let\yA=あ
 \kcatcode`あ=17
 \def\xB{あ}\let\yB=あ
 \kcatcode`あ=16
+\def\xC{あ}\let\yC=あ
 
-\message{\ifcat あ\xA Y\else N\fi}
-\message{\ifcat あ\yA Y\else N\fi}
-\message{\ifcat あ\xB Y\else N\fi}
-\message{\ifcat あ\yB Y\else N\fi}
+%% for pTeX
+%  * x: macro -> re-eval kcatcode
+%  * y: let   -> copy kcatcode
+%% for upTeX
+%  * x: macro -> reserved kcatcode
+%  * y: let   -> copy kcatcode
 
-\message{\if    あ\xA Y\else N\fi}
-\message{\if    あ\yA Y\else N\fi}
-\message{\if    い\xA Y\else N\fi}
-\message{\if    い\yA Y\else N\fi}
+\message{ifcat}
+\message{\ifcat あ\xA Y\else N\fi}% pY, uN
+\message{\ifcat あ\yA Y\else N\fi}% pN, uN
+\message{\ifcat あ\xB Y\else N\fi}% pY, uN
+\message{\ifcat あ\yB Y\else N\fi}% pN, uN
+\message{\ifcat あ\xC Y\else N\fi}% pY, uY
+\message{\ifcat あ\yC Y\else N\fi}% pY, uY
 
+\message{if}
+\message{\if    あ\xA Y\else N\fi}% pY, uY
+\message{\if    あ\yA Y\else N\fi}% pY, uY
+\message{\if    あ\xB Y\else N\fi}% pY, uY
+\message{\if    あ\yB Y\else N\fi}% pY, uY
+\message{\if    あ\xC Y\else N\fi}% pY, uY
+\message{\if    あ\yC Y\else N\fi}% pY, uY
+\message{\if    い\xA Y\else N\fi}% pN, uN
+\message{\if    い\yA Y\else N\fi}% pN, uN
+
+\message{ifx}
+\message{\ifx   あ\xA Y\else N\fi}% pN, uN
+\message{\ifx   あ\yA Y\else N\fi}% pN, uN
+\message{\ifx   あ\xB Y\else N\fi}% pN, uN
+\message{\ifx   あ\yB Y\else N\fi}% pN, uN
+\message{\ifx   あ\xC Y\else N\fi}% pN, uN
+\message{\ifx   あ\yC Y\else N\fi}% pY, uY
+\message{\ifx  \xA\xB Y\else N\fi}% pY, uN
+\message{\ifx  \xA\xC Y\else N\fi}% pY, uN
+\message{\ifx  \yA\yB Y\else N\fi}% pN, uN
+\message{\ifx  \yA\yC Y\else N\fi}% pN, uN
+
 \ifx\ucs\undefined\else
   \kcatcode"100=16
   \message{upTeX}
   \def\xA{Ā}% U+0100
   \def\xB{ā}% U+0101
-  \message{\if   \xA\relax Y\else N\fi}
-  \message{\if   \xB\relax Y\else N\fi}
-  \message{\ifcat\xA\relax Y\else N\fi}
-  \message{\ifcat\xB\relax Y\else N\fi}
+  \message{\if   \xA\relax Y\else N\fi}% uN
+  \message{\if   \xB\relax Y\else N\fi}% uN
+  \message{\ifcat\xA\relax Y\else N\fi}% uN
+  \message{\ifcat\xB\relax Y\else N\fi}% uN
 \fi
 \end
-
-

Modified: trunk/Build/source/texk/web2c/uptexdir/uptex-m.ch
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/uptex-m.ch	2021-06-25 09:02:22 UTC (rev 59698)
+++ trunk/Build/source/texk/web2c/uptexdir/uptex-m.ch	2021-06-25 09:14:15 UTC (rev 59699)
@@ -704,24 +704,16 @@
 
 @x
 if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then
-  begin n:=cur_chr; m:=kcat_code(kcatcodekey(n));
-  end
 @y
 if (cur_cmd>=kanji)and(cur_cmd<=hangul) then
-  begin m:=cur_cmd; n:=cur_chr;
-  end
 @z
 
 @x
 get_x_token_or_active_char;
 if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then
-  begin cur_cmd:=kcat_code(kcatcodekey(cur_chr));
-  end
 @y
 get_x_token_or_active_char;
 if (cur_cmd>=kanji)and(cur_cmd<=hangul) then
-  begin cur_cmd:=cur_cmd;
-  end {dummy}
 @z
 
 @x



More information about the tex-live-commits mailing list.