74cc9e41fa
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3157 a1c6a512-1295-4272-9138-f99709370657
61 lines
2 KiB
C
61 lines
2 KiB
C
/***************************************************************************
|
|
* __________ __ ___.
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
* \/ \/ \/ \/ \/
|
|
* $Id$
|
|
*
|
|
* Copyright (C) 2002 by Daniel Stenberg
|
|
*
|
|
* All files in this archive are subject to the GNU General Public License.
|
|
* See the file COPYING in the source tree root for full license agreement.
|
|
*
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
* KIND, either express or implied.
|
|
*
|
|
****************************************************************************/
|
|
|
|
#include "sprintf.h"
|
|
#define ONE_KILOBYTE 1024
|
|
#define ONE_MEGABYTE (1024*1024)
|
|
|
|
/* The point of this function would be to return a string of the input data,
|
|
but never longer than 5 columns. Add suffix k and M when suitable...
|
|
Make sure to have space for 6 bytes in the buffer. 5 letters plus the
|
|
terminating zero byte. */
|
|
char *num2max5(unsigned int bytes, char *max5)
|
|
{
|
|
if(bytes < 100000) {
|
|
snprintf(max5, 6, "%5d", bytes);
|
|
return max5;
|
|
}
|
|
if(bytes < (9999*ONE_KILOBYTE)) {
|
|
snprintf(max5, 6, "%4dk", bytes/ONE_KILOBYTE);
|
|
return max5;
|
|
}
|
|
if(bytes < (100*ONE_MEGABYTE)) {
|
|
/* 'XX.XM' is good as long as we're less than 100 megs */
|
|
snprintf(max5, 6, "%2d.%0dM",
|
|
bytes/ONE_MEGABYTE,
|
|
(bytes%ONE_MEGABYTE)/(ONE_MEGABYTE/10) );
|
|
return max5;
|
|
}
|
|
snprintf(max5, 6, "%4dM", bytes/ONE_MEGABYTE);
|
|
return max5;
|
|
}
|
|
|
|
#ifdef TEST_MAX5
|
|
int main(int argc, char **argv)
|
|
{
|
|
char buffer[32];
|
|
if(argc>1) {
|
|
printf("%d => %s\n",
|
|
atoi(argv[1]),
|
|
num2max5(atoi(argv[1]), buffer));
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
#endif
|