summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Oteiza <mvoteiza@udel.edu>2016-07-08 21:10:32 -0400
committerMark Oteiza <mvoteiza@udel.edu>2016-07-08 21:10:32 -0400
commit7095596ac3ece75b7fb98be7a47e4715a54842c2 (patch)
tree0874266b248fbdcfbd3674aa183fc0daf9fc1033
parentbdda4855c635ecf4135e23321bdba023e9ae65c9 (diff)
Derive secrets-mode from special-mode
* lisp/net/secrets.el: Remove top-level secrets-mode hack. (secrets-mode-map): New variable. Add key bindings to n and p for navigating lines. (secrets-mode): Derive from special-mode. Remove keymap code and initialization code. Do not record undo information. Make secrets-show-collections the local revert-buffer-function. (secrets-show-collections): Change signature to satisfy revert-buffer.
-rw-r--r--lisp/net/secrets.el33
1 files changed, 15 insertions, 18 deletions
diff --git a/lisp/net/secrets.el b/lisp/net/secrets.el
index 55d5f007ac..82c886d6b3 100644
--- a/lisp/net/secrets.el
+++ b/lisp/net/secrets.el
@@ -734,33 +734,30 @@ If there is no such item, or the item doesn't own this attribute, return nil."
;;; Visualization.
-(define-derived-mode secrets-mode nil "Secrets"
+(defvar secrets-mode-map
+ (let ((map (make-sparse-keymap)))
+ (set-keymap-parent map (make-composed-keymap special-mode-map widget-keymap))
+ (define-key map "n" 'next-line)
+ (define-key map "p" 'previous-line)
+ (define-key map "z" 'kill-this-buffer)
+ map)
+ "Keymap used in `secrets-mode' buffers.")
+
+(define-derived-mode secrets-mode special-mode "Secrets"
"Major mode for presenting password entries retrieved by Security Service.
In this mode, widgets represent the search results.
\\{secrets-mode-map}"
- ;; Keymap.
- (setq secrets-mode-map (copy-keymap special-mode-map))
- (set-keymap-parent secrets-mode-map widget-keymap)
- (define-key secrets-mode-map "z" 'kill-this-buffer)
-
+ (setq buffer-undo-list t)
+ (set (make-local-variable 'revert-buffer-function)
+ #'secrets-show-collections)
;; When we toggle, we must set temporary widgets.
(set (make-local-variable 'tree-widget-after-toggle-functions)
- '(secrets-tree-widget-after-toggle-function))
-
- (when (not (called-interactively-p 'interactive))
- ;; Initialize buffer.
- (setq buffer-read-only t)
- (let ((inhibit-read-only t))
- (erase-buffer))))
+ '(secrets-tree-widget-after-toggle-function)))
;; It doesn't make sense to call it interactively.
(put 'secrets-mode 'disabled t)
-;; The very first buffer created with `secrets-mode' does not have the
-;; keymap etc. So we create a dummy buffer. Stupid.
-(with-temp-buffer (secrets-mode))
-
;; We autoload `secrets-show-secrets' only on systems with D-Bus support.
;;;###autoload(when (featurep 'dbusbind)
;;;###autoload (autoload 'secrets-show-secrets "secrets" nil t))
@@ -783,7 +780,7 @@ to their attributes."
(secrets-mode)
(secrets-show-collections))))
-(defun secrets-show-collections ()
+(defun secrets-show-collections (&optional _ignore _noconfirm)
"Show all available collections."
(let ((inhibit-read-only t)
(alias (secrets-get-alias "default")))