summary refs log tree commit diff
path: root/locale
diff options
context:
space:
mode:
Diffstat (limited to 'locale')
-rw-r--r--locale/langinfo.h75
-rw-r--r--locale/programs/charmap.c4
-rw-r--r--locale/programs/charset.c5
-rw-r--r--locale/programs/ld-collate.c12
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];