[Pkg-gnupg-commit] [gnupg2] 57/112: gpg: Extend the PROGRESS line to give the used unit.
Daniel Kahn Gillmor
dkg at fifthhorseman.net
Tue Aug 30 17:48:20 UTC 2016
This is an automated email from the git hooks/post-receive script.
dkg pushed a commit to branch master
in repository gnupg2.
commit 16feb1e0ea9b5d3966f22f4ae047335b9d1b60e1
Author: Werner Koch <wk at gnupg.org>
Date: Tue Aug 9 16:22:24 2016 +0200
gpg: Extend the PROGRESS line to give the used unit.
* g10/progress.c (write_status_progress): Print the units parameter.
Signed-off-by: Werner Koch <wk at gnupg.org>
---
doc/DETAILS | 5 ++++-
g10/progress.c | 15 ++++++++++++---
2 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/doc/DETAILS b/doc/DETAILS
index 02f9bad..0139fdb 100644
--- a/doc/DETAILS
+++ b/doc/DETAILS
@@ -929,7 +929,7 @@ pkd:0:1024:B665B1435F4C2 .... FF26ABB:
- 3 :: Ambigious specification
- 4 :: Key is stored on a smartcard.
-*** PROGRESS <what> <char> <cur> <total>
+*** PROGRESS <what> <char> <cur> <total> [<units>]
Used by the primegen and Public key functions to indicate
progress. <char> is the character displayed with no --status-fd
enabled, with the linefeed replaced by an 'X'. <cur> is the
@@ -953,6 +953,9 @@ pkd:0:1024:B665B1435F4C2 .... FF26ABB:
the data of a smartcard.
- card_busy :: A smartcard is still working
+ <units> is sometines used to describe the units for <current> and
+ <total>. For example "B", "KiB", or "MiB".
+
*** BACKUP_KEY_CREATED <fingerprint> <fname>
A backup of a key identified by <fingerprint> has been writte to
the file <fname>; <fname> is percent-escaped.
diff --git a/g10/progress.c b/g10/progress.c
index a1027b8..efc3b3a 100644
--- a/g10/progress.c
+++ b/g10/progress.c
@@ -75,7 +75,9 @@ static void
write_status_progress (const char *what,
unsigned long current, unsigned long total)
{
- char buffer[50];
+ char buffer[60];
+ char units[] = "BKMGTPEZY?";
+ int unitidx = 0;
/* Although we use an unsigned long for the values, 32 bit
* applications using GPGME will use an "int" and thus are limited
@@ -98,6 +100,7 @@ write_status_progress (const char *what,
{
total /= 1024;
current /= 1024;
+ unitidx++;
}
}
else
@@ -105,11 +108,17 @@ write_status_progress (const char *what,
while (current > 1024*1024)
{
current /= 1024;
+ unitidx++;
}
}
- snprintf (buffer, sizeof buffer, "%.20s ? %lu %lu",
- what? what : "?", current, total);
+ if (unitidx > 9)
+ unitidx = 9;
+
+ snprintf (buffer, sizeof buffer, "%.20s ? %lu %lu %c%s",
+ what? what : "?", current, total,
+ units[unitidx],
+ unitidx? "iB" : "");
write_status_text (STATUS_PROGRESS, buffer);
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git
More information about the Pkg-gnupg-commit
mailing list