GNU bug report logs - #41424
26.1; default-directory in *Completions* buffer

Previous Next

Package: emacs;

Reported by: Omar Antolín Camarena <omar <at> matem.unam.mx>

Date: Wed, 20 May 2020 17:50:02 UTC

Severity: minor

Tags: moreinfo

Merged with 41412

Found in versions 26.1, 27.0.90

Fixed in version 29.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


Message #22 received at 41424 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: Omar Antolín Camarena <omar <at> matem.unam.mx>,
 41424 <at> debbugs.gnu.org, 41412 <at> debbugs.gnu.org,
 Stefan Kangas <stefankangas <at> gmail.com>
Subject: Re: bug#41424: 26.1; default-directory in *Completions* buffer
Date: Mon, 09 May 2022 13:00:13 +0200
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:

> I think the correct thing to do is to look at the `(cdr (last completions))`
> where `completions` is what `completion-all-completions` returned.
> That gives what used to be called `completion-base-size`.

The call sequence here seems to be somewhat convoluted, so I'm not sure
how to get at that.  But wouldn't just doing the following simple patch
fix the issue without regressing anything?


diff --git a/lisp/simple.el b/lisp/simple.el
index 861d9eefde..65b2a482e2 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -9495,9 +9495,11 @@ completion-setup-function
           ;; - With fancy completion styles, the code below will not always
           ;;   find the right base directory.
           (if minibuffer-completing-file-name
-              (file-name-as-directory
-               (expand-file-name
-                (buffer-substring (minibuffer-prompt-end) (point)))))))
+              (let ((file (expand-file-name
+                           (buffer-substring (minibuffer-prompt-end) (point)))))
+                (if (file-directory-p file)
+                    (file-name-as-directory file)
+                  (file-name-directory file))))))
     (with-current-buffer standard-output
       (let ((base-position completion-base-position)
             (base-affixes completion-base-affixes)


-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




This bug report was last modified 2 years and 352 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.