1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-22 07:09:54 +00:00

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.
This commit is contained in:
Daiki Ueno 2011-08-12 12:30:18 +09:00
parent fb568e6327
commit 9d5cb6312b
3 changed files with 27 additions and 8 deletions

View File

@ -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.

View File

@ -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

View File

@ -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)