From 3be48e12ea69c4443d7296ad6e00bb77bf9d6f04 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Sun, 20 Apr 2008 03:01:04 +0000 Subject: Safety for non-ASCII characters when calling ctype functions. --- src/LexCSS.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/LexCSS.cxx') diff --git a/src/LexCSS.cxx b/src/LexCSS.cxx index f5c112d6f..73f419cf5 100644 --- a/src/LexCSS.cxx +++ b/src/LexCSS.cxx @@ -31,8 +31,8 @@ static inline bool IsAWordChar(const unsigned int ch) { return (isalnum(ch) || ch == '-' || ch == '_' || ch >= 161); // _ is not in fact correct CSS word-character } -inline bool IsCssOperator(const char ch) { - if (!isalnum(ch) && +inline bool IsCssOperator(const int ch) { + if (!((ch < 0x80) && isalnum(ch)) && (ch == '{' || ch == '}' || ch == ':' || ch == ',' || ch == ';' || ch == '.' || ch == '#' || ch == '!' || ch == '@' || /* CSS2 */ @@ -232,7 +232,7 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo sc.Forward(); } else if (sc.state == SCE_CSS_VALUE && (sc.ch == '\"' || sc.ch == '\'')) { sc.SetState((sc.ch == '\"' ? SCE_CSS_DOUBLESTRING : SCE_CSS_SINGLESTRING)); - } else if (IsCssOperator(static_cast(sc.ch)) + } else if (IsCssOperator(sc.ch) && (sc.state != SCE_CSS_ATTRIBUTE || sc.ch == ']') && (sc.state != SCE_CSS_VALUE || sc.ch == ';' || sc.ch == '}' || sc.ch == '!') && (sc.state != SCE_CSS_DIRECTIVE || sc.ch == ';' || sc.ch == '{') -- cgit v1.2.3