summaryrefslogtreecommitdiff
path: root/lisp/ibuf-ext.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/ibuf-ext.el')
-rw-r--r--lisp/ibuf-ext.el35
1 files changed, 19 insertions, 16 deletions
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index f5375612c34..6052bf32ce3 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -1403,7 +1403,7 @@ You can then feed the file name(s) to other commands with \\[yank]."
(if (zerop (ibuffer-count-marked-lines))
(message "No buffers marked; use 'm' to mark a buffer")
(let ((ibuffer-copy-filename-as-kill-result "")
- (type (cond ((zerop arg)
+ (type (cond ((or (null arg) (zerop arg))
'full)
((= arg 4)
'relative)
@@ -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)
@@ -1598,7 +1601,7 @@ defaults to one."
(provide 'ibuf-ext)
;; Local Variables:
-;; generated-autoload-file: "ibuffer.el"
+;; generated-autoload-file: "ibuffer-loaddefs.el"
;; End:
;;; ibuf-ext.el ends here