git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2] count-objects: add human-readable size option

From
Shawn O. Pearce <spearce@spearce.org>
Date
Aug 14, 2008, 04:38 UTC
Message-ID
<20080814043817.GC11232@spearce.org>
In-Reply-To
<1218687684-11671-1-git-send-email-marcus@griep.us>
Marcus Griep <marcus@griep.us> wrote:
Show 5 quoted lines
> diff --git a/Documentation/git-count-objects.txt b/Documentation/git-count-objects.txt
> index 75a8da1..291bc5e 100644
> --- a/Documentation/git-count-objects.txt
> +++ b/Documentation/git-count-objects.txt
> +++ b/builtin-count-objects.c
...
> +void human_readable_size(char *buf, int buf_size, double size /* in bytes */)

Hmm. This probably should be static. Or if it really is meant to be a utility for use elsewhere in Git, moved to someplace where string handling is done. Its not strbuf related, but maybe strbuf.c is a better location for this sort of library function.

If you do move this to strbuf.c, how about having it take a strbuf in and appending the formatted text onto it? You'll neer have to worry about the buffer being too small and it fits into the whole strbuf.c module thing.

If you keep this static here in builtin-count-objects.c, how about making the char *buf static scoped to the function, so you don't need to pass the buffer, its size, nor check its size?

Show 5 quoted lines
> +{
> +	char human_readable_prefixes[10] = "BKMGTPEZY";
> +	if (buf_size < 5)
> +		die("insufficient buffer size");
> +	int i = 0;

We don't declare variables after statements. Please declare all variables at the start of the block as not all compilers we support support this C99 syntax.

Oh, and welcome to Git. I saw your SVN patches. Glad to see you hacking. ;-)

Show 11 quoted lines
> +	for (; i < 8 && size >= 1000 ; ++i, size = size / 1024)
> +		;
> +	if (size >= 1000)
> +		die("size greater than 999Y");
> +	sprintf(buf, "%.*f%c",
> +		size < 10 ? 1 : 0,
> +		size,
> +		human_readable_prefixes[i]
> +		);
> +}
> +
-- 
Shawn.
Previous: Marcus GriepNext: Marcus Griep
Message 3 of 18 in “count-objects: Add total pack size to verbose output”
  1. count-objects: Add total pack size to verbose outputMarcus Griep, Aug 13, 2008
  2. count-objects: add human-readable size optionMarcus Griep, Aug 14, 2008
  3. Shawn O. PearceAug 14, 2008
  4. Marcus GriepAug 14, 2008
  5. Junio C HamanoAug 14, 2008
  6. Johannes SchindelinAug 14, 2008
  7. Marcus GriepAug 14, 2008
  8. Alex RiesenAug 14, 2008
  9. Marcus GriepAug 14, 2008
  10. Alex RiesenAug 14, 2008
  11. Pierre HabouzitAug 15, 2008
  12. Alex RiesenAug 18, 2008
  13. Johannes SixtAug 14, 2008
  14. Marcus GriepAug 14, 2008
  15. Petr BaudisAug 14, 2008
  16. Marcus GriepAug 14, 2008
  17. Petr BaudisAug 14, 2008
  18. Marcus GriepAug 14, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.