| /* See BZ #2126.  */ | 
 | #include <string.h> | 
 | #include <stdio.h> | 
 |  | 
 | static int | 
 | do_test (void) | 
 | { | 
 |   const char str[] = "axaaba"; | 
 |   char *token; | 
 |   char *cp; | 
 |   char *l; | 
 |   int result = 0; | 
 |  | 
 |   puts ("test strtok"); | 
 |   cp = strdupa (str); | 
 |   printf ("cp = %p, len = %zu\n", cp, strlen (cp)); | 
 |   token = strtok (cp, "ab"); | 
 |   result |= token == NULL || strcmp (token, "x"); | 
 |   printf ("token: %s (%d)\n", token ? token : "NULL", result); | 
 |   token = strtok(0, "ab"); | 
 |   result |= token != NULL; | 
 |   printf ("token: %s (%d)\n", token ? token : "NULL", result); | 
 |   token = strtok(0, "a"); | 
 |   result |= token != NULL; | 
 |   printf ("token: %s (%d)\n", token ? token : "NULL", result); | 
 |  | 
 |   puts ("test strtok_r"); | 
 |   cp = strdupa (str); | 
 |   size_t len = strlen (cp); | 
 |   printf ("cp = %p, len = %zu\n", cp, len); | 
 |   token = strtok_r (cp, "ab", &l); | 
 |   result |= token == NULL || strcmp (token, "x"); | 
 |   printf ("token: %s, next = %p (%d)\n", token ? token : "NULL", l, result); | 
 |   token = strtok_r(0, "ab", &l); | 
 |   result |= token != NULL || l != cp + len; | 
 |   printf ("token: %s, next = %p (%d)\n", token ? token : "NULL", l, result); | 
 |   token = strtok_r(0, "a", &l); | 
 |   result |= token != NULL || l != cp + len; | 
 |   printf ("token: %s,  next = %p (%d)\n", token ? token : "NULL", l, result); | 
 |  | 
 |   return result; | 
 | } | 
 |  | 
 | #define TEST_FUNCTION do_test () | 
 | #include "../test-skeleton.c" |