[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);