Skip to content

Commit 586c581

Browse files
committed
modifyName is done in the scanner already
1 parent cfae62e commit 586c581

2 files changed

Lines changed: 17 additions & 29 deletions

File tree

src/main/java/org/htmlunit/cyberneko/HTMLScanner.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,6 +1167,7 @@ protected static short getNamesValue(final String value) {
11671167
}
11681168
return NAMES_NO_CHANGE;
11691169
}
1170+
11701171
// debugging
11711172

11721173
// Sets the scanner.
@@ -2452,9 +2453,10 @@ private void scanUntilEndTag(final String tagName) throws IOException {
24522453
}
24532454
if (c == '<') {
24542455
final String next = fCurrentEntity.nextContent(lengthToScan) + " ";
2455-
if (next.length() >= lengthToScan && end.equalsIgnoreCase(next.substring(0, end.length()))
2456+
if (next.length() >= lengthToScan
2457+
&& end.equalsIgnoreCase(next.substring(0, end.length()))
24562458
&& ('>' == next.charAt(lengthToScan - 1)
2457-
|| Character.isWhitespace(next.charAt(lengthToScan - 1)))) {
2459+
|| Character.isWhitespace(next.charAt(lengthToScan - 1)))) {
24582460
fCurrentEntity.rewind();
24592461
break;
24602462
}
@@ -2984,7 +2986,7 @@ else if ("body".equals(enameLC)) {
29842986
if (DEBUG_CALLBACKS) {
29852987
System.out.println("startElement(" + qName_ + ',' + attributes_ + ")");
29862988
}
2987-
if (empty[0] && !"BR".equalsIgnoreCase(scanStartElement_)) {
2989+
if (empty[0] && !"br".equalsIgnoreCase(scanStartElement_)) {
29882990
fDocumentHandler.emptyElement(qName_, attributes_, locationAugs(fCurrentEntity));
29892991
}
29902992
else {
@@ -3437,9 +3439,9 @@ public class SpecialScanner implements Scanner {
34373439
// Sets the element name.
34383440
public Scanner setElementName(final String ename) {
34393441
fElementName = ename;
3440-
fStyle = "STYLE".equalsIgnoreCase(fElementName);
3441-
fTextarea = "TEXTAREA".equalsIgnoreCase(fElementName);
3442-
fTitle = "TITLE".equalsIgnoreCase(fElementName);
3442+
fStyle = "style".equalsIgnoreCase(fElementName);
3443+
fTextarea = "textarea".equalsIgnoreCase(fElementName);
3444+
fTitle = "title".equalsIgnoreCase(fElementName);
34433445
return this;
34443446
}
34453447

src/main/java/org/htmlunit/cyberneko/HTMLTagBalancer.java

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import java.util.ArrayList;
1919
import java.util.Iterator;
2020
import java.util.List;
21-
import java.util.Locale;
2221

2322
import org.htmlunit.cyberneko.HTMLElements.Element;
2423
import org.htmlunit.cyberneko.filters.NamespaceBinder;
@@ -517,11 +516,11 @@ public void endDocument(final Augmentations augs) throws XNIException {
517516
if (documentHandler_ != null) {
518517
fSeenRootElementEnd = false;
519518
forceStartBody(); // will force <html> and <head></head>
520-
final String body = modifyName("body", fNamesElems);
519+
final String body = NAMES_UPPERCASE == fNamesElems ? "BODY" : "body";
521520
fQName.setValues(null, body, body, null);
522521
callEndElement(fQName, synthesizedAugs());
523522

524-
final String ename = modifyName("html", fNamesElems);
523+
final String ename = NAMES_UPPERCASE == fNamesElems ? "HTML": "html";
525524
fQName.setValues(null, ename, ename, null);
526525
callEndElement(fQName, synthesizedAugs());
527526
}
@@ -809,7 +808,7 @@ else if (!fSeenRootElement && !fDocumentFragment) {
809808
final String pname = preferedParent.name;
810809
if (fReportErrors) {
811810
final String ename = elem.getRawname();
812-
fErrorReporter.reportWarning("HTML2002", new Object[]{ename, modifyName(pname, fNamesElems)});
811+
fErrorReporter.reportWarning("HTML2002", new Object[]{ename, pname});
813812
}
814813
final QName qname = createQName(pname);
815814
final boolean parentCreated = forceStartElement(qname, new XMLAttributesImpl(), synthesizedAugs());
@@ -827,8 +826,7 @@ else if (!fSeenRootElement && !fDocumentFragment) {
827826
final String pname = preferedParent.name;
828827
if (fReportErrors) {
829828
final String ename = elem.getRawname();
830-
fErrorReporter.reportWarning("HTML2004",
831-
new Object[]{ename, modifyName(pname, fNamesElems)});
829+
fErrorReporter.reportWarning("HTML2004", new Object[]{ename, pname});
832830
}
833831

834832
final QName qname = createQName(pname);
@@ -967,7 +965,6 @@ private boolean forceStartElement(final QName elem, final XMLAttributes attrs,
967965
}
968966

969967
private QName createQName(String tagName) {
970-
tagName = modifyName(tagName, fNamesElems);
971968
return new QName(null, tagName, tagName, NamespaceBinder.XHTML_1_0_URI);
972969
}
973970

@@ -1078,16 +1075,16 @@ public void characters(final XMLString text, final Augmentations augs) throws XN
10781075
if (info.element.code == HTMLElements.HEAD || info.element.code == HTMLElements.HTML) {
10791076
if (whitespace == 0) {
10801077
if (fReportErrors) {
1081-
final String hname = modifyName("head", fNamesElems);
1082-
final String bname = modifyName("body", fNamesElems);
1078+
final String hname = NAMES_UPPERCASE == fNamesElems ? "HEAD" : "head";
1079+
final String bname = NAMES_UPPERCASE == fNamesElems ? "BODY" : "body";
10831080
fErrorReporter.reportWarning("HTML2009", new Object[]{hname, bname});
10841081
}
10851082
forceStartBody();
10861083
}
10871084
else if (whitespace == -1 && !text.isWhitespace()) {
10881085
if (fReportErrors) {
1089-
final String hname = modifyName("head", fNamesElems);
1090-
final String bname = modifyName("body", fNamesElems);
1086+
final String hname = NAMES_UPPERCASE == fNamesElems ? "HEAD" : "head";
1087+
final String bname = NAMES_UPPERCASE == fNamesElems ? "BODY" : "body";
10911088
fErrorReporter.reportWarning("HTML2009", new Object[]{hname, bname});
10921089
}
10931090
forceStartBody();
@@ -1244,7 +1241,7 @@ else if (!elem.isEmpty()) {
12441241
for (int i = 0; i < depth; i++) {
12451242
final Info info = fElementStack.pop();
12461243
if (fReportErrors && i < depth - 1) {
1247-
final String ename = modifyName(element.getRawname(), fNamesElems);
1244+
final String ename = element.getRawname();
12481245
final String iname = info.qname.getRawname();
12491246
fErrorReporter.reportWarning("HTML2007", new Object[]{ename, iname});
12501247
}
@@ -1399,17 +1396,6 @@ protected final Augmentations synthesizedAugs() {
13991396
return null;
14001397
}
14011398

1402-
// Modifies the given name based on the specified mode.
1403-
protected static String modifyName(final String name, final short mode) {
1404-
if (NAMES_UPPERCASE == mode) {
1405-
return name.toUpperCase(Locale.ROOT);
1406-
}
1407-
if (NAMES_LOWERCASE == mode) {
1408-
return name.toLowerCase(Locale.ROOT);
1409-
}
1410-
return name;
1411-
}
1412-
14131399
// Converts HTML names string value to constant value.
14141400
//
14151401
// @see #NAMES_NO_CHANGE

0 commit comments

Comments
 (0)