X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=epg-file.el;h=856af4029140a1eafa8787da490fb6746a8db8da;hb=b1d05ceee17137266c8a4729bb0180fe265baae4;hp=d3f5da1a952fcd3b686db3fd19a6d1781344a80f;hpb=37d3d49548803d24469b5c5e6a792aa94ad5aa22;p=elisp%2Fepg.git diff --git a/epg-file.el b/epg-file.el index d3f5da1..856af40 100644 --- a/epg-file.el +++ b/epg-file.el @@ -20,6 +20,8 @@ with GnuPG." (inhibit-file-name-operation operation)) (apply operation args))) +(defvar buffer-file-type) +(defvar last-coding-system-used) (defun epg-file-write-region (start end filename &optional append visit lockname mustbenew) (let* ((visit-file (if (stringp visit) @@ -29,7 +31,9 @@ with GnuPG." (coding-system (condition-case nil (epg-file-run-real-handler 'write-region (list start end "/")) - (file-error last-coding-system-used))) + (file-error (if (boundp 'last-coding-system-used) + last-coding-system-used + buffer-file-coding-system)))) ;; start and end are normally buffer positions ;; specifying the part of the buffer to write. ;; If start is nil, that means to use the entire buffer contents. @@ -44,7 +48,8 @@ with GnuPG." (buffer-substring start end))) coding-system))) (with-temp-buffer - (set-buffer-multibyte nil) + (if (fboundp 'set-buffer-multibyte) + (set-buffer-multibyte nil)) ;; Optional fourth argument append if non-nil means ;; append to existing file contents (if any). If it is an integer, ;; seek to that offset in the file before writing. @@ -64,7 +69,8 @@ with GnuPG." (context (epg-make-context)) cipher) (when (setq cipher (epg-encrypt-string context (buffer-string) nil)) - (if (memq system-type '(ms-dos windows-nt)) + (if (and (memq system-type '(ms-dos windows-nt)) + (boundp 'buffer-file-type)) (setq buffer-file-type t)) (epg-file-run-real-handler 'write-region @@ -80,11 +86,12 @@ with GnuPG." (when (or (eq visit t) (stringp visit)) (setq buffer-file-name filename) (set-visited-file-modtime)) - (when (stringp visit) - (setq buffer-file-name visit)) + (if (stringp visit) + (setq buffer-file-name visit)) (when (or (eq visit t) (eq visit nil) (stringp visit)) (message "Wrote %s" visit-file)) - (setq last-coding-system-used coding-system) + (if (boundp 'last-coding-system-used) + (setq last-coding-system-used coding-system)) nil)) (defun epg-file-insert-file-contents (filename &optional visit beg end replace)