add %lB for lower case

This commit is contained in:
rsc 2005-02-13 18:34:57 +00:00
parent 52e5e85b02
commit 039b8c9af0

View file

@ -40,10 +40,10 @@ to32(mpint *b, char *buf, int len)
return rv; return rv;
} }
static char set16[] = "0123456789ABCDEF"; static char upper16[] = "0123456789ABCDEF";
static char lower16[] = "0123456789abcdef";
static int static int
to16(mpint *b, char *buf, int len) to16(mpint *b, char *buf, int len, char *set16)
{ {
mpdigit *p, x; mpdigit *p, x;
int i, j; int i, j;
@ -123,30 +123,8 @@ to10(mpint *b, char *buf, int len)
return 0; return 0;
} }
int static char*
mpfmt(Fmt *fmt) _mptoa(mpint *b, int base, char *buf, int len, char *set16)
{
mpint *b;
char *p;
b = va_arg(fmt->args, mpint*);
if(b == nil)
return fmtstrcpy(fmt, "*");
p = mptoa(b, fmt->prec, nil, 0);
fmt->flags &= ~FmtPrec;
if(p == nil)
return fmtstrcpy(fmt, "*");
else{
fmtstrcpy(fmt, p);
free(p);
return 0;
}
}
char*
mptoa(mpint *b, int base, char *buf, int len)
{ {
char *out; char *out;
int rv, alloced; int rv, alloced;
@ -177,7 +155,7 @@ mptoa(mpint *b, int base, char *buf, int len)
break; break;
default: default:
case 16: case 16:
rv = to16(b, out, len); rv = to16(b, out, len, set16);
break; break;
case 10: case 10:
rv = to10(b, out, len); rv = to10(b, out, len);
@ -190,3 +168,36 @@ mptoa(mpint *b, int base, char *buf, int len)
} }
return buf; return buf;
} }
char*
mptoa(mpint *b, int base, char *buf, int len)
{
return _mptoa(b, base, buf, len, upper16);
}
int
mpfmt(Fmt *fmt)
{
mpint *b;
char *p;
char *set16;
b = va_arg(fmt->args, mpint*);
if(b == nil)
return fmtstrcpy(fmt, "*");
set16 = upper16;
if(fmt->flags & FmtLong)
set16 = lower16;
p = _mptoa(b, fmt->prec, nil, 0, set16);
fmt->flags &= ~FmtPrec;
if(p == nil)
return fmtstrcpy(fmt, "*");
else{
fmtstrcpy(fmt, p);
free(p);
return 0;
}
}