# HG changeset patch # User Andreas Schwab # Date 1073405413 0 # Node ID c7553b3b3a6052d9e5b5af6551557d7a107e49bd # Parent edbcb3c5d4e38c8b57d54f7e021c48ce99baf30c (skip_chars): Treat '-' at end of string as ordinary character. diff -r edbcb3c5d4e3 -r c7553b3b3a60 src/syntax.c --- a/src/syntax.c Mon Jan 05 22:50:58 2004 +0000 +++ b/src/syntax.c Tue Jan 06 16:10:13 2004 +0000 @@ -1,5 +1,5 @@ /* GNU Emacs routines to deal with syntax tables; also word and list parsing. - Copyright (C) 1985, 87, 93, 94, 95, 97, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1985, 87, 93, 94, 95, 97, 1998, 1999, 2004 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -1442,10 +1442,13 @@ if (i_byte == size_byte) break; - c = STRING_CHAR_AND_LENGTH (str+i_byte, size_byte-i_byte, len); + c = STRING_CHAR_AND_LENGTH (str + i_byte, + size_byte - i_byte, len); i_byte += len; } - if (i_byte < size_byte + /* Treat `-' as range character only if another character + follows. */ + if (i_byte + 1 < size_byte && str[i_byte] == '-') { unsigned int c2; @@ -1453,11 +1456,9 @@ /* Skip over the dash. */ i_byte++; - if (i_byte == size_byte) - break; - /* Get the end of the range. */ - c2 =STRING_CHAR_AND_LENGTH (str+i_byte, size_byte-i_byte, len); + c2 = STRING_CHAR_AND_LENGTH (str + i_byte, + size_byte - i_byte, len); i_byte += len; if (SINGLE_BYTE_CHAR_P (c))