X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;f=Configuration.py;h=1aeb258a48320eeeb1b27d190fa6aeb6310cd068;hb=d7a00b7d9d8b49655f714abc53361bed08e0355d;hp=a8b4abfa8b768b5276bb932c18923285348339ae;hpb=b029ee3dd1a5a785737e73ac6fc024a58d855104;p=pygdb.git diff --git a/Configuration.py b/Configuration.py index a8b4abf..1aeb258 100755 --- a/Configuration.py +++ b/Configuration.py @@ -22,7 +22,8 @@ class Configuration: try: cnt = 0 #Parse all lines - for line in file(filename).readlines(): + f = file(filename, "r") + for line in f.readlines(): cnt += 1 #Get command and tail @@ -38,30 +39,38 @@ class Configuration: else: cnt -= 1 print "Unkown command", cmd + f.close() return cnt + except IOError: return None def store(self, filename): + try: + f = file(filename, "w") - f = file(filename, "w") + for b in self.breakpoints: + self.__writeBreak(f, b) - for b in self.breakpoints: - self.__writeBreak(f, b) + for w in self.watches: + self.__writeWatch(f, w) - for w in self.watches: - self.__writeWatch(f, w) + for s in self.ints: + self.__writeInt(f, s) - for s in self.ints: - self.__writeInt(f, s) + f.close() + return True + + except IOError: + return False def parseBreak(self, tail): tail = tail.strip() - rx = re.compile("^[\w\._\-]+:\d+(\s+if\s+\S+.*)?$") + rx = re.compile("^[\w/\._\-]+:\d+(\s+if\s+\S+.*)?$") if not rx.search(tail): print "Wrong breakpoint format:", tail @@ -108,14 +117,20 @@ class Configuration: f.write("watch %(expr)s\n" % w) - def addBreak(self, file, lineno, cond=None): - self.breakpoints += [ {"file" : file, "lineno" : lineno, "cond" : cond} ] + def addBreak(self, file, lineno, cond=None): + bp = {"file" : file, "lineno" : lineno, "cond" : cond} + if not bp in self.breakpoints: + self.breakpoints += [bp] def addInt(self, name, val): - self.ints += [{"name": name, "val": val}] + i = {"name": name, "val": val} + if not i in self.ints: + self.ints += [i] def addWatch(self, expr): - self.watches += [ {"expr" : expr.strip() } ] + w = {"expr" : expr.strip() } + if not w in self.watches: + self.watches += [w] def findInt(self, name):