Lines Matching refs:gs
129 grouping_init(struct grouping_state *gs, int ndigits, locale_t locale)
132 gs->grouping = localeconv_l(locale)->grouping;
133 gs->thousands_sep = get_thousep(locale);
135 gs->nseps = gs->nrepeats = 0;
136 gs->lead = ndigits;
137 while (*gs->grouping != CHAR_MAX) {
138 if (gs->lead <= *gs->grouping)
140 gs->lead -= *gs->grouping;
141 if (*(gs->grouping+1)) {
142 gs->nseps++;
143 gs->grouping++;
145 gs->nrepeats++;
147 return (gs->nseps + gs->nrepeats);
154 grouping_print(struct grouping_state *gs, struct io_state *iop,
159 if (io_printandpad(iop, cp, ep, gs->lead, zeroes, locale))
161 cp += gs->lead;
162 while (gs->nseps > 0 || gs->nrepeats > 0) {
163 if (gs->nrepeats > 0)
164 gs->nrepeats--;
166 gs->grouping--;
167 gs->nseps--;
169 if (io_print(iop, &gs->thousands_sep, 1, locale))
171 if (io_printandpad(iop, cp, ep, *gs->grouping, zeroes, locale))
173 cp += *gs->grouping;
401 struct grouping_state gs; /* thousands' grouping info */
577 gs.grouping = NULL;
839 size += grouping_init(&gs, expt, locale);
978 size += grouping_init(&gs, size, locale);
1041 if (gs.grouping) {
1042 if (grouping_print(&gs, &io, cp, buf+BUF, locale) < 0)
1058 if (gs.grouping) {
1059 n = grouping_print(&gs, &io,