[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#25187: Initialization of `shell-mode-map' is not safe
From: |
Alexander Shukaev |
Subject: |
bug#25187: Initialization of `shell-mode-map' is not safe |
Date: |
Tue, 13 Dec 2016 00:08:07 +0100 |
Hi,
consider
(defvar shell-mode-map
(let ((map (nconc (make-sparse-keymap) comint-mode-map)))
(define-key map "\C-c\C-f" 'shell-forward-command)
(define-key map "\C-c\C-b" 'shell-backward-command)
(define-key map "\t" 'completion-at-point)
(define-key map (kbd "M-RET") 'shell-resync-dirs)
(define-key map "\M-?" 'comint-dynamic-list-filename-completions)
(define-key map [menu-bar completion]
(cons "Complete"
(copy-keymap (lookup-key comint-mode-map [menu-bar completion]))))
(define-key-after (lookup-key map [menu-bar completion])
[complete-env-variable] '("Complete Env. Variable Name" .
shell-dynamic-complete-environment-variable)
'complete-file)
(define-key-after (lookup-key map [menu-bar completion])
[expand-directory] '("Expand Directory Reference" .
shell-replace-by-expanded-directory)
'complete-expand)
map))
from 'shell.el'. When somebody decides to customize `comint-mode-map'
by, for example, first wiping it out and then filling it again,
(with-eval-after-load 'comint
;; Wipe `comint-mode-map':
(setcdr comint-mode-map nil)
;; Fill `comint-mode-map':
...)
then when the `shell' feature is loaded, it will inevitably fail because
`(lookup-key comint-mode-map [menu-bar completion])' may no longer
return a keymap but rather nil or a number.
Looking forward for fix.
Regards,
Alexander
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#25187: Initialization of `shell-mode-map' is not safe,
Alexander Shukaev <=