Use %b qualifier just like printf(9)
This commit is contained in:
parent
ca506e92e9
commit
a55f52c205
1 changed files with 22 additions and 0 deletions
22
phoned/log.c
22
phoned/log.c
|
@ -59,6 +59,10 @@ int lprintf(enum ltype logtype, const char* fmt, ...)
|
||||||
char* str;
|
char* str;
|
||||||
void* voi;
|
void* voi;
|
||||||
int maxsize;
|
int maxsize;
|
||||||
|
int tmp;
|
||||||
|
const char *p;
|
||||||
|
long num;
|
||||||
|
unsigned n;
|
||||||
time_t now;
|
time_t now;
|
||||||
char tmt[128];
|
char tmt[128];
|
||||||
now = time(NULL);
|
now = time(NULL);
|
||||||
|
@ -98,6 +102,24 @@ int lprintf(enum ltype logtype, const char* fmt, ...)
|
||||||
uns = va_arg(ap, unsigned);
|
uns = va_arg(ap, unsigned);
|
||||||
cnt += fprintf(logf, ofmt, uns);
|
cnt += fprintf(logf, ofmt, uns);
|
||||||
break;
|
break;
|
||||||
|
case 'b':
|
||||||
|
num = (unsigned int)va_arg(ap, int);
|
||||||
|
p = va_arg(ap, char *);
|
||||||
|
if(num == 0) break;
|
||||||
|
for(tmp = 0; *p;) {
|
||||||
|
n = (int)p++;
|
||||||
|
if(num & (1 << (n - 1))) {
|
||||||
|
fputc(tmp ? ',' : '<', logf);
|
||||||
|
for(;(n = *p) > ' '; ++p)
|
||||||
|
fputc(n, logf);
|
||||||
|
tmp = 1;
|
||||||
|
} else
|
||||||
|
for(;*p > ' '; ++p)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(tmp)
|
||||||
|
fputc('>', logf);
|
||||||
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
cha = (char) va_arg(ap, int);
|
cha = (char) va_arg(ap, int);
|
||||||
cnt += fprintf(logf, ofmt, cha);
|
cnt += fprintf(logf, ofmt, cha);
|
||||||
|
|
Loading…
Reference in a new issue