diff options
| author | Mark Oteiza | 2016-07-08 21:10:32 -0400 |
|---|---|---|
| committer | Mark Oteiza | 2016-07-08 21:10:32 -0400 |
| commit | 7095596ac3ece75b7fb98be7a47e4715a54842c2 (patch) | |
| tree | 0874266b248fbdcfbd3674aa183fc0daf9fc1033 | |
| parent | bdda4855c635ecf4135e23321bdba023e9ae65c9 (diff) | |
| download | emacs-7095596ac3ece75b7fb98be7a47e4715a54842c2.tar.gz emacs-7095596ac3ece75b7fb98be7a47e4715a54842c2.zip | |
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.el | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/lisp/net/secrets.el b/lisp/net/secrets.el index 55d5f007ac5..82c886d6b31 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." | |||
| 734 | 734 | ||
| 735 | ;;; Visualization. | 735 | ;;; Visualization. |
| 736 | 736 | ||
| 737 | (define-derived-mode secrets-mode nil "Secrets" | 737 | (defvar secrets-mode-map |
| 738 | (let ((map (make-sparse-keymap))) | ||
| 739 | (set-keymap-parent map (make-composed-keymap special-mode-map widget-keymap)) | ||
| 740 | (define-key map "n" 'next-line) | ||
| 741 | (define-key map "p" 'previous-line) | ||
| 742 | (define-key map "z" 'kill-this-buffer) | ||
| 743 | map) | ||
| 744 | "Keymap used in `secrets-mode' buffers.") | ||
| 745 | |||
| 746 | (define-derived-mode secrets-mode special-mode "Secrets" | ||
| 738 | "Major mode for presenting password entries retrieved by Security Service. | 747 | "Major mode for presenting password entries retrieved by Security Service. |
| 739 | In this mode, widgets represent the search results. | 748 | In this mode, widgets represent the search results. |
| 740 | 749 | ||
| 741 | \\{secrets-mode-map}" | 750 | \\{secrets-mode-map}" |
| 742 | ;; Keymap. | 751 | (setq buffer-undo-list t) |
| 743 | (setq secrets-mode-map (copy-keymap special-mode-map)) | 752 | (set (make-local-variable 'revert-buffer-function) |
| 744 | (set-keymap-parent secrets-mode-map widget-keymap) | 753 | #'secrets-show-collections) |
| 745 | (define-key secrets-mode-map "z" 'kill-this-buffer) | ||
| 746 | |||
| 747 | ;; When we toggle, we must set temporary widgets. | 754 | ;; When we toggle, we must set temporary widgets. |
| 748 | (set (make-local-variable 'tree-widget-after-toggle-functions) | 755 | (set (make-local-variable 'tree-widget-after-toggle-functions) |
| 749 | '(secrets-tree-widget-after-toggle-function)) | 756 | '(secrets-tree-widget-after-toggle-function))) |
| 750 | |||
| 751 | (when (not (called-interactively-p 'interactive)) | ||
| 752 | ;; Initialize buffer. | ||
| 753 | (setq buffer-read-only t) | ||
| 754 | (let ((inhibit-read-only t)) | ||
| 755 | (erase-buffer)))) | ||
| 756 | 757 | ||
| 757 | ;; It doesn't make sense to call it interactively. | 758 | ;; It doesn't make sense to call it interactively. |
| 758 | (put 'secrets-mode 'disabled t) | 759 | (put 'secrets-mode 'disabled t) |
| 759 | 760 | ||
| 760 | ;; The very first buffer created with `secrets-mode' does not have the | ||
| 761 | ;; keymap etc. So we create a dummy buffer. Stupid. | ||
| 762 | (with-temp-buffer (secrets-mode)) | ||
| 763 | |||
| 764 | ;; We autoload `secrets-show-secrets' only on systems with D-Bus support. | 761 | ;; We autoload `secrets-show-secrets' only on systems with D-Bus support. |
| 765 | ;;;###autoload(when (featurep 'dbusbind) | 762 | ;;;###autoload(when (featurep 'dbusbind) |
| 766 | ;;;###autoload (autoload 'secrets-show-secrets "secrets" nil t)) | 763 | ;;;###autoload (autoload 'secrets-show-secrets "secrets" nil t)) |
| @@ -783,7 +780,7 @@ to their attributes." | |||
| 783 | (secrets-mode) | 780 | (secrets-mode) |
| 784 | (secrets-show-collections)))) | 781 | (secrets-show-collections)))) |
| 785 | 782 | ||
| 786 | (defun secrets-show-collections () | 783 | (defun secrets-show-collections (&optional _ignore _noconfirm) |
| 787 | "Show all available collections." | 784 | "Show all available collections." |
| 788 | (let ((inhibit-read-only t) | 785 | (let ((inhibit-read-only t) |
| 789 | (alias (secrets-get-alias "default"))) | 786 | (alias (secrets-get-alias "default"))) |