- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 28 Mar 2008 15:39:30 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/parser/analyzer
In directory hutz:/tmp/cvs-serv25370
Modified Files:
CssParser.java
Log Message:
see CssParser.jj
Index: CssParser.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/analyzer/CssParser.java,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -d -r1.42 -r1.43
--- CssParser.java 28 Mar 2008 15:12:07 -0000 1.42
+++ CssParser.java 28 Mar 2008 15:39:28 -0000 1.43
@@ -2012,7 +2012,7 @@
/* "." n=<IDENT> { */
n = jj_consume_token(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) {
@@ -2237,7 +2237,7 @@
break;
case STRING:
val = jj_consume_token(STRING);
- val.image = convertStringIndex(val.image, 1, val.image.length() -1);
+ val.image = convertStringIndex(val.image, 1, val.image.length() -1, false);
label_63:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -2384,7 +2384,7 @@
}
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();
@@ -2408,7 +2408,7 @@
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();
@@ -3078,7 +3078,7 @@
addError(e, s.toString());
}
- String convertStringIndex(String s, int start, int len) throws ParseException {
+ String convertStringIndex(String s, int start, int len, boolean escapeFirst) throws ParseException {
StringBuilder buf = new StringBuilder(len);
int index = start;
int t;
@@ -3123,12 +3123,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);
@@ -3174,17 +3176,22 @@
} else {
buf.append(c);
}
+ escapeFirst = false;
index++;
}
return buf.toString();
}
String convertIdent(String s) throws ParseException {
- return convertStringIndex(s, 0, s.length());
+ return convertStringIndex(s, 0, s.length(), false);
+ }
+
+ String convertClassIdent(String s) throws ParseException {
+ return convertStringIndex(s, 0, s.length(), true);
}
String convertString(String s) throws ParseException {
- return convertStringIndex(s, 0, s.length());
+ return convertStringIndex(s, 0, s.length(), false);
}
public CssParserTokenManager token_source;
Received on Friday, 28 March 2008 15:40:05 UTC