2001-02-21  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/i386/i686/strtok.S: Continue to return NULL after the
	first time this happened.

2001-02-21  Andreas Jaeger  <aj@suse.de>

	* string/tst-strtok.c: New testcase, reported by
	Andrew Church <achurch@achurch.org>.
This commit is contained in:
Ulrich Drepper 2001-02-21 15:39:07 +00:00
parent b85b133445
commit 1999031e04
3 changed files with 36 additions and 1 deletions

View File

@ -1,3 +1,13 @@
2001-02-21 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/i686/strtok.S: Continue to return NULL after the
first time this happened.
2001-02-21 Andreas Jaeger <aj@suse.de>
* string/tst-strtok.c: New testcase, reported by
Andrew Church <achurch@achurch.org>.
2001-02-20 Ulrich Drepper <drepper@redhat.com> 2001-02-20 Ulrich Drepper <drepper@redhat.com>
* libio/iofwide.c: Remove fwide alias. * libio/iofwide.c: Remove fwide alias.

23
string/tst-strtok.c Normal file
View File

@ -0,0 +1,23 @@
/* Testcase for strtok reported by Andrew Church <achurch@achurch.org>. */
#include <stdio.h>
#include <string.h>
int
main (void)
{
char buf[1] = { 0 };
int result = 0;
if (strtok (buf, " ") != NULL)
{
puts ("first strtok call did return NULL");
result = 1;
}
else if (strtok (NULL, " ") != NULL)
{
puts ("second strtok call did return NULL");
result = 1;
}
return result;
}

View File

@ -1,6 +1,6 @@
/* strtok (str, delim) -- Return next DELIM separated token from STR. /* strtok (str, delim) -- Return next DELIM separated token from STR.
For Intel 80686. For Intel 80686.
Copyright (C) 1998, 2000 Free Software Foundation, Inc. Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -123,6 +123,8 @@ ENTRY (BP_SYM (FUNCTION))
the last run. */ the last run. */
cmpl $0, %edx cmpl $0, %edx
cmove %eax, %edx cmove %eax, %edx
testl %edx, %edx
jz L(returnNULL)
#if __BOUNDED_POINTERS__ #if __BOUNDED_POINTERS__
# ifdef USE_AS_STRTOK_R # ifdef USE_AS_STRTOK_R
movl SAVE(%esp), %ecx /* borrow %ecx for a moment */ movl SAVE(%esp), %ecx /* borrow %ecx for a moment */