This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] Bind keys in dwarf-mode-map definition
- From: Tom Tromey <tromey at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 10 Oct 2017 19:01:57 -0000
- Subject: [binutils-gdb] Bind keys in dwarf-mode-map definition
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=22b63797983f485041a2a424e6cd7732f4318885
commit 22b63797983f485041a2a424e6cd7732f4318885
Author: Tom Tromey <tom@tromey.com>
Date: Fri Oct 6 13:18:31 2017 -0600
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.
Diff:
---
binutils/ChangeLog | 4 ++++
binutils/dwarf-mode.el | 9 +++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 9f2e5f0..7a7edab 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2017-10-10 Tom Tromey <tom@tromey.com>
+
+ * dwarf-mode.el (dwarf-mode-map): New defvar.
+
2017-10-10 Tom Tromey <tromey@sourceware.org>
PR 22249
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.