Mercurial > emacs
changeset 16880:40ea37a6dc40
(skip_chars): Optimize by not calling SET_PT in the loop.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 19 Jan 1997 01:28:07 +0000 |
parents | b020aae1fa01 |
children | 245ba9f2781a |
files | src/search.c |
diffstat | 1 files changed, 13 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/src/search.c Sun Jan 19 00:48:00 1997 +0000 +++ b/src/search.c Sun Jan 19 01:28:07 1997 +0000 @@ -730,7 +730,7 @@ { c = *p++; if (syntaxp) - fastmap[c] = 1; + fastmap[syntax_spec_code[c]] = 1; else { if (c == '\\') @@ -754,9 +754,6 @@ } } - if (syntaxp && fastmap['-'] != 0) - fastmap[' '] = 1; - /* If ^ was the first character, complement the fastmap. */ if (negate) @@ -765,37 +762,38 @@ { int start_point = PT; + int pos = PT; immediate_quit = 1; if (syntaxp) { - if (forwardp) { - while (PT < XINT (lim) - && fastmap[(unsigned char) syntax_code_spec[(int) SYNTAX (FETCH_CHAR (PT))]]) - SET_PT (PT + 1); + while (pos < XINT (lim) + && fastmap[(int) SYNTAX (FETCH_CHAR (pos))]) + pos++; } else { - while (PT > XINT (lim) - && fastmap[(unsigned char) syntax_code_spec[(int) SYNTAX (FETCH_CHAR (PT - 1))]]) - SET_PT (PT - 1); + while (pos > XINT (lim) + && fastmap[(int) SYNTAX (FETCH_CHAR (pos - 1))]) + pos--; } } else { if (forwardp) { - while (PT < XINT (lim) && fastmap[FETCH_CHAR (PT)]) - SET_PT (PT + 1); + while (pos < XINT (lim) && fastmap[FETCH_CHAR (pos)]) + pos++; } else { - while (PT > XINT (lim) && fastmap[FETCH_CHAR (PT - 1)]) - SET_PT (PT - 1); + while (pos > XINT (lim) && fastmap[FETCH_CHAR (pos - 1)]) + pos--; } } + SET_PT (pos); immediate_quit = 0; return make_number (PT - start_point);