support archs with no renameat syscall, only renameat2
[musl] / src / stdio / vfwprintf.c
index e87ad42..0adf0b7 100644 (file)
@@ -5,6 +5,7 @@
 #include <string.h>
 #include <stdarg.h>
 #include <stddef.h>
+#include <stdlib.h>
 #include <wchar.h>
 #include <inttypes.h>
 
@@ -255,8 +256,11 @@ static int wprintf_core(FILE *f, const wchar_t *fmt, va_list *ap, union arg *nl_
                        }
                        continue;
                case 'c':
+                       if (w<1) w=1;
+                       if (w>1 && !(fl&LEFT_ADJ)) fprintf(f, "%*s", w-1, "");
                        fputwc(btowc(arg.i), f);
-                       l = 1;
+                       if (w>1 && (fl&LEFT_ADJ)) fprintf(f, "%*s", w-1, "");
+                       l = w;
                        continue;
                case 'C':
                        fputwc(arg.i, f);