char *savestring (const char *ptr, size_t len);
+/* Extract the next word from ARG. The next word is defined as either,
+ everything up to the next space, or, if the next word starts with either
+ a single or double quote, then everything up to the closing quote. The
+ enclosing quotes are not returned in the result string. The pointer in
+ ARG is updated to point to the first character after the end of the
+ word, or, for quoted words, the first character after the closing
+ quote. */
+
+std::string extract_string_maybe_quoted (const char **arg);
+
/* The strerror() function can return NULL for errno values that are
out of range. Provide a "safe" version that always returns a
printable string. */
extern char *safe_strerror (int);
-/* Return non-zero if the start of STRING matches PATTERN, zero
- otherwise. */
+/* Return true if the start of STRING matches PATTERN, false otherwise. */
-static inline int
+static inline bool
startswith (const char *string, const char *pattern)
{
return strncmp (string, pattern, strlen (pattern)) == 0;