New utility function to reverse a buffer, either by copying or in-place.
This commit is contained in:
parent
75d44c0452
commit
9befdf1d20
@ -219,3 +219,26 @@ size_t BUF_strlcat(char *dst, const char *src, size_t size)
|
|||||||
l++;
|
l++;
|
||||||
return l + BUF_strlcpy(dst, src, size);
|
return l + BUF_strlcpy(dst, src, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BUF_reverse(unsigned char *out, unsigned char *in, size_t size)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
if (in)
|
||||||
|
{
|
||||||
|
out += size - 1;
|
||||||
|
for (i = 0; i < size; i++)
|
||||||
|
*in++ = *out--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
unsigned char *q;
|
||||||
|
char c;
|
||||||
|
q = out + size - 1;
|
||||||
|
for (i = 0; i < size/2; i++)
|
||||||
|
{
|
||||||
|
c = *q;
|
||||||
|
*q-- = *out;
|
||||||
|
*out++ = c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -88,6 +88,7 @@ int BUF_MEM_grow_clean(BUF_MEM *str, int len);
|
|||||||
char * BUF_strdup(const char *str);
|
char * BUF_strdup(const char *str);
|
||||||
char * BUF_strndup(const char *str, size_t siz);
|
char * BUF_strndup(const char *str, size_t siz);
|
||||||
void * BUF_memdup(const void *data, size_t siz);
|
void * BUF_memdup(const void *data, size_t siz);
|
||||||
|
void BUF_reverse(unsigned char *out, unsigned char *in, size_t siz);
|
||||||
|
|
||||||
/* safe string functions */
|
/* safe string functions */
|
||||||
size_t BUF_strlcpy(char *dst,const char *src,size_t siz);
|
size_t BUF_strlcpy(char *dst,const char *src,size_t siz);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user