Lines Matching defs:gs
98 grouping_init(struct grouping_state *gs, int ndigits, locale_t loc)
103 gs->grouping = __fix_nogrouping(locale->grouping);
104 gs->thousands_sep = locale->thousands_sep;
105 gs->thousep_len = strlen(gs->thousands_sep);
107 gs->nseps = gs->nrepeats = 0;
108 gs->lead = ndigits;
109 while (*gs->grouping != CHAR_MAX) {
110 if (gs->lead <= *gs->grouping)
112 gs->lead -= *gs->grouping;
113 if (*(gs->grouping+1)) {
114 gs->nseps++;
115 gs->grouping++;
117 gs->nrepeats++;
119 return ((gs->nseps + gs->nrepeats) * gs->thousep_len);
126 grouping_print(struct grouping_state *gs, struct io_state *iop,
131 if (io_printandpad(iop, cp, ep, gs->lead, zeroes, loc))
133 cp += gs->lead;
134 while (gs->nseps > 0 || gs->nrepeats > 0) {
135 if (gs->nrepeats > 0)
136 gs->nrepeats--;
138 gs->grouping--;
139 gs->nseps--;
141 if (io_print(iop, gs->thousands_sep, gs->thousep_len, loc))
143 if (io_printandpad(iop, cp, ep, *gs->grouping, zeroes, loc))
145 cp += *gs->grouping;
326 struct grouping_state gs; /* thousands' grouping info */
513 gs.grouping = NULL;
822 size += grouping_init(&gs, expt, loc);
981 size += grouping_init(&gs, size, loc);
1332 if (gs.grouping) {
1333 if (grouping_print(&gs, &io, cp, buf+BUF, loc) < 0)
1349 if (gs.grouping) {
1350 n = grouping_print(&gs, &io,