- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 16 Feb 2009 16:42:16 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/util
In directory hutz:/tmp/cvs-serv22742/org/w3c/css/util
Modified Files:
ApplContext.java
Log Message:
last round for uploaded files with BOM
Index: ApplContext.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/util/ApplContext.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- ApplContext.java 16 Feb 2009 12:16:34 -0000 1.16
+++ ApplContext.java 16 Feb 2009 16:42:14 -0000 1.17
@@ -24,6 +24,8 @@
import org.w3c.www.http.HttpAcceptCharsetList;
import org.w3c.www.http.HttpFactory;
+import org.apache.velocity.io.UnicodeInputStream;
+
/**
* @version $Revision$
* @author Philippe Le Hegaret
@@ -32,13 +34,16 @@
// the charset of the first source (url/uploaded/text)
public static Charset defaultCharset;
+ public static Charset utf8Charset;
static {
try {
defaultCharset = Charset.forName("iso-8859-1");
+ utf8Charset = Charset.forName("utf-8");
} catch (Exception ex) {
// we are in deep trouble here
defaultCharset = null;
+ utf8Charset = null;
}
}
@@ -353,14 +358,33 @@
this.faketext = faketext;
}
- public InputStream getFakeInputStream() throws IOException {
+ public InputStream getFakeInputStream(URL source)
+ throws IOException
+ {
+ InputStream is = null;
if (fakefile != null) {
- return fakefile.getInputStream();
+ is = fakefile.getInputStream();
}
if (faketext != null) {
- return new ByteArrayInputStream(faketext.getBytes());
+ is = new ByteArrayInputStream(faketext.getBytes());
}
- return null;
+ if (is == null) {
+ return null;
+ }
+ Charset c = getCharsetObjForURL(source);
+ if (c == null) {
+ UnicodeInputStream uis = new UnicodeInputStream(is);
+ String guessedCharset = uis.getEncodingFromStream();
+ if (guessedCharset != null) {
+ setCharsetForURL(source, guessedCharset);
+ }
+ return uis;
+ } else {
+ if (utf8Charset.compareTo(c) == 0) {
+ return new UnicodeInputStream(is);
+ }
+ }
+ return is;
}
public boolean isInputFake() {
Received on Monday, 16 February 2009 16:42:26 UTC