aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog13
-rw-r--r--lisp/abbrev.el19
-rw-r--r--lisp/epa.el71
-rw-r--r--lisp/epg.el5
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 @@
12013-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
12013-09-06 William Xu <william.xwl@gmail.com> 142013-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.
159Selects a buffer containing a list of abbrev definitions with 151Selects 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.
1034Uses the `derived-mode-parent' property of the symbol to trace backwards." 1012Uses 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)