about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--locale/programs/locale.c6
2 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index d0ddf028f6..5395f792b4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2000-02-08  Andreas Jaeger  <aj@suse.de>
+
+	* locale/programs/locale.c (write_locales): Fix handling of
+	whitespace lines.
+	Fixes PR libc/1588, reported by Miroslav Holcak
+	<miroslav.holcak@vitkovice.cz>.
+
 2000-02-07  Thorsten Kukuk  <kukuk@suse.de>
 
 	* config.make.in: Add infodir.
diff --git a/locale/programs/locale.c b/locale/programs/locale.c
index 36f253aebc..06900a802a 100644
--- a/locale/programs/locale.c
+++ b/locale/programs/locale.c
@@ -1,5 +1,5 @@
 /* Implementation of the locale program according to POSIX 9945-2.
-   Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
@@ -376,11 +376,11 @@ write_locales (void)
 
 	  cp = buf;
 	  /* Ignore leading white space.  */
-	  while (isspace (cp[0]))
+	  while (isspace (cp[0]) && cp[0] != '\n')
 	    ++cp;
 
 	  /* A leading '#' signals a comment line.  */
-	  if (cp[0] != '\0' && cp[0] != '#')
+	  if (cp[0] != '\0' && cp[0] != '#' && cp[0] != '\n')
 	    {
 	      alias = cp++;
 	      while (cp[0] != '\0' && !isspace (cp[0]))