git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Usermode/libc - Fix strchr and strrchr behavior
[tpg/acess2.git]
/
Usermode
/
Libraries
/
libc.so_src
/
string.c
diff --git
a/Usermode/Libraries/libc.so_src/string.c
b/Usermode/Libraries/libc.so_src/string.c
index
d61d51d
..
09481d8
100644
(file)
--- a/
Usermode/Libraries/libc.so_src/string.c
+++ b/
Usermode/Libraries/libc.so_src/string.c
@@
-184,15
+184,16
@@
EXPORT char *strndup(const char *str, size_t maxlen)
/**
* \fn EXPORT char *strchr(char *str, int character)
* \brief Locate a character in a string
/**
* \fn EXPORT char *strchr(char *str, int character)
* \brief Locate a character in a string
+ * \note The terminating NUL is part of the string
*/
EXPORT char *strchr(const char *_str, int character)
{
const unsigned char* str = (const unsigned char*)_str;
*/
EXPORT char *strchr(const char *_str, int character)
{
const unsigned char* str = (const unsigned char*)_str;
- for(;*str;str++)
+ do
{
if( *str == character )
return (char*)str;
{
if( *str == character )
return (char*)str;
- }
+ }
while( *str++ );
return NULL;
}
return NULL;
}
@@
-203,11
+204,12
@@
EXPORT char *strchr(const char *_str, int character)
EXPORT char *strrchr(const char *_str, int character)
{
const unsigned char* str = (const unsigned char*)_str;
EXPORT char *strrchr(const char *_str, int character)
{
const unsigned char* str = (const unsigned char*)_str;
- for( size_t i = strlen(_str); i--; )
+ size_t i = strlen(_str);
+ do
{
if(str[i] == character)
return (void*)&str[i];
{
if(str[i] == character)
return (void*)&str[i];
- }
+ }
while( i -- );
return NULL;
}
return NULL;
}
UCC
git Repository :: git.ucc.asn.au