X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=util.c;h=8042214c8fae7fdd40494691d216624a26cfeee8;hp=eed9aa7f84e598a5d92ed8fac733fd030ec3b695;hb=3177a7fa12247d30b854fcb7697cd578b9086bf5;hpb=07b0b134d3076fe223d6e15959b6081a74b56792;ds=sidebyside diff --git a/util.c b/util.c index eed9aa7f8..8042214c8 100644 --- a/util.c +++ b/util.c @@ -42,6 +42,7 @@ #include #include #include +#include #include "macro.h" #include "util.h" @@ -141,6 +142,30 @@ bool startswith(const char *s, const char *prefix) { return memcmp(s, prefix, pl) == 0; } +bool startswith_no_case(const char *s, const char *prefix) { + size_t sl, pl; + unsigned i; + + assert(s); + assert(prefix); + + sl = strlen(s); + pl = strlen(prefix); + + if (pl == 0) + return true; + + if (sl < pl) + return false; + + for(i = 0; i < pl; ++i) { + if (tolower(s[i]) != tolower(prefix[i])) + return false; + } + + return true; +} + bool first_word(const char *s, const char *word) { size_t sl, wl;