aboutsummaryrefslogtreecommitdiff
path: root/binutils/dwarf-mode.el
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-10-06 13:18:31 -0600
committerTom Tromey <tom@tromey.com>2017-10-10 13:01:42 -0600
commit22b63797983f485041a2a424e6cd7732f4318885 (patch)
treed3bd132ac6efadad41ec0182309d4948a031c37f /binutils/dwarf-mode.el
parent65630365f7d073430e62b4fe65f34dcdc0a4b05e (diff)
downloadgdb-22b63797983f485041a2a424e6cd7732f4318885.zip
gdb-22b63797983f485041a2a424e6cd7732f4318885.tar.gz
gdb-22b63797983f485041a2a424e6cd7732f4318885.tar.bz2
Bind keys in dwarf-mode-map definition
It's bad Emacs style to define keys from a top-level form. Instead, one should define a mode map separately and binding keys in the definition. This lets users completely override the map by defining it before loading the mode. 2017-10-10 Tom Tromey <tom@tromey.com> * dwarf-mode.el (dwarf-mode-map): New defvar.
Diffstat (limited to 'binutils/dwarf-mode.el')
-rw-r--r--binutils/dwarf-mode.el9
1 files changed, 7 insertions, 2 deletions
diff --git a/binutils/dwarf-mode.el b/binutils/dwarf-mode.el
index a944a77..c2c01ee 100644
--- a/binutils/dwarf-mode.el
+++ b/binutils/dwarf-mode.el
@@ -141,6 +141,13 @@ A prefix argument means expand all children."
(expand-file-name dwarf-file)))
(set-buffer-modified-p nil)))
+(defvar dwarf-mode-map
+ (let ((map (make-sparse-keymap)))
+ (set-keymap-parent map special-mode-map)
+ (define-key map [(control ?m)] #'dwarf-insert-substructure)
+ map)
+ "Keymap for dwarf-mode buffers.")
+
(define-derived-mode dwarf-mode special-mode "DWARF"
"Major mode for browsing DWARF output.
@@ -151,8 +158,6 @@ A prefix argument means expand all children."
(set (make-local-variable 'revert-buffer-function) #'dwarf-do-refresh)
(jit-lock-register #'dwarf-fontify-region))
-(define-key dwarf-mode-map [(control ?m)] #'dwarf-insert-substructure)
-
;;;###autoload
(defun dwarf-browse (file)
"Invoke `objdump' and put output into a `dwarf-mode' buffer.