提交 febb2ae4 创建 作者: Austin Clements's avatar Austin Clements

Support # modifier to %o and %x

上级 f2e95a4d
...@@ -208,6 +208,8 @@ vprintfmt(void (*putch)(int, void*), void *putdat, ...@@ -208,6 +208,8 @@ vprintfmt(void (*putch)(int, void*), void *putdat,
case 'o': case 'o':
num = getuint (ap, lflag); num = getuint (ap, lflag);
base = 8; base = 8;
if (altflag && num)
putch ('0', putdat);
goto number; goto number;
// pointer // pointer
...@@ -223,6 +225,10 @@ vprintfmt(void (*putch)(int, void*), void *putdat, ...@@ -223,6 +225,10 @@ vprintfmt(void (*putch)(int, void*), void *putdat,
case 'x': case 'x':
num = getuint (ap, lflag); num = getuint (ap, lflag);
base = 16; base = 16;
if (altflag && num) {
putch ('0', putdat);
putch ('x', putdat);
}
number: number:
printnum (putch, putdat, num, base, MAX(width, 0), padc); printnum (putch, putdat, num, base, MAX(width, 0), padc);
break; break;
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论