summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util.c19
-rw-r--r--util.h2
2 files changed, 21 insertions, 0 deletions
diff --git a/util.c b/util.c
index 3ce506b0c6..4847310aee 100644
--- a/util.c
+++ b/util.c
@@ -88,6 +88,25 @@ bool startswith(const char *s, const char *prefix) {
return memcmp(s, prefix, pl) == 0;
}
+bool first_word(const char *s, const char *word) {
+ size_t sl, wl;
+
+ assert(s);
+ assert(word);
+
+ sl = strlen(s);
+ wl = strlen(word);
+
+ if (sl < wl)
+ return false;
+
+ if (memcmp(s, word, wl) != 0)
+ return false;
+
+ return (s[wl] == 0 ||
+ strchr(WHITESPACE, s[wl]));
+}
+
int close_nointr(int fd) {
assert(fd >= 0);
diff --git a/util.h b/util.h
index 476b5ae8ab..a9c430f722 100644
--- a/util.h
+++ b/util.h
@@ -60,6 +60,8 @@ static inline bool is_path_absolute(const char *p) {
bool endswith(const char *s, const char *postfix);
bool startswith(const char *s, const char *prefix);
+bool first_word(const char *s, const char *word);
+
int close_nointr(int fd);
void close_nointr_nofail(int fd);