Fix Dired when ls-lisp is used and the -a switch is not used.
authorIngo Lohmar <i.lohmar@gmail.com>
Sat, 27 Apr 2013 16:55:29 +0000 (19:55 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 27 Apr 2013 16:55:29 +0000 (19:55 +0300)
 lisp/ls-lisp.el (ls-lisp-insert-directory): If no files are
 displayed, move point to after the totals line.  See
 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00677.html
 for the details.

lisp/ChangeLog
lisp/ls-lisp.el

index 61d6af8..6ae6e33 100644 (file)
@@ -1,3 +1,10 @@
+2013-04-27  Ingo Lohmar  <i.lohmar@gmail.com>  (tiny change)
+
+       * ls-lisp.el (ls-lisp-insert-directory): If no files are
+       displayed, move point to after the totals line.  See
+       http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00677.html
+       for the details.
+
 2013-04-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * emacs-lisp/package.el (package-autoload-ensure-default-file):
index 70ee439..60d6b7b 100644 (file)
@@ -404,6 +404,13 @@ not contain `d', so that a full listing is expected."
                ;; the wildcard; let's say something similar.
                (insert "(No match)\n"))
            (insert (format "total %.0f\n" (fceiling (/ sum 1024.0))))))
+       ;; dired-insert-directory exprects to find point after the
+       ;; text.  But if the listinmg is empty, as e.g. in empty
+       ;; directories with -a removed from switches, point will be
+       ;; before the inserted text, and dired-insert-directory will
+       ;; not indent the listing correctly.  Going to the end of the
+       ;; buffer fixes that.
+       (unless files (goto-char (point-max)))
        (if (memq ?R switches)
            ;; List the contents of all directories recursively.
            ;; cadr of each element of `file-alist' is t for