summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/euptexdir/eptex.ech
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/euptexdir/eptex.ech')
-rw-r--r--Build/source/texk/web2c/euptexdir/eptex.ech89
1 files changed, 65 insertions, 24 deletions
diff --git a/Build/source/texk/web2c/euptexdir/eptex.ech b/Build/source/texk/web2c/euptexdir/eptex.ech
index bb4d31519f4..cf6878cb1e5 100644
--- a/Build/source/texk/web2c/euptexdir/eptex.ech
+++ b/Build/source/texk/web2c/euptexdir/eptex.ech
@@ -25,6 +25,7 @@
@y
\def\eTeX{$\varepsilon$-\TeX}
\def\epTeX{$\varepsilon$-\pTeX}
+\def\eupTeX{$\varepsilon$-\upTeX}
@z
@x [1.2] l.190 - epTeX:
@@ -36,23 +37,23 @@
@d epTeX_version_number==230214
@z
-@x e-pTeX: banner
- {printed when \pTeX\ starts}
+@x e-upTeX: banner
+ {printed when \upTeX\ starts}
@y
- {printed when \pTeX\ starts}
+ {printed when \upTeX\ starts}
@#
-@d epTeX_version==pTeX_version_string,epTeX_version_string,eTeX_version_string
-@d epTeX_banner=='This is e-pTeX, Version 3.141592653',epTeX_version
-@d epTeX_banner_k==epTeX_banner
- {printed when \epTeX\ starts}
+@d eupTeX_version==pTeX_version_string,upTeX_version_string,epTeX_version_string,eTeX_version_string
+@d eupTeX_banner=='This is e-upTeX, Version 3.141592653',eupTeX_version
+@d eupTeX_banner_k==eupTeX_banner
+ {printed when \eupTeX\ starts}
@z
@x [1.2]
-@d banner==pTeX_banner
-@d banner_k==pTeX_banner_k
+@d banner==upTeX_banner
+@d banner_k==upTeX_banner_k
@y
-@d banner==epTeX_banner
-@d banner_k==epTeX_banner_k
+@d banner==eupTeX_banner
+@d banner_k==eupTeX_banner_k
@z
@x [10.135] l.2895 - e-pTeX: box_lr and box_dir
@@ -86,6 +87,12 @@ In \epTeX\ the |subtype| field is |qi(16*box_lr+box_dir)|.
@d read_papersize_special==int_par(read_papersize_special_code)
@z
+@x
+@d protected_token=@'7001 {$2^8\cdot|end_match|+1$}
+@y
+@d protected_token=@"E01 {$2^8\cdot|end_match|+1$}
+@z
+
@x [26.???] prepare for |scan_font_ident| to recognize \lastnodefont
@p procedure@?scan_int; forward; {scans an integer value}
@y
@@ -105,7 +112,7 @@ var m:halfword; {|chr_code| part of the operand token}
end;
@y
@<Fix the reference count, if any, and negate |cur_val| if |negative|@>;
-end;
+exit:end;
@ @p procedure scan_something_internal_ident;
begin scan_something_internal(ident_val,false); end;
@@ -123,16 +130,18 @@ end;
@z
@x
-@d ptex_minor_version_code=ptex_version_code+1 {code for \.{\\ptexminorversion}}
+@d uptex_version_code=ptex_version_code+1 {code for \.{\\uptexversion}}
+@d ptex_minor_version_code=uptex_version_code+1 {code for \.{\\ptexminorversion}}
@y
-@d eptex_version_code=ptex_version_code+1 {code for \.{\\epTeXversion}}
+@d uptex_version_code=ptex_version_code+1 {code for \.{\\uptexversion}}
+@d eptex_version_code=uptex_version_code+1 {code for \.{\\epTeXversion}}
@d ptex_minor_version_code=eptex_version_code+1 {code for \.{\\ptexminorversion}}
@z
@x e-pTeX: \current(x)spacingmode
@d eTeX_dim=eTeX_int+8 {first of \eTeX\ codes for dimensions}
@y
-@d eTeX_dim=eTeX_int+10 {first of \eTeX\ codes for dimensions}
+@d eTeX_dim=eTeX_int+11 {first of \eTeX\ codes for dimensions}
@z
@x
@@ -146,8 +155,10 @@ primitive("ptexminorversion",last_item,ptex_minor_version_code);
@z
@x
+ uptex_version_code: print_esc("uptexversion");
ptex_minor_version_code: print_esc("ptexminorversion");
@y
+ uptex_version_code: print_esc("uptexversion");
eptex_version_code: print_esc("epTeXversion");
ptex_minor_version_code: print_esc("ptexminorversion");
@z
@@ -188,7 +199,7 @@ if not is_char_node(tx) then
@d find_effective_tail==find_effective_tail_epTeX
@#
@d find_last_char==
-if font_dir[font(tx)]<>dir_default then cur_val:=KANJI(info(link(tx)))
+if font_dir[font(tx)]<>dir_default then cur_val:=KANJI(info(link(tx))) mod max_cjk_val
else cur_val:=qo(character(tx))
@d ignore_font_kerning==
@@ -705,22 +716,37 @@ if j=1 then
@ @<Handle \.{\\readline} and |goto done|@>=
if j=1 then
begin while loc<=limit do {current line not yet finished}
- begin cur_chr:=buffer[loc]; incr(loc);
- if multistrlen(ustringcast(buffer), limit+1, loc-1)=2 then
- begin cur_tok:=fromBUFF(ustringcast(buffer), limit+1, loc-1); incr(loc);
+ begin cur_chr:=fromBUFF(ustringcast(buffer), limit+1, loc);
+ cur_tok:=kcat_code(kcatcodekey(cur_chr));
+ if (multistrlen(ustringcast(buffer), limit+1,loc)>1)and
+ check_kcat_code(cur_tok) then
+ begin if (cur_tok=not_cjk) then cur_tok:=other_kchar;
+ cur_tok:=cur_chr+cur_tok*max_cjk_val;
+ loc:=loc+multistrlen(ustringcast(buffer), limit+1,loc);
end
- else if cur_chr=" " then cur_tok:=space_token
- @+else cur_tok:=cur_chr+other_token;
+ else begin cur_chr:=buffer[loc]; incr(loc);
+ if cur_chr=" " then cur_tok:=space_token
+ else cur_tok:=cur_chr+other_token;
+ end;
@z
@x e-pTeX: ifcsname l.28620
buffer[m]:=info(p) mod @'400; incr(m); p:=link(p);
@y
if check_kanji(info(p)) then {|wchar_token|}
- begin buffer[m]:=Hi(info(p)); buffer2[m]:=1; incr(m); buffer2[m]:=1;
+ 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);
+ p:=link(p);
end
- else buffer2[m]:=0;
- buffer[m]:=Lo(info(p)); incr(m); p:=link(p);
+ else
+ begin buffer[m]:=info(p) mod max_char_val; buffer2[m]:=0; incr(m); p:=link(p);
+ end;
@z
@x e-pTeX: if_font_char_code l.28633
@@ -800,5 +826,20 @@ current_xspacing_mode_code: print_esc("currentxspacingmode");
current_spacing_mode_code: cur_val:=auto_spacing;
current_xspacing_mode_code: cur_val:=auto_xspacing;
+@ The \.{\\currentcjktoken} command returns the current \upTeX's
+status of \.{\\(disable|enable|force)cjktoken}.
+
+@d current_cjk_token_code=eTeX_int+10 {code for \.{\\currentcjktoken}}
+
+@<Generate all \eTeX...@>=
+primitive("currentcjktoken",last_item,current_cjk_token_code);
+@!@:current_cjk_token_}{\.{\\currentcjktoken} primitive@>
+
+@ @<Cases of |last_item| for |print_cmd_chr|@>=
+current_cjk_token_code: print_esc("currentcjktoken");
+
+@ @<Cases for fetching an integer value@>=
+current_cjk_token_code: cur_val:=enable_cjk_token;
+
@* \[54] System-dependent changes.
@z