#include "memcasecmp.h"
#include "xstrndup.h"
#include "xvasprintf.h"
+
+#include "gl/xalloc.h"
\f
/* Miscellaneous. */
bool str_format_26adic (unsigned long int number, bool uppercase,
char buffer[], size_t);
+static inline char *xstrdup_if_nonnull (const char *);
+
void *mempset (void *, int, size_t);
\f
/* Common character classes for use with substring and string functions. */
int ss_at (struct substring, size_t idx);
int ss_first (struct substring);
int ss_last (struct substring);
+bool ss_starts_with (struct substring, struct substring prefix);
bool ss_ends_with (struct substring, struct substring suffix);
size_t ss_span (struct substring, struct substring skip_set);
size_t ss_cspan (struct substring, struct substring stop_set);
size_t ss_find_byte (struct substring, char);
+size_t ss_find_substring (struct substring, struct substring);
int ss_compare (struct substring, struct substring);
int ss_compare_case (struct substring, struct substring);
int ss_equals (struct substring, struct substring);
return ss;
}
+static inline char *
+xstrdup_if_nonnull (const char *s)
+{
+ return s ? xstrdup (s) : NULL;
+}
+
#endif /* str_h */