Index: branches/chucko/i386/include/string.h =================================================================== --- branches/chucko/i386/include/string.h (revision 2334) +++ branches/chucko/i386/include/string.h (revision 2335) @@ -108,6 +108,7 @@ int strncmp(const char *, const char *, size_t); char *strncpy(char *, const char *, size_t); #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) +char *stpncpy(char *, const char *, size_t); char *strnstr(const char *, const char *, size_t); #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ char *strpbrk(const char *, const char *); Index: branches/chucko/i386/libsa/libsa.h =================================================================== --- branches/chucko/i386/libsa/libsa.h (revision 2334) +++ branches/chucko/i386/libsa/libsa.h (revision 2335) @@ -94,7 +94,9 @@ extern int strcmp(const char * s1, const char * s2); extern int strncmp(const char * s1, const char * s2, size_t n); extern char * strcpy(char * s1, const char * s2); +extern char * stpcpy(char * s1, const char * s2); extern char * strncpy(char * s1, const char * s2, size_t n); +extern char * strpcpy(char * s1, const char * s2, size_t n); extern size_t strlcpy(char * s1, const char * s2, size_t n); extern char * strstr(const char *in, const char *str); extern int atoi(const char * str); Index: branches/chucko/i386/libsa/string.c =================================================================== --- branches/chucko/i386/libsa/string.c (revision 2334) +++ branches/chucko/i386/libsa/string.c (revision 2335) @@ -163,18 +163,35 @@ } char * +stpcpy(char * s1, const char * s2) +{ + while ((*s1++ = *s2++)) + continue; + return --s1; +} + +char * strncpy(char * s1, const char * s2, size_t n) { register char *ret = s1; while (n && (*s1++ = *s2++)) --n; - if (n > 0) { - bzero(s1, n); - } + if (n > 0) + bzero(s1, n); return ret; } char * +stpncpy(char * s1, const char * s2, size_t n) +{ + while (n && (*s1++ = *s2++)) + --n; + if (n > 0) + bzero(s1, n); + return s1; +} + +char * strstr(const char *in, const char *str) { char c;