summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog8
-rw-r--r--lisp/epa-file.el12
-rw-r--r--lisp/epa.el15
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 <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.
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)