7 ssize_t strfmon(char *s, size_t n, const char *fmt, ...)
11 int fill, nogrp, negpar, nosym, left, intl;
24 if (*fmt == '%') goto literal;
53 for (fw=0; isdigit(*fmt); fmt++)
54 fw = 10*fw + (*fmt-'0');
57 if (*fmt=='#') for (lp=0, fmt++; isdigit(*fmt); fmt++)
58 lp = 10*lp + (*fmt-'0');
59 if (*fmt=='.') for (rp=0, fmt++; isdigit(*fmt); fmt++)
60 rp = 10*rp + (*fmt-'0');
65 if (!left && fw>w) w = fw;
67 x = va_arg(ap, double);
68 l = snprintf(s, n, "%*.*f", w, rp, x);