- From: Bert Bos <bert@w3.org>
- Date: Fri, 25 Jul 2008 19:43:42 +0200
- To: Undisclosed.Recipients: ;
- Cc: "www-style@w3.org" <www-style@w3.org>
On Tuesday 22 July 2008 21:49, Arron Eicholz wrote:
> There seems to be a conflict in the tokenization and prose about
> escapes.
>
> http://www.w3.org/TR/CSS21/syndata.html#characters
>
> # In CSS 2.1, a backslash (\) character indicates three types
> # of character escapes.
> # ...
> # Second, it cancels the meaning of special CSS characters.
> # Any character (except a hexadecimal digit) can be escaped
> # with a backslash to remove its special meaning.
>
> This means
> P { /*\*/*/ color: orange; }
> Would display as orange.
>
> http://www.w3.org/TR/CSS21/syndata.html#tokenization
>
> # COMMENT \/\*[^*]*\*+([^/*][^*]*\*+)*\/
>
> Notice the COMMENT token does not include {escape}. Parsing
> According to this tokenization would mean that
> P { /*\*/*/ color: orange; }
> would not display as orange.
>
> Test case:
> http://lists.w3.org/Archives/Public/www-archive/2008Jul/att-0060/esca
>ped-comment.htm
>
> Firefox, Opera, Safari follow the tokenization rules.
> IE7 follows the prose rules.
>
> Proposal:
> In 4.1.3 prepend
> "Except within CSS comments"
> to the sentence
> # Any character (except a hexadecimal digit) can be escaped
> # with a backslash to remove its special meaning.
>
> We note that for parsing style sheets in a renderer, whether a
> Unicode escape is recognized or not doesn't matter, but if there's
> a CSSOM API for accessing comments, we should say somewhere that
> Unicode escapes are processed within CSS comments. This will allow
> serializing */ inside comments.
So that's an argument for changing the token rather than the prose...
I have no opinion on which way to fix it.
If we change the regular expression for the token, I think it would
become this:
COMMENT \/\*([^*\\]|{escape})*\*+(([^/*\\]|{escape})[^*]*\*+)*\/
There might be ways to write this in a more readable way, but some quick
testing seems to indicate that this indeed works on all of the
following:
/*\*/*/
/***\*/*/
/**\/*/
/*\/*/
/*/\/*/
/*/*\/*/
/*/*\/\2A*/
/*/*\/\2A/*/
Bert
--
Bert Bos ( W 3 C ) http://www.w3.org/
http://www.w3.org/people/bos W3C/ERCIM
bert@w3.org 2004 Rt des Lucioles / BP 93
+33 (0)4 92 38 76 92 06902 Sophia Antipolis Cedex, France
Received on Friday, 25 July 2008 17:44:22 UTC