({ \
const char *_appendees_[] = { a, __VA_ARGS__ }; \
char *_d_, *_p_; \
- size_t _len_ = 0; \
- size_t _i_; \
+ size_t _len_ = 0; \
+ size_t _i_; \
for (_i_ = 0; _i_ < ELEMENTSOF(_appendees_) && _appendees_[_i_]; _i_++) \
_len_ += strlen(_appendees_[_i_]); \
_p_ = _d_ = newa(char, _len_ + 1); \
char *truncate_nl(char *s);
static inline char *skip_leading_chars(const char *s, const char *bad) {
-
if (!s)
return NULL;
/* Like startswith(), but operates on arbitrary memory blocks */
static inline void *memory_startswith(const void *p, size_t sz, const char *token) {
- size_t n;
-
assert(token);
- n = strlen(token);
+ size_t n = strlen(token);
if (sz < n)
return NULL;
* It works only for ASCII strings.
*/
static inline void *memory_startswith_no_case(const void *p, size_t sz, const char *token) {
- size_t n, i;
-
assert(token);
- n = strlen(token);
+ size_t n = strlen(token);
if (sz < n)
return NULL;
assert(p);
- for (i = 0; i < n; i++) {
+ for (size_t i = 0; i < n; i++)
if (ascii_tolower(((char *)p)[i]) != ascii_tolower(token[i]))
return NULL;
- }
return (uint8_t*) p + n;
}