From: <n-...@us...> - 2010-12-30 18:06:25
|
Revision: 5032 http://gfarm.svn.sourceforge.net/gfarm/?rev=5032&view=rev Author: n-soda Date: 2010-12-30 18:06:19 +0000 (Thu, 30 Dec 2010) Log Message: ----------- fix #179 - the number reported by "gfdf -h" and "gfdf -H" is 1000 times smaller Modified Paths: -------------- gfarm_v2/trunk/gftool/gfdf/gfdf_simple.c Modified: gfarm_v2/trunk/gftool/gfdf/gfdf_simple.c =================================================================== --- gfarm_v2/trunk/gftool/gfdf/gfdf_simple.c 2010-12-30 13:41:04 UTC (rev 5031) +++ gfarm_v2/trunk/gftool/gfdf/gfdf_simple.c 2010-12-30 18:06:19 UTC (rev 5032) @@ -28,7 +28,8 @@ char *nodes_title_format; char *nodes_data_format; char *nodes_separator; - size_t (*to_string)(char *, size_t, unsigned long long, int); + size_t (*number_to_string)(char *, size_t, unsigned long long); + size_t (*blocks_to_string)(char *, size_t, unsigned long long); }; #define PRECISE_TITLE_FORMAT "%13s %13s %13s %4s" @@ -38,17 +39,32 @@ #define READABLE_DATA_FORMAT "%9s %6s %6s %3.0f%%" static size_t -precise_number(char *buf, size_t len, unsigned long long number, int dummy) +precise_number(char *buf, size_t len, unsigned long long number) { return (snprintf(buf, len, "%13llu", number)); } +static size_t +readable_number(char *buf, size_t len, unsigned long long number) +{ + return (gfarm_humanize_number(buf, len, number, + option_formatting_flags)); +} + +static size_t +readable_blocks(char *buf, size_t len, unsigned long long number) +{ + return (gfarm_humanize_number(buf, len, number * 1024, + option_formatting_flags)); +} + const struct formatter precise_formatter = { PRECISE_TITLE_FORMAT " %13s\n", PRECISE_DATA_FORMAT " %13s\n", PRECISE_TITLE_FORMAT " %s\n", PRECISE_DATA_FORMAT " %s\n", "----------------------------------------------", + precise_number, precise_number }; @@ -58,7 +74,8 @@ READABLE_TITLE_FORMAT " %s\n", READABLE_DATA_FORMAT " %s\n", "----------------------------", - gfarm_humanize_number + readable_number, + readable_blocks }; const struct formatter *formatter = &precise_formatter; @@ -86,14 +103,14 @@ if (e != GFARM_ERR_NO_ERROR) return (e); - (*formatter->to_string)(capbuf, sizeof capbuf, - (unsigned long long)used + avail, option_formatting_flags); - (*formatter->to_string)(usedbuf, sizeof usedbuf, - (unsigned long long)used, option_formatting_flags); - (*formatter->to_string)(availbuf, sizeof availbuf, - (unsigned long long)avail, option_formatting_flags); - (*formatter->to_string)(filesbuf, sizeof filesbuf, - (unsigned long long)files, option_formatting_flags); + (*formatter->blocks_to_string)(capbuf, sizeof capbuf, + (unsigned long long)used + avail); + (*formatter->blocks_to_string)(usedbuf, sizeof usedbuf, + (unsigned long long)used); + (*formatter->blocks_to_string)(availbuf, sizeof availbuf, + (unsigned long long)avail); + (*formatter->number_to_string)(filesbuf, sizeof filesbuf, + (unsigned long long)files); printf(formatter->summary_title_format, "1K-blocks", "Used", "Avail", "Use%", "Files"); @@ -200,12 +217,12 @@ for (i = 0; i < nhosts; ++i) { used = hosts[i].disk_used; avail = hosts[i].disk_avail; - (*formatter->to_string)(capbuf, sizeof capbuf, - (unsigned long long)used + avail, option_formatting_flags); - (*formatter->to_string)(usedbuf, sizeof usedbuf, - (unsigned long long)used, option_formatting_flags); - (*formatter->to_string)(availbuf, sizeof availbuf, - (unsigned long long)avail, option_formatting_flags); + (*formatter->blocks_to_string)(capbuf, sizeof capbuf, + (unsigned long long)used + avail); + (*formatter->blocks_to_string)(usedbuf, sizeof usedbuf, + (unsigned long long)used); + (*formatter->blocks_to_string)(availbuf, sizeof availbuf, + (unsigned long long)avail); printf(formatter->nodes_data_format, capbuf, usedbuf, availbuf, (double)used / (used + avail) * 100, @@ -215,13 +232,12 @@ } if (nhosts > 0) { puts(formatter->nodes_separator); - (*formatter->to_string)(capbuf, sizeof capbuf, - (unsigned long long)total_used + total_avail, - option_formatting_flags); - (*formatter->to_string)(usedbuf, sizeof usedbuf, - (unsigned long long)total_used, option_formatting_flags); - (*formatter->to_string)(availbuf, sizeof availbuf, - (unsigned long long)total_avail, option_formatting_flags); + (*formatter->blocks_to_string)(capbuf, sizeof capbuf, + (unsigned long long)total_used + total_avail); + (*formatter->blocks_to_string)(usedbuf, sizeof usedbuf, + (unsigned long long)total_used); + (*formatter->blocks_to_string)(availbuf, sizeof availbuf, + (unsigned long long)total_avail); printf(formatter->nodes_data_format, capbuf, usedbuf, availbuf, (double)total_used / (total_used + total_avail) * 100, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |