@@ -292,12 +292,12 @@ def dataState(self):
292
292
self .lastFourChars .pop (0 )
293
293
self .lastFourChars .append (data )
294
294
if data == "&" and self .contentModelFlag in \
295
- (contentModelFlags ["PCDATA" ], contentModelFlags ["RCDATA" ]):
295
+ (contentModelFlags ["PCDATA" ], contentModelFlags ["RCDATA" ]) and not \
296
+ self .escapeFlag :
296
297
self .state = self .states ["entityData" ]
297
298
elif data == "-" and self .contentModelFlag in \
298
- (contentModelFlags ["CDATA" ], contentModelFlags ["RCDATA" ]) and \
299
- self .escapeFlag == False and \
300
- "" .join (self .lastFourChars ) == "<!--" :
299
+ (contentModelFlags ["CDATA" ], contentModelFlags ["RCDATA" ]) and not \
300
+ self .escapeFlag and "" .join (self .lastFourChars ) == "<!--" :
301
301
self .escapeFlag = True
302
302
self .tokenQueue .append ({"type" : "Characters" , "data" :data })
303
303
elif data == "<" and (self .contentModelFlag == \
@@ -307,7 +307,7 @@ def dataState(self):
307
307
self .state = self .states ["tagOpen" ]
308
308
elif data == ">" and self .contentModelFlag in \
309
309
(contentModelFlags ["CDATA" ], contentModelFlags ["RCDATA" ]) and \
310
- self .escapeFlag == True and "" .join (self .lastFourChars )[1 :] == "-->" :
310
+ self .escapeFlag and "" .join (self .lastFourChars )[1 :] == "-->" :
311
311
self .escapeFlag = False
312
312
self .tokenQueue .append ({"type" : "Characters" , "data" :data })
313
313
elif data == EOF :
0 commit comments