bugfix: when passing negative start index to find(), don't start earlier than index 0
This commit is contained in:
@ -199,11 +199,10 @@ public:
|
|||||||
|
|
||||||
// find: get index of data in buffer or -1
|
// find: get index of data in buffer or -1
|
||||||
ssize_t find(char c, ssize_t start=0) const
|
ssize_t find(char c, ssize_t start=0) const
|
||||||
{char* p;
|
{if (start < 0 && (start -= len) < 0) start = 0;
|
||||||
|
char* p;
|
||||||
return (p = static_cast<char*>(
|
return (p = static_cast<char*>(
|
||||||
memchr(buffer+offs+(start<0?start+len:start),
|
memchr(buffer+offs+start, c, len-start)))? p-(buffer+offs) : -1;}
|
||||||
c, start<0?-start:len-start)))?
|
|
||||||
p-(buffer+offs) : -1;}
|
|
||||||
|
|
||||||
ssize_t find(const void* s, size_t size, ssize_t start=0) const;
|
ssize_t find(const void* s, size_t size, ssize_t start=0) const;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user