From 9d5cb6312b5e6ad61c7cdb5a1282d81e677899f2 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Fri, 12 Aug 2011 12:30:18 +0900 Subject: [PATCH] Make epa-file progress message user-friendly. * 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. --- lisp/ChangeLog | 8 ++++++++ lisp/epa-file.el | 12 ++++++++---- lisp/epa.el | 15 +++++++++++---- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ad300b10f47..27515f767fb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2011-08-12 Daiki Ueno + + * 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 * subr.el (string-mark-left-to-right): New function. diff --git a/lisp/epa-file.el b/lisp/epa-file.el index aa9915d8cfa..118f44854cf 100644 --- a/lisp/epa-file.el +++ b/lisp/epa-file.el @@ -137,8 +137,10 @@ encryption is used." 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 @@ -211,8 +213,10 @@ encryption is used." 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 diff --git a/lisp/epa.el b/lisp/epa.el index d4f4fab2eed..e2fafc753d7 100644 --- a/lisp/epa.el +++ b/lisp/epa.el @@ -651,10 +651,17 @@ If SECRET is non-nil, list secret keys instead of public keys." (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)