@@ -271,11 +271,8 @@ def goahead(self, end):
271271 j -= len (suffix )
272272 break
273273 self .handle_comment (rawdata [i + 4 :j ])
274- elif startswith ("<![CDATA[" , i ):
275- if self ._support_cdata :
276- self .unknown_decl (rawdata [i + 3 :])
277- else :
278- self .handle_comment (rawdata [i + 1 :])
274+ elif startswith ("<![CDATA[" , i ) and self ._support_cdata :
275+ self .unknown_decl (rawdata [i + 3 :])
279276 elif rawdata [i :i + 9 ].lower () == '<!doctype' :
280277 self .handle_decl (rawdata [i + 2 :])
281278 elif startswith ("<!" , i ):
@@ -350,15 +347,12 @@ def parse_html_declaration(self, i):
350347 if rawdata [i :i + 4 ] == '<!--' :
351348 # this case is actually already handled in goahead()
352349 return self .parse_comment (i )
353- elif rawdata [i :i + 9 ] == '<![CDATA[' :
354- if self ._support_cdata :
355- j = rawdata .find (']]>' , i + 9 )
356- if j < 0 :
357- return - 1
358- self .unknown_decl (rawdata [i + 3 : j ])
359- return j + 3
360- else :
361- return self .parse_bogus_comment (i )
350+ elif rawdata [i :i + 9 ] == '<![CDATA[' and self ._support_cdata :
351+ j = rawdata .find (']]>' , i + 9 )
352+ if j < 0 :
353+ return - 1
354+ self .unknown_decl (rawdata [i + 3 : j ])
355+ return j + 3
362356 elif rawdata [i :i + 9 ].lower () == '<!doctype' :
363357 # find the closing >
364358 gtpos = rawdata .find ('>' , i + 9 )
0 commit comments