From 5caa45d38ac6886add587da5ad8695a1f1de3651 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 19 Jan 1997 01:28:07 +0000 Subject: [PATCH] (skip_chars): Optimize by not calling SET_PT in the loop. --- src/search.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) 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); -- 2.39.2