diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-04-13 08:36:29 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-04-13 08:36:29 -0400 |
commit | 6597f9ac133fd4f47dea307d6260fd52eae77816 (patch) | |
tree | 980c26e132ffeb5f1d6d5a8bec383c61cb0550bf /src/string/memrchr.c | |
parent | 750b738e53f799443fcfcd3a0751318c072a022f (diff) | |
download | musl-6597f9ac133fd4f47dea307d6260fd52eae77816.tar.gz musl-6597f9ac133fd4f47dea307d6260fd52eae77816.tar.xz musl-6597f9ac133fd4f47dea307d6260fd52eae77816.zip |
implement memrchr (nonstandard) and optimize strrchr in terms of it
Diffstat (limited to 'src/string/memrchr.c')
-rw-r--r-- | src/string/memrchr.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/string/memrchr.c b/src/string/memrchr.c new file mode 100644 index 00000000..a78e9d6c --- /dev/null +++ b/src/string/memrchr.c @@ -0,0 +1,12 @@ +#include <string.h> +#include "libc.h" + +void *__memrchr(const void *m, int c, size_t n) +{ + const unsigned char *s = m; + c = (unsigned char)c; + while (n--) if (s[n]==c) return (void *)(s+n); + return 0; +} + +weak_alias(__memrchr, memrchr); |