]> code.delx.au - gnu-emacs/commitdiff
Completely ignore buffers with no name when copying file names
authorTino Calancha <f92capac@gmail.com>
Tue, 23 Feb 2016 09:12:59 +0000 (20:12 +1100)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 23 Feb 2016 09:12:59 +0000 (20:12 +1100)
* lisp/ibuf-ext.el (ibuffer-copy-filename-as-kill): Completely
ignore buffers with no file name. (bug#21577).

lisp/ibuf-ext.el

index 1d6182596ed4f0916e4e284ab45f4aae3223dc36..aa3ccbd40f7b9805411090b73ca7650a2d0774b4 100644 (file)
@@ -1412,20 +1412,23 @@ You can then feed the file name(s) to other commands with \\[yank]."
       (ibuffer-map-marked-lines
        #'(lambda (buf _mark)
           (setq ibuffer-copy-filename-as-kill-result
-                (concat ibuffer-copy-filename-as-kill-result
-                        (let ((name (buffer-file-name buf)))
-                          (if name
-                              (pcase type
-                                (`full
-                                 name)
-                                (`relative
-                                 (file-relative-name
-                                  name (or ibuffer-default-directory
-                                           default-directory)))
-                                (_
-                                 (file-name-nondirectory name)))
-                            ""))
-                        " "))))
+                 (concat ibuffer-copy-filename-as-kill-result
+                         (let ((name (buffer-file-name buf)))
+                           (cond (name
+                                  (concat
+                                   (pcase type
+                                     (`full
+                                      name)
+                                     (`relative
+                                      (file-relative-name
+                                       name (or ibuffer-default-directory
+                                                default-directory)))
+                                     (_
+                                      (file-name-nondirectory name))) " "))
+                                 (t "")))))))
+      (when (not (zerop (length ibuffer-copy-filename-as-kill-result)))
+        (setq ibuffer-copy-filename-as-kill-result
+              (substring ibuffer-copy-filename-as-kill-result 0 -1)))
       (kill-new ibuffer-copy-filename-as-kill-result))))
 
 (defun ibuffer-mark-on-buffer (func &optional ibuffer-mark-on-buffer-mark group)