From 6b6daaa77a940cd41136a97ec6b2025a1912db2c Mon Sep 17 00:00:00 2001 From: Akira Kakuto Date: Sun, 23 Feb 2020 02:07:16 +0000 Subject: xetex.web: fix a potential bug in \XeTeXinterchartoks (by Clerk Ma) git-svn-id: svn://tug.org/texlive/trunk@53880 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/xetexdir/ChangeLog | 5 +++++ Build/source/texk/web2c/xetexdir/xetex.web | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Build/source/texk/web2c/xetexdir/ChangeLog b/Build/source/texk/web2c/xetexdir/ChangeLog index 31ec9dd83f1..152ec64154b 100644 --- a/Build/source/texk/web2c/xetexdir/ChangeLog +++ b/Build/source/texk/web2c/xetexdir/ChangeLog @@ -1,3 +1,8 @@ +2020-02-23 Clerk Ma + + * xetex.web: Fix a potential bug in the primitive + \XeTeXinterchartoks. + 2020-02-22 Clerk Ma * xetex.web: Fix a bug in the primitive \pdfsavepos. diff --git a/Build/source/texk/web2c/xetexdir/xetex.web b/Build/source/texk/web2c/xetexdir/xetex.web index 842f88eccff..ab02d793ffb 100644 --- a/Build/source/texk/web2c/xetexdir/xetex.web +++ b/Build/source/texk/web2c/xetexdir/xetex.web @@ -24188,7 +24188,7 @@ are inside the individual sections. if prev_class = char_class_boundary then begin {boundary} if (state<>token_list) or (token_type<>backed_up_char) then begin find_sa_element(inter_char_val, char_class_boundary*char_class_limit + space_class, false); - if cur_ptr<>null then begin + if (cur_ptr<>null) and (sa_ptr(cur_ptr)<>null) then begin if cur_cmd<>letter then cur_cmd:=other_char; cur_tok:=(cur_cmd*max_char_val)+cur_chr; back_input; token_type:=backed_up_char; @@ -24198,7 +24198,7 @@ are inside the individual sections. end end else begin find_sa_element(inter_char_val, prev_class*char_class_limit + space_class, false); - if cur_ptr<>null then begin + if (cur_ptr<>null) and (sa_ptr(cur_ptr)<>null) then begin if cur_cmd<>letter then cur_cmd:=other_char; cur_tok:=(cur_cmd*max_char_val)+cur_chr; back_input; token_type:=backed_up_char; @@ -24214,7 +24214,7 @@ are inside the individual sections. if XeTeX_inter_char_tokens_en and (space_class<>char_class_ignored) and (prev_class<>char_class_boundary) then begin prev_class:=char_class_boundary; find_sa_element(inter_char_val, space_class*char_class_limit + char_class_boundary, false); {boundary} - if cur_ptr<>null then begin + if (cur_ptr<>null) and (sa_ptr(cur_ptr)<>null) then begin if cur_cs=0 then begin if cur_cmd=char_num then cur_cmd:=other_char; cur_tok:=(cur_cmd*max_char_val)+cur_chr; -- cgit v1.2.3