[meld] Guard against edge-cases for broken symlinks (closes bgo#585895)
- From: Kai Willadsen <kaiw src gnome org>
- To: svn-commits-list gnome org
- Subject: [meld] Guard against edge-cases for broken symlinks (closes bgo#585895)
- Date: Fri, 26 Jun 2009 21:48:06 +0000 (UTC)
commit 24c0ec02c64b4ab969bb05de6615e7ca703b05e5
Author: Kai Willadsen <kai willadsen gmail com>
Date: Fri Jun 26 16:38:12 2009 +1000
Guard against edge-cases for broken symlinks (closes bgo#585895)
In some cases, comparisons on FUSE-mounted directories would fail on
dangling symlinks. Guarding the lstat() call works around this.
Based on a patch from Max Naude.
dirdiff.py | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/dirdiff.py b/dirdiff.py
index 0c5c5b9..5fd471f 100644
--- a/dirdiff.py
+++ b/dirdiff.py
@@ -451,7 +451,11 @@ class DirDiff(melddoc.MeldDoc, gnomeglade.Component):
files = []
dirs = []
for e in entries:
- s = os.lstat(os.path.join(root, e))
+ try: # Necessary for some broken symlink cases; see bgo#585895
+ s = os.lstat(os.path.join(root, e))
+ except OSError, err:
+ print "Ignoring OS error: %s" % err
+ continue
if stat.S_ISLNK(s.st_mode):
if not self.prefs.ignore_symlinks:
key = (s.st_dev, s.st_ino)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]