summaryrefslogtreecommitdiff
path: root/lisp/dired-x.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/dired-x.el')
-rw-r--r--lisp/dired-x.el25
1 files changed, 14 insertions, 11 deletions
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index 073923e09c9..a7bfae759ed 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -975,17 +975,20 @@ See `dired-guess-shell-alist-user'."
(let* ((case-fold-search dired-guess-shell-case-fold-search)
(programs
(delete-dups
- (seq-reduce
- #'append
- (mapcar #'cdr
- (seq-filter (lambda (elem)
- (seq-every-p
- (lambda (file)
- (string-match-p (car elem) file))
- files))
- (append dired-guess-shell-alist-user
- dired-guess-shell-alist-default)))
- nil))))
+ (mapcar
+ (lambda (command)
+ (eval command `((file . ,(car files)))))
+ (seq-reduce
+ #'append
+ (mapcar #'cdr
+ (seq-filter (lambda (elem)
+ (seq-every-p
+ (lambda (file)
+ (string-match-p (car elem) file))
+ files))
+ (append dired-guess-shell-alist-user
+ dired-guess-shell-alist-default)))
+ nil)))))
(if (length= programs 1)
(car programs)
programs)))