dietlibc/dietlibc-0.31.20080212-printffmt.patch
2008-02-13 17:52:03 +00:00

33 lines
1.1 KiB
Diff

diff -up dietlibc-0.31.20080212/test/printf.c.~1~ dietlibc-0.31.20080212/test/printf.c
diff -up dietlibc-0.31.20080212/lib/__v_printf.c.~1~ dietlibc-0.31.20080212/lib/__v_printf.c
--- dietlibc-0.31.20080212/lib/__v_printf.c.~1~ 2008-02-13 15:42:52.000000000 +0100
+++ dietlibc-0.31.20080212/lib/__v_printf.c 2008-02-13 17:26:13.000000000 +0100
@@ -222,7 +222,7 @@ print_out:
if (flag_dot && width==0) width=preci;
if (!flag_dot) preci=sz;
- if (!flag_left) { /* do left-side padding */
+ if (!flag_left && padwith==' ') { /* do left-side padding with spaces */
if (write_pad(&len,fn,width-preci,padwith))
return -1;
}
@@ -230,6 +230,10 @@ print_out:
B_WRITE(fn,sign,todo);
len+=todo;
}
+ if (!flag_left && padwith!=' ') { /* do left-side padding with '0' */
+ if (write_pad(&len,fn,width-preci,padwith))
+ return -1;
+ }
/* do preci padding */
if (write_pad(&len,fn,preci-sz,precpadwith))
return -1;
@@ -385,7 +389,7 @@ num_printf:
sz=strlen(s);
if (width<sz) width=sz;
- padwith='0';
+ precpadwith='0';
flag_dot=0;
flag_hash=0;
goto print_out;