@@ -292,12 +292,12 @@ def dataState(self):
292292 self .lastFourChars .pop (0 )
293293 self .lastFourChars .append (data )
294294 if data == "&" and self .contentModelFlag in \
295- (contentModelFlags ["PCDATA" ], contentModelFlags ["RCDATA" ]):
295+ (contentModelFlags ["PCDATA" ], contentModelFlags ["RCDATA" ]) and not \
296+ self .escapeFlag :
296297 self .state = self .states ["entityData" ]
297298 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 ) == "<!--" :
301301 self .escapeFlag = True
302302 self .tokenQueue .append ({"type" : "Characters" , "data" :data })
303303 elif data == "<" and (self .contentModelFlag == \
@@ -307,7 +307,7 @@ def dataState(self):
307307 self .state = self .states ["tagOpen" ]
308308 elif data == ">" and self .contentModelFlag in \
309309 (contentModelFlags ["CDATA" ], contentModelFlags ["RCDATA" ]) and \
310- self .escapeFlag == True and "" .join (self .lastFourChars )[1 :] == "-->" :
310+ self .escapeFlag and "" .join (self .lastFourChars )[1 :] == "-->" :
311311 self .escapeFlag = False
312312 self .tokenQueue .append ({"type" : "Characters" , "data" :data })
313313 elif data == EOF :
0 commit comments