diff --git a/libc/strchr.cpp b/libc/strchr.cpp index 09d2db65..bc671763 100644 --- a/libc/strchr.cpp +++ b/libc/strchr.cpp @@ -1,6 +1,6 @@ /******************************************************************************* - Copyright(C) Jonas 'Sortie' Termansen 2011, 2012. + Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013. This file is part of the Sortix C Library. @@ -27,7 +27,5 @@ extern "C" char* strchr(const char* str, int c) { char* ret = strchrnul(str, c); - if ( !*ret ) - return NULL; - return ret; + return ret && c == ret[0] ? ret : NULL; } diff --git a/libc/strchrnul.cpp b/libc/strchrnul.cpp index 033bac57..7cc9b9a8 100644 --- a/libc/strchrnul.cpp +++ b/libc/strchrnul.cpp @@ -1,6 +1,6 @@ /******************************************************************************* - Copyright(C) Jonas 'Sortie' Termansen 2011, 2012. + Copyright(C) Jonas 'Sortie' Termansen 2011, 2012, 2013. This file is part of the Sortix C Library. @@ -26,6 +26,8 @@ extern "C" char* strchrnul(const char* str, int c) { - for ( ; *str && *str != c; str++ ); + for ( ; *str != c; str++ ) + if ( !*str ) + return NULL; return (char*) str; }