(put 'abbrev-mode 'safe-local-variable 'booleanp)
\f
-(defvar edit-abbrevs-map
+(defvar edit-abbrevs-mode-map
(let ((map (make-sparse-keymap)))
(define-key map "\C-x\C-s" 'abbrev-edit-save-buffer)
(define-key map "\C-x\C-w" 'abbrev-edit-save-to-file)
(define-key map "\C-c\C-c" 'edit-abbrevs-redefine)
map)
"Keymap used in `edit-abbrevs'.")
+(define-obsolete-variable-alias 'edit-abbrevs-map
+ 'edit-abbrevs-mode-map "24.4")
(defun kill-all-abbrevs ()
"Undefine all defined abbrevs."
(set-buffer-modified-p nil)
(current-buffer))))
-(defun edit-abbrevs-mode ()
- "Major mode for editing the list of abbrev definitions.
-\\{edit-abbrevs-map}"
- (interactive)
- (kill-all-local-variables)
- (setq major-mode 'edit-abbrevs-mode)
- (setq mode-name "Edit-Abbrevs")
- (use-local-map edit-abbrevs-map)
- (run-mode-hooks 'edit-abbrevs-mode-hook))
-
(defun edit-abbrevs ()
"Alter abbrev definitions by editing a list of them.
Selects a buffer containing a list of abbrev definitions with
(sort entries (lambda (x y)
(funcall sortfun (nth 2 x) (nth 2 y)))))))
+;; Keep it after define-abbrev-table, since define-derived-mode uses
+;; define-abbrev-table.
+(define-derived-mode edit-abbrevs-mode special-mode "Edit-Abbrevs"
+ "Major mode for editing the list of abbrev definitions.")
+
(provide 'abbrev)
;;; abbrev.el ends here
(epg-sub-key-id (car (epg-key-sub-key-list
(widget-get widget :value))))))
-(eval-and-compile
- (if (fboundp 'encode-coding-string)
- (defalias 'epa--encode-coding-string 'encode-coding-string)
- (defalias 'epa--encode-coding-string 'identity)))
+(defalias 'epa--encode-coding-string
+ (if (fboundp 'encode-coding-string) #'encode-coding-string #'identity))
-(eval-and-compile
- (if (fboundp 'decode-coding-string)
- (defalias 'epa--decode-coding-string 'decode-coding-string)
- (defalias 'epa--decode-coding-string 'identity)))
+(defalias 'epa--decode-coding-string
+ (if (fboundp 'decode-coding-string) #'decode-coding-string #'identity))
-(defun epa-key-list-mode ()
+(define-derived-mode epa-key-list-mode special-mode "Keys"
"Major mode for `epa-list-keys'."
- (kill-all-local-variables)
(buffer-disable-undo)
- (setq major-mode 'epa-key-list-mode
- mode-name "Keys"
- truncate-lines t
+ (setq truncate-lines t
buffer-read-only t)
- (use-local-map epa-key-list-mode-map)
- (make-local-variable 'font-lock-defaults)
- (setq font-lock-defaults '(epa-font-lock-keywords t))
+ (setq-local font-lock-defaults '(epa-font-lock-keywords t))
;; In XEmacs, auto-initialization of font-lock is not effective
;; if buffer-file-name is not set.
(font-lock-set-defaults)
(make-local-variable 'epa-exit-buffer-function)
- (make-local-variable 'revert-buffer-function)
- (setq revert-buffer-function 'epa--key-list-revert-buffer)
- (run-mode-hooks 'epa-key-list-mode-hook))
+ (setq-local revert-buffer-function #'epa--key-list-revert-buffer))
-(defun epa-key-mode ()
+(define-derived-mode epa-key-mode special-mode "Key"
"Major mode for a key description."
- (kill-all-local-variables)
(buffer-disable-undo)
- (setq major-mode 'epa-key-mode
- mode-name "Key"
- truncate-lines t
+ (setq truncate-lines t
buffer-read-only t)
- (use-local-map epa-key-mode-map)
- (make-local-variable 'font-lock-defaults)
- (setq font-lock-defaults '(epa-font-lock-keywords t))
+ (setq-local font-lock-defaults '(epa-font-lock-keywords t))
;; In XEmacs, auto-initialization of font-lock is not effective
;; if buffer-file-name is not set.
(font-lock-set-defaults)
- (make-local-variable 'epa-exit-buffer-function)
- (run-mode-hooks 'epa-key-mode-hook))
+ (make-local-variable 'epa-exit-buffer-function))
-(defun epa-info-mode ()
+(define-derived-mode epa-info-mode special-mode "Info"
"Major mode for `epa-info-buffer'."
- (kill-all-local-variables)
(buffer-disable-undo)
- (setq major-mode 'epa-info-mode
- mode-name "Info"
- truncate-lines t
- buffer-read-only t)
- (use-local-map epa-info-mode-map)
- (run-mode-hooks 'epa-info-mode-hook))
+ (setq truncate-lines t
+ buffer-read-only t))
(defun epa-mark-key (&optional arg)
"Mark a key on the current line.
(error "No cleartext tail"))
(epa-verify-region cleartext-start cleartext-end))))))
-(eval-and-compile
+(defalias 'epa--select-safe-coding-system
(if (fboundp 'select-safe-coding-system)
- (defalias 'epa--select-safe-coding-system 'select-safe-coding-system)
- (defun epa--select-safe-coding-system (_from _to)
+ #'select-safe-coding-system
+ (lambda (_from _to)
buffer-file-coding-system)))
;;;###autoload
'start-open t
'end-open t)))))
-(eval-and-compile
+(defalias 'epa--derived-mode-p
(if (fboundp 'derived-mode-p)
- (defalias 'epa--derived-mode-p 'derived-mode-p)
- (defun epa--derived-mode-p (&rest modes)
+ #'derived-mode-p
+ (lambda (&rest modes)
"Non-nil if the current major mode is derived from one of MODES.
Uses the `derived-mode-parent' property of the symbol to trace backwards."
(let ((parent major-mode))
- (while (and (not (memq parent modes))
- (setq parent (get parent 'derived-mode-parent))))
- parent))))
+ (while (and (not (memq parent modes))
+ (setq parent (get parent 'derived-mode-parent))))
+ parent))))
;;;###autoload
(defun epa-encrypt-region (start end recipients sign signers)
(if (epg-context-result-for context 'import)
(epa-display-info (epg-import-result-to-string
(epg-context-result-for context 'import))))
+ ;; FIXME: Why not use the (otherwise unused) epa--derived-mode-p?
(if (eq major-mode 'epa-key-list-mode)
(apply #'epa--list-keys epa-list-keys-arguments))))