From 7d168dc19858b8cd1f9111ec0fe61cf6d1479584 Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Sat, 20 Jul 2019 19:08:33 +0200 Subject: [PATCH] rclchm: close file (windows temp file removal) --- src/filters/rclchm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/filters/rclchm b/src/filters/rclchm index e7164975..ed77bcf7 100755 --- a/src/filters/rclchm +++ b/src/filters/rclchm @@ -284,7 +284,10 @@ class rclCHM: charset = 'cp1252' text = text.decode(charset, errors='replace') return text, charset - + + def closefile(self): + self.chm.CloseCHM() + def openfile(self, params): """Open the chm file and build the contents list by extracting and parsing the Topics object""" @@ -339,6 +342,7 @@ class rclCHM: if self.catenate: self.em.setmimetype("text/plain") alltxt = self.dumpall() + self.closefile() if alltxt: return (True, alltxt, "", rclexecm.RclExecM.eofnext) else: @@ -349,15 +353,20 @@ class rclCHM: self.currentindex = 0 self.em.setmimetype('text/plain') if len(self.contents) == 0: + self.closefile() eof = rclexecm.RclExecM.eofnext else: eof = rclexecm.RclExecM.noteof return (True, "", "", eof) if self.currentindex >= len(self.contents): + self.closefile() return (False, "", "", rclexecm.RclExecM.eofnow) else: - ret= self.extractone(self.contents[self.currentindex]) + ret = self.extractone(self.contents[self.currentindex]) + if ret[3] == rclexecm.RclExecM.eofnext or \ + ret[3] == rclexecm.RclExecM.eofnow: + self.closefile() self.currentindex += 1 return ret