[meld] Exit early from ignored and followed symlink cases



commit 46af50d82bf762b2e1e6ce8b5ebb673aa044903e
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sat Dec 18 14:48:10 2010 +1000

    Exit early from ignored and followed symlink cases

 meld/dirdiff.py |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)
---
diff --git a/meld/dirdiff.py b/meld/dirdiff.py
index db617ba..396181f 100644
--- a/meld/dirdiff.py
+++ b/meld/dirdiff.py
@@ -485,19 +485,20 @@ class DirDiff(melddoc.MeldDoc, gnomeglade.Component):
                                 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)
-                                    if key not in symlinks_followed:
-                                        symlinks_followed.add(key)
-                                        try:
-                                            s = os.stat(os.path.join(root, e))
-                                        except OSError, err:
-                                            print "ignoring dangling symlink", e
-                                        else:
-                                            if stat.S_ISREG(s.st_mode):
-                                                files.append(e)
-                                            elif stat.S_ISDIR(s.st_mode):
-                                                dirs.append(e)
+                                if self.prefs.ignore_symlinks:
+                                    continue
+                                key = (s.st_dev, s.st_ino)
+                                if key in symlinks_followed:
+                                    continue
+                                symlinks_followed.add(key)
+                                try:
+                                    s = os.stat(os.path.join(root, e))
+                                    if stat.S_ISREG(s.st_mode):
+                                        files.append(e)
+                                    elif stat.S_ISDIR(s.st_mode):
+                                        dirs.append(e)
+                                except OSError, err:
+                                    print "ignoring dangling symlink", e
                             elif stat.S_ISREG(s.st_mode):
                                 files.append(e)
                             elif stat.S_ISDIR(s.st_mode):



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]