- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 28 Mar 2008 15:39:14 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/parser/analyzer In directory hutz:/tmp/cvs-serv25166 Modified Files: CssParser.jj Log Message: .\35 5ft now giver .\0000355ft instead of the invalid .55ft Index: CssParser.jj =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/analyzer/CssParser.jj,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- CssParser.jj 28 Mar 2008 15:11:55 -0000 1.40 +++ CssParser.jj 28 Mar 2008 15:39:12 -0000 1.41 @@ -1375,7 +1375,7 @@ /* "." n=<IDENT> { */ n=<CLASS> { try { - s.addClass(new ClassSelector(convertIdent(n.image.substring(1)))); + s.addClass(new ClassSelector(convertClassIdent(n.image.substring(1)))); // s.addAttribute("class", convertIdent(n.image.substring(1)), // CssSelectors.ATTRIBUTE_CLASS_SEL); } catch (InvalidParamException e) { @@ -1499,7 +1499,7 @@ ( val=<IDENT> { val.image = convertIdent(val.image); } | ( val=<STRING> - { val.image = convertStringIndex(val.image, 1, val.image.length() -1);} + { val.image = convertStringIndex(val.image, 1, val.image.length() -1, false);} ) ( <S> )* ) )? <RBRACKET> @@ -1595,7 +1595,7 @@ | ( ( n=<FUNCTIONLANG> ( <S> )* (language=<NUMBER> | language=<IDENT> | language=<STRING> ) ) { try { s.setPseudoFun(convertStringIndex(n.image, 0, - n.image.length() -1).toLowerCase(), + n.image.length() -1, false).toLowerCase(), convertIdent(language.image)); } catch(InvalidParamException e) { removeThisRule(); @@ -1605,7 +1605,7 @@ | ( n=<FUNCTION> ( <S> )* param=simple_selector(null) ) { try { s.setPseudoFun(convertStringIndex(n.image, 0, - n.image.length() -1).toLowerCase(), + n.image.length() -1, false).toLowerCase(), param.toString()); } catch(InvalidParamException e) { removeThisRule(); @@ -2060,9 +2060,8 @@ addError(e, s.toString()); } - JAVACODE -String convertStringIndex(String s, int start, int len) { +String convertStringIndex(String s, int start, int len, boolean escapeFirst) { StringBuilder buf = new StringBuilder(len); int index = start; int t; @@ -2107,12 +2106,14 @@ break; } } - if (numValue < 255 && numValue>31) { + if (!escapeFirst && numValue < 255 && numValue>31) { if (! ( (numValue>96 && numValue<123) // [a-z] || (numValue>64 && numValue<91) // [A-Z] || (numValue>47 && numValue<58) // [0-9] || (numValue == 95) // _ - || (numValue == 45) )) { // - + || (numValue == 45) // - + ) + ) { buf.append('\\'); } buf.append((char) numValue); @@ -2158,6 +2159,7 @@ } else { buf.append(c); } + escapeFirst = false; index++; } return buf.toString(); @@ -2165,12 +2167,17 @@ JAVACODE String convertIdent(String s) { - return convertStringIndex(s, 0, s.length()); + return convertStringIndex(s, 0, s.length(), false); +} + +JAVACODE +String convertClassIdent(String s) { + return convertStringIndex(s, 0, s.length(), true); } JAVACODE String convertString(String s) { - return convertStringIndex(s, 0, s.length()); + return convertStringIndex(s, 0, s.length(), false); } /*
Received on Friday, 28 March 2008 15:39:51 UTC