Sorry the patch in the original bug report was incorrect. I've attached the
right one
--- /usr/share/pyshared/gamin.py 2012-07-26 03:57:19.0 +0100
+++ gamin.py 2014-01-30 10:25:10.223748107 +
@@ -36,7 +36,7 @@
def GaminErrmsg(err = None):
if err == None:
- err = _gamin.Errno()
+err = _gamin.Errno()
if err == GAM_ARG:
msg = bad argument error
elif err == GAM_FILE:
@@ -58,12 +58,12 @@
class GaminException(Exception):
def __init__(self, value):
Exception.__init__(self)
- self.value = value
- self.errno = GaminErrno()
+self.value = value
+self.errno = GaminErrno()
def __str__(self):
str = GaminErrmsg(self.errno)
- if str != :
+if str != :
return repr(self.value) + ': ' + str
return repr(self.value)
@@ -76,161 +76,161 @@
FAM API events.
class WatchObject:
- def __init__ (self, monitor, mon_no, path, dir, callback, data=None):
- self.monitor = monitor
- self.callback = callback
- self.data = data
- self.path = path
- self.__mon_no = mon_no
- if dir == 1:
- ret = _gamin.MonitorDirectory(self.__mon_no, path, self);
- if ret 0:
- raise(GaminException(Failed to monitor directory %s %
- (path)))
- elif dir == 0:
- ret = _gamin.MonitorFile(self.__mon_no, path, self);
- if ret 0:
- raise(GaminException(Failed to monitor file %s %
- (path)))
- elif dir == -1:
- ret = _gamin.MonitorDebug(self.__mon_no, path, self);
- if ret 0:
- raise(GaminException(Failed to debug %s %
- (path)))
- self.__req_no = ret
-
- def _internal_callback(self, path, event):
- # it is very important here to catch all exception which may
- # arise in the client callback code.
- try:
- if self.data != None:
- self.callback (path, event, self.data)
- else:
- self.callback (path, event)
- except:
- import traceback
- traceback.print_exc()
-
- if event == GAMAcknowledge:
- try:
- self.monitor.cancelled.remove(self)
- except:
- print gamin failed to remove from cancelled
- pass
-
- def cancel(self):
- ret = _gamin.MonitorCancel(self.__mon_no, self.__req_no);
- if ret 0:
- raise(GaminException(Failed to stop monitor on %s %
- (self.path)))
- try:
- self.monitor.cancelled.append(self)
- except:
- print gamin cancel() failed to add to cancelled
+def __init__ (self, monitor, mon_no, path, dir, callback, data=None):
+self.monitor = monitor
+self.callback = callback
+self.data = data
+self.path = path
+self.__mon_no = mon_no
+if dir == 1:
+ret = _gamin.MonitorDirectory(self.__mon_no, path, self);
+if ret 0:
+raise(GaminException(Failed to monitor directory %s %
+ (path)))
+elif dir == 0:
+ret = _gamin.MonitorFile(self.__mon_no, path, self);
+if ret 0:
+raise(GaminException(Failed to monitor file %s %
+ (path)))
+elif dir == -1:
+ret = _gamin.MonitorDebug(self.__mon_no, path, self);
+if ret 0:
+raise(GaminException(Failed to debug %s %
+ (path)))
+self.__req_no = ret
+
+def _internal_callback(self, path, event):
+# it is very important here to catch all exception which may
+# arise in the client callback code.
+try:
+if self.data != None:
+self.callback (path, event, self.data)
+else:
+self.callback (path, event)
+except:
+import traceback
+traceback.print_exc()
+
+if event == GAMAcknowledge:
+try:
+self.monitor.cancelled.remove(self)
+except:
+print gamin failed to remove from cancelled
+pass
+
+def cancel(self):
+ret = _gamin.MonitorCancel(self.__mon_no, self.__req_no);
+if ret 0:
+raise(GaminException(Failed to stop monitor on %s %
+ (self.path)))
+try:
+self.monitor.cancelled.append(self)
+except:
+print gamin cancel() failed to add to cancelled
def __init__ (self):
self.__no = _gamin.MonitorConnect()
- if self.__no 0:
- raise(GaminException(Failed to connect to gam_server))
- self.objects = {}
- self.__fd = _gamin.GetFd(self.__no)
- if self.__fd 0:
- _gamin.MonitorClose(self.__no)
- raise(GaminException(Failed to get file descriptor))
- self.cancelled = []
+if self.__no 0:
+raise(GaminException(Failed to connect to