Lines Matching +full:double +full:- +full:buffering

1 /*-
2 * SPDX-License-Identifier: BSD-3-Clause
62 #include "un-namespace.h"
79 wchar_t thousands_sep; /* locale-specific thousands separator */
80 const char *grouping; /* locale-specific numeric grouping rules */
96 nconv = mbrtowc(&decpt, localeconv_l(locale)->decimal_point, MB_CUR_MAX, &mbs); in get_decpt()
97 if (nconv == (size_t)-1 || nconv == (size_t)-2) in get_decpt()
110 nconv = mbrtowc(&thousep, localeconv_l(locale)->thousands_sep, in get_thousep()
112 if (nconv == (size_t)-1 || nconv == (size_t)-2) in get_thousep()
126 gs->grouping = localeconv_l(locale)->grouping; in grouping_init()
127 gs->thousands_sep = get_thousep(locale); in grouping_init()
129 gs->nseps = gs->nrepeats = 0; in grouping_init()
130 gs->lead = ndigits; in grouping_init()
131 while (*gs->grouping != CHAR_MAX) { in grouping_init()
132 if (gs->lead <= *gs->grouping) in grouping_init()
134 gs->lead -= *gs->grouping; in grouping_init()
135 if (*(gs->grouping+1)) { in grouping_init()
136 gs->nseps++; in grouping_init()
137 gs->grouping++; in grouping_init()
139 gs->nrepeats++; in grouping_init()
141 return (gs->nseps + gs->nrepeats); in grouping_init()
153 if (io_printandpad(iop, cp, ep, gs->lead, zeroes, locale)) in grouping_print()
154 return (-1); in grouping_print()
155 cp += gs->lead; in grouping_print()
156 while (gs->nseps > 0 || gs->nrepeats > 0) { in grouping_print()
157 if (gs->nrepeats > 0) in grouping_print()
158 gs->nrepeats--; in grouping_print()
160 gs->grouping--; in grouping_print()
161 gs->nseps--; in grouping_print()
163 if (io_print(iop, &gs->thousands_sep, 1, locale)) in grouping_print()
164 return (-1); in grouping_print()
165 if (io_printandpad(iop, cp, ep, *gs->grouping, zeroes, locale)) in grouping_print()
166 return (-1); in grouping_print()
167 cp += *gs->grouping; in grouping_print()
171 return (cp - cp0); in grouping_print()
181 * string eclipses the benefits of buffering.
190 iov = uio->uio_iov; in __sprint()
191 for (; uio->uio_resid != 0; uio->uio_resid -= len, iov++) { in __sprint()
192 p = (wchar_t *)iov->iov_base; in __sprint()
193 len = iov->iov_len; in __sprint()
196 return (-1); in __sprint()
199 uio->uio_iovcnt = 0; in __sprint()
205 * temporary buffer. We only work on write-only files; this avoids
220 fake._flags = fp->_flags & ~__SNBF; in __sbprintf()
221 fake._file = fp->_file; in __sbprintf()
222 fake._cookie = fp->_cookie; in __sbprintf()
223 fake._write = fp->_write; in __sbprintf()
224 fake._orientation = fp->_orientation; in __sbprintf()
225 fake._mbstate = fp->_mbstate; in __sbprintf()
237 fp->_flags |= __SERR; in __sbprintf()
254 if ((fp->_flags & __SSTR) == 0) in __xfputwc()
258 if ((len = wcrtomb(buf, wc, &mbs)) == (size_t)-1) { in __xfputwc()
259 fp->_flags |= __SERR; in __xfputwc()
293 * String is not guaranteed to be NUL-terminated. Find the in __mbsconv()
301 if (nconv == 0 || nconv == (size_t)-1 || in __mbsconv()
302 nconv == (size_t)-2) in __mbsconv()
308 if (nconv == (size_t)-1 || nconv == (size_t)-2) in __mbsconv()
328 if (nconv == 0 || nconv == (size_t)-1 || nconv == (size_t)-2) in __mbsconv()
332 insize -= nconv; in __mbsconv()
334 if (nconv == (size_t)-1 || nconv == (size_t)-2) { in __mbsconv()
344 * MT-safe version
355 if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) && in vfwprintf_l()
356 fp->_file >= 0) in vfwprintf_l()
377 * Non-MT-safe version
390 wchar_t sign; /* sign prefix (' ', '+', '-', or \0) */ in __vfwprintf()
397 * [+|-| ] [0x|0X] MMM . NNN [e|E|p|P] [+|-] ZZ in __vfwprintf()
398 * A B ---C--- D E F in __vfwprintf()
410 double dbl; in __vfwprintf()
411 long double ldbl; in __vfwprintf()
429 struct io_state io; /* I/O buffering state */ in __vfwprintf()
431 wchar_t ox[2]; /* space for 0x hex-prefix */ in __vfwprintf()
434 int nextarg; /* 1-based argument index */ in __vfwprintf()
530 savserr = fp->_flags & __SERR; in __vfwprintf()
531 fp->_flags &= ~__SERR; in __vfwprintf()
550 if ((n = fmt - cp) != 0) { in __vfwprintf()
566 prec = -1; in __vfwprintf()
574 /*- in __vfwprintf()
577 * -- ANSI X3J11 in __vfwprintf()
586 /*- in __vfwprintf()
588 * - flag followed by a positive field width.'' in __vfwprintf()
589 * -- ANSI X3J11 in __vfwprintf()
595 width = -width; in __vfwprintf()
597 case '-': in __vfwprintf()
618 /*- in __vfwprintf()
621 * -- ANSI X3J11 in __vfwprintf()
676 * Fixed-width integer types. On all platforms we in __vfwprintf()
712 fmt--; in __vfwprintf()
727 /* leading 0b/B only if non-zero */ in __vfwprintf()
752 ujval = -ujval; in __vfwprintf()
753 sign = '-'; in __vfwprintf()
758 ulval = -ulval; in __vfwprintf()
759 sign = '-'; in __vfwprintf()
779 fparg.ldbl = GETARG(long double); in __vfwprintf()
784 fparg.dbl = GETARG(double); in __vfwprintf()
790 prec = dtoaend - dtoaresult; in __vfwprintf()
795 ndig = dtoaend - dtoaresult; in __vfwprintf()
796 cp = convbuf = __mbsconv(dtoaresult, -1); in __vfwprintf()
813 expchar = ch - ('g' - 'e'); in __vfwprintf()
822 fparg.ldbl = GETARG(long double); in __vfwprintf()
827 fparg.dbl = GETARG(double); in __vfwprintf()
834 ndig = dtoaend - dtoaresult; in __vfwprintf()
835 cp = convbuf = __mbsconv(dtoaresult, -1); in __vfwprintf()
839 sign = '-'; in __vfwprintf()
852 if (expt > -4 && expt <= prec) { in __vfwprintf()
856 prec -= expt; in __vfwprintf()
858 prec = ndig - expt; in __vfwprintf()
871 expsize = exponent(expstr, expt - 1, expchar); in __vfwprintf()
891 * Assignment-like behavior is specified if the in __vfwprintf()
923 /*- in __vfwprintf()
926 * of printable characters, in an implementation- in __vfwprintf()
928 * -- ANSI X3J11 in __vfwprintf()
953 fp->_flags |= __SERR; in __vfwprintf()
983 /* leading 0x/X only if non-zero */ in __vfwprintf()
991 /*- in __vfwprintf()
994 * -- ANSI X3J11 in __vfwprintf()
999 /*- in __vfwprintf()
1002 * -- ANSI X3J11 in __vfwprintf()
1006 * -- Defect Report #151 in __vfwprintf()
1020 size = buf + BUF - cp; in __vfwprintf()
1044 * After any left-hand padding and prefixing, emit zeroes in __vfwprintf()
1065 /* right-adjusting blank padding */ in __vfwprintf()
1067 PAD(width - realsz, blanks); in __vfwprintf()
1078 /* right-adjusting zero padding */ in __vfwprintf()
1080 PAD(width - realsz, zeroes); in __vfwprintf()
1087 PAD(dprec - size, zeroes); in __vfwprintf()
1101 PAD(-expt, zeroes); in __vfwprintf()
1125 PRINT(cp, ndig-1); in __vfwprintf()
1126 PAD(prec - ndig, zeroes); in __vfwprintf()
1133 /* left-adjusting padding (always blank) */ in __vfwprintf()
1135 PAD(width - realsz, blanks); in __vfwprintf()
1151 fp->_flags |= savserr; in __vfwprintf()