summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/dired.el10
1 files changed, 7 insertions, 3 deletions
diff --git a/lisp/dired.el b/lisp/dired.el
index 90d944c5dd4..17c8ba5f123 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -2888,15 +2888,19 @@ is controlled by `dired-movement-style'."
(setq wrapped t))
;; `bounded': go back to the last non-empty line.
(dired-movement-style ; Either 'bounded or anything else non-nil.
- (while (and (dired-between-files) (not (zerop arg)))
+ (while (and (dired-between-files)
+ (not (dired-get-subdir))
+ (not (zerop arg)))
(funcall jumpfun (- moving-down))
;; Point not moving means infinite loop.
(if (= old-position (point))
(setq arg 0)
(setq old-position (point))))
;; Encountered a boundary, so let's stop movement.
- (setq arg (if (dired-between-files) 0 moving-down)))))
- (unless (dired-between-files)
+ (setq arg (if (and (dired-between-files)
+ (not (dired-get-subdir)))
+ 0 moving-down)))))
+ (unless (and (dired-between-files) (not (dired-get-subdir)))
;; Has moved to a non-empty line. This movement does
;; make sense.
(cl-decf arg moving-down))