about summary refs log tree commit diff
path: root/locale/programs/ld-ctype.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-11-05 22:33:33 +0000
committerUlrich Drepper <drepper@redhat.com>1999-11-05 22:33:33 +0000
commita9c27b3ee95cbd5a3c81d9999a97e6de7b770b5d (patch)
tree035ac3d3ad9bf7326cc1798ddc0b0960d498bc16 /locale/programs/ld-ctype.c
parent9532eb67a4a92baab960d8d37bfa28048285dabb (diff)
downloadglibc-a9c27b3ee95cbd5a3c81d9999a97e6de7b770b5d.tar.gz
glibc-a9c27b3ee95cbd5a3c81d9999a97e6de7b770b5d.tar.xz
glibc-a9c27b3ee95cbd5a3c81d9999a97e6de7b770b5d.zip
Update.
1999-11-05  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/bits/resource.h (RLIM_INFINITY): Adjust
	for kernel changes.
	* sysdeps/unix/sysv/linux/bits/types.h (__rlim_t, __rlim64_t): Make
	unsigned.

1999-10-04  Tim Waugh <twaugh@redhat.com>

	* posix/wordexp-test.c: More tests.

	* posix/wordexp.c (wordexp): Explicit null words should be kept.

1999-11-04  Shinya Hanataka  <hanataka@abyss.rim.or.jp>

	* locale/programs/linereader.c (get_string): Correct type of buf2
	variable.
	* locale/programs/ld-ctype.c (ctype_output): Store index correctly
	for _NL_CTYPE_INDIGITS_MB_LEN, _NL_CTYPE_INDIGITS_WC_LEN,
	_NL_CTYPE_INDIGITS*_MB, _NL_CTYPE_OUTDIGIT*_MB, and
	_NL_CTYPE_OUTDIGIT*_WC.
	(allocate_arrays): Completely initialize mapping tables.
	* locale/programs/ld-time.c (time_startup): We need the wide car
	string.
	(time_finish): Correct handling of era.
	(time_output): Fix a few array indeces.
	(time_read): Pass the repertoire map to lr_token.
Diffstat (limited to 'locale/programs/ld-ctype.c')
-rw-r--r--locale/programs/ld-ctype.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index ffc759b272..6378c131bf 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -836,6 +836,7 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap,
 	    iov[2 + elem + offset].iov_len = sizeof (uint32_t);
 	    *(uint32_t *) iov[2 + elem + offset].iov_base =
 	      ctype->mbdigits_act / 10;
+	    idx[elem + 1] = idx[elem] + sizeof (uint32_t);
 	    break;
 
 	  case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_WC_LEN):
@@ -843,6 +844,7 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap,
 	    iov[2 + elem + offset].iov_len = sizeof (uint32_t);
 	    *(uint32_t *) iov[2 + elem + offset].iov_base =
 	      ctype->wcdigits_act / 10;
+	    idx[elem + 1] = idx[elem] + sizeof (uint32_t);
 	    break;
 
 	  case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS0_MB) ... _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS9_MB):
@@ -865,6 +867,7 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap,
 			      ctype->mbdigits[cnt]->nbytes);
 		*cp++ = '\0';
 	      }
+	    idx[elem + 1] = idx[elem] + iov[2 + elem + offset].iov_len;
 	    break;
 
 	  case _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT0_MB) ... _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT9_MB):
@@ -880,6 +883,7 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap,
 	    *(char *) mempcpy (iov[2 + elem + offset].iov_base,
 			       ctype->mbdigits[cnt]->bytes,
 			       ctype->mbdigits[cnt]->nbytes) = '\0';
+	    idx[elem + 1] = idx[elem] + iov[2 + elem + offset].iov_len;
 	    break;
 
 	  case _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS0_WC) ... _NL_ITEM_INDEX (_NL_CTYPE_INDIGITS9_WC):
@@ -893,12 +897,14 @@ ctype_output (struct localedef_t *locale, struct charmap_t *charmap,
 		 cnt < ctype->wcdigits_act; cnt += 10)
 	      ((uint32_t *) iov[2 + elem + offset].iov_base)[cnt / 10]
 		= ctype->wcdigits[cnt];
+	    idx[elem + 1] = idx[elem] + iov[2 + elem + offset].iov_len;
 	    break;
 
 	  case _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT0_WC) ... _NL_ITEM_INDEX (_NL_CTYPE_OUTDIGIT9_WC):
 	    cnt = elem - _NL_CTYPE_OUTDIGIT0_WC;
 	    iov[2 + elem + offset].iov_base = &ctype->wcoutdigits[cnt];
 	    iov[2 + elem + offset].iov_len = sizeof (uint32_t);
+	    idx[elem + 1] = idx[elem] + iov[2 + elem + offset].iov_len;
 	    break;
 
 	  default:
@@ -2933,6 +2939,12 @@ Computing table size for character classes might take a while..."),
 
       /* EOF must map to EOF.  */
       ctype->map[idx][127] = EOF;
+
+      /* The 32 bit map collection.  */
+      for (idx2 = 0; idx2 < ctype->map_collection_act[idx]; ++idx2)
+	if (ctype->map_collection[idx][idx2] != 0)
+	  ctype->map[idx][128 + ctype->charnames[idx2]]
+	    = ctype->map_collection[idx][idx2];
     }
 
   /* Extra array for class and map names.  */
@@ -3041,7 +3053,8 @@ Computing table size for character classes might take a while..."),
 	}
 
       /* Next we allocate an array large enough and fill in the values.  */
-      sorted = alloca (number * sizeof (struct translit_t **));
+      sorted = (struct translit_t **) alloca (number
+					      * sizeof (struct translit_t **));
       runp = ctype->translit;
       number = 0;
       do