ASSERT (retval == strlen (result));
}
- { /* FLAG_ZERO. */
+ { /* Width. */
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "%10f %d", 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* FLAG_LEFT. */
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "%-10f %d", 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* FLAG_SHOWSIGN. */
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "%+f %d", 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "+1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* FLAG_SPACE. */
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "% f %d", 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* FLAG_ALT. */
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "%#f %d", 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* FLAG_ALT. */
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "%#.f %d", 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "2. 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* FLAG_ZERO with finite number. */
char result[100];
int retval =
my_snprintf (result, sizeof (result), "%015f %d", 1234.0, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* FLAG_ZERO with NaN. */
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "%015f %d", NaN (), 33, 44, 55);
+ ASSERT (strcmp (result, " nan 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* Precision. */
char result[100];
int retval =
ASSERT (retval == strlen (result));
}
- { /* FLAG_ZERO. */
+ { /* Width. */
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "%10Lf %d", 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* FLAG_LEFT. */
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "%-10Lf %d", 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* FLAG_SHOWSIGN. */
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "%+Lf %d", 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "+1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* FLAG_SPACE. */
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "% Lf %d", 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* FLAG_ALT. */
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "%#Lf %d", 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* FLAG_ALT. */
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "%#.Lf %d", 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "2. 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* FLAG_ZERO with finite number. */
char result[100];
int retval =
my_snprintf (result, sizeof (result), "%015Lf %d", 1234.0L, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* FLAG_ZERO with NaN. */
+ static long double zero = 0.0L;
+ char result[100];
+ int retval =
+ my_snprintf (result, sizeof (result), "%015Lf %d", zero / zero, 33, 44, 55);
+ ASSERT (strcmp (result, " nan 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* Precision. */
char result[100];
int retval =