# HG changeset patch # User Kenichi Handa # Date 1029754827 0 # Node ID 0b75ae2e80b1461963a0c2ce17e6aef309909a2d # Parent 1260416c7819d4f538bb87b0126f5b29c3567acc (scan_words): Don't treat characters belonging to different scripts constituting a work. diff -r 1260416c7819 -r 0b75ae2e80b1 src/syntax.c --- a/src/syntax.c Mon Aug 19 10:59:04 2002 +0000 +++ b/src/syntax.c Mon Aug 19 11:00:27 2002 +0000 @@ -1216,19 +1216,25 @@ from_byte = CHAR_TO_BYTE (from); } else - while (1) - { - if (from == end) break; - UPDATE_SYNTAX_TABLE_FORWARD (from); - ch1 = FETCH_CHAR (from_byte); - code = SYNTAX (ch1); - if (code != Sword - && (! words_include_escapes - || (code != Sescape && code != Scharquote))) + { + Lisp_Object script; + + script = CHAR_TABLE_REF (Vchar_script_table, ch0); + while (1) + { + if (from == end) break; + UPDATE_SYNTAX_TABLE_FORWARD (from); + ch1 = FETCH_CHAR (from_byte); + code = SYNTAX (ch1); + if ((code != Sword + && (! words_include_escapes + || (code != Sescape && code != Scharquote))) + || ! EQ (CHAR_TABLE_REF (Vchar_script_table, ch1), script)) break; - INC_BOTH (from, from_byte); - ch0 = ch1; - } + INC_BOTH (from, from_byte); + ch0 = ch1; + } + } count--; } @@ -1265,23 +1271,29 @@ from_byte = CHAR_TO_BYTE (from); } else - while (1) - { - int temp_byte; + { + Lisp_Object script; + + script = CHAR_TABLE_REF (Vchar_script_table, ch1); + while (1) + { + int temp_byte; - if (from == beg) - break; - temp_byte = dec_bytepos (from_byte); - UPDATE_SYNTAX_TABLE_BACKWARD (from); - ch0 = FETCH_CHAR (temp_byte); - code = SYNTAX (ch0); - if (code != Sword - && (! words_include_escapes - || (code != Sescape && code != Scharquote))) - break; - DEC_BOTH (from, from_byte); - ch1 = ch0; - } + if (from == beg) + break; + temp_byte = dec_bytepos (from_byte); + UPDATE_SYNTAX_TABLE_BACKWARD (from); + ch0 = FETCH_CHAR (temp_byte); + code = SYNTAX (ch0); + if ((code != Sword + && (! words_include_escapes + || (code != Sescape && code != Scharquote))) + || ! EQ (CHAR_TABLE_REF (Vchar_script_table, ch0), script)) + break; + DEC_BOTH (from, from_byte); + ch1 = ch0; + } + } count++; }