static const char *
next_word(const char **state, size_t *len, const char *separators)
{
+ assert(state != NULL);
+
const char *next = *state;
size_t l;
char **strv = NULL;
assert(argc >= 0);
+ assert(argv != NULL);
if (argc == 0)
return NULL;
strv_from_string(const char *in, const char *separators, size_t *num_elements)
{
assert(in != NULL);
+ assert(separators != NULL);
+ assert(num_elements != NULL);
const char *s = in;
size_t l, nelems = 0;
char *
strv_join(char **strv, const char *joiner)
{
+ assert(strv != NULL);
+
char **s;
char *str;
size_t slen = 0;
const char *
safe_basename(const char *filename)
{
+ assert(filename != NULL);
+
const char *basename;
if (*filename == '\0')
char *
trunkname(const char *filename)
{
+ assert(filename != NULL);
+
const char *base = safe_basename(filename);
char *suffix;
static inline bool
safe_atoi_base(const char *str, int *val, int base)
{
+ assert(str != NULL);
+
char *endptr;
long v;
static inline bool
safe_atoi(const char *str, int *val)
{
+ assert(str != NULL);
return safe_atoi_base(str, val, 10);
}
static inline bool
safe_atou_base(const char *str, unsigned int *val, int base)
{
+ assert(str != NULL);
+
char *endptr;
unsigned long v;
static inline bool
safe_atou(const char *str, unsigned int *val)
{
+ assert(str != NULL);
return safe_atou_base(str, val, 10);
}
static inline bool
safe_atod(const char *str, double *val)
{
+ assert(str != NULL);
+
char *endptr;
double v;
#ifdef HAVE_LOCALE_H
const char *separator,
size_t *length)
{
+ assert(in != NULL);
+ assert(separator != NULL);
+ assert(length != NULL);
+
double *result = NULL;
*length = 0;
static inline char *
strstrip(const char *input, const char *what)
{
+ assert(input != NULL);
+
char *str, *last;
str = safe_strdup(&input[strspn(input, what)]);
static inline bool
strendswith(const char *str, const char *suffix)
{
+ if (str == NULL)
+ return false;
+
size_t slen = strlen(str);
size_t suffixlen = strlen(suffix);
size_t offset;
static inline bool
strstartswith(const char *str, const char *prefix)
{
+ if (str == NULL)
+ return false;
+
size_t prefixlen = strlen(prefix);
return prefixlen > 0 ? strneq(str, prefix, strlen(prefix)) : false;