diff options
author | Eric Wong <normalperson@yhbt.net> | 2008-09-23 20:48:08 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-09-23 20:48:08 +0200 |
commit | f5df13f853cf4c0e529244dd40ab57c78a7d1bc6 (patch) | |
tree | d721db1541d6c900067c8774abad437fe5ef9685 | |
parent | 15b25ad17417141bd913b734f2148e2fb2e9e828 (diff) | |
download | mpd-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...
-rw-r--r-- | src/utils.c | 10 | ||||
-rw-r--r-- | src/utils.h | 2 |
2 files changed, 12 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; +} + diff --git a/src/utils.h b/src/utils.h index 77e143702..a6e26d191 100644 --- a/src/utils.h +++ b/src/utils.h @@ -103,4 +103,6 @@ void xpthread_mutex_destroy(pthread_mutex_t *mutex); void xpthread_cond_destroy(pthread_cond_t *cond); +int prefixcmp(const char *str, const char *prefix); + #endif |