GNU bug report logs -
#67171
30.0.50; (At least) some VC commands fail with project-prefix-or-any-command
Previous Next
Reported by: Sean Whitton <spwhitton <at> spwhitton.name>
Date: Tue, 14 Nov 2023 13:14:01 UTC
Severity: normal
Found in version 30.0.50
Done: Sean Whitton <spwhitton <at> spwhitton.name>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
On 06/12/2023 00:40, Sean Whitton wrote:
> Alright, I've bisected it. After step 3, additionally eval this form:
>
> (define-key project-prefix-map "L" #'vc-print-root-log)
>
> I have this because I want to be able to type just L instead of C-x v L.
> That doesn't work -- possibly not a bug -- but surely adding that
> binding shouldn't affect C-x v L, at least?
All right, the full scenario is unexpected, but otherwise it's a
documented behavior, see the docstring for 'project-any-command'.
We discussed the possibility of the override in the other way (in
bug#63648, which resulted in this command), but not an opt-out for
commands in project-prefix-map, yet.
So... something like this?
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index a81bb63fba4..feef7ba5248 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -1861,9 +1861,10 @@ project-any-command
(when command
;; We could also check the command name against "\\`project-",
;; and/or (get command 'project-command).
- (map-keymap
- (lambda (_evt cmd) (if (eq cmd command) (setq found t)))
- project-prefix-map)
+ (unless (get command 'project-switch-with-default-directory)
+ (map-keymap
+ (lambda (_evt cmd) (if (eq cmd command) (setq found t)))
+ project-prefix-map))
(if found
(let ((project-current-directory-override root))
(call-interactively command))
Combined with
(put 'vc-print-root-log 'project-switch-with-default-directory t)
somewhere in your init script.
The alternative would be tagging all project-related commands. Even if
we also check for the 'project-' prefix in command's name, the
user-defined commands using the project API will be affected (I don't
know for how many it would be a problem, but still).
This bug report was last modified 1 year and 222 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.