]> git.eshelyaron.com Git - emacs.git/commitdiff
Insert subdir content if dir-or-list is a string w/o wildcards
authorTino Calancha <tino.calancha@gmail.com>
Tue, 1 Aug 2017 14:31:35 +0000 (23:31 +0900)
committerTino Calancha <tino.calancha@gmail.com>
Tue, 1 Aug 2017 14:31:43 +0000 (23:31 +0900)
* lisp/eshell/em-ls.el (eshell-ls--insert-directory):
Append '("-d") into 'eshell-ls-dired-initial-args'
if 'dired-directory' is a cons or there are wildcars (Bug#27843).
* test/lisp/dired-tests.el (dired-test-bug27843): Add test.

lisp/eshell/em-ls.el
test/lisp/dired-tests.el

index 4a5adc48f2b936d94400b4587ee9dd9bbf201da3..39f03ffb79e6e65a0e8e9d278d37a549d5043065 100644 (file)
@@ -278,8 +278,12 @@ instead."
           (let ((insert-func 'insert)
                 (error-func 'insert)
                 (flush-func 'ignore)
-                eshell-ls-dired-initial-args)
-            (eshell-do-ls (append switches (list file)))))))))
+                (switches
+                 (append eshell-ls-dired-initial-args
+                         (and (or (consp dired-directory) wildcard) (list "-d"))
+                         switches)))
+            (eshell-do-ls (nconc switches (list file)))))))))
+
 
 (declare-function eshell-extended-glob "em-glob" (glob))
 (declare-function dired-read-dir-and-switches "dired" (str))
index 0ee4e1378363c47d7669d005a485befb12d16ffc..5900fead7d1b967509cebca4559473b752d02f5b 100644 (file)
       (delete-directory dir 'recursive)
       (when (buffer-live-p buf) (kill-buffer buf)))))
 
+(ert-deftest dired-test-bug27843 ()
+  "Test for http://debbugs.gnu.org/27843 ."
+  (require 'em-ls)
+  (let ((orig eshell-ls-use-in-dired)
+        (dired-use-ls-dired 'unspecified)
+        buf insert-directory-program)
+    (unwind-protect
+        (progn
+          (customize-set-variable 'eshell-ls-use-in-dired t)
+          (setq buf (dired (list source-directory "lisp")))
+          (dired-toggle-marks)
+          (should-not (cdr (dired-get-marked-files))))
+      (customize-set-variable 'eshell-ls-use-in-dired orig)
+      (unload-feature 'em-ls 'force)
+      (and (buffer-live-p buf) (kill-buffer)))))
 
 (provide 'dired-tests)
 ;; dired-tests.el ends here