diff options
Diffstat (limited to '')
| -rw-r--r-- | project/dclib/dclib-basics.c | 14 | ||||
| -rw-r--r-- | project/dclib/dclib-basics.h | 8 |
2 files changed, 22 insertions, 0 deletions
diff --git a/project/dclib/dclib-basics.c b/project/dclib/dclib-basics.c index c46f5e2..793ddcd 100644 --- a/project/dclib/dclib-basics.c +++ b/project/dclib/dclib-basics.c @@ -8074,6 +8074,20 @@ ccp GetSha1Hex ( cvp bin ) return hex; } +/////////////////////////////////////////////////////////////////////////////// + +void * dc_memrchr ( cvp src, int ch, size_t size ) +{ + if ( !src || !size ) + return 0; + + ccp ptr = src + size; + while ( ptr > (ccp)src ) + if ( *--ptr == ch ) + return (void*)ptr; + return 0; +} + // /////////////////////////////////////////////////////////////////////////////// /////////////// END /////////////// diff --git a/project/dclib/dclib-basics.h b/project/dclib/dclib-basics.h index eb4c40a..498191e 100644 --- a/project/dclib/dclib-basics.h +++ b/project/dclib/dclib-basics.h @@ -5269,6 +5269,14 @@ static inline char * snprintfE ( char *buf, char *end, ccp format, ... ) return buf + ( res < 0 ? 0 : res < size ? res : size - 1 ); } +/////////////////////////////////////////////////////////////////////////////// + +void * dc_memrchr ( cvp src, int ch, size_t size ); + +#ifdef __APPLE__ + #define memrchr dc_memrchr +#endif + // /////////////////////////////////////////////////////////////////////////////// /////////////// E N D /////////////// |
