xbps_show_pkg_info(): use humanize_number().

--HG--
extra : convert_revision : e1c903e76d6d5b6501c8893b6d14e23e5b395e58
This commit is contained in:
Juan RP 2008-12-22 07:09:04 +01:00
parent 1105f4f278
commit d10d9e824c
4 changed files with 54 additions and 9 deletions

43
include/humanize_number.h Normal file
View file

@ -0,0 +1,43 @@
/*
* Copyright (c) 1997, 1998, 1999, 2002 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
* by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
* NASA Ames Research Center, by Luke Mewburn and by Tomas Svensson.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _HUMANIZE_NUMBER_H_
#define _HUMANIZE_NUMBER_H_
#define HN_DECIMAL 0x01
#define HN_NOSPACE 0x02
#define HN_B 0x04
#define HN_DIVISOR_1000 0x08
#define HN_GETSCALE 0x10
#define HN_AUTOSCALE 0x20
int humanize_number(char *, size_t, int64_t, const char *, int, int);
#endif

View file

@ -48,4 +48,7 @@
/* SHA256 implementation */
#include "sha256.h"
/* NetBSD humanize_number() */
#include "humanize_number.h"
#endif /* !_XBPS_API_H_ */

View file

@ -37,12 +37,7 @@
#include <string.h>
#include <locale.h>
#define HN_DECIMAL 0x01
#define HN_NOSPACE 0x02
#define HN_B 0x04
#define HN_DIVISOR_1000 0x08
#define HN_GETSCALE 0x10
#define HN_AUTOSCALE 0x20
#include <xbps_api.h>
int
humanize_number(char *buf, size_t len, int64_t bytes,

View file

@ -373,6 +373,7 @@ xbps_show_pkg_info(prop_dictionary_t dict)
{
prop_object_t obj;
const char *sep = NULL;
char size[64];
assert(dict != NULL);
if (prop_dictionary_count(dict) == 0)
@ -383,9 +384,12 @@ xbps_show_pkg_info(prop_dictionary_t dict)
printf("Package: %s\n", prop_string_cstring_nocopy(obj));
obj = prop_dictionary_get(dict, "installed_size");
if (obj && prop_object_type(obj) == PROP_TYPE_NUMBER)
printf("Installed size: %zu bytes\n",
prop_number_unsigned_integer_value(obj));
if (obj && prop_object_type(obj) == PROP_TYPE_NUMBER) {
humanize_number(size, 5,
(int64_t)prop_number_unsigned_integer_value(obj),
"", HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL);
printf("Installed size: %s\n", size);
}
obj = prop_dictionary_get(dict, "maintainer");
if (obj && prop_object_type(obj) == PROP_TYPE_STRING)