Lines Matching defs:gs
94 grouping_init(struct grouping_state *gs, int ndigits, locale_t loc)
99 gs->grouping = locale->grouping;
100 gs->thousands_sep = locale->thousands_sep;
101 gs->thousep_len = strlen(gs->thousands_sep);
103 gs->nseps = gs->nrepeats = 0;
104 gs->lead = ndigits;
105 while (*gs->grouping != CHAR_MAX) {
106 if (gs->lead <= *gs->grouping)
108 gs->lead -= *gs->grouping;
109 if (*(gs->grouping+1)) {
110 gs->nseps++;
111 gs->grouping++;
113 gs->nrepeats++;
115 return ((gs->nseps + gs->nrepeats) * gs->thousep_len);
122 grouping_print(struct grouping_state *gs, struct io_state *iop,
127 if (io_printandpad(iop, cp, ep, gs->lead, zeroes, locale))
129 cp += gs->lead;
130 while (gs->nseps > 0 || gs->nrepeats > 0) {
131 if (gs->nrepeats > 0)
132 gs->nrepeats--;
134 gs->grouping--;
135 gs->nseps--;
137 if (io_print(iop, gs->thousands_sep, gs->thousep_len, locale))
139 if (io_printandpad(iop, cp, ep, *gs->grouping, zeroes, locale))
141 cp += *gs->grouping;
315 struct grouping_state gs; /* thousands' grouping info */
498 gs.grouping = NULL;
823 size += grouping_init(&gs, expt, locale);
967 size += grouping_init(&gs, size, locale);
1031 if (gs.grouping) {
1032 if (grouping_print(&gs, &io, cp, buf+BUF, locale) < 0)
1048 if (gs.grouping) {
1049 n = grouping_print(&gs, &io,