+2011-08-12 Daiki Ueno <ueno@unixuser.org>
+
+ * epa.el (epa-progress-callback-function): Fix the logic of
+ displaying progress.
+ * epa-file.el (epa-file-insert-file-contents): Make progress
+ display more user-friendly.
+ (epa-file-write-region): Ditto.
+
2011-08-10 Chong Yidong <cyd@stupidchicken.com>
* subr.el (string-mark-left-to-right): New function.
context
(cons #'epa-file-passphrase-callback-function
local-file))
- (epg-context-set-progress-callback context
- #'epa-progress-callback-function)
+ (epg-context-set-progress-callback
+ context
+ (cons #'epa-progress-callback-function
+ (format "Decrypting %s" file)))
(unwind-protect
(progn
(if replace
context
(cons #'epa-file-passphrase-callback-function
file))
- (epg-context-set-progress-callback context
- #'epa-progress-callback-function)
+ (epg-context-set-progress-callback
+ context
+ (cons #'epa-progress-callback-function
+ (format "Encrypting %s" file)))
(epg-context-set-armor context epa-armor)
(condition-case error
(setq string
(defun epa-progress-callback-function (_context what _char current total
handback)
- (message "%s%d%% (%d/%d)" (or handback
- (concat what ": "))
- (if (> total 0) (floor (* (/ current (float total)) 100)) 0)
- current total))
+ (let ((prompt (or handback
+ (format "Processing %s: " what))))
+ ;; According to gnupg/doc/DETAIL: a "total" of 0 indicates that
+ ;; the total amount is not known. The condition TOTAL && CUR ==
+ ;; TOTAL may be used to detect the end of an operation.
+ (if (> total 0)
+ (if (= current total)
+ (message "%s...done" prompt)
+ (message "%s...%d%%" prompt
+ (floor (* (/ current (float total)) 100))))
+ (message "%s..." prompt))))
;;;###autoload
(defun epa-decrypt-file (file)