diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/syntax.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/syntax.c b/src/syntax.c index 9ead7e64346..f396b24e087 100644 --- a/src/syntax.c +++ b/src/syntax.c | |||
| @@ -1285,21 +1285,25 @@ skip_chars (forwardp, syntaxp, string, lim) | |||
| 1285 | { | 1285 | { |
| 1286 | int savepos = pos; | 1286 | int savepos = pos; |
| 1287 | DEC_POS (pos); | 1287 | DEC_POS (pos); |
| 1288 | UPDATE_SYNTAX_TABLE_BACKWARD (pos); | ||
| 1288 | if (!fastmap[(int) SYNTAX (FETCH_CHAR (pos))]) | 1289 | if (!fastmap[(int) SYNTAX (FETCH_CHAR (pos))]) |
| 1289 | { | 1290 | { |
| 1290 | pos = savepos; | 1291 | pos = savepos; |
| 1291 | break; | 1292 | break; |
| 1292 | } | 1293 | } |
| 1293 | UPDATE_SYNTAX_TABLE_BACKWARD (pos - 1); | ||
| 1294 | } | 1294 | } |
| 1295 | } | 1295 | } |
| 1296 | else | 1296 | else |
| 1297 | { | 1297 | { |
| 1298 | while (pos > XINT (lim) | 1298 | while (pos > XINT (lim)) |
| 1299 | && fastmap[(int) SYNTAX (FETCH_BYTE (pos - 1))]) | ||
| 1300 | { | 1299 | { |
| 1301 | pos--; | 1300 | pos--; |
| 1302 | UPDATE_SYNTAX_TABLE_BACKWARD (pos - 1); | 1301 | UPDATE_SYNTAX_TABLE_BACKWARD (pos); |
| 1302 | if (!fastmap[(int) SYNTAX (FETCH_BYTE (pos))]) | ||
| 1303 | { | ||
| 1304 | pos++; | ||
| 1305 | break; | ||
| 1306 | } | ||
| 1303 | } | 1307 | } |
| 1304 | } | 1308 | } |
| 1305 | } | 1309 | } |