From: Marcus Griep <marcus@griep.us>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Shawn O. Pearce" <spearce@spearce.org>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: [PATCH 2] count-objects: add human-readable size option
Date: Thu, 14 Aug 2008 10:26:07 -0400 [thread overview]
Message-ID: <48A4407F.6080902@griep.us> (raw)
In-Reply-To: <7vskt8f9x2.fsf@gitster.siamese.dyndns.org>
Junio C Hamano wrote:
> extern int human_readable(struct strbuf *,
> double value, int precision,
> const char **unit);
>
> static const char **size_unit = {
> "byte", "KB", "MB", "GB", NULL,
> };
> static const char **throughput_unit = {
> "bps", "Kbps", "Mbps", "Gbps", NULL,
> };
>
> human_readble(&sb, (double) bytes_transferred, 0, size_unit);
> human_readble(&sb, (double) throughput, 2, throughput_unit);
Here's what I'm looking at as a new signature:
extern int strbuf_add_human_readable(struct strbuf *,
double value, int maxlen,
int scale, const char *suffix,
int flags);
where 'maxlen' specifies the longest string that should be returned.
That will make it easier for any pretty-ish formatting like ls and
du use. A value of 0 is unlimited length.
'scale' is used to specify a boundary, above which value should be
reduced, and below which it should be reported. Commonly this is
1000. If 0, then it will find a scale that best fits into 'maxlen'.
If both 'maxlen' and 'scale' are 0, then it will use the default
of 1000.
'suffix' is appended onto every formatted string. This would often be
"", "B", "bps".
'flags' would provide the ability to switch between a binary (1024)
and an si (1000) period. Also, adding a space between number and
unit.
On success, would return 0. If maxlen is specified and there is not
enough space given the scale or an inordinately large value, return
-n, where n is the amount of additional length that would have been
needed.
Does this sound appropriate?
--
Marcus Griep
GPG Key ID: 0x5E968152
——
http://www.boohaunt.net
את.ψο´
next prev parent reply other threads:[~2008-08-14 14:27 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-13 20:05 [PATCH] count-objects: Add total pack size to verbose output Marcus Griep
2008-08-14 4:21 ` [PATCH 2] count-objects: add human-readable size option Marcus Griep
2008-08-14 4:38 ` Shawn O. Pearce
2008-08-14 4:44 ` Marcus Griep
2008-08-14 5:22 ` Junio C Hamano
2008-08-14 14:05 ` Johannes Schindelin
2008-08-14 14:26 ` Marcus Griep [this message]
2008-08-14 6:45 ` Alex Riesen
2008-08-14 14:03 ` Marcus Griep
2008-08-14 18:51 ` Alex Riesen
2008-08-15 9:22 ` Pierre Habouzit
2008-08-18 17:28 ` Alex Riesen
2008-08-14 7:39 ` Johannes Sixt
2008-08-14 14:09 ` Marcus Griep
2008-08-14 15:14 ` Petr Baudis
2008-08-14 16:26 ` Marcus Griep
2008-08-14 16:34 ` Petr Baudis
2008-08-14 16:42 ` Marcus Griep
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48A4407F.6080902@griep.us \
--to=marcus@griep.us \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).