@@ -468,7 +468,7 @@ def rcdataLessThanSignState(self):
468
468
def rcdataEndTagOpenState (self ):
469
469
data = self .stream .char ()
470
470
if data in asciiLetters :
471
- self .temporaryBuffer += data . translate ( asciiUpper2Lower )
471
+ self .temporaryBuffer += data
472
472
self .state = self .rcdataEndTagNameState
473
473
else :
474
474
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ], "data" : "</" })
@@ -477,26 +477,27 @@ def rcdataEndTagOpenState(self):
477
477
return True
478
478
479
479
def rcdataEndTagNameState (self ):
480
- appropriate = self .currentToken and self .currentToken ["name" ] == self .temporaryBuffer
480
+ name = self .temporaryBuffer .translate (asciiUpper2Lower )
481
+ appropriate = self .currentToken and self .currentToken ["name" ] == name
481
482
data = self .stream .char ()
482
483
if data in spaceCharacters and appropriate :
483
484
self .currentToken = {"type" : tokenTypes ["EndTag" ],
484
- "name" : self . temporaryBuffer ,
485
+ "name" : name ,
485
486
"data" : [], "selfClosing" : False }
486
487
self .state = self .beforeAttributeNameState
487
488
elif data == "/" and appropriate :
488
489
self .currentToken = {"type" : tokenTypes ["EndTag" ],
489
- "name" : self . temporaryBuffer ,
490
+ "name" : name ,
490
491
"data" : [], "selfClosing" : False }
491
492
self .state = self .selfClosingStartTagState
492
493
elif data == ">" and appropriate :
493
494
self .currentToken = {"type" : tokenTypes ["EndTag" ],
494
- "name" : self . temporaryBuffer ,
495
+ "name" : name ,
495
496
"data" : [], "selfClosing" : False }
496
497
self .emitCurrentToken ()
497
498
self .state = self .dataState
498
499
elif data in asciiLetters :
499
- self .temporaryBuffer += data . translate ( asciiUpper2Lower )
500
+ self .temporaryBuffer += data
500
501
else :
501
502
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ],
502
503
"data" : "</" + self .temporaryBuffer })
@@ -518,7 +519,7 @@ def rawtextLessThanSignState(self):
518
519
def rawtextEndTagOpenState (self ):
519
520
data = self .stream .char ()
520
521
if data in asciiLetters :
521
- self .temporaryBuffer += data . translate ( asciiUpper2Lower )
522
+ self .temporaryBuffer += data
522
523
self .state = self .rawtextEndTagNameState
523
524
else :
524
525
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ], "data" : "</" })
@@ -527,26 +528,27 @@ def rawtextEndTagOpenState(self):
527
528
return True
528
529
529
530
def rawtextEndTagNameState (self ):
530
- appropriate = self .currentToken and self .currentToken ["name" ] == self .temporaryBuffer
531
+ name = self .temporaryBuffer .translate (asciiUpper2Lower )
532
+ appropriate = self .currentToken and self .currentToken ["name" ] == name
531
533
data = self .stream .char ()
532
534
if data in spaceCharacters and appropriate :
533
535
self .currentToken = {"type" : tokenTypes ["EndTag" ],
534
- "name" : self . temporaryBuffer ,
536
+ "name" : name ,
535
537
"data" : [], "selfClosing" : False }
536
538
self .state = self .beforeAttributeNameState
537
539
elif data == "/" and appropriate :
538
540
self .currentToken = {"type" : tokenTypes ["EndTag" ],
539
- "name" : self . temporaryBuffer ,
541
+ "name" : name ,
540
542
"data" : [], "selfClosing" : False }
541
543
self .state = self .selfClosingStartTagState
542
544
elif data == ">" and appropriate :
543
545
self .currentToken = {"type" : tokenTypes ["EndTag" ],
544
- "name" : self . temporaryBuffer ,
546
+ "name" : name ,
545
547
"data" : [], "selfClosing" : False }
546
548
self .emitCurrentToken ()
547
549
self .state = self .dataState
548
550
elif data in asciiLetters :
549
- self .temporaryBuffer += data . translate ( asciiUpper2Lower )
551
+ self .temporaryBuffer += data
550
552
else :
551
553
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ],
552
554
"data" : "</" + self .temporaryBuffer })
@@ -571,7 +573,7 @@ def scriptDataLessThanSignState(self):
571
573
def scriptDataEndTagOpenState (self ):
572
574
data = self .stream .char ()
573
575
if data in asciiLetters :
574
- self .temporaryBuffer += data . translate ( asciiUpper2Lower )
576
+ self .temporaryBuffer += data
575
577
self .state = self .scriptDataEndTagNameState
576
578
else :
577
579
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ], "data" : "</" })
@@ -580,26 +582,27 @@ def scriptDataEndTagOpenState(self):
580
582
return True
581
583
582
584
def scriptDataEndTagNameState (self ):
583
- appropriate = self .currentToken and self .currentToken ["name" ] == self .temporaryBuffer
585
+ name = self .temporaryBuffer .translate (asciiUpper2Lower )
586
+ appropriate = self .currentToken and self .currentToken ["name" ] == name
584
587
data = self .stream .char ()
585
588
if data in spaceCharacters and appropriate :
586
589
self .currentToken = {"type" : tokenTypes ["EndTag" ],
587
- "name" : self . temporaryBuffer ,
590
+ "name" : name ,
588
591
"data" : [], "selfClosing" : False }
589
592
self .state = self .beforeAttributeNameState
590
593
elif data == "/" and appropriate :
591
594
self .currentToken = {"type" : tokenTypes ["EndTag" ],
592
- "name" : self . temporaryBuffer ,
595
+ "name" : name ,
593
596
"data" : [], "selfClosing" : False }
594
597
self .state = self .selfClosingStartTagState
595
598
elif data == ">" and appropriate :
596
599
self .currentToken = {"type" : tokenTypes ["EndTag" ],
597
- "name" : self . temporaryBuffer ,
600
+ "name" : name ,
598
601
"data" : [], "selfClosing" : False }
599
602
self .emitCurrentToken ()
600
603
self .state = self .dataState
601
604
elif data in asciiLetters :
602
- self .temporaryBuffer += data . translate ( asciiUpper2Lower )
605
+ self .temporaryBuffer += data
603
606
else :
604
607
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ],
605
608
"data" : "</" + self .temporaryBuffer })
@@ -696,7 +699,7 @@ def scriptDataEscapedLessThanSignState(self):
696
699
self .state = self .scriptDataEscapedEndTagOpenState
697
700
elif data in asciiLetters :
698
701
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ], "data" : "<" + data })
699
- self .temporaryBuffer = data . translate ( asciiUpper2Lower )
702
+ self .temporaryBuffer = data
700
703
self .state = self .scriptDataDoubleEscapeStartState
701
704
else :
702
705
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ], "data" : "<" })
@@ -707,7 +710,7 @@ def scriptDataEscapedLessThanSignState(self):
707
710
def scriptDataEscapedEndTagOpenState (self ):
708
711
data = self .stream .char ()
709
712
if data in asciiLetters :
710
- self .temporaryBuffer = data . translate ( asciiUpper2Lower )
713
+ self .temporaryBuffer = data
711
714
self .state = self .scriptDataEscapedEndTagNameState
712
715
else :
713
716
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ], "data" : "</" })
@@ -716,26 +719,27 @@ def scriptDataEscapedEndTagOpenState(self):
716
719
return True
717
720
718
721
def scriptDataEscapedEndTagNameState (self ):
719
- appropriate = self .currentToken and self .currentToken ["name" ] == self .temporaryBuffer
722
+ name = self .temporaryBuffer .translate (asciiUpper2Lower )
723
+ appropriate = self .currentToken and self .currentToken ["name" ] == name
720
724
data = self .stream .char ()
721
725
if data in spaceCharacters and appropriate :
722
726
self .currentToken = {"type" : tokenTypes ["EndTag" ],
723
- "name" : self . temporaryBuffer ,
727
+ "name" : name ,
724
728
"data" : [], "selfClosing" : False }
725
729
self .state = self .beforeAttributeNameState
726
730
elif data == "/" and appropriate :
727
731
self .currentToken = {"type" : tokenTypes ["EndTag" ],
728
- "name" : self . temporaryBuffer ,
732
+ "name" : name ,
729
733
"data" : [], "selfClosing" : False }
730
734
self .state = self .selfClosingStartTagState
731
735
elif data == ">" and appropriate :
732
736
self .currentToken = {"type" : tokenTypes ["EndTag" ],
733
- "name" : self . temporaryBuffer ,
737
+ "name" : name ,
734
738
"data" : [], "selfClosing" : False }
735
739
self .emitCurrentToken ()
736
740
self .state = self .dataState
737
741
elif data in asciiLetters :
738
- self .temporaryBuffer += data . translate ( asciiUpper2Lower )
742
+ self .temporaryBuffer += data
739
743
else :
740
744
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ],
741
745
"data" : "</" + self .temporaryBuffer })
@@ -747,13 +751,13 @@ def scriptDataDoubleEscapeStartState(self):
747
751
data = self .stream .char ()
748
752
if data in (spaceCharacters | frozenset (("/" , ">" ))):
749
753
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ], "data" : data })
750
- if self .temporaryBuffer == "script" :
754
+ if self .temporaryBuffer . lower () == "script" :
751
755
self .state = self .scriptDataDoubleEscapedState
752
756
else :
753
757
self .state = self .scriptDataEscapedState
754
758
elif data in asciiLetters :
755
759
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ], "data" : data })
756
- self .temporaryBuffer += data . translate ( asciiUpper2Lower )
760
+ self .temporaryBuffer += data
757
761
else :
758
762
self .stream .unget (data )
759
763
self .state = self .scriptDataEscapedState
@@ -843,13 +847,13 @@ def scriptDataDoubleEscapeEndState(self):
843
847
data = self .stream .char ()
844
848
if data in (spaceCharacters | frozenset (("/" , ">" ))):
845
849
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ], "data" : data })
846
- if self .temporaryBuffer == "script" :
850
+ if self .temporaryBuffer . lower () == "script" :
847
851
self .state = self .scriptDataEscapedState
848
852
else :
849
853
self .state = self .scriptDataDoubleEscapedState
850
854
elif data in asciiLetters :
851
855
self .tokenQueue .append ({"type" : tokenTypes ["Characters" ], "data" : data })
852
- self .temporaryBuffer += data . translate ( asciiUpper2Lower )
856
+ self .temporaryBuffer += data
853
857
else :
854
858
self .stream .unget (data )
855
859
self .state = self .scriptDataDoubleEscapedState
0 commit comments