Don't rely on implicit promotion of float to double in printf args.
authorRichard W.M. Jones <rjones@redhat.com>
Tue, 22 Nov 2011 16:40:37 +0000 (16:40 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Tue, 22 Nov 2011 16:41:48 +0000 (16:41 +0000)
df/output.c
generator/generator_fish.ml

index ea981b8..2950fff 100644 (file)
@@ -157,7 +157,7 @@ print_stat (const char *name, const char *uuid_param,
     /* Use 'ceil' on the percentage in order to emulate what df itself does. */
     snprintf (buf[3], MAX_LEN, "%3.0f%%", ceil (percent));
   else
     /* Use 'ceil' on the percentage in order to emulate what df itself does. */
     snprintf (buf[3], MAX_LEN, "%3.0f%%", ceil (percent));
   else
-    snprintf (buf[3], MAX_LEN, "%.1f", percent);
+    snprintf (buf[3], MAX_LEN, "%.1f", (double) percent);
   cols[3] = buf[3];
 
 #undef MAX_LEN
   cols[3] = buf[3];
 
 #undef MAX_LEN
index 03711d1..3d52421 100644 (file)
@@ -267,9 +267,11 @@ Guestfish will prompt for these separately."
             pr "  printf (\"%%s%s: %%c\\n\", indent, %s->%s);\n"
               name typ name
         | name, FOptPercent ->
             pr "  printf (\"%%s%s: %%c\\n\", indent, %s->%s);\n"
               name typ name
         | name, FOptPercent ->
-            pr "  if (%s->%s >= 0) printf (\"%%s%s: %%g %%%%\\n\", indent, %s->%s);\n"
-              typ name name typ name;
-            pr "  else printf (\"%%s%s: \\n\", indent);\n" name
+            pr "  if (%s->%s >= 0)\n" typ name;
+            pr "    printf (\"%%s%s: %%g %%%%\\n\", indent, (double) %s->%s);\n"
+              name typ name;
+            pr "  else\n";
+            pr "    printf (\"%%s%s: \\n\", indent);\n" name
       ) cols;
       pr "}\n";
       pr "\n";
       ) cols;
       pr "}\n";
       pr "\n";