a/src/filters/rclrar b/src/filters/rclrar
...
...
71
            ipath = ipath.encode("utf-8")
71
            ipath = ipath.encode("utf-8")
72
        return (ok, docdata, ipath, iseof)
72
        return (ok, docdata, ipath, iseof)
73
73
74
    ###### File type handler api, used by rclexecm ---------->
74
    ###### File type handler api, used by rclexecm ---------->
75
    def openfile(self, params):
75
    def openfile(self, params):
76
        self.currentindex = 0
76
        self.currentindex = -1
77
        try:
77
        try:
78
            self.rar = RarFile(params["filename:"])
78
            self.rar = RarFile(params["filename:"])
79
            return True
79
            return True
80
        except:
80
        except:
81
            return False
81
            return False
...
...
91
            return self.extractone(ipath)
91
            return self.extractone(ipath)
92
        except Exception, err:
92
        except Exception, err:
93
            return (ok, data, ipath, eof)
93
            return (ok, data, ipath, eof)
94
        
94
        
95
    def getnext(self, params):
95
    def getnext(self, params):
96
97
        if self.currentindex == -1:
98
            # Return "self" doc
99
            self.currentindex = 0
100
            self.em.setmimetype('text/plain')
101
            if len(self.rar.namelist()) == 0:
102
                eof = rclexecm.RclExecM.eofnext
103
            else:
104
                eof = rclexecm.RclExecM.noteof
105
            return (True, "", "", eof)
106
96
        if self.currentindex >= len(self.rar.namelist()):
107
        if self.currentindex >= len(self.rar.namelist()):
97
            #self.em.rclog("getnext: EOF hit")
108
            #self.em.rclog("getnext: EOF hit")
98
            return (False, "", "", rclexecm.RclExecM.eofnow)
109
            return (False, "", "", rclexecm.RclExecM.eofnow)
99
        else:
110
        else:
100
            ret= self.extractone(self.rar.namelist()[self.currentindex])
111
            ret= self.extractone(self.rar.namelist()[self.currentindex])