aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils.c
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2008-09-23 20:48:08 +0200
committerMax Kellermann <max@duempel.org>2008-09-23 20:48:08 +0200
commitf5df13f853cf4c0e529244dd40ab57c78a7d1bc6 (patch)
treed721db1541d6c900067c8774abad437fe5ef9685 /src/utils.c
parent15b25ad17417141bd913b734f2148e2fb2e9e828 (diff)
downloadmpd-f5df13f853cf4c0e529244dd40ab57c78a7d1bc6.tar.gz
mpd-f5df13f853cf4c0e529244dd40ab57c78a7d1bc6.tar.xz
mpd-f5df13f853cf4c0e529244dd40ab57c78a7d1bc6.zip
Add prefixcmp() (stol^H^H^H^Hborrowed from git)
This allows us to avoid the nasty repetition in strncmp(foo, bar, strlen(foo)). We'll miss out on the compiler optimizing strlen() into sizeof() - 1 for string literals for this; but we don't use this it for performance-critical functions anyways...
Diffstat (limited to '')
-rw-r--r--src/utils.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c
index 332c73587..f23f8c1fa 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -268,3 +268,13 @@ void xpthread_cond_destroy(pthread_cond_t *cond)
if ((err = pthread_cond_destroy(cond)))
FATAL("failed to destroy cond: %s\n", strerror(err));
}
+
+int prefixcmp(const char *str, const char *prefix)
+{
+ for (; ; str++, prefix++)
+ if (!*prefix)
+ return 0;
+ else if (*str != *prefix)
+ return (unsigned char)*prefix - (unsigned char)*str;
+}
+