summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/ptexdir/ptex-base.ch
diff options
context:
space:
mode:
authorHironobu Yamashita <h.y.acetaminophen@gmail.com>2017-09-18 13:21:43 +0000
committerHironobu Yamashita <h.y.acetaminophen@gmail.com>2017-09-18 13:21:43 +0000
commitde01a65eb905c4bd5f128b5a5ab21ca8303ac0ae (patch)
tree5ff886927408a7078a7138ca0aaad876f506781b /Build/source/texk/web2c/ptexdir/ptex-base.ch
parent64c1ebb1c2d42898bd16b3cbdea28314a1a41013 (diff)
ptex-base.ch: frees table entry, if the default value is assigned globally (H. Kitagawa)
git-svn-id: svn://tug.org/texlive/trunk@45331 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/ptexdir/ptex-base.ch')
-rw-r--r--Build/source/texk/web2c/ptexdir/ptex-base.ch33
1 files changed, 19 insertions, 14 deletions
diff --git a/Build/source/texk/web2c/ptexdir/ptex-base.ch b/Build/source/texk/web2c/ptexdir/ptex-base.ch
index 3a2afb8b0fa..57ef1bc3d6a 100644
--- a/Build/source/texk/web2c/ptexdir/ptex-base.ch
+++ b/Build/source/texk/web2c/ptexdir/ptex-base.ch
@@ -6292,11 +6292,13 @@ assign_inhibit_xsp_code:
begin p:=cur_chr; scan_int; n:=cur_val; scan_optional_equals; scan_int;
if is_char_kanji(n) then
begin j:=get_inhibit_pos(tokanji(n),new_pos);
- if j=no_entry then
+ if (j<>no_entry)and(cur_val>inhibit_after)and(global or cur_level=level_one) then
+ begin n:=0; cur_val:=0 end
+ { remove the entry from inhibit table }
+ else if j=no_entry then
begin print_err("Inhibit table is full!!");
help1("I'm skipping this control sequences.");@/
- error; return;
- end;
+ error; return; end;
define(inhibit_xsp_code_base+j,cur_val,n);
end
else
@@ -6366,17 +6368,20 @@ assign_kinsoku:
begin p:=cur_chr; scan_int; n:=cur_val; scan_optional_equals; scan_int;
if is_char_ascii(n) or is_char_kanji(n) then
begin j:=get_kinsoku_pos(tokanji(n),new_pos);
- if j=no_entry then
- begin print_err("KINSOKU table is full!!");
- help1("I'm skipping this control sequences.");@/
- error; return;
- end;
- if (p=pre_break_penalty_code)or(p=post_break_penalty_code) then
- begin define(kinsoku_base+j,p,tokanji(n));
- word_define(kinsoku_penalty_base+j,cur_val);
- end
- else confusion("kinsoku");
+ if (j<>no_entry)and(cur_val=0)and(global or cur_level=level_one) then
+ define(kinsoku_base+j,0,0) { remove the entry from KINSOKU table }
+ else begin
+ if j=no_entry then begin
+ print_err("KINSOKU table is full!!");
+ help1("I'm skipping this control sequences.");@/
+ error; return; end;
+ if (p=pre_break_penalty_code)or(p=post_break_penalty_code) then
+ begin define(kinsoku_base+j,p,tokanji(n));
+ word_define(kinsoku_penalty_base+j,cur_val);
+ end
+ else confusion("kinsoku");
@:this can't happen kinsoku}{\quad kinsoku@>
+ end
end
else
begin print_err("Invalid KANJI code for ");
@@ -6725,7 +6730,7 @@ else
@ @<Insert a space after the |last_char|@>=
if type(last_char)=math_node then
- begin ax:=qo("0");
+ begin ax:=qo("0");
if auto_xsp_code(ax)>=2 then
insert_skip:=after_schar else insert_skip:=no_skip;
end