- cc->decimal = ',';
- cc->grouping = '.';
- }
- return true;
-}
-
-/* Extracts a token from IN into a newly allocated AFFIX. Tokens
- are delimited by GROUPING. The token is truncated to at most
- FMT_STYLE_AFFIX_MAX characters. Returns the first character
- following the token. */
-static const char *
-extract_cc_token (const char *in, int grouping, struct substring *affix)
-{
- size_t ofs = 0;
- ss_alloc_uninit (affix, FMT_STYLE_AFFIX_MAX);
- for (; *in != '\0' && *in != grouping; in++)
- {
- if (*in == '\'' && in[1] == grouping)
- in++;
- if (ofs < FMT_STYLE_AFFIX_MAX)
- ss_data (*affix)[ofs++] = *in;
- }
- affix->length = ofs;
-
- if (*in == grouping)
- in++;
- return in;
-}
-
-/* Sets custom currency specifier CC having name CC_NAME ('A' through
- 'E') to correspond to the settings in CC_STRING. */
-static bool
-do_cc (const char *cc_string, enum fmt_type type)
-{
- struct fmt_number_style *cc = fmt_number_style_create ();
-
- /* Determine separators. */
- if (!find_cc_separators (cc_string, cc))
- {
- fmt_number_style_destroy (cc);
- msg (SE, _("%s: Custom currency string `%s' does not contain "
- "exactly three periods or commas (or it contains both)."),
- fmt_name (type), cc_string);
- return false;