about summary refs log tree commit diff
path: root/locale
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-12-20 01:39:50 +0000
committerUlrich Drepper <drepper@redhat.com>1996-12-20 01:39:50 +0000
commit6d52618b15cbe25ed4822ac51321db292f28ccda (patch)
treebafef072c0f5cb67c09d7c1789888d4310ac568f /locale
parent10dc2a90b7f86d9bc1be9d1b9305a781882f7ac5 (diff)
downloadglibc-6d52618b15cbe25ed4822ac51321db292f28ccda.tar.gz
glibc-6d52618b15cbe25ed4822ac51321db292f28ccda.tar.xz
glibc-6d52618b15cbe25ed4822ac51321db292f28ccda.zip
Update from main archive 961219 cvs/libc-961220
Thu Dec 19 23:28:33 1996  Ulrich Drepper  <drepper@cygnus.com>

	* resolv/resolv.h: Update from BIND 4.9.5-P1.
	* resolv/res_comp.c: Likewise.
	* resolv/res_debug.c: Likewise.
	* resolv/Banner: Update version number.

Thu Dec 19 20:58:53 1996  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dlfcn.h: Add extern "C" wrapper.

	* io/utime.h: Don't define NULL since this isn't allowed in POSIX.
	* io/sys/stat.h: Declare `lstat' only if __USE_BSD ||
	__USE_XOPEN_EXTENDED.
	* locale/locale.h: Define NULL.
	* math/math.c: Don't include <errno.h> to define math errors.
	* stdlib/stdlib.h: Likewise.
	* posix/unistd.h: Don't declare environ.
	* posix/sys/utsname.h (struct utsname): Declare member domainname
	as __domainname is !__USE_GNU.
	* signal/signal.h: Declare size_t only if __USE_BSD ||
	__USE_XOPEN_EXTENDED.
	* stdio/stdio.h: Don't declare cuserid when __USE_POSIX, but
	instead when __USE_XOPEN.
	* string/string.h: Define strndup only if __USE_GNU.
	* sysdeps/unix/sysv/linux/clock.c: New file.
	* sysdeps/unix/sysv/linux/timebits.h: Define CLOCKS_PER_SEC as
	1000000 per X/Open standard.
	* features.h: Add code to recognize _POSIX_C_SOURCE value 199309.
	Define __USE_POSIX199309.
	* posix/unistd.h: Declare fdatasync only if __USE_POSIX199309.
	* time/time.c: Declare nanosleep only if __USE_POSIX199309.
	Patches by Rüdiger Helsch <rh@unifix.de>.

	* locale/locale.h: Add declaration of newlocale and freelocale.

	* new-malloc/Makefile (distibute): Add mtrace.awk.
	(dist-routines): Add mcheck and mtrace.
	(install-lib, non-lib.a): Define as libmcheck.a.
	* new-malloc/malloc.h: Add declaration of __malloc_initialized.
	* new-malloc/mcheck.c: New file.
	* new-malloc/mcheck.h: New file.
	* new-malloc/mtrace.c: New file.
	* new-malloc/mtrace.awk: New file.

	* posix/unistd.h: Correct prototype for usleep.
	* sysdeps/unix/bsd/usleep.c: De-ANSI-declfy.  Correct return type.
	* sysdeps/unix/sysv/linux/usleep.c: Real implementation based on
	nanosleep.

	* signal/signal.h: Change protoype of __sigpause to take two
	arguments.  Remove prototype for sigpause.  Add two different
	macros named sigpause selected when __USE_BSD or __USE_XOPEN
	are defined.  This is necessary since the old BSD definition
	of theis function collides with the X/Open definition.
	* sysdeps/posix/sigpause.c: Change function definition to also
	fit X/Open definition.

	* sysdeps/libm-i387/e_exp.S: Make sure stack is empty when the
	function is left.
	* sysdeps/libm-i387/e_expl.S: Likewise.
	Patch by HJ Lu.

1996-12-17  Paul Eggert  <eggert@twinsun.com>

	* many, many files: Spelling corrections.
	* catgets/catgetsinfo.h (mmapped):
	Renamed from mmaped (in struct catalog_info.status).
	* mach/err_kern.sub (err_codes_unix), string/stratcliff.c (main):
	Fix spelling in message.
	* po/libc.pot: Fix spelling in message for `zic'; this anticipates
	a fix in the tzcode distribution.

Wed Dec 18 15:48:02 1996  Ulrich Drepper  <drepper@cygnus.com>

	* time/strftime.c: Implement ^ flag to cause output be converted
	to use upper case characters.

	* time/zic.c: Update from ADO tzcode1996n.

Wed Dec 18 14:29:24 1996  Erik Naggum  <erik@naggum.no>

	* time/strftime.c (add): Don't change global `i' until all is over.
	Define NULL is not already defined.

Tue Dec 17 09:49:03 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* libio/iovsprintf.c (_IO_vsprintf): Change `&sf' to `&sf._sbf._f'
	to avoid the need for a cast.
	* libio/iovsscanf.c (_IO_vsscanf): Likewise.

	* sunrpc/rpc/xdr.h: Add prototype for xdr_free.
Diffstat (limited to 'locale')
-rw-r--r--locale/C-collate.c30
-rw-r--r--locale/C-ctype.c30
-rw-r--r--locale/iso-4217.def4
-rw-r--r--locale/locale.h66
-rw-r--r--locale/programs/charset.h30
-rw-r--r--locale/programs/ld-collate.c40
-rw-r--r--locale/programs/ld-ctype.c23
-rw-r--r--locale/programs/ld-time.c30
-rw-r--r--locale/programs/locale.c36
-rw-r--r--locale/programs/localedef.c8
-rw-r--r--locale/programs/locfile.c30
-rw-r--r--locale/programs/locfile.h30
-rw-r--r--locale/weight.h32
13 files changed, 212 insertions, 177 deletions
diff --git a/locale/C-collate.c b/locale/C-collate.c
index 0d7be6b7e0..5388237045 100644
--- a/locale/C-collate.c
+++ b/locale/C-collate.c
@@ -1,27 +1,27 @@
 /* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #include <endian.h>
 #include "localeinfo.h"
 
 /* These tables' entries contain values which make the function behave
-   accoriding to POSIX.2 Table 2-8 ``LC_COLLATE Category Definition in
+   according to POSIX.2 Table 2-8 ``LC_COLLATE Category Definition in
    the POSIX Locale''.  */
 
 const u_int32_t _nl_C_LC_COLLATE_symbol_hash[446] =
diff --git a/locale/C-ctype.c b/locale/C-ctype.c
index 0b9f1a0bd2..d45c32c34b 100644
--- a/locale/C-ctype.c
+++ b/locale/C-ctype.c
@@ -1,27 +1,27 @@
 /* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #include "localeinfo.h"
 #include <endian.h>
 
 /* This table's entries are taken from POSIX.2 Table 2-6
-   ``LC_CTYPE Category Definitionin the POSIX Locale''.
+   ``LC_CTYPE Category Definition in the POSIX Locale''.
 
    The `_nl_C_LC_CTYPE_width' array is a GNU extension.
 
diff --git a/locale/iso-4217.def b/locale/iso-4217.def
index 095ccdf311..46880a2348 100644
--- a/locale/iso-4217.def
+++ b/locale/iso-4217.def
@@ -6,7 +6,7 @@
  *
  * !!! The list has to be sorted !!!
  */
-DEFINE_INT_CURR("AED ")		/* United Arab Emirats  */
+DEFINE_INT_CURR("AED ")		/* United Arab Emirates  */
 DEFINE_INT_CURR("AFA ")		/* Afghanistan  */
 DEFINE_INT_CURR("ALL ")		/* Albania  */
 DEFINE_INT_CURR("ANG ")		/* Netherlands Antilles  */
@@ -91,7 +91,7 @@ DEFINE_INT_CURR("LKR ")		/* Sri Lanka  */
 DEFINE_INT_CURR("LRD ")		/* Liberia  */
 DEFINE_INT_CURR("LSM ")		/* Lesotho  */
 DEFINE_INT_CURR("LTL ")		/* Lithuania  */
-DEFINE_INT_CURR("LUF ")		/* Luxemburg  */
+DEFINE_INT_CURR("LUF ")		/* Luxembourg  */
 DEFINE_INT_CURR("LVL ")		/* Latvia  */
 DEFINE_INT_CURR("LYD ")		/* Libyan Arab Jamahiriya  */
 DEFINE_INT_CURR("MAD ")		/* Morocco  */
diff --git a/locale/locale.h b/locale/locale.h
index 39b04d7270..37f5434de1 100644
--- a/locale/locale.h
+++ b/locale/locale.h
@@ -1,23 +1,23 @@
 /* Copyright (C) 1991, 1992, 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+   This file is part of the GNU C Library.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 /*
- *	ANSI Standard: 4.4 LOCALIZATION	<locale.h>
+ *	ISO C Standard: 4.4 LOCALIZATION	<locale.h>
  */
 
 #ifndef	_LOCALE_H
@@ -25,6 +25,9 @@ Cambridge, MA 02139, USA.  */
 #define	_LOCALE_H	1
 #include <features.h>
 
+#define __need_NULL
+#include <stddef.h>
+
 __BEGIN_DECLS
 
 /* These are the possibilities for the first argument to setlocale.
@@ -76,9 +79,9 @@ struct lconv
   /* Positive and negative sign positions:
      0 Parentheses surround the quantity and currency_symbol.
      1 The sign string precedes the quantity and currency_symbol.
-     2 The sign string succedes the quantity and currency_symbol.
+     2 The sign string follows the quantity and currency_symbol.
      3 The sign string immediately precedes the currency_symbol.
-     4 The sign string immediately succedes the currency_symbol.  */
+     4 The sign string immediately follows the currency_symbol.  */
   char p_sign_posn;
   char n_sign_posn;
 };
@@ -90,6 +93,37 @@ extern char *setlocale __P ((int __category, __const char *__locale));
 /* Return the numeric/monetary information for the current locale.  */
 extern struct lconv *localeconv __P ((void));
 
+#ifdef	__USE_GNU
+/* The concept of one static locale per category is not very well
+   thought out.  Many applications will need to process its data using
+   information from several different locales.  Another application is
+   the implementation of the internationalization handling in the
+   upcoming ISO C++ standard library.  To support this another set of
+   the functions using locale data exist which have an additional
+   argument.
+
+   Attention: all these functions are *not* standardized in any form.
+   This is a proof-of-concept implementation.  */
+
+/* Structure for reentrant locale using functions.  This is an opaque
+   type for the user level programs.  */
+typedef struct locale_data *locale_t[LC_ALL];
+
+/* Return a reference to a data structure representing a set of locale
+   datasets.  Unlike for the CATEGORY parameter for `setlocale' the
+   CATEGORY_MASK parameter here uses a single bit for each category.
+   I.e., 1 << LC_CTYPE means to load data for this category.  If
+   BASE is non-null the appropriate category information in the BASE
+   record is replaced.  */
+extern __const locale_t *__newlocale __P ((int __category_mask,
+					   __const char *__locale,
+					   __const locale_t *__base));
+
+/* Free the data associated with a locale dataset previously returned
+   by a call to `setlocale_r'.  */
+extern void __freelocale __P ((__const locale_t *__dataset));
+#endif
+
 __END_DECLS
 
 #endif /* locale.h  */
diff --git a/locale/programs/charset.h b/locale/programs/charset.h
index 620e4d54da..eccce9102f 100644
--- a/locale/programs/charset.h
+++ b/locale/programs/charset.h
@@ -1,21 +1,21 @@
 /* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #ifndef _CHARSET_H
 #define _CHARSET_H
@@ -59,7 +59,7 @@ struct charset_t
 /* Prototypes for charmap handling functions.  */
 struct charset_t *charmap_read (const char *filename);
 
-/* Prototypes for funciton to insert new character.  */
+/* Prototypes for function to insert new character.  */
 void charset_new_char (struct linereader *lr, struct charset_t *cs, int bytes,
 		       unsigned int value, const char *from, const char *to);
 
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index c8741e83cb..19f26c8688 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -1,21 +1,21 @@
 /* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -119,7 +119,7 @@ struct locale_collate_t
   /* What kind of symbol is current element.  */
   enum coll_symbol kind;
 
-  /* While collecting the weigths we need some temporary space.  */
+  /* While collecting the weights we need some temporary space.  */
   unsigned int current_order;
   int *weight_cnt;
   unsigned int weight_idx;
@@ -379,8 +379,8 @@ Computing table size for collation information might take a while..."),
     = collate->nrules * sizeof (u_int32_t);
   /* Another trick here.  Describing the collation method needs only a
      few bits (3, to be exact).  But the binary file should be
-     accessible by maschines with both endianesses and so we store both
-     information in the same word.  */
+     accessible by machines with both endianesses and so we store both
+     forms in the same word.  */
   for (cnt = 0; cnt < collate->nrules; ++cnt)
     table[cnt] = collate->rules[cnt] | SWAPU32 (collate->rules[cnt]);
 
@@ -646,7 +646,7 @@ Computing table size for collation information might take a while..."),
      where N is the number of keys.
 
      If we now choose M to be the next prime bigger than 4 / 3 * N,
-     we get the values 4 and 1.85 resp.  Because unsuccesful searches
+     we get the values 4 and 1.85 resp.  Because unsuccessful searches
      are unlikely this is a good value.  Formulas: [Knuth, The Art of
      Computer Programming, Volume 3, Sorting and Searching, 1973,
      Addison Wesley]  */
@@ -880,7 +880,7 @@ Computing table size for collation information might take a while..."),
     symbols_class_ob[cnt] = SWAPU32 (symbols_class[cnt]);
 
 
-  /* Store table adresses and lengths.   */
+  /* Store table addresses and lengths.   */
 #if __BYTE_ORDER == __BIG_ENDIAN
   iov[2 + _NL_ITEM_INDEX (_NL_COLLATE_TABLE_EB)].iov_base = table;
   iov[2 + _NL_ITEM_INDEX (_NL_COLLATE_TABLE_EB)].iov_len
@@ -1659,7 +1659,7 @@ collate_simple_weight (struct linereader *lr, struct localedef_t *locale,
 
     case tok_string:
       /* This can become difficult.  We have to get the weights which
-	 correspind the the single wide chars in the string.  But some
+	 correspond to the single wide chars in the string.  But some
 	 of the `chars' might not be real characters, but collation
 	 elements or symbols.  And so the string decoder might have
 	 signaled errors.  The string at this point is not translated.
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index bc3e391ace..fb352e53ed 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -1119,7 +1119,7 @@ character `%s' not defined while needed as default value"),
     }
 
   if (ctype->toupper_done == 0)
-    /* "If this keyword [toupper] is not spcified, the lowercase letters
+    /* "If this keyword [toupper] is not specified, the lowercase letters
         `a' through `z', and their corresponding uppercase letters `A' to
 	`Z', ..., shall automatically be included, with implementation-
 	defined character values."  [P1003.2, 2.5.2.1]  */
@@ -1181,16 +1181,17 @@ allocate_arrays (struct locale_ctype_t *ctype, struct charset_t *charset)
 {
   size_t idx;
 
-  /* First we have to decide how we organize the arrays.  It is easy for
-     a one-byte character set.  But multi-byte character set cannot be
-     stored flat because they might be sparsly used.  So we determine an
-     optimal hashing function for the used characters.
-
-     We use a very trivial hashing function to store the sparse table.
-     CH % TABSIZE is used as an index.  To solve multiple hits we have
-     N planes.  This gurantees a fixed search time for a character [N
-     / 2].  In the following code we determine the minmum value for
-     TABSIZE * N, where TABSIZE >= 256.  */
+  /* First we have to decide how we organize the arrays.  It is easy
+     for a one-byte character set.  But multi-byte character set
+     cannot be stored flat because the chars might be sparsely used.
+     So we determine an optimal hashing function for the used
+     characters.
+
+     We use a very trivial hashing function to store the sparse
+     table.  CH % TABSIZE is used as an index.  To solve multiple hits
+     we have N planes.  This guarantees a fixed search time for a
+     character [N / 2].  In the following code we determine the minmum
+     value for TABSIZE * N, where TABSIZE >= 256.  */
   size_t min_total = UINT_MAX;
   size_t act_size = 256;
 
diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
index 6be7309ae9..abd21dbc59 100644
--- a/locale/programs/ld-time.c
+++ b/locale/programs/ld-time.c
@@ -1,21 +1,21 @@
 /* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -260,7 +260,7 @@ time_finish (struct localedef_t *locale)
 		}
 	    }
 
-	  /* Next is the stoping date in ISO format.  */
+	  /* Next is the stopping date in ISO format.  */
 	  if (strncmp (str, "-*", 2) == 0)
 	    {
 	      time->era_entries[idx].stop_date[0] =
diff --git a/locale/programs/locale.c b/locale/programs/locale.c
index fa824fb96c..9a2c6c4aa1 100644
--- a/locale/programs/locale.c
+++ b/locale/programs/locale.c
@@ -1,22 +1,22 @@
 /* locale - Implementation of the locale program according to POSIX 1003.2
-Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+   Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -145,7 +145,7 @@ main (int argc, char *argv[])
   show_keyword_name = 0;
 
   /* Set locale.  Do not set LC_ALL because the other categories must
-     not be affected (acccording to POSIX.2).  */
+     not be affected (according to POSIX.2).  */
   setlocale (LC_CTYPE, "");
   setlocale (LC_MESSAGES, "");
 
@@ -446,7 +446,7 @@ show_info (const char *name)
 	  }
     }
 
-  /* When we get to here the name is not standard ones.  For testing
-     and perhpas advanced use we allow some more symbols.  */
+  /* The name is not a standard one.
+     For testing and perhaps advanced use allow some more symbols.  */
   locale_special (name, show_category_name, show_keyword_name);
 }
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
index 997126b625..e9b934c533 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -112,14 +112,14 @@ main (int argc, char *argv[])
   struct localedef_t *localedef;
   struct copy_def_list_t *act_add_locdef;
 
-  /* Set initial values for global varaibles.  */
+  /* Set initial values for global variables.  */
   copy_list = NULL;
   posix_conformance = getenv ("POSIXLY_CORRECT") != NULL;
   error_print_progname = error_print;
   verbose = 0;
 
   /* Set locale.  Do not set LC_ALL because the other categories must
-     not be affected (acccording to POSIX.2).  */
+     not be affected (according to POSIX.2).  */
   setlocale (LC_MESSAGES, "");
   setlocale (LC_CTYPE, "");
 
@@ -187,7 +187,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
   /* Help is requested.  */
   if (do_help)
     /* Possible violation: POSIX.2 4.35.8 defines the return value 0 as
-       "No errors occured and the locale(s) were successfully created."
+       "No errors occurred and the locale(s) were successfully created."
        But giving a other value than 0 does not make sense here.  It
        is perhaps not that important because POSIX does not specify the
        -h option for localedef.  */
@@ -424,7 +424,7 @@ error_print ()
 
 
 /* The parameter to localedef describes the output path.  If it does
-   contain a '/' character it is a relativ path.  Otherwise it names the
+   contain a '/' character it is a relative path.  Otherwise it names the
    locale this definition is for.  */
 static const char *
 construct_output_path (char *path)
diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c
index 97629e5132..4717fe22bd 100644
--- a/locale/programs/locfile.c
+++ b/locale/programs/locfile.c
@@ -1,21 +1,21 @@
 /* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -628,7 +628,7 @@ syntax error in `order_start' directive"));
 	    }
 
 	  /* If no argument to `order_start' is given, one `forward'
-	     argument is implicitely assumed.  */
+	     argument is implicitly assumed.  */
 	  if (cnt == 0)
 	    collate_new_order (ldfile, result, sort_forward);
 
diff --git a/locale/programs/locfile.h b/locale/programs/locfile.h
index a0fe06b674..003082ca61 100644
--- a/locale/programs/locfile.h
+++ b/locale/programs/locfile.h
@@ -1,21 +1,21 @@
 /* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #ifndef _LOCFILE_H
 #define _LOCFILE_H
@@ -24,7 +24,7 @@ Boston, MA 02111-1307, USA.  */
 
 #include "charset.h"
 
-/* Opaque types for the different loales.  */
+/* Opaque types for the different locales.  */
 struct locale_ctype_t;
 struct locale_collate_t;
 struct locale_monetary_t;
diff --git a/locale/weight.h b/locale/weight.h
index c7a9f96c24..1b7b6eae81 100644
--- a/locale/weight.h
+++ b/locale/weight.h
@@ -1,21 +1,21 @@
 /* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-Written by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
+   This file is part of the GNU C Library.
+   Written by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #include <alloca.h>
 #include <langinfo.h>
@@ -41,8 +41,8 @@ typedef struct weight_t
 } weight_t;
 
 
-/* The following five macros grant access to the non-byte order
-   dependend values in the collate locale file.  */
+/* The following five macros grant access to the values in the
+   collate locale file that do not depend on byte order.  */
 #define collate_nrules \
   (_NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES))
 #define collate_hash_size \