diff options
Diffstat (limited to 'locale')
-rw-r--r-- | locale/langinfo.h | 75 | ||||
-rw-r--r-- | locale/programs/charmap.c | 4 | ||||
-rw-r--r-- | locale/programs/charset.c | 5 | ||||
-rw-r--r-- | locale/programs/ld-collate.c | 12 |
4 files changed, 85 insertions, 11 deletions
diff --git a/locale/langinfo.h b/locale/langinfo.h index 8cdb104c0d..10e8dd249e 100644 --- a/locale/langinfo.h +++ b/locale/langinfo.h @@ -46,64 +46,114 @@ enum /* Abbreviated days of the week. */ ABDAY_1 = _NL_ITEM (LC_TIME, 0), /* Sun */ +#define ABDAY_1 ABDAY_1 ABDAY_2, +#define ABDAY_2 ABDAY_2 ABDAY_3, +#define ABDAY_3 ABDAY_3 ABDAY_4, +#define ABDAY_4 ABDAY_4 ABDAY_5, +#define ABDAY_5 ABDAY_5 ABDAY_6, +#define ABDAY_6 ABDAY_6 ABDAY_7, +#define ABDAY_7 ABDAY_7 /* Long-named days of the week. */ DAY_1, /* Sunday */ +#define DAY_1 DAY_1 DAY_2, /* Monday */ +#define DAY_2 DAY_2 DAY_3, /* Tuesday */ +#define DAY_3 DAY_3 DAY_4, /* Wednesday */ +#define DAY_4 DAY_4 DAY_5, /* Thursday */ +#define DAY_5 DAY_5 DAY_6, /* Friday */ +#define DAY_6 DAY_6 DAY_7, /* Saturday */ +#define DAY_7 DAY_7 /* Abbreviated month names. */ ABMON_1, /* Jan */ +#define ABMON_1 ABMON_1 ABMON_2, +#define ABMON_2 ABMON_2 ABMON_3, +#define ABMON_3 ABMON_3 ABMON_4, +#define ABMON_4 ABMON_4 ABMON_5, +#define ABMON_5 ABMON_5 ABMON_6, +#define ABMON_6 ABMON_6 ABMON_7, +#define ABMON_7 ABMON_7 ABMON_8, +#define ABMON_8 ABMON_8 ABMON_9, +#define ABMON_9 ABMON_9 ABMON_10, +#define ABMON_10 ABMON_10 ABMON_11, +#define ABMON_11 ABMON_11 ABMON_12, +#define ABMON_12 ABMON_12 /* Long month names. */ MON_1, /* January */ +#define MON_1 MON_1 MON_2, +#define MON_2 MON_2 MON_3, +#define MON_3 MON_3 MON_4, +#define MON_4 MON_4 MON_5, +#define MON_5 MON_5 MON_6, +#define MON_6 MON_6 MON_7, +#define MON_7 MON_7 MON_8, +#define MON_8 MON_8 MON_9, +#define MON_9 MON_9 MON_10, +#define MON_10 MON_10 MON_11, +#define MON_11 MON_11 MON_12, +#define MON_12 MON_12 AM_STR, /* Ante meridian string. */ +#define AM_STR AM_STR PM_STR, /* Post meridian string. */ +#define PM_STR PM_STR D_T_FMT, /* Date and time format for strftime. */ +#define D_T_FMT D_T_FMT D_FMT, /* Date format for strftime. */ +#define D_FMT D_FMT T_FMT, /* Time format for strftime. */ +#define T_FMT T_FMT T_FMT_AMPM, /* 12-hour time format for strftime. */ +#define T_FMT_AMPM T_FMT_AMPM ERA, /* Alternate era. */ +#define ERA ERA ERA_YEAR, /* Year in alternate era format. */ +#define ERA_YEAR ERA_YEAR ERA_D_FMT, /* Date in alternate era format. */ +#define ERA_D_FMT ERA_D_FMT ALT_DIGITS, /* Alternate symbols for digits. */ +#define ALT_DIGITS ALT_DIGITS ERA_D_T_FMT, /* Date and time in alternate era format. */ +#define ERA_D_T_FMT ERA_D_T_FMT ERA_T_FMT, /* Time in alternate era format. */ +#define ERA_T_FMT ERA_T_FMT _NL_TIME_NUM_ALT_DIGITS, /* Number entries in the alt_digits arrays. */ @@ -166,42 +216,67 @@ enum These items each correspond to a member of `struct lconv', defined in <locale.h>. */ INT_CURR_SYMBOL = _NL_ITEM (LC_MONETARY, 0), +#define INT_CURR_SYMBOL INT_CURR_SYMBOL CURRENCY_SYMBOL, +#define CURRENCY_SYMBOL CURRENCY_SYMBOL #ifdef __USE_UNIX98 CRNCYSTR = CURRENCY_SYMBOL, +# define CRNCYSTR CRNCYSTR #endif MON_DECIMAL_POINT, +#define MON_DECIMAL_POINT MON_DECIMAL_POINT MON_THOUSANDS_SEP, +#define MON_THOUSANDS_SEP MON_THOUSANDS_SEP MON_GROUPING, +#define MON_GROUPING MON_GROUPING POSITIVE_SIGN, +#define POSITIVE_SIGN POSITIVE_SIGN NEGATIVE_SIGN, +#define NEGATIVE_SIGN NEGATIVE_SIGN INT_FRAC_DIGITS, +#define INT_FRAC_DIGITS INT_FRAC_DIGITS FRAC_DIGITS, +#define FRAC_DIGITS FRAC_DIGITS P_CS_PRECEDES, +#define P_CS_PRECEDES P_CS_PRECEDES P_SEP_BY_SPACE, +#define P_SEP_BY_SPACE P_SEP_BY_SPACE N_CS_PRECEDES, +#define N_CS_PRECEDES N_CS_PRECEDES N_SEP_BY_SPACE, +#define N_SEP_BY_SPACE N_SEP_BY_SPACE P_SIGN_POSN, +#define P_SIGN_POSN P_SIGN_POSN N_SIGN_POSN, +#define N_SIGN_POSN N_SIGN_POSN _NL_NUM_LC_MONETARY, /* LC_NUMERIC category: formatting of numbers. These also correspond to members of `struct lconv'; see <locale.h>. */ DECIMAL_POINT = _NL_ITEM (LC_NUMERIC, 0), +#define DECIMAL_POINT DECIMAL_POINT #ifdef __USE_UNIX98 RADIXCHAR = DECIMAL_POINT, +# define RADIXCHAR RADIXCHAR #endif THOUSANDS_SEP, +#define THOUSANDS_SEP THOUSANDS_SEP #ifdef __USE_UNIX98 THOUSEP = THOUSANDS_SEP, +#define THOUSANDS_SEP THOUSANDS_SEP #endif GROUPING, +#define GROUPING GROUPING _NL_NUM_LC_NUMERIC, YESEXPR = _NL_ITEM (LC_MESSAGES, 0), /* Regex matching ``yes'' input. */ +#define YESEXPR YESEXPR NOEXPR, /* Regex matching ``no'' input. */ +#define NOEXPR NOEXPR YESSTR, /* Output string for ``yes''. */ +#define YESSTR YESSTR NOSTR, /* Output string for ``no''. */ +#define NOSTR NOSTR _NL_NUM_LC_MESSAGES, /* This marks the highest value used. */ diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c index 27c83cc0a7..1573d6c002 100644 --- a/locale/programs/charmap.c +++ b/locale/programs/charmap.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996. @@ -471,7 +471,7 @@ argument to <%s> must be a single character"), cmfile->token.val.str.start, cmfile->token.val.str.len); - state = 3; + state = 5; continue; case 90: diff --git a/locale/programs/charset.c b/locale/programs/charset.c index 00233abf8f..fdacf25328 100644 --- a/locale/programs/charset.c +++ b/locale/programs/charset.c @@ -125,10 +125,11 @@ insert_char (struct linereader *lr, struct charset_t *cs, int bytes, for (cnt = from_nr; cnt <= to_nr; ++cnt) { - sprintf (&buf[prefix_len], "%0d", cnt); + sprintf (&buf[prefix_len], "%0*d", len1 - prefix_len, cnt); if (insert_entry (&cs->char_table, buf, len1, - (void *) (unsigned long int) cnt) < 0) + (void *) (unsigned long int) (value + (cnt - from_nr))) + < 0) lr_error (lr, _("duplicate character name `%s'"), buf); } } diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c index 3a8c17a303..f01b1f662b 100644 --- a/locale/programs/ld-collate.c +++ b/locale/programs/ld-collate.c @@ -190,7 +190,7 @@ collate_startup (struct linereader *lr, struct localedef_t *locale, collate->all_patches = NULL; /* This tells us no UNDEFINED entry was found until now. */ - collate->undefined.this_weight = 0; + memset (&collate->undefined, '\0', sizeof (collate->undefined)); lr->translate_strings = 0; } @@ -457,12 +457,10 @@ Computing table size for collation information might take a while..."), information. While reading them they get inserted in the \ table and later not removed when something goes wrong with \ reading its weights. */ \ - { \ - value += 1 + runp->ordering[cnt]; \ + value += 1 + runp->ordering[cnt]; \ \ - if (runp->name[1] == L'\0') \ - has_simple = runp; \ - } \ + if (runp->name[1] == L'\0') \ + has_simple = runp; \ \ ADD_ELEMENT (runp, value); \ } \ @@ -1891,7 +1889,7 @@ collate_end_weight (struct linereader *lr, struct localedef_t *locale) || collate->kind == undefined); /* Fill in the missing weights. */ - while (++collate->weight_idx < collate->nrules) + while (collate->weight_idx++ < collate->nrules) { collate->weight[collate->nweight++] = pelem->this_weight; ++collate->weight_cnt[collate->weight_idx]; |