[Laszlo-dev] [Updated] For Review: Change 20090608-raju-Y Summary: Fix for CSS parser uses incorrect file encoding

P T Withington ptw at laszlosystems.com
Mon Jun 8 12:42:15 PDT 2009


[cc-ing Wanli]

Wanli,

Maybe you also want to review (or have someone on your team review) as  
this issue affects you?

---

Raju,

This looks good.

I think you might have trouble trying checking in your utf-16 examples  
to svn.  I'm not sure svn will do the right thing.  It looks like it  
is treating them as binary files.  Maybe that will work.  I don't know.

It looks to me like you may also have some tab characters in your  
sources.  You need to expand tabs to check in, otherwise the pre- 
commit filter will reject your checkin.

I approve this change.  You might want to check in your fix separately  
from your tests, just in case the UTF-16 files cause svn issues.

On 2009-06-08, at 14:44EDT, Raju Bitter wrote:

> Added a "+" in debug output string concatenation.
>
> Change 20090608-raju-Y by raju at ip-90-186-160-71.web.vodafone.de on  
> 2009-06-08 20:09:02 CEST
>    in /Users/rajubitter/src/svn/openlaszlo/trunk-cssunicode
>    for http://rajubitter@svn.openlaszlo.org/openlaszlo/trunk
>
> Summary: Fix for CSS parser uses incorrect file encoding
>
> New Features: Adds an optional @charset to the stylesheet tag, in  
> case the user wants to use a CSS file in a different encoding then  
> utf-8
>
> Bugs Fixed: LPP-8045
>
> Technical Reviewer: ptw
> QA Reviewer: (pending)
> Doc Reviewer: (pending)
>
> Documentation:
>
> Release Notes:
>
> Details:
> + StyleSheetCompiler.java: Handling for @charset on stylesheet tag  
> added. Added a
> 2nd parameter with the encoding value to the CSSHandler.parse() call.
>
> + CSSHandler.java:
> parse() method takes the encoding from the LZX stylesheet tag as a  
> 2nd parameter.
> getInputSource() method does a few more things now:
>  1) checks for a possible BOM on the CSS file
>  2) checks if a possible BOM conflicts with the value of the  
> stylesheet tag's @charset
>  3) if there's a BOM, the BOM bytes are removed from the input stream
>
> + FileUtils.java:
> Added method public static String  
> detectBOMEncoding(BufferedInputStream in)
> The method returns the BOM marker interpreted as one of the  
> following strings:
>  UTF-8
>  UTF-16LE
>  UTF-16BE
>
> Tests:
> + test files in folder test/css/encoding
> The following test exist:
>  1) iso8859-1_with_charset_attr.lzx
>     Reading an iso-8859-2 encoded CSS file with some German special  
> chars
>  2) utf16BE_with_BOM.lzx
>     Reading an utf-16 BE CSS file with BOM marker
>  3) utf16LE_with_BOM.lzx
>     Reading an utf-16 LE CSS file with BOM marker
>  4) utf8_with_BOM_no_charset_attr.lzx
>     Reading an utf-8 CSS file with BOM and no charset attribute on  
> the stylesheet tag
>  5) utf8_with_BOM_conflicting_charset_attr.lzx
>     Reading a CSS with @charset value of utf-16, but CSS having a  
> UTF-8 BOM marker, will
>     throw a compile error
>
> Files:
> A       test/css/encoding
> A       test/css/encoding/iso8859-1_with_charset_attr.lzx
> A       test/css/encoding/utf16BE_with_BOM.lzx
> A       test/css/encoding/utf8_with_BOM_no_charset_attr.css
> A       test/css/encoding/utf16LE_with_BOM.css
> A       test/css/encoding/utf8_no_BOM_no_charset_attr.css
> A       test/css/encoding/utf8_with_BOM_conflicting_charset_attr.css
> A       test/css/encoding/utf8_with_BOM_no_charset_attr.lzx
> A       test/css/encoding/utf16LE_with_BOM.lzx
> A       test/css/encoding/utf8_no_BOM_no_charset_attr.lzx
> A       test/css/encoding/iso8859-1_with_charset_attr.css
> A       test/css/encoding/utf16BE_with_BOM.css
> A       test/css/encoding/utf8_with_BOM_conflicting_charset_attr.lzx
> M       WEB-INF/lps/server/src/org/openlaszlo/css/CSSHandler.java
> M       WEB-INF/lps/server/src/org/openlaszlo/utils/FileUtils.java
> M       WEB-INF/lps/server/src/org/openlaszlo/compiler/ 
> StyleSheetCompiler.java
>
> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20090608-raju-Y.tar



More information about the Laszlo-dev mailing list