mescc: Mes C Library: vfprintf, vsnprintf: Pad floats with space.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 1 Sep 2019 20:18:00 +0000 (22:18 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sun, 1 Sep 2019 20:18:00 +0000 (22:18 +0200)
* lib/stdio/vfprintf.c (vfprintf): Pad floats with space.
* lib/stdio/vsnprintf.c (vsnprintf): Pad floats with space.
* lib/tests/stdio/90-sprintf.c: Test it.

lib/stdio/vfprintf.c
lib/stdio/vsnprintf.c
lib/tests/stdio/90-sprintf.c
lib/tests/stdio/90-sprintf.stdout

index 9de972ade07440de06330656ed488d65de24580f..979ad8df7387ea7ee7ca562475f1477ae5f16f8a 100644 (file)
@@ -204,7 +204,7 @@ vfprintf (FILE * f, char const *format, va_list ap)
                     }
                   while (precision > length)
                     {
-                      fputc ('0', f);
+                      fputc (' ', f);
                       precision--;
                       width--;
                       count++;
index 8b99ff589314551c3c6bfb5464c3762e1a85f4ca..a8d9624d90e88793fa3270e090726ed9392ea917 100644 (file)
@@ -222,7 +222,7 @@ vsnprintf (char *str, size_t size, char const *format, va_list ap)
                   while (precision > length)
                     {
                       if (count < size)
-                        *str++ = '0';
+                        *str++ = ' ';
                       precision--;
                       width--;
                       count++;
index 2401195d9d190cfb71ca9c3c5df0d7fef8b11128..cbbd8918f9fd6253c2c1a0b6259c6c9dff765548 100644 (file)
@@ -18,7 +18,7 @@
  * along with GNU Mes.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include <libmes.h>
+#include <mes/lib.h>
 #include <stdio.h>
 #include <stdlib.h>
 
@@ -26,8 +26,18 @@ int
 main ()
 {
   char buf[20];
-  double d = 0;
-  sprintf (buf, "%.6g", d);
+
+  int i = 0;
+  printf ("%3.6d\n", i);
+  sprintf (buf, "%3.6d", i);
+  puts (buf);
+
+  double d = 1;
+  printf ("%3.6f\n", d);
+  sprintf (buf, "%3.6f", d);
+  puts (buf);
+  printf ("%3.6g\n", d);
+  sprintf (buf, "%3.6g", d);
   puts (buf);
 
   return 0;
index 573541ac9702dd3969c9bc859d2b91ec1f7e6e56..ff6ae31d0e485351cb67e818d67a29a75927ef9f 100644 (file)
@@ -1 +1,6 @@
-0
+000000
+000000
+1.000000
+1.000000
+  1
+  1