From db522da5d27c9fe90cae64ab80c659068fbb29c2 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Fri, 15 May 2026 02:31:43 -0500 Subject: 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. --- modules/system-commands.el | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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) -- cgit v1.2.3