Mercurial > emacs
changeset 91731:7efbdc83b944
EasyPG: Implement some suggestions from emacs-devel.
author | Michael Olson <mwolson@gnu.org> |
---|---|
date | Sun, 10 Feb 2008 20:57:47 +0000 |
parents | 04e7668f6b61 |
children | c33ec1f680a9 |
files | doc/misc/ChangeLog doc/misc/epa.texi lisp/ChangeLog lisp/epa-dired.el lisp/epa-file.el lisp/epa-mail.el lisp/epa.el lisp/epg-config.el lisp/epg.el |
diffstat | 9 files changed, 156 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/misc/ChangeLog Sun Feb 10 20:51:42 2008 +0000 +++ b/doc/misc/ChangeLog Sun Feb 10 20:57:47 2008 +0000 @@ -1,3 +1,8 @@ +2008-02-10 Daiki Ueno <ueno@unixuser.org> + + * epa.texi (Quick start): Use the command `epa-enable' instead of + loading `epa-setup'. + 2008-02-08 Juanma Barranquero <lekktu@gmail.com> * makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add epa.
--- a/doc/misc/epa.texi Sun Feb 10 20:51:42 2008 +0000 +++ b/doc/misc/epa.texi Sun Feb 10 20:57:47 2008 +0000 @@ -77,26 +77,28 @@ @node Quick start @chapter Quick start -To install, just follow the standard CMMI installation instructions. +@c To install, just follow the standard CMMI installation instructions. -@cartouche -@example -$ ./configure -$ sudo make install -@end example -@end cartouche +@c @cartouche +@c @example +@c $ ./configure +@c $ sudo make install +@c @end example +@c @end cartouche -@noindent -Then, add the following line to your @file{~/.emacs} +@c @noindent +@c Then, add the following line to your @file{~/.emacs} + +Add the following line to your @file{~/.emacs}. @cartouche @lisp -(require 'epa-setup) +(epa-mode 1) @end lisp @end cartouche @noindent -That's all. Restart emacs and type @kbd{M-x epa- @key{TAB}}, and you will see a +Restart emacs and type @kbd{M-x epa- @key{TAB}}, and you will see a lot of commands available. For example, @itemize @bullet
--- a/lisp/ChangeLog Sun Feb 10 20:51:42 2008 +0000 +++ b/lisp/ChangeLog Sun Feb 10 20:57:47 2008 +0000 @@ -1,3 +1,23 @@ +2008-02-10 Daiki Ueno <ueno@unixuser.org> + + * epg-config.el: Expand the contents of epg-package-info.el. + (epg-package-name): New constant. + (epg-version-number): New constant. + (epg-bug-report-address): New constant. + + * epa-mail.el (epa-mail-mode): Add autoload cookie. + (epa-mail-minor-mode): New global minor mode. + + * epa-file.el (epa-file-mode): New global minor mode. + + * epa-dired.el (epa-dired-mode): New global minor mode. + + * epa.el (epa-menu): New variable. + (epa-menu-items): New variable. + (epa-menu-mode): New global minor mode. + (epa-global-minor-modes): New user option. + (epa-mode): New global minor mode. + 2008-02-10 Michael Albinus <michael.albinus@gmx.de> * net/dbus.el: Remove `no-byte-compile' cookie.
--- a/lisp/epa-dired.el Sun Feb 10 20:51:42 2008 +0000 +++ b/lisp/epa-dired.el Sun Feb 10 20:57:47 2008 +0000 @@ -82,6 +82,14 @@ (setq file-list (cdr file-list))) (revert-buffer))) +;;;###autoload +(define-minor-mode epa-dired-mode + "Minor mode to hook EasyPG into Dired." + :global t :init-value nil :group 'epa-dired :version "23.1" + (remove-hook 'dired-mode-hook 'epa-dired-mode-hook) + (if epa-dired-mode + (add-hook 'dired-mode-hook 'epa-dired-mode-hook))) + (provide 'epa-dired) ;; arch-tag: 2025700b-48d0-4684-bc94-228ad1f8e9ff
--- a/lisp/epa-file.el Sun Feb 10 20:51:42 2008 +0000 +++ b/lisp/epa-file.el Sun Feb 10 20:57:47 2008 +0000 @@ -314,6 +314,24 @@ (message "`epa-file' disabled")) (message "`epa-file' already disabled"))) +;;;###autoload +(define-minor-mode epa-file-mode + "Toggle automatic file encryption and decryption. +With prefix argument ARG, turn auto encryption on if positive, else off. +Return the new status of auto encryption (non-nil means on)." + :global t :init-value nil :group 'epa-file :version "23.1" + (setq file-name-handler-alist + (delq epa-file-handler file-name-handler-alist)) + (remove-hook 'find-file-hooks 'epa-file-find-file-hook) + (setq auto-mode-alist (delq epa-file-auto-mode-alist-entry + auto-mode-alist)) + (when epa-file-mode + (setq file-name-handler-alist + (cons epa-file-handler file-name-handler-alist)) + (add-hook 'find-file-hooks 'epa-file-find-file-hook) + (setq auto-mode-alist (cons epa-file-auto-mode-alist-entry + auto-mode-alist)))) + (provide 'epa-file) ;; arch-tag: 5715152f-0eb1-4dbc-9008-07098775314d
--- a/lisp/epa-mail.el Sun Feb 10 20:51:42 2008 +0000 +++ b/lisp/epa-mail.el Sun Feb 10 20:57:47 2008 +0000 @@ -40,6 +40,7 @@ (defvar epa-mail-mode-on-hook nil) (defvar epa-mail-mode-off-hook nil) +;;;###autoload (define-minor-mode epa-mail-mode "A minor-mode for composing encrypted/clearsigned mails." nil " epa-mail" epa-mail-mode-map) @@ -173,6 +174,14 @@ (interactive) (epa-import-armor-in-region (point-min) (point-max))) +;;;###autoload +(define-minor-mode epa-mail-minor-mode + "Minor mode to hook EasyPG into Mail mode." + :global t :init-value nil :group 'epa-mail :version "23.1" + (remove-hook 'mail-mode-hook 'epa-mail-mode) + (if epa-mail-minor-mode + (add-hook 'mail-mode-hook 'epa-mail-mode))) + (provide 'epa-mail) ;; arch-tag: a6f82b3f-d177-4a11-af95-040da55927d2
--- a/lisp/epa.el Sun Feb 10 20:51:42 2008 +0000 +++ b/lisp/epa.el Sun Feb 10 20:57:47 2008 +0000 @@ -45,6 +45,14 @@ :type 'integer :group 'epa) +(defcustom epa-global-minor-modes '(epa-dired-mode + epa-file-mode + epa-mail-minor-mode + epa-menu-mode) + "Globally defined minor modes to hook into other modes." + :type '(repeat symbol) + :group 'epa) + (defgroup epa-faces nil "Faces for epa-mode." :version "23.1" @@ -229,6 +237,44 @@ (define-key keymap "q" 'delete-window) keymap)) +(defvar epa-menu nil) + +(defconst epa-menu-items + '("EasyPG Assistant" + ("Decrypt" + ["File" epa-decrypt-file + :help "Decrypt a file"] + ["Region" epa-decrypt-region + :help "Decrypt the current region"]) + ("Verify" + ["File" epa-verify-file + :help "Verify digital signature of a file"] + ["Region" epa-verify-region + :help "Verify digital signature of the current region"]) + ("Sign" + ["File" epa-sign-file + :help "Create digital signature of a file"] + ["Region" epa-sign-region + :help "Create digital signature of the current region"]) + ("Encrypt" + ["File" epa-encrypt-file + :help "Encrypt a file"] + ["Region" epa-encrypt-region + :help "Encrypt the current region"]) + "----" + ["Browse keyring" epa-list-keys + :help "Browse your public keyring"] + ("Import keys" + ["File" epa-import-keys + :help "Import public keys from a file"] + ["Region" epa-import-keys-region + :help "Import public keys from the current region"]) + ("Export key" + ["To a File" epa-export-keys + :help "Export public keys to a file"] + ["To a Buffer" epa-insert-keys + :help "Insert public keys after the current point"]))) + (defvar epa-exit-buffer-function #'bury-buffer) (define-widget 'epa-key 'push-button @@ -372,7 +418,7 @@ 'end-open t)) (widget-create 'epa-key :value (car keys)) (insert "\n") - (setq keys (cdr keys)))) + (setq keys (cdr keys)))) (add-text-properties (point-min) (point-max) (list 'epa-list-keys t 'front-sticky nil @@ -1173,6 +1219,32 @@ ;; (message "Signing keys...done"))) ;; (make-obsolete 'epa-sign-keys "Do not use.") +;;;###autoload +(define-minor-mode epa-menu-mode + "Minor mode to hook EasyPG into the menu-bar." + :global t :init-value nil :group 'epa :version "23.1" + (unless epa-menu + (easy-menu-define epa-menu nil "EasyPG Assistant global menu" + epa-menu-items)) + (easy-menu-remove-item nil '("Tools") "EasyPG Assistant") + (if epa-menu-mode + (easy-menu-add-item nil '("Tools") epa-menu))) + +;;;###autoload +(define-minor-mode epa-mode + "Minor mode to hook EasyPG into various modes. +See `epa-global-minor-modes'." + :global t :init-value nil :group 'epa :version "23.1" + (let ((modes epa-global-minor-modes) + symbol) + (while modes + (setq symbol (car modes)) + (if (and symbol + (fboundp symbol)) + (funcall symbol (if epa-mode 1 0)) + (message "`%S' not found" (car modes))) + (setq modes (cdr modes))))) + (provide 'epa) ;; arch-tag: 38d20ced-20d5-4137-b17a-f206335423d7
--- a/lisp/epg-config.el Sun Feb 10 20:51:42 2008 +0000 +++ b/lisp/epg-config.el Sun Feb 10 20:57:47 2008 +0000 @@ -23,7 +23,14 @@ ;;; Code: -(require 'epg-package-info) +(defconst epg-package-name "epg" + "Name of this package.") + +(defconst epg-version-number "1.0.0" + "Version number of this package.") + +(defconst epg-bug-report-address "ueno@unixuser.org" + "Report bugs to this address.") (defgroup epg () "The EasyPG Library"
--- a/lisp/epg.el Sun Feb 10 20:51:42 2008 +0000 +++ b/lisp/epg.el Sun Feb 10 20:57:47 2008 +0000 @@ -1430,7 +1430,7 @@ signature (string-to-number (match-string 4 string))) (epg-signature-set-pubkey-algorithm - signature + signature (string-to-number (match-string 5 string))) (epg-signature-set-digest-algorithm signature @@ -1744,7 +1744,7 @@ (defun epg-list-keys (context &optional name mode) "Return a list of epg-key objects matched with NAME. If MODE is nil or 'public, only public keyring should be searched. -If MODE is t or 'secret, only secret keyring should be searched. +If MODE is t or 'secret, only secret keyring should be searched. Otherwise, only public keyring should be searched and the key signatures should be included. NAME is either a string or a list of strings."