diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-15 02:31:43 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-15 02:31:43 -0500 |
| commit | f51f8dfb94550ec1a3c902b9618d50641d6b24a4 (patch) | |
| tree | f1aa610ab3101f874af9d2c95b85a16b97c13be5 /modules | |
| parent | c2a00bd0d05d80b2534700e7b759e552722664e8 (diff) | |
| download | dotemacs-f51f8dfb94550ec1a3c902b9618d50641d6b24a4.tar.gz dotemacs-f51f8dfb94550ec1a3c902b9618d50641d6b24a4.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.
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/system-commands.el | 7 |
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) |
