unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#41424: 26.1; default-directory in *Completions* buffer
@ 2020-05-20 17:49 Omar Antolín Camarena
  2021-01-22 20:28 ` bug#41424: bug#41412: 27.0.90; Value of default directory in completions buffer Lars Ingebrigtsen
  0 siblings, 1 reply; 7+ messages in thread
From: Omar Antolín Camarena @ 2020-05-20 17:49 UTC (permalink / raw)
  To: 41424


There is a bit of logic in `complete-setup-function' (from simple.el) to set the default directory in the *Completions* buffer:

;; FIXME: This is a bad hack.  We try to set the default-directory
;; in the *Completions* buffer so that the relative file names
;; displayed there can be treated as valid file names, independently
;; from the completion context.  But this suffers from many problems:
;; - It's not clear when the completions are file names.  With some
;;   completion tables (e.g. bzr revision specs), the listed
;;   completions can mix file names and other things.
;; - It doesn't pay attention to possible quoting.
;; - 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) (or completion-base-size 0))))))

As the comment says, this is brittle, but better than nothing. I believe, however, that the `file-name-as-directory' is a typo and probably `file-name-directory' was intended instead.

Say you have a directory ~/foo with files baz and bar. If you are completing file names and have type ~/foo/b the completions are bar and baz. The most useful value for default-directory in the *Completions* buffer would be ~/foo/, but the current code sets it to the non-existent ~/foo/b/ instead. If `complete-setup-function' were changed to use `file-name-directory' instead, then the default-directory would be set to ~/foo/.

Of course, there is no correct default-directory in general. As the comment mentions, sometimes only some of the completions are file names, and even those completions that are file names need not all be in the same directory. But I think this change would make the default-directory useful in many more cases than it currently is: now it basically is only a good guess when what you've type so far is a directory name.

With my suggested fix it's still easy to get useless default-directories. For example with directories:

~/foo: bar baz
~/fez: bing boom

the partial-completion completion style will produce the following completions for ~/f/b:

fez/bing fez/boom foo/bar foo/baz

The most useful default-directory for the *Completions* buffer would be ~/, of course. The current code would give ~/f/b/ and my proposed "fix" would produce ~/f/

To my mind a good compromise would be to ignore all the possible fancy completion tables and focus on behavior that is correct for read-file-name under the partial-completion completion style. (In principle the most reasonable default-directory could be computed from just the contents of the *Completions* buffer, but it might be convenient to "cheat" and use the minibuffer contents, as the current `completion-setup-function' does --and if Emacs does "cheat", it would be good for the cheat to work with partial-completion of paths.)

But the above "good compromise" would take some work that I haven't carefully thought out. I think simply changing `file-name-directory' to `file-name-as-directory' would be a clear improvement with no reason not to do it.


In GNU Emacs 26.1 (build 1, x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2019-09-22, modified by Debian built on x86-grnet-01
Windowing system distributor 'The X.Org Foundation', version 11.0.12001000
Recent messages:
Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...
Loading debian-ispell...
Loading /var/cache/dictionaries-common/emacsen-ispell-default.el (source)...done
Loading debian-ispell...done
Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)...done
Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...done
Loading mb-depth...done
Loading minibuf-eldef...done
For information about GNU Emacs and the GNU system, type C-h C-a.
Making completion list... [16 times]

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --enable-libsystemd --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/26.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --build
 x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib
 --libexecdir=/usr/lib --localstatedir=/var/lib
 --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd
 --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/26.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --with-x=yes
 --with-x-toolkit=lucid --with-toolkit-scroll-bars --without-gsettings
 'CFLAGS=-g -O2 -fdebug-prefix-map=/build/emacs-StqULU/emacs-26.1+1=.
 -fstack-protector-strong -Wformat -Werror=format-security -Wall'
 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Configured features:
XAW3D XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS NOTIFY ACL
LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS LUCID X11 THREADS LIBSYSTEMD LCMS2

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  diff-auto-refine-mode: t
  goto-address-prog-mode: t
  show-paren-mode: t
  electric-pair-mode: t
  beginend-global-mode: t
  beginend-prog-mode: t
  global-dot-mode: t
  dot-mode: t
  global-gobble-whitespace-mode: t
  live-completions-mode: t
  restricto-mode: t
  minibuffer-electric-default-mode: t
  minibuffer-depth-indicate-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ox hides /usr/share/emacs/26.1/lisp/org/ox
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ox-texinfo hides /usr/share/emacs/26.1/lisp/org/ox-texinfo
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ox-publish hides /usr/share/emacs/26.1/lisp/org/ox-publish
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ox-org hides /usr/share/emacs/26.1/lisp/org/ox-org
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ox-odt hides /usr/share/emacs/26.1/lisp/org/ox-odt
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ox-md hides /usr/share/emacs/26.1/lisp/org/ox-md
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ox-man hides /usr/share/emacs/26.1/lisp/org/ox-man
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ox-latex hides /usr/share/emacs/26.1/lisp/org/ox-latex
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ox-icalendar hides /usr/share/emacs/26.1/lisp/org/ox-icalendar
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ox-html hides /usr/share/emacs/26.1/lisp/org/ox-html
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ox-beamer hides /usr/share/emacs/26.1/lisp/org/ox-beamer
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ox-ascii hides /usr/share/emacs/26.1/lisp/org/ox-ascii
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org hides /usr/share/emacs/26.1/lisp/org/org
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-timer hides /usr/share/emacs/26.1/lisp/org/org-timer
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-table hides /usr/share/emacs/26.1/lisp/org/org-table
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-src hides /usr/share/emacs/26.1/lisp/org/org-src
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-protocol hides /usr/share/emacs/26.1/lisp/org/org-protocol
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-plot hides /usr/share/emacs/26.1/lisp/org/org-plot
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-pcomplete hides /usr/share/emacs/26.1/lisp/org/org-pcomplete
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-mouse hides /usr/share/emacs/26.1/lisp/org/org-mouse
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-mobile hides /usr/share/emacs/26.1/lisp/org/org-mobile
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-macs hides /usr/share/emacs/26.1/lisp/org/org-macs
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-macro hides /usr/share/emacs/26.1/lisp/org/org-macro
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-list hides /usr/share/emacs/26.1/lisp/org/org-list
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-lint hides /usr/share/emacs/26.1/lisp/org/org-lint
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-inlinetask hides /usr/share/emacs/26.1/lisp/org/org-inlinetask
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-indent hides /usr/share/emacs/26.1/lisp/org/org-indent
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-id hides /usr/share/emacs/26.1/lisp/org/org-id
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-habit hides /usr/share/emacs/26.1/lisp/org/org-habit
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-footnote hides /usr/share/emacs/26.1/lisp/org/org-footnote
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-feed hides /usr/share/emacs/26.1/lisp/org/org-feed
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-faces hides /usr/share/emacs/26.1/lisp/org/org-faces
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-entities hides /usr/share/emacs/26.1/lisp/org/org-entities
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-element hides /usr/share/emacs/26.1/lisp/org/org-element
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-duration hides /usr/share/emacs/26.1/lisp/org/org-duration
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-datetree hides /usr/share/emacs/26.1/lisp/org/org-datetree
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-ctags hides /usr/share/emacs/26.1/lisp/org/org-ctags
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-crypt hides /usr/share/emacs/26.1/lisp/org/org-crypt
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-compat hides /usr/share/emacs/26.1/lisp/org/org-compat
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-colview hides /usr/share/emacs/26.1/lisp/org/org-colview
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-clock hides /usr/share/emacs/26.1/lisp/org/org-clock
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-capture hides /usr/share/emacs/26.1/lisp/org/org-capture
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-attach hides /usr/share/emacs/26.1/lisp/org/org-attach
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-archive hides /usr/share/emacs/26.1/lisp/org/org-archive
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-agenda hides /usr/share/emacs/26.1/lisp/org/org-agenda
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob hides /usr/share/emacs/26.1/lisp/org/ob
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-vala hides /usr/share/emacs/26.1/lisp/org/ob-vala
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-tangle hides /usr/share/emacs/26.1/lisp/org/ob-tangle
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-table hides /usr/share/emacs/26.1/lisp/org/ob-table
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-stan hides /usr/share/emacs/26.1/lisp/org/ob-stan
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-sqlite hides /usr/share/emacs/26.1/lisp/org/ob-sqlite
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-sql hides /usr/share/emacs/26.1/lisp/org/ob-sql
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-shen hides /usr/share/emacs/26.1/lisp/org/ob-shen
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-shell hides /usr/share/emacs/26.1/lisp/org/ob-shell
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-sed hides /usr/share/emacs/26.1/lisp/org/ob-sed
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-screen hides /usr/share/emacs/26.1/lisp/org/ob-screen
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-scheme hides /usr/share/emacs/26.1/lisp/org/ob-scheme
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-sass hides /usr/share/emacs/26.1/lisp/org/ob-sass
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-ruby hides /usr/share/emacs/26.1/lisp/org/ob-ruby
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-ref hides /usr/share/emacs/26.1/lisp/org/ob-ref
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-python hides /usr/share/emacs/26.1/lisp/org/ob-python
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-processing hides /usr/share/emacs/26.1/lisp/org/ob-processing
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-plantuml hides /usr/share/emacs/26.1/lisp/org/ob-plantuml
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-picolisp hides /usr/share/emacs/26.1/lisp/org/ob-picolisp
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-perl hides /usr/share/emacs/26.1/lisp/org/ob-perl
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-org hides /usr/share/emacs/26.1/lisp/org/ob-org
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-octave hides /usr/share/emacs/26.1/lisp/org/ob-octave
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-ocaml hides /usr/share/emacs/26.1/lisp/org/ob-ocaml
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-mscgen hides /usr/share/emacs/26.1/lisp/org/ob-mscgen
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-maxima hides /usr/share/emacs/26.1/lisp/org/ob-maxima
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-matlab hides /usr/share/emacs/26.1/lisp/org/ob-matlab
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-makefile hides /usr/share/emacs/26.1/lisp/org/ob-makefile
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-lua hides /usr/share/emacs/26.1/lisp/org/ob-lua
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-lob hides /usr/share/emacs/26.1/lisp/org/ob-lob
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-lisp hides /usr/share/emacs/26.1/lisp/org/ob-lisp
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-lilypond hides /usr/share/emacs/26.1/lisp/org/ob-lilypond
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-ledger hides /usr/share/emacs/26.1/lisp/org/ob-ledger
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-latex hides /usr/share/emacs/26.1/lisp/org/ob-latex
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-js hides /usr/share/emacs/26.1/lisp/org/ob-js
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-java hides /usr/share/emacs/26.1/lisp/org/ob-java
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-io hides /usr/share/emacs/26.1/lisp/org/ob-io
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-hledger hides /usr/share/emacs/26.1/lisp/org/ob-hledger
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-haskell hides /usr/share/emacs/26.1/lisp/org/ob-haskell
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-groovy hides /usr/share/emacs/26.1/lisp/org/ob-groovy
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-gnuplot hides /usr/share/emacs/26.1/lisp/org/ob-gnuplot
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-fortran hides /usr/share/emacs/26.1/lisp/org/ob-fortran
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-forth hides /usr/share/emacs/26.1/lisp/org/ob-forth
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-exp hides /usr/share/emacs/26.1/lisp/org/ob-exp
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-eval hides /usr/share/emacs/26.1/lisp/org/ob-eval
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-emacs-lisp hides /usr/share/emacs/26.1/lisp/org/ob-emacs-lisp
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-ebnf hides /usr/share/emacs/26.1/lisp/org/ob-ebnf
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-dot hides /usr/share/emacs/26.1/lisp/org/ob-dot
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-ditaa hides /usr/share/emacs/26.1/lisp/org/ob-ditaa
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-css hides /usr/share/emacs/26.1/lisp/org/ob-css
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-core hides /usr/share/emacs/26.1/lisp/org/ob-core
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-coq hides /usr/share/emacs/26.1/lisp/org/ob-coq
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-comint hides /usr/share/emacs/26.1/lisp/org/ob-comint
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-clojure hides /usr/share/emacs/26.1/lisp/org/ob-clojure
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-calc hides /usr/share/emacs/26.1/lisp/org/ob-calc
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-awk hides /usr/share/emacs/26.1/lisp/org/ob-awk
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-asymptote hides /usr/share/emacs/26.1/lisp/org/ob-asymptote
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-abc hides /usr/share/emacs/26.1/lisp/org/ob-abc
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-R hides /usr/share/emacs/26.1/lisp/org/ob-R
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-J hides /usr/share/emacs/26.1/lisp/org/ob-J
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/ob-C hides /usr/share/emacs/26.1/lisp/org/ob-C
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-version hides /usr/share/emacs/26.1/lisp/org/org-version
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-loaddefs hides /usr/share/emacs/26.1/lisp/org/org-loaddefs
/home/omarantolin/.emacs.d/elpa/org-plus-contrib-20200518/org-install hides /usr/share/emacs/26.1/lisp/org/org-install

Features:
(shadow sort bbdb-message mailalias bbdb-mua bbdb-com crm bbdb bbdb-site
timezone mail-extr misc emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml mml-sec epa derived epg gnus-util rmail
rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mail-utils vc-git diff-mode misc-text find-func goto-addr thingatpt
email-config pdf-loader paren elec-pair ace-link avy ring beginend
dot-mode eval-region-advice gobble-whitespace live-completions regexpect
restricto minibuf-eldef mb-depth completing-history block-undo
modus-vivendi-theme modus-operandi-theme cus-edit cus-start cus-load
wid-edit mm-util mail-prsvr diminish cl-extra help-mode use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core finder-inf
tex-site slime-autoloads info package easymenu epg-config url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv
edmacro kmacro cl-loaddefs cl-lib time-date mule-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win
x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote dbusbind inotify lcms2 dynamic-setting font-render-setting
x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 353481 17018)
 (symbols 48 33822 1)
 (miscs 40 341 103)
 (strings 32 98435 4175)
 (string-bytes 1 2527759)
 (vectors 16 27936)
 (vector-slots 8 678970 15708)
 (floats 8 142 262)
 (intervals 56 325 0)
 (buffers 992 13))





^ permalink raw reply	[flat|nested] 7+ messages in thread
* bug#41412: 27.0.90; Value of default directory in completions buffer
@ 2020-05-19 23:06 Karthik Chikmagalur
  0 siblings, 0 replies; 7+ messages in thread
From: Karthik Chikmagalur @ 2020-05-19 23:06 UTC (permalink / raw)
  To: 41412


The value of `default-directory' in the completions buffer is wrong when
there is a partial completion inserted in the minibuffer.

Steps to reproduce:

1. Start `emacs -Q'
2. C-x C-f to start finding a file
3. Enter a string (at least one character) and hit tab to pop up the
completions buffer. Let's say this string was "test"
4. The completions buffer will have completions starting with
"test". (We need at least one candidate).
5. C-h v default-directory
6. The value of `default-directory' in the completions buffer is set to
"~/test/", or the current directory + whatever string the user entered
into the minibuffer.


In GNU Emacs 27.0.90 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.13, cairo version 1.17.3)
 of 2020-03-31 built on thinkpad
Repository revision: ac3da1dd9626bc475e78b18c0b438435790e8926
Repository branch: makepkg
Windowing system distributor 'The X.Org Foundation', version 11.0.12008000
System Description: Manjaro Linux

Recent messages:
Making completion list...
Quit [2 times]
Making completion list... [2 times]

Quit
You can run the command ‘load-theme’ with M-x lo-t RET
Use +,-,0 for further adjustment [2 times]
Making completion list...
Type "q" in help window to delete it.
Quit [3 times]
Quit
Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
 --with-sound=alsa --with-modules --without-gconf --without-gsettings
 --with-x-toolkit=gtk3 --without-xaw3d --without-m17n-flt --with-cairo
 --without-compress-install 'CFLAGS=-march=x86-64 -mtune=generic -O2
 -pipe -fstack-protector-strong -fno-plt -g -flto -g -flto -s
 -fuse-ld=gold' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GLIB NOTIFY INOTIFY ACL
LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ LIBOTF ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON
PDUMPER LCMS2 GMP

Important settings:
  value of $LC_MONETARY: en_US.UTF-8
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  shell-dirtrack-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml mml-sec password-cache epa derived epg epg-config
gnus-util rmail rmail-loaddefs text-property-search mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils face-remap
dichromacy-theme time-date misearch multi-isearch vc-git diff-mode
easy-mmode cl-extra seq byte-opt gv bytecomp byte-compile cconv pp
cl-print mode-local find-func thingatpt help-fns radix-tree help-mode
easymenu shell pcomplete comint ansi-color ring dabbrev embark edmacro
kmacro cl-loaddefs cl-lib pcase subr-x tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind inotify lcms2 dynamic-setting
font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 68828 9827)
 (symbols 48 7742 1)
 (strings 32 23173 2123)
 (string-bytes 1 702281)
 (vectors 16 12996)
 (vector-slots 8 159649 11786)
 (floats 8 46 26)
 (intervals 56 330 0)
 (buffers 1000 17))





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-05-09 11:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-20 17:49 bug#41424: 26.1; default-directory in *Completions* buffer Omar Antolín Camarena
2021-01-22 20:28 ` bug#41424: bug#41412: 27.0.90; Value of default directory in completions buffer Lars Ingebrigtsen
2021-01-22 22:50   ` Stefan Monnier
2021-01-23 18:47     ` bug#41424: " Lars Ingebrigtsen
2021-01-23 22:00       ` Stefan Monnier
2022-05-09 11:00         ` bug#41412: bug#41424: 26.1; default-directory in *Completions* buffer Lars Ingebrigtsen
  -- strict thread matches above, loose matches on Subject: below --
2020-05-19 23:06 bug#41412: 27.0.90; Value of default directory in completions buffer Karthik Chikmagalur

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).