in batik-xml/src/main/java/org/apache/batik/xml/XMLUtilities.java [266:393]
protected static String getXMLDeclarationEncoding(Reader r, String e)
throws IOException {
int c;
if ((c = r.read()) != 'l') {
return e;
}
if (!isXMLSpace((char)(c = r.read()))) {
return e;
}
while (isXMLSpace((char)(c = r.read()))) {
//skip
}
if (c != 'v') {
return e;
}
if ((c = r.read()) != 'e') {
return e;
}
if ((c = r.read()) != 'r') {
return e;
}
if ((c = r.read()) != 's') {
return e;
}
if ((c = r.read()) != 'i') {
return e;
}
if ((c = r.read()) != 'o') {
return e;
}
if ((c = r.read()) != 'n') {
return e;
}
c = r.read();
while (isXMLSpace((char)c)) {
c = r.read();
}
if (c != '=') {
return e;
}
while (isXMLSpace((char)(c = r.read()))) {
//skip
}
if (c != '"' && c != '\'') {
return e;
}
char sc = (char)c;
for (;;) {
c = r.read();
if (c == sc) {
break;
}
if (!isXMLVersionCharacter((char)c)) {
return e;
}
}
if (!isXMLSpace((char)(c = r.read()))) {
return e;
}
while (isXMLSpace((char)(c = r.read()))) {
//skip
}
if (c != 'e') {
return e;
}
if ((c = r.read()) != 'n') {
return e;
}
if ((c = r.read()) != 'c') {
return e;
}
if ((c = r.read()) != 'o') {
return e;
}
if ((c = r.read()) != 'd') {
return e;
}
if ((c = r.read()) != 'i') {
return e;
}
if ((c = r.read()) != 'n') {
return e;
}
if ((c = r.read()) != 'g') {
return e;
}
c = r.read();
while (isXMLSpace((char)c)) {
c = r.read();
}
if (c != '=') {
return e;
}
while (isXMLSpace((char)(c = r.read()))) {
//skip
}
if (c != '"' && c != '\'') {
return e;
}
sc = (char)c;
StringBuffer enc = new StringBuffer();
for (;;) {
c = r.read();
if (c == -1) {
return e;
}
if (c == sc) {
return encodingToJavaEncoding(enc.toString(), e);
}
enc.append((char)c);
}
}