Subject: bug#65120: 29.1; directory-abbrev-alist breaks various things when inside an abbreviated directory

From: Eli Zaretskii <[email-masked]>
Date: Mon, 07 Aug 2023 18:45:55 +0300

> From: Sean Allred <[email-masked]>
> Date: Sun, 06 Aug 2023 18:35:22 -0500
> 
> Emacs behaves oddly inside abbreviated directories when
> `directory-abbrev-alist' is set.
> 
>     $ emacs -Q
>     lisp> (setq directory-abbrev-alist `(("~/tmp" . "tmp")))
>     keys> C-x d ~/tmp RET
>     keys> C-x C-f
> 
> I see "tmp/" in the minibuffer and no completions are available.
> 
> I've also seen (dired "~/tmp") fail on Windows in this scenario --
> complaining that the directory is inaccessible. On both systems, ~/tmp
> does exist (and has content) and behaves as expected if
> `directory-abbrev-alist' is nil.

This is not how directory-abbrev-alist should be used, according to
documentation.  The cdr of each alist element ("tmp" in your case) is
supposed to be an absolute file name, and "tmp" isn't.  Also, the car
of each element is supposed to be an anchored regexp.

What did you want to accomplish with directory-abbrev-alist such as
the above, and why did you want that?