diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el index e6977f2012a..cd80df2c41d 100644 --- a/lisp/emacs-lisp/nadvice.el +++ b/lisp/emacs-lisp/nadvice.el @@ -176,7 +176,9 @@ DOC is a string where \"FUNCTION\" and \"OLDFUN\" are expected.") ;; FIXME: Despite appearances, this is not faithful: SPEC and ;; (advice-eval-interactive-spec SPEC) will behave subtly differently w.r.t ;; command-history (and maybe a few other details). - (call-interactively `(lambda (&rest args) (interactive ,spec) args))) + (call-interactively + ;; Sadly (lambda (&rest args) (interactive spec) args) doesn't work :-( + (cconv--interactive-helper (lambda (&rest args) args) spec))) ;; ((functionp spec) (funcall spec)) (t (eval spec)))) diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 804fb0773c3..a1ee5a0396e 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -2395,7 +2395,11 @@ These include: (prefix (unless (zerop base-size) (substring string 0 base-size))) (base-prefix (buffer-substring (minibuffer--completion-prompt-end) (+ start base-size))) - (base-suffix (buffer-substring (point) (point-max))) + (base-suffix + (if (eq (alist-get 'category (cdr md)) 'file) + (buffer-substring (save-excursion (or (search-forward "/" nil t) (point-max))) + (point-max)) + "")) (all-md (completion--metadata (buffer-substring-no-properties start (point)) base-size md