From: Lucas De Marchi Date: Wed, 30 Nov 2011 21:20:19 +0000 (-0200) Subject: Add startswith() helper function X-Git-Tag: v1~164 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e317da3c96ab9a366bdef42708ac15308eb876a;p=thirdparty%2Fkmod.git Add startswith() helper function --- diff --git a/libkmod/libkmod-private.h b/libkmod/libkmod-private.h index 7f6c2d17..4abea762 100644 --- a/libkmod/libkmod-private.h +++ b/libkmod/libkmod-private.h @@ -72,5 +72,6 @@ const char *kmod_alias_get_modname(const struct kmod_list *l); char *getline_wrapped(FILE *fp, unsigned int *linenum); char *underscores(struct kmod_ctx *ctx, char *s); #define streq(a, b) (strcmp((a), (b)) == 0) +bool startswith(const char *s, const char *prefix); #endif diff --git a/libkmod/libkmod-util.c b/libkmod/libkmod-util.c index 1e58b995..556dfcd1 100644 --- a/libkmod/libkmod-util.c +++ b/libkmod/libkmod-util.c @@ -17,6 +17,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include #include #include #include @@ -115,3 +116,20 @@ char *underscores(struct kmod_ctx *ctx, char *s) return s; } +bool startswith(const char *s, const char *prefix) { + size_t sl, pl; + + assert(s); + assert(prefix); + + sl = strlen(s); + pl = strlen(prefix); + + if (pl == 0) + return true; + + if (sl < pl) + return false; + + return memcmp(s, prefix, pl) == 0; +}