MINOR: ist: add ist0() to add a trailing zero to a string.

This function modifies the string to add a zero after the end, and returns
the start pointer. The purpose is to use it on strings extracted by parsers
from larger strings cut with delimiters that are not important and can be
destroyed. It allows any such string to be used with regular string
functions. It's also convenient to use with printf() to show data extracted
from writable areas.
This commit is contained in:
Willy Tarreau 2017-10-19 06:28:23 +02:00
parent 41ab86898e
commit e67c4e5744

View File

@ -98,6 +98,21 @@ static inline struct ist ist2(const void *ptr, size_t len)
return (struct ist){ .ptr = (char *)ptr, .len = len };
}
/* This function MODIFIES the string to add a zero AFTER the end, and returns
* the start pointer. The purpose is to use it on strings extracted by parsers
* from larger strings cut with delimiters that are not important and can be
* destroyed. It allows any such string to be used with regular string
* functions. It's also convenient to use with printf() to show data extracted
* from writable areas. The caller is obviously responsible for ensuring that
* the string is valid and that the first byte past the end is writable. If
* these conditions cannot be satisfied, use istpad() below instead.
*/
static inline char *ist0(struct ist ist)
{
ist.ptr[ist.len] = 0;
return ist.ptr;
}
/* returns the length of the string */
static inline size_t istlen(const struct ist ist)
{