Correct bug with successive separators and separators at the end of
authordrepper <drepper>
Fri, 13 Mar 1998 17:01:58 +0000 (17:01 +0000)
committerdrepper <drepper>
Fri, 13 Mar 1998 17:01:58 +0000 (17:01 +0000)
the string.

sysdeps/generic/strsep.c

index b5ea6ea..1c20eb0 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1993, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1993, 1996, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -26,7 +26,7 @@ __strsep (char **stringp, const char *delim)
   char *begin, *end;
 
   begin = *stringp;
-  if (! begin || *begin == '\0')
+  if (begin == NULL)
     return NULL;
 
   /* A frequent case is when the delimiter string contains only one
@@ -40,10 +40,10 @@ __strsep (char **stringp, const char *delim)
        end = NULL;
       else
        {
-         while (*begin == ch)
-           ++begin;
-
-         end = strchr (begin, delim[0]);
+         if (*begin == ch)
+           end = begin;
+         else
+           end = strchr (begin, delim[0]);
        }
     }
   else