qemacs-commit
[Top][All Lists]
Advanced

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

[Qemacs-commit] qemacs dired.c


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs dired.c
Date: Fri, 25 Apr 2014 20:05:33 +0000

CVSROOT:        /sources/qemacs
Module name:    qemacs
Changes by:     Charlie Gordon <chqrlie>        14/04/25 20:05:33

Modified files:
        .              : dired.c 

Log message:
        fix dired behaviour on symlinks

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/dired.c?cvsroot=qemacs&r1=1.45&r2=1.46

Patches:
Index: dired.c
===================================================================
RCS file: /sources/qemacs/qemacs/dired.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -b -r1.45 -r1.46
--- dired.c     18 Apr 2014 20:54:28 -0000      1.45
+++ dired.c     25 Apr 2014 20:05:32 -0000      1.46
@@ -829,17 +829,17 @@
         return;
 
     /* now we can act */
-    if (lstat(filename, &st) < 0)
-        return;
-    if (S_ISDIR(st.st_mode)) {
+    if (lstat(filename, &st) >= 0 && S_ISDIR(st.st_mode)) {
+        /* do not descend into directories pointed to by symlinks */
         dired_build_list(s, filename, NULL);
     } else
-    if (S_ISREG(st.st_mode)) {
+    if (stat(filename, &st) >= 0 && S_ISREG(st.st_mode)) {
+        /* do explore files pointed to by symlinks */
         e = find_window(s, KEY_RIGHT);
         if (e) {
             /* delete dired window */
             do_delete_window(s, 1);
-            /* remove preview flag */
+            /* XXX: should keep BF_PREVIEW flag and set pager-mode */
             e->b->flags &= ~BF_PREVIEW;
         } else {
             do_find_file(s, filename);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]