enchive-mode.el: choose major mode without '.enchive' suffix (#13)

pull/15/head
Ingo Lohmar 2018-05-19 13:00:59 +02:00
parent ff83f9259e
commit 5959e29b41
1 changed files with 11 additions and 4 deletions

View File

@ -16,9 +16,12 @@
(defcustom enchive-program-name "enchive"
"Path to the locally installed enchive binary.")
(defvar enchive-handler-entry (cons "\\.enchive$" #'enchive-file-handler)
(defvar enchive-handler-entry (cons "\\.enchive\\'" #'enchive-file-handler)
"Entry for `enchive-mode' in `file-name-handler-alist'.")
(defvar enchive-auto-mode-entry (list "\\.enchive\\'" nil 'enchive)
"Entry for `enchive-mode' in `auto-mode-alist'.")
(defun enchive-file-handler (operation &rest args)
"Handler for `file-name-handler-alist' for automatic encrypt/decrypt."
(let ((file-name-handler-alist ()))
@ -41,9 +44,13 @@
:global t
(setf file-name-handler-alist
(delq enchive-handler-entry file-name-handler-alist))
(if enchive-mode
(setf file-name-handler-alist
(cons enchive-handler-entry file-name-handler-alist))))
(setf auto-mode-alist
(delq enchive-auto-mode-entry auto-mode-alist))
(when enchive-mode
(setf file-name-handler-alist
(cons enchive-handler-entry file-name-handler-alist))
(setf auto-mode-alist
(cons enchive-auto-mode-entry auto-mode-alist))))
(provide 'enchive-mode)