2009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
use grub_lltoa instead of grub_itoa and grub_ltoa for all purposes * kern/misc.c (grub_itoa): Removed function (grub_ltoa): likewise (grub_vsprintf): use grub_lltoa
This commit is contained in:
parent
13c007813a
commit
5999d61917
2 changed files with 24 additions and 53 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
use grub_lltoa instead of grub_itoa and grub_ltoa for all purposes
|
||||||
|
|
||||||
|
* kern/misc.c (grub_itoa): Removed function
|
||||||
|
(grub_ltoa): likewise
|
||||||
|
(grub_vsprintf): use grub_lltoa
|
||||||
|
|
||||||
2009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
|
2009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
Restore grub-emu
|
Restore grub-emu
|
||||||
|
|
69
kern/misc.c
69
kern/misc.c
|
@ -565,56 +565,6 @@ grub_reverse (char *str)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
|
||||||
grub_itoa (char *str, int c, unsigned n)
|
|
||||||
{
|
|
||||||
unsigned base = (c == 'x') ? 16 : 10;
|
|
||||||
char *p;
|
|
||||||
|
|
||||||
if ((int) n < 0 && c == 'd')
|
|
||||||
{
|
|
||||||
n = (unsigned) (-((int) n));
|
|
||||||
*str++ = '-';
|
|
||||||
}
|
|
||||||
|
|
||||||
p = str;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
unsigned d = n % base;
|
|
||||||
*p++ = (d > 9) ? d + 'a' - 10 : d + '0';
|
|
||||||
}
|
|
||||||
while (n /= base);
|
|
||||||
*p = 0;
|
|
||||||
|
|
||||||
grub_reverse (str);
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
static char *
|
|
||||||
grub_ltoa (char *str, int c, unsigned long n)
|
|
||||||
{
|
|
||||||
unsigned long base = (c == 'x') ? 16 : 10;
|
|
||||||
char *p;
|
|
||||||
|
|
||||||
if ((long) n < 0 && c == 'd')
|
|
||||||
{
|
|
||||||
n = (unsigned long) (-((long) n));
|
|
||||||
*str++ = '-';
|
|
||||||
}
|
|
||||||
|
|
||||||
p = str;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
unsigned long d = n % base;
|
|
||||||
*p++ = (d > 9) ? d + 'a' - 10 : d + '0';
|
|
||||||
}
|
|
||||||
while (n /= base);
|
|
||||||
*p = 0;
|
|
||||||
|
|
||||||
grub_reverse (str);
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Divide N by D, return the quotient, and store the remainder in *R. */
|
/* Divide N by D, return the quotient, and store the remainder in *R. */
|
||||||
grub_uint64_t
|
grub_uint64_t
|
||||||
grub_divmod64 (grub_uint64_t n, grub_uint32_t d, grub_uint32_t *r)
|
grub_divmod64 (grub_uint64_t n, grub_uint32_t d, grub_uint32_t *r)
|
||||||
|
@ -746,6 +696,7 @@ grub_vsprintf (char *str, const char *fmt, va_list args)
|
||||||
int n;
|
int n;
|
||||||
int longfmt = 0;
|
int longfmt = 0;
|
||||||
int longlongfmt = 0;
|
int longlongfmt = 0;
|
||||||
|
int unsig = 0;
|
||||||
|
|
||||||
if (*fmt && *fmt =='-')
|
if (*fmt && *fmt =='-')
|
||||||
{
|
{
|
||||||
|
@ -804,9 +755,11 @@ grub_vsprintf (char *str, const char *fmt, va_list args)
|
||||||
write_str ("0x");
|
write_str ("0x");
|
||||||
c = 'x';
|
c = 'x';
|
||||||
longlongfmt |= (sizeof (void *) == sizeof (long long));
|
longlongfmt |= (sizeof (void *) == sizeof (long long));
|
||||||
/* fall through */
|
/* Fall through. */
|
||||||
case 'x':
|
case 'x':
|
||||||
case 'u':
|
case 'u':
|
||||||
|
unsig = 1;
|
||||||
|
/* Fall through. */
|
||||||
case 'd':
|
case 'd':
|
||||||
if (longlongfmt)
|
if (longlongfmt)
|
||||||
{
|
{
|
||||||
|
@ -815,15 +768,25 @@ grub_vsprintf (char *str, const char *fmt, va_list args)
|
||||||
ll = va_arg (args, long long);
|
ll = va_arg (args, long long);
|
||||||
grub_lltoa (tmp, c, ll);
|
grub_lltoa (tmp, c, ll);
|
||||||
}
|
}
|
||||||
|
else if (longfmt && unsig)
|
||||||
|
{
|
||||||
|
unsigned long l = va_arg (args, unsigned long);
|
||||||
|
grub_lltoa (tmp, c, l);
|
||||||
|
}
|
||||||
else if (longfmt)
|
else if (longfmt)
|
||||||
{
|
{
|
||||||
long l = va_arg (args, long);
|
long l = va_arg (args, long);
|
||||||
grub_ltoa (tmp, c, l);
|
grub_lltoa (tmp, c, l);
|
||||||
|
}
|
||||||
|
else if (unsig)
|
||||||
|
{
|
||||||
|
unsigned u = va_arg (args, unsigned);
|
||||||
|
grub_lltoa (tmp, c, u);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
n = va_arg (args, int);
|
n = va_arg (args, int);
|
||||||
grub_itoa (tmp, c, n);
|
grub_lltoa (tmp, c, n);
|
||||||
}
|
}
|
||||||
if (! rightfill && grub_strlen (tmp) < format1)
|
if (! rightfill && grub_strlen (tmp) < format1)
|
||||||
write_fill (zerofill, format1 - grub_strlen (tmp));
|
write_fill (zerofill, format1 - grub_strlen (tmp));
|
||||||
|
|
Loading…
Reference in a new issue