From: Richard M. Stallman Date: Sun, 19 Jan 1997 01:28:07 +0000 (+0000) Subject: (skip_chars): Optimize by not calling SET_PT in the loop. X-Git-Tag: emacs-20.1~3064 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5caa45d38ac6886add587da5ad8695a1f1de3651;p=emacs.git (skip_chars): Optimize by not calling SET_PT in the loop. --- diff --git a/src/search.c b/src/search.c index 45119e60617..1b2a6f299cb 100644 --- a/src/search.c +++ b/src/search.c @@ -730,7 +730,7 @@ skip_chars (forwardp, syntaxp, string, lim) { c = *p++; if (syntaxp) - fastmap[c] = 1; + fastmap[syntax_spec_code[c]] = 1; else { if (c == '\\') @@ -754,9 +754,6 @@ skip_chars (forwardp, syntaxp, string, lim) } } - if (syntaxp && fastmap['-'] != 0) - fastmap[' '] = 1; - /* If ^ was the first character, complement the fastmap. */ if (negate) @@ -765,37 +762,38 @@ skip_chars (forwardp, syntaxp, string, lim) { 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);