Lines Matching defs:gs
123 grouping_init(struct grouping_state *gs, int ndigits, locale_t locale)
126 gs->grouping = localeconv_l(locale)->grouping;
127 gs->thousands_sep = get_thousep(locale);
129 gs->nseps = gs->nrepeats = 0;
130 gs->lead = ndigits;
131 while (*gs->grouping != CHAR_MAX) {
132 if (gs->lead <= *gs->grouping)
134 gs->lead -= *gs->grouping;
135 if (*(gs->grouping+1)) {
136 gs->nseps++;
137 gs->grouping++;
139 gs->nrepeats++;
141 return (gs->nseps + gs->nrepeats);
148 grouping_print(struct grouping_state *gs, struct io_state *iop,
153 if (io_printandpad(iop, cp, ep, gs->lead, zeroes, locale))
155 cp += gs->lead;
156 while (gs->nseps > 0 || gs->nrepeats > 0) {
157 if (gs->nrepeats > 0)
158 gs->nrepeats--;
160 gs->grouping--;
161 gs->nseps--;
163 if (io_print(iop, &gs->thousands_sep, 1, locale))
165 if (io_printandpad(iop, cp, ep, *gs->grouping, zeroes, locale))
167 cp += *gs->grouping;
391 struct grouping_state gs; /* thousands' grouping info */
567 gs.grouping = NULL;
885 size += grouping_init(&gs, expt, locale);
1024 size += grouping_init(&gs, size, locale);
1088 if (gs.grouping) {
1089 if (grouping_print(&gs, &io, cp, buf+BUF, locale) < 0)
1105 if (gs.grouping) {
1106 n = grouping_print(&gs, &io,