/* String search routines for XEmacs.
Copyright (C) 1985, 1986, 1987, 1992-1995 Free Software Foundation, Inc.
Copyright (C) 1995 Sun Microsystems, Inc.
+ Copyright (C) 1999,2000,2001 MORIOKA Tomohiko
This file is part of XEmacs.
unsigned char fastmap[0400];
int negate = 0;
REGISTER int i;
+#ifdef UTF2000
+ Lisp_Char_Table *syntax_table = XCHAR_TABLE (buf->syntax_table);
+#else
Lisp_Char_Table *syntax_table = XCHAR_TABLE (buf->mirror_syntax_table);
+#endif
Bufpos limit;
if (NILP (lim))
/* Keep track of which character set row
contains the characters that need translation. */
#ifdef UTF2000
- Lisp_Object ccs;
- int charset_base_code;
-
- ENCODE_CHAR (c, ccs);
- charset_base_code = XCHARSET_ID (ccs);
+ int charset_base_code = c >> 6;
#else
int charset_base_code = c & ~CHAR_FIELD3_MASK;
#endif
/* Is *PTR the last byte of a character? */
if (pat_end - ptr == 1 || BUFBYTE_FIRST_BYTE_P (ptr[1]))
{
-#ifdef UTF2000
- Lisp_Object ccs;
-#endif
Bufbyte *charstart = ptr;
while (!BUFBYTE_FIRST_BYTE_P (*charstart))
charstart--;
untranslated = charptr_emchar (charstart);
#ifdef UTF2000
- ENCODE_CHAR (untranslated, ccs);
- if (charset_base == XCHARSET_ID (ccs))
+ if (charset_base == (untranslated >> 6))
#else
if (charset_base == (untranslated & ~CHAR_FIELD3_MASK))
#endif
Charcount i, len;
EMACS_INT punct_count = 0, word_count = 0;
struct buffer *buf = decode_buffer (buffer, 0);
+#ifdef UTF2000
+ Lisp_Char_Table *syntax_table = XCHAR_TABLE (buf->syntax_table);
+#else
Lisp_Char_Table *syntax_table = XCHAR_TABLE (buf->mirror_syntax_table);
+#endif
CHECK_STRING (string);
len = XSTRING_CHAR_LENGTH (string);
buf = XBUFFER (buffer);
}
+#ifdef UTF2000
+ syntax_table = XCHAR_TABLE (buf->syntax_table);
+#else
syntax_table = XCHAR_TABLE (buf->mirror_syntax_table);
+#endif
case_action = nochange; /* We tried an initialization */
/* but some C compilers blew it */