]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - string/strtok.c
powerpc: Fix build of wcscpy with --disable-multi-arch
[thirdparty/glibc.git] / string / strtok.c
index be0b9588442106ffc0da7bb967855439f8ed382e..2eebc0a0dc9e4ce3bf3728d6361b691093c9b913 100644 (file)
@@ -1,5 +1,4 @@
-/* Copyright (C) 1991,1996,1997,1999,2000,2001,2007
-   Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 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
 #include <string.h>
 
 
-static char *olds;
-
-#undef strtok
-
 /* Parse S into tokens separated by characters in DELIM.
    If S is NULL, the last string strtok() was called with is
    used.  For example:
@@ -33,34 +28,8 @@ static char *olds;
                // s = "abc\0=-def\0"
 */
 char *
-strtok (s, delim)
-     char *s;
-     const char *delim;
+strtok (char *s, const char *delim)
 {
-  char *token;
-
-  if (s == NULL)
-    s = olds;
-
-  /* Scan leading delimiters.  */
-  s += strspn (s, delim);
-  if (*s == '\0')
-    {
-      olds = s;
-      return NULL;
-    }
-
-  /* Find the end of the token.  */
-  token = s;
-  s = strpbrk (token, delim);
-  if (s == NULL)
-    /* This token finishes the string.  */
-    olds = __rawmemchr (token, '\0');
-  else
-    {
-      /* Terminate the token and make OLDS point past it.  */
-      *s = '\0';
-      olds = s + 1;
-    }
-  return token;
+  static char *olds;
+  return __strtok_r (s, delim, &olds);
 }