diff options
| author | Stefan Monnier | 2013-09-06 11:37:01 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2013-09-06 11:37:01 -0400 |
| commit | 86cf73299170efd02eb9ede42547eca65df83c86 (patch) | |
| tree | 87ee6c388fd4772b2301665d99af9a57282f70b5 | |
| parent | 816244a2ab34d651371bf8045eac14320587beda (diff) | |
| download | emacs-86cf73299170efd02eb9ede42547eca65df83c86.tar.gz emacs-86cf73299170efd02eb9ede42547eca65df83c86.zip | |
* lisp/abbrev.el (edit-abbrevs-mode): Use define-derived-mode.
(edit-abbrevs-mode-map): Rename from edit-abbrevs-map.
* lisp/epa.el (epa--encode-coding-string, epa--decode-coding-string)
(epa--select-safe-coding-system, epa--derived-mode-p): Make it obvious
that it's defined.
(epa-key-list-mode, epa-key-mode, epa-info-mode):
Use define-derived-mode.
* lisp/epg.el (epg-start-encrypt): Minor CSE simplification.
| -rw-r--r-- | lisp/ChangeLog | 13 | ||||
| -rw-r--r-- | lisp/abbrev.el | 19 | ||||
| -rw-r--r-- | lisp/epa.el | 71 | ||||
| -rw-r--r-- | lisp/epg.el | 5 |
4 files changed, 48 insertions, 60 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3c1a97b34b9..53335cb6311 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,16 @@ | |||
| 1 | 2013-09-06 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * abbrev.el (edit-abbrevs-mode-map): Rename from edit-abbrevs-map. | ||
| 4 | (edit-abbrevs-mode): Use define-derived-mode. | ||
| 5 | |||
| 6 | * epa.el (epa--encode-coding-string, epa--decode-coding-string) | ||
| 7 | (epa--select-safe-coding-system, epa--derived-mode-p): Make it obvious | ||
| 8 | that it's defined. | ||
| 9 | (epa-key-list-mode, epa-key-mode, epa-info-mode): | ||
| 10 | Use define-derived-mode. | ||
| 11 | |||
| 12 | * epg.el (epg-start-encrypt): Minor CSE simplification. | ||
| 13 | |||
| 1 | 2013-09-06 William Xu <william.xwl@gmail.com> | 14 | 2013-09-06 William Xu <william.xwl@gmail.com> |
| 2 | 15 | ||
| 3 | * arc-mode.el: Add support for 7za (bug#15264). | 16 | * arc-mode.el: Add support for 7za (bug#15264). |
diff --git a/lisp/abbrev.el b/lisp/abbrev.el index d82e2eabd84..d7d4482693d 100644 --- a/lisp/abbrev.el +++ b/lisp/abbrev.el | |||
| @@ -67,13 +67,15 @@ be replaced by its expansion." | |||
| 67 | (put 'abbrev-mode 'safe-local-variable 'booleanp) | 67 | (put 'abbrev-mode 'safe-local-variable 'booleanp) |
| 68 | 68 | ||
| 69 | 69 | ||
| 70 | (defvar edit-abbrevs-map | 70 | (defvar edit-abbrevs-mode-map |
| 71 | (let ((map (make-sparse-keymap))) | 71 | (let ((map (make-sparse-keymap))) |
| 72 | (define-key map "\C-x\C-s" 'abbrev-edit-save-buffer) | 72 | (define-key map "\C-x\C-s" 'abbrev-edit-save-buffer) |
| 73 | (define-key map "\C-x\C-w" 'abbrev-edit-save-to-file) | 73 | (define-key map "\C-x\C-w" 'abbrev-edit-save-to-file) |
| 74 | (define-key map "\C-c\C-c" 'edit-abbrevs-redefine) | 74 | (define-key map "\C-c\C-c" 'edit-abbrevs-redefine) |
| 75 | map) | 75 | map) |
| 76 | "Keymap used in `edit-abbrevs'.") | 76 | "Keymap used in `edit-abbrevs'.") |
| 77 | (define-obsolete-variable-alias 'edit-abbrevs-map | ||
| 78 | 'edit-abbrevs-mode-map "24.4") | ||
| 77 | 79 | ||
| 78 | (defun kill-all-abbrevs () | 80 | (defun kill-all-abbrevs () |
| 79 | "Undefine all defined abbrevs." | 81 | "Undefine all defined abbrevs." |
| @@ -144,16 +146,6 @@ Otherwise display all abbrevs." | |||
| 144 | (set-buffer-modified-p nil) | 146 | (set-buffer-modified-p nil) |
| 145 | (current-buffer)))) | 147 | (current-buffer)))) |
| 146 | 148 | ||
| 147 | (defun edit-abbrevs-mode () | ||
| 148 | "Major mode for editing the list of abbrev definitions. | ||
| 149 | \\{edit-abbrevs-map}" | ||
| 150 | (interactive) | ||
| 151 | (kill-all-local-variables) | ||
| 152 | (setq major-mode 'edit-abbrevs-mode) | ||
| 153 | (setq mode-name "Edit-Abbrevs") | ||
| 154 | (use-local-map edit-abbrevs-map) | ||
| 155 | (run-mode-hooks 'edit-abbrevs-mode-hook)) | ||
| 156 | |||
| 157 | (defun edit-abbrevs () | 149 | (defun edit-abbrevs () |
| 158 | "Alter abbrev definitions by editing a list of them. | 150 | "Alter abbrev definitions by editing a list of them. |
| 159 | Selects a buffer containing a list of abbrev definitions with | 151 | Selects a buffer containing a list of abbrev definitions with |
| @@ -1013,6 +1005,11 @@ SORTFUN is passed to `sort' to change the default ordering." | |||
| 1013 | (sort entries (lambda (x y) | 1005 | (sort entries (lambda (x y) |
| 1014 | (funcall sortfun (nth 2 x) (nth 2 y))))))) | 1006 | (funcall sortfun (nth 2 x) (nth 2 y))))))) |
| 1015 | 1007 | ||
| 1008 | ;; Keep it after define-abbrev-table, since define-derived-mode uses | ||
| 1009 | ;; define-abbrev-table. | ||
| 1010 | (define-derived-mode edit-abbrevs-mode special-mode "Edit-Abbrevs" | ||
| 1011 | "Major mode for editing the list of abbrev definitions.") | ||
| 1012 | |||
| 1016 | (provide 'abbrev) | 1013 | (provide 'abbrev) |
| 1017 | 1014 | ||
| 1018 | ;;; abbrev.el ends here | 1015 | ;;; abbrev.el ends here |
diff --git a/lisp/epa.el b/lisp/epa.el index a99fb9230e1..1b06e6ca3bf 100644 --- a/lisp/epa.el +++ b/lisp/epa.el | |||
| @@ -268,62 +268,40 @@ You should bind this variable with `let', but do not set it globally.") | |||
| 268 | (epg-sub-key-id (car (epg-key-sub-key-list | 268 | (epg-sub-key-id (car (epg-key-sub-key-list |
| 269 | (widget-get widget :value)))))) | 269 | (widget-get widget :value)))))) |
| 270 | 270 | ||
| 271 | (eval-and-compile | 271 | (defalias 'epa--encode-coding-string |
| 272 | (if (fboundp 'encode-coding-string) | 272 | (if (fboundp 'encode-coding-string) #'encode-coding-string #'identity)) |
| 273 | (defalias 'epa--encode-coding-string 'encode-coding-string) | ||
| 274 | (defalias 'epa--encode-coding-string 'identity))) | ||
| 275 | 273 | ||
| 276 | (eval-and-compile | 274 | (defalias 'epa--decode-coding-string |
| 277 | (if (fboundp 'decode-coding-string) | 275 | (if (fboundp 'decode-coding-string) #'decode-coding-string #'identity)) |
| 278 | (defalias 'epa--decode-coding-string 'decode-coding-string) | ||
| 279 | (defalias 'epa--decode-coding-string 'identity))) | ||
| 280 | 276 | ||
| 281 | (defun epa-key-list-mode () | 277 | (define-derived-mode epa-key-list-mode special-mode "Keys" |
| 282 | "Major mode for `epa-list-keys'." | 278 | "Major mode for `epa-list-keys'." |
| 283 | (kill-all-local-variables) | ||
| 284 | (buffer-disable-undo) | 279 | (buffer-disable-undo) |
| 285 | (setq major-mode 'epa-key-list-mode | 280 | (setq truncate-lines t |
| 286 | mode-name "Keys" | ||
| 287 | truncate-lines t | ||
| 288 | buffer-read-only t) | 281 | buffer-read-only t) |
| 289 | (use-local-map epa-key-list-mode-map) | 282 | (setq-local font-lock-defaults '(epa-font-lock-keywords t)) |
| 290 | (make-local-variable 'font-lock-defaults) | ||
| 291 | (setq font-lock-defaults '(epa-font-lock-keywords t)) | ||
| 292 | ;; In XEmacs, auto-initialization of font-lock is not effective | 283 | ;; In XEmacs, auto-initialization of font-lock is not effective |
| 293 | ;; if buffer-file-name is not set. | 284 | ;; if buffer-file-name is not set. |
| 294 | (font-lock-set-defaults) | 285 | (font-lock-set-defaults) |
| 295 | (make-local-variable 'epa-exit-buffer-function) | 286 | (make-local-variable 'epa-exit-buffer-function) |
| 296 | (make-local-variable 'revert-buffer-function) | 287 | (setq-local revert-buffer-function #'epa--key-list-revert-buffer)) |
| 297 | (setq revert-buffer-function 'epa--key-list-revert-buffer) | ||
| 298 | (run-mode-hooks 'epa-key-list-mode-hook)) | ||
| 299 | 288 | ||
| 300 | (defun epa-key-mode () | 289 | (define-derived-mode epa-key-mode special-mode "Key" |
| 301 | "Major mode for a key description." | 290 | "Major mode for a key description." |
| 302 | (kill-all-local-variables) | ||
| 303 | (buffer-disable-undo) | 291 | (buffer-disable-undo) |
| 304 | (setq major-mode 'epa-key-mode | 292 | (setq truncate-lines t |
| 305 | mode-name "Key" | ||
| 306 | truncate-lines t | ||
| 307 | buffer-read-only t) | 293 | buffer-read-only t) |
| 308 | (use-local-map epa-key-mode-map) | 294 | (setq-local font-lock-defaults '(epa-font-lock-keywords t)) |
| 309 | (make-local-variable 'font-lock-defaults) | ||
| 310 | (setq font-lock-defaults '(epa-font-lock-keywords t)) | ||
| 311 | ;; In XEmacs, auto-initialization of font-lock is not effective | 295 | ;; In XEmacs, auto-initialization of font-lock is not effective |
| 312 | ;; if buffer-file-name is not set. | 296 | ;; if buffer-file-name is not set. |
| 313 | (font-lock-set-defaults) | 297 | (font-lock-set-defaults) |
| 314 | (make-local-variable 'epa-exit-buffer-function) | 298 | (make-local-variable 'epa-exit-buffer-function)) |
| 315 | (run-mode-hooks 'epa-key-mode-hook)) | ||
| 316 | 299 | ||
| 317 | (defun epa-info-mode () | 300 | (define-derived-mode epa-info-mode special-mode "Info" |
| 318 | "Major mode for `epa-info-buffer'." | 301 | "Major mode for `epa-info-buffer'." |
| 319 | (kill-all-local-variables) | ||
| 320 | (buffer-disable-undo) | 302 | (buffer-disable-undo) |
| 321 | (setq major-mode 'epa-info-mode | 303 | (setq truncate-lines t |
| 322 | mode-name "Info" | 304 | buffer-read-only t)) |
| 323 | truncate-lines t | ||
| 324 | buffer-read-only t) | ||
| 325 | (use-local-map epa-info-mode-map) | ||
| 326 | (run-mode-hooks 'epa-info-mode-hook)) | ||
| 327 | 305 | ||
| 328 | (defun epa-mark-key (&optional arg) | 306 | (defun epa-mark-key (&optional arg) |
| 329 | "Mark a key on the current line. | 307 | "Mark a key on the current line. |
| @@ -951,10 +929,10 @@ See the reason described in the `epa-verify-region' documentation." | |||
| 951 | (error "No cleartext tail")) | 929 | (error "No cleartext tail")) |
| 952 | (epa-verify-region cleartext-start cleartext-end)))))) | 930 | (epa-verify-region cleartext-start cleartext-end)))))) |
| 953 | 931 | ||
| 954 | (eval-and-compile | 932 | (defalias 'epa--select-safe-coding-system |
| 955 | (if (fboundp 'select-safe-coding-system) | 933 | (if (fboundp 'select-safe-coding-system) |
| 956 | (defalias 'epa--select-safe-coding-system 'select-safe-coding-system) | 934 | #'select-safe-coding-system |
| 957 | (defun epa--select-safe-coding-system (_from _to) | 935 | (lambda (_from _to) |
| 958 | buffer-file-coding-system))) | 936 | buffer-file-coding-system))) |
| 959 | 937 | ||
| 960 | ;;;###autoload | 938 | ;;;###autoload |
| @@ -1026,16 +1004,16 @@ If no one is selected, default secret key is used. " | |||
| 1026 | 'start-open t | 1004 | 'start-open t |
| 1027 | 'end-open t))))) | 1005 | 'end-open t))))) |
| 1028 | 1006 | ||
| 1029 | (eval-and-compile | 1007 | (defalias 'epa--derived-mode-p |
| 1030 | (if (fboundp 'derived-mode-p) | 1008 | (if (fboundp 'derived-mode-p) |
| 1031 | (defalias 'epa--derived-mode-p 'derived-mode-p) | 1009 | #'derived-mode-p |
| 1032 | (defun epa--derived-mode-p (&rest modes) | 1010 | (lambda (&rest modes) |
| 1033 | "Non-nil if the current major mode is derived from one of MODES. | 1011 | "Non-nil if the current major mode is derived from one of MODES. |
| 1034 | Uses the `derived-mode-parent' property of the symbol to trace backwards." | 1012 | Uses the `derived-mode-parent' property of the symbol to trace backwards." |
| 1035 | (let ((parent major-mode)) | 1013 | (let ((parent major-mode)) |
| 1036 | (while (and (not (memq parent modes)) | 1014 | (while (and (not (memq parent modes)) |
| 1037 | (setq parent (get parent 'derived-mode-parent)))) | 1015 | (setq parent (get parent 'derived-mode-parent)))) |
| 1038 | parent)))) | 1016 | parent)))) |
| 1039 | 1017 | ||
| 1040 | ;;;###autoload | 1018 | ;;;###autoload |
| 1041 | (defun epa-encrypt-region (start end recipients sign signers) | 1019 | (defun epa-encrypt-region (start end recipients sign signers) |
| @@ -1138,6 +1116,7 @@ If no one is selected, symmetric encryption will be performed. ") | |||
| 1138 | (if (epg-context-result-for context 'import) | 1116 | (if (epg-context-result-for context 'import) |
| 1139 | (epa-display-info (epg-import-result-to-string | 1117 | (epa-display-info (epg-import-result-to-string |
| 1140 | (epg-context-result-for context 'import)))) | 1118 | (epg-context-result-for context 'import)))) |
| 1119 | ;; FIXME: Why not use the (otherwise unused) epa--derived-mode-p? | ||
| 1141 | (if (eq major-mode 'epa-key-list-mode) | 1120 | (if (eq major-mode 'epa-key-list-mode) |
| 1142 | (apply #'epa--list-keys epa-list-keys-arguments)))) | 1121 | (apply #'epa--list-keys epa-list-keys-arguments)))) |
| 1143 | 1122 | ||
diff --git a/lisp/epg.el b/lisp/epg.el index bcd91d8abba..c733a273988 100644 --- a/lisp/epg.el +++ b/lisp/epg.el | |||
| @@ -2415,9 +2415,8 @@ If you are unsure, use synchronous version of this function | |||
| 2415 | (list "--" (epg-data-file plain))))) | 2415 | (list "--" (epg-data-file plain))))) |
| 2416 | ;; `gpgsm' does not read passphrase from stdin, so waiting is not needed. | 2416 | ;; `gpgsm' does not read passphrase from stdin, so waiting is not needed. |
| 2417 | (unless (eq (epg-context-protocol context) 'CMS) | 2417 | (unless (eq (epg-context-protocol context) 'CMS) |
| 2418 | (if sign | 2418 | (epg-wait-for-status context |
| 2419 | (epg-wait-for-status context '("BEGIN_SIGNING")) | 2419 | (if sign '("BEGIN_SIGNING") '("BEGIN_ENCRYPTION")))) |
| 2420 | (epg-wait-for-status context '("BEGIN_ENCRYPTION")))) | ||
| 2421 | (when (epg-data-string plain) | 2420 | (when (epg-data-string plain) |
| 2422 | (if (eq (process-status (epg-context-process context)) 'run) | 2421 | (if (eq (process-status (epg-context-process context)) 'run) |
| 2423 | (process-send-string (epg-context-process context) | 2422 | (process-send-string (epg-context-process context) |