|
From: | Gregory Heytings |
Subject: | bug#42383: 28.0.50; Two bugs with M-x compile |
Date: | Thu, 16 Jul 2020 09:48:56 +0000 |
User-agent: | Alpine 2.21 (NEB 202 2017-01-01) |
** Bug 1 ** Steps to reproduce: 1. create a Makefile with a few targets 2. start emacs -Q 3. M-x compile 4. press TAB: the list of targets is displayed 5. type the first character of an existing target, and press TAB 6. the result is a "[No match]"This has been working correctly for years (tested with Emacs 24, 25, 26), and does not work anymore with Emacs 28.It seems that at step 5 above the list of completion candidates that is considered are subdirectories.
Upon further investigation, this bug has been introduced by the patch for bug#34330, which moved pcomplete-completions-at-point last in shell-dynamic-complete-functions in shell.el:
(defcustom shell-dynamic-complete-functions '(comint-c-a-p-replace-by-expanded-history shell-environment-variable-completion shell-command-completion shell-c-a-p-replace-by-expanded-directory shell-filename-completion comint-filename-completion ;; Put `pcomplete-completions-at-point' last so that other ;; functions can run before it does, see bug#34330. pcomplete-completions-at-point) See https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=e4d17d8cb479ffeeb7dfb7320a1432722ac8df75 .The obvious fix is to revert the situation (that is, to move pcomplete-completions-at-point again before shell-filename-completion), but I'm not sure, because bug#34330 would again exist. That being said, I'm not sure that handling the exceptional case of filenames with '&' characters correctly when completing in M-x shell (which is what bug#34330 is about) justifies to break normal behavior in other situations.
Gregory
[Prev in Thread] | Current Thread | [Next in Thread] |