Mercurial > hg > xemacs-beta
diff src/syntax.c @ 424:11054d720c21 r21-2-20
Import from CVS: tag r21-2-20
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:26:11 +0200 |
parents | 41dbb7a9d5f2 |
children |
line wrap: on
line diff
--- a/src/syntax.c Mon Aug 13 11:25:03 2007 +0200 +++ b/src/syntax.c Mon Aug 13 11:26:11 2007 +0200 @@ -327,6 +327,7 @@ } + #ifdef MULE /* Return 1 if there is a word boundary between two word-constituent characters C1 and C2 if they appear in this order, else return 0. @@ -337,16 +338,6 @@ && word_boundary_p (c1, c2)) extern int word_boundary_p (Emchar c1, Emchar c2); -#else -static int -word_constituent_p (struct buffer *buf, Bufpos pos, - struct Lisp_Char_Table *tab) -{ - enum syntaxcode code = SYNTAX_UNSAFE (tab, BUF_FETCH_CHAR (buf, pos)); - return ((words_include_escapes && - (code == Sescape || code == Scharquote)) - || (code == Sword)); -} #endif /* Return the position across COUNT words from FROM. @@ -358,11 +349,10 @@ { Bufpos limit = count > 0 ? BUF_ZV (buf) : BUF_BEGV (buf); struct Lisp_Char_Table *mirrortab = XCHAR_TABLE (buf->mirror_syntax_table); -#ifdef MULE Emchar ch0, ch1; enum syntaxcode code; -#endif + /* #### is it really worth it to hand expand both cases? JV */ while (count > 0) { QUIT; @@ -371,40 +361,36 @@ { if (from == limit) return 0; -#ifdef MULE + ch0 = BUF_FETCH_CHAR (buf, from); code = SYNTAX_UNSAFE (mirrortab, ch0); -#else - if (word_constituent_p (buf, from, mirrortab)) - break; -#endif - from++; -#ifdef MULE + if (words_include_escapes && (code == Sescape || code == Scharquote)) break; if (code == Sword) break; -#endif + + from++; } QUIT; - while ((from != limit) -#ifndef MULE - && word_constituent_p (buf, from, mirrortab) -#endif - ) + while (from != limit) { -#ifdef MULE ch1 = BUF_FETCH_CHAR (buf, from); code = SYNTAX_UNSAFE (mirrortab, ch1); if (!(words_include_escapes && (code == Sescape || code == Scharquote))) - if (code != Sword || WORD_BOUNDARY_P (ch0, ch1)) + if (code != Sword +#ifdef MULE + || WORD_BOUNDARY_P (ch0, ch1) +#endif + ) break; +#ifdef MULE ch0 = ch1; -#endif +#endif from++; } count--; @@ -418,12 +404,7 @@ { if (from == limit) return 0; -#ifndef MULE - if (word_constituent_p (buf, from - 1, mirrortab)) - break; -#endif - from--; -#ifdef MULE + ch1 = BUF_FETCH_CHAR (buf, from - 1); code = SYNTAX_UNSAFE (mirrortab, ch1); if (words_include_escapes @@ -431,24 +412,25 @@ break; if (code == Sword) break; -#endif + + from--; } QUIT; - while ((from != limit) -#ifndef MULE - && word_constituent_p (buf, from - 1, mirrortab) -#endif - ) + while (from != limit) { -#ifdef MULE ch0 = BUF_FETCH_CHAR (buf, from - 1); code = SYNTAX_UNSAFE (mirrortab, ch0); if (!(words_include_escapes && (code == Sescape || code == Scharquote))) - if (code != Sword || WORD_BOUNDARY_P (ch0, ch1)) + if (code != Sword +#ifdef MULE + || WORD_BOUNDARY_P (ch0, ch1) +#endif + ) break; +#ifdef MULE ch1 = ch0; #endif from--;