aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-15 02:31:43 -0500
committerCraig Jennings <c@cjennings.net>2026-05-15 02:31:43 -0500
commitdb522da5d27c9fe90cae64ab80c659068fbb29c2 (patch)
treed9998d0d375b88022bad9388e6fc00e4b8e6b8f7
parent02ef1255e46d1138383e16054a92bd559cd50dcf (diff)
downloaddotemacs-db522da5d27c9fe90cae64ab80c659068fbb29c2.tar.gz
dotemacs-db522da5d27c9fe90cae64ab80c659068fbb29c2.zip
fix(system-commands): require keybindings at load time, not just compile time
The module had `(eval-when-compile (require 'keybindings))`, which silences the byte-compiler but doesn't make `cj/custom-keymap' available when the module is required. The top-level `(keymap-set cj/custom-keymap "!" cj/system-command-map)' at the tail of the file then fails with `void-variable cj/custom-keymap'. Normal Emacs startup happened to work because `init.el' requires `keybindings' before `system-commands'. But requiring the module in isolation -- including from `make test-file FILE=test-system-commands-resolve-and-run.el' -- blows up. Fix: use a plain `(require 'keybindings)' so the load-time dependency matches the load-time reference.
-rw-r--r--modules/system-commands.el7
1 files changed, 6 insertions, 1 deletions
diff --git a/modules/system-commands.el b/modules/system-commands.el
index 64eb5e79..bd22468c 100644
--- a/modules/system-commands.el
+++ b/modules/system-commands.el
@@ -19,7 +19,12 @@
;;
;;; Code:
-(eval-when-compile (require 'keybindings))
+;; `keybindings' provides `cj/custom-keymap', which is referenced at load
+;; time by the `keymap-set' call at the tail of this file. An
+;; `eval-when-compile' require would silence the byte-compiler but leave
+;; the load-time reference void if anything required `system-commands'
+;; before `keybindings'. Make the dependency explicit.
+(require 'keybindings)
(eval-when-compile (require 'subr-x))
(require 'rx)