diff --git a/web2c/ptexdir/kanji.h b/web2c/ptexdir/kanji.h index 9c8f43b..2a339ce 100644 --- a/web2c/ptexdir/kanji.h +++ b/web2c/ptexdir/kanji.h @@ -15,6 +15,10 @@ #define KANJI #endif +#include +#define not_kanji_char_seq(a,b) (!(is_cp932_system && isknj(a) && isknj2(b))) +#define notkanjicharseq not_kanji_char_seq + #if !defined(WIN32) extern int sjisterminal; #endif diff --git a/web2c/ptexdir/ptex-base.ch b/web2c/ptexdir/ptex-base.ch index 5bac489..fabc997 100644 --- a/web2c/ptexdir/ptex-base.ch +++ b/web2c/ptexdir/ptex-base.ch @@ -114,6 +114,7 @@ var k,@!l:KANJI_code; {small indices or counters} pseudoprinting} @!trick_buf2:array[0..ssup_error_line] of 0..2; {pTeX: buffer for KANJI} @!kcode_pos: 0..2; {pTeX: denotes whether first byte or second byte of KANJI} +@!prev_char: ASCII_code; @z @x [5.55] l.1519 - pTeX: Initialize the kcode_pos @@ -2406,6 +2407,37 @@ else if (cur_cmd>active_char)or(cur_chr>255) then end; @z +@x pTeX for Windows, treat filename with 0x5c +@p procedure begin_name; +begin area_delimiter:=0; ext_delimiter:=0; quoted_filename:=false; +end; +@y +@p procedure begin_name; +begin area_delimiter:=0; ext_delimiter:=0; quoted_filename:=false; prev_char:=0; +end; +@z + +@x pTeX for Windows, treat filename with 0x5c +else begin str_room(1); append_char(c); {contribute |c| to the current string} + if IS_DIR_SEP(c) then + begin area_delimiter:=cur_length; ext_delimiter:=0; + end + else if c="." then ext_delimiter:=cur_length; + more_name:=true; + end; +end; +@y +else begin str_room(1); append_char(c); {contribute |c| to the current string} + if (IS_DIR_SEP(c)and(not_kanji_char_seq(prev_char,c))) then + begin area_delimiter:=cur_length; ext_delimiter:=0; + end + else if c="." then ext_delimiter:=cur_length; + more_name:=true; + end; + prev_char:=c; +end; +@z + @x [29.526] l.10668 - pTeX: scan file name loop@+begin if (cur_cmd>other_char)or(cur_chr>255) then {not a character} begin back_input; goto done; diff --git a/web2c/ptexdir/ptex.defines b/web2c/ptexdir/ptex.defines index b8729a1..5cffc9c 100644 --- a/web2c/ptexdir/ptex.defines +++ b/web2c/ptexdir/ptex.defines @@ -20,6 +20,7 @@ @define function fromSJIS (); @define function fromKUTEN (); +@define function notkanjicharseq (); @define function checkkanji (); @define function ischarascii (); @define function ischarkanji ();