Lines Matching refs:gs
97 grouping_init(struct grouping_state *gs, int ndigits, locale_t loc)
102 gs->grouping = locale->grouping;
103 gs->thousands_sep = locale->thousands_sep;
104 gs->thousep_len = strlen(gs->thousands_sep);
106 gs->nseps = gs->nrepeats = 0;
107 gs->lead = ndigits;
108 while (*gs->grouping != CHAR_MAX) {
109 if (gs->lead <= *gs->grouping)
111 gs->lead -= *gs->grouping;
112 if (*(gs->grouping+1)) {
113 gs->nseps++;
114 gs->grouping++;
116 gs->nrepeats++;
118 return ((gs->nseps + gs->nrepeats) * gs->thousep_len);
125 grouping_print(struct grouping_state *gs, struct io_state *iop,
130 if (io_printandpad(iop, cp, ep, gs->lead, zeroes, locale))
132 cp += gs->lead;
133 while (gs->nseps > 0 || gs->nrepeats > 0) {
134 if (gs->nrepeats > 0)
135 gs->nrepeats--;
137 gs->grouping--;
138 gs->nseps--;
140 if (io_print(iop, gs->thousands_sep, gs->thousep_len, locale))
142 if (io_printandpad(iop, cp, ep, *gs->grouping, zeroes, locale))
144 cp += *gs->grouping;
319 struct grouping_state gs; /* thousands' grouping info */
500 gs.grouping = NULL;
769 size += grouping_init(&gs, expt, locale);
906 size += grouping_init(&gs, size, locale);
969 if (gs.grouping) {
970 if (grouping_print(&gs, &io, cp, buf+BUF, locale) < 0)
986 if (gs.grouping) {
987 n = grouping_print(&gs, &io,