X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=epa-file.el;h=435976cd63a2a0dfccd10f9304dffd406039b5b9;hb=7dd310a5477089fc298a838e5676fbed2892e282;hp=046997a2c77129bc4abf548cd16af8bc55e27663;hpb=08d6412163e9162fd012cf63a587f9e5e1d50ac2;p=elisp%2Fepg.git diff --git a/epa-file.el b/epa-file.el index 046997a..435976c 100644 --- a/epa-file.el +++ b/epa-file.el @@ -33,6 +33,9 @@ "Regexp which matches filenames to be encrypted with GnuPG." :type 'regexp :group 'epa-file) + +(defvar epa-file-handler + (cons epa-file-name-regexp 'epa-file-handler)) (defvar epa-file-passphrase-alist nil) @@ -128,13 +131,15 @@ (setq string (epg-encrypt-string context - (encode-coding-string (buffer-string) coding-system) - (mapcar (lambda (key) - (epg-sub-key-id (car (epg-key-sub-key-list key)))) - (unless (assoc file epa-file-passphrase-alist) + (if (stringp start) + (encode-coding-string start coding-system) + (encode-coding-string (buffer-substring start end) + coding-system)) + (unless (assoc file epa-file-passphrase-alist) (epa-select-keys - "Select recipents for encryption. -If no one is selected, symmetric encryption will be performed. "))))) + context + "Select recipents for encryption. +If no one is selected, symmetric encryption will be performed. ")))) (error (if (setq entry (assoc file epa-file-passphrase-alist)) (setcdr entry nil)) @@ -158,6 +163,25 @@ If no one is selected, symmetric encryption will be performed. "))))) (message "Wrote %s" buffer-file-name)))) (put 'write-region 'epa-file 'epa-file-write-region) +;;;###autoload +(defun epa-file-enable () + (interactive) + (if (memq epa-file-handler file-name-handler-alist) + (message "`epa-file' already enabled") + (setq file-name-handler-alist + (cons epa-file-handler file-name-handler-alist)) + (message "`epa-file' enabled"))) + +;;;###autoload +(defun epa-file-disable () + (interactive) + (if (memq epa-file-handler file-name-handler-alist) + (progn + (setq file-name-handler-alist + (delq epa-file-handler file-name-handler-alist)) + (message "`epa-file' disabled")) + (message "`epa-file' already disabled"))) + (provide 'epa-file) ;;; epa-file.el ends here