On 22/4/20 4:42 am, Anatol Pomozov wrote: > It provides an easy way to check whether a string ends with a given > suffix. >
Note: "pkg.sig" is a valid package name with signature file "pkg.sig.sig".... > Signed-off-by: Anatol Pomozov <[email protected]> > --- > src/common/util-common.c | 18 ++++++++++++++++++ > src/common/util-common.h | 2 ++ > 2 files changed, 20 insertions(+) > > diff --git a/src/common/util-common.c b/src/common/util-common.c > index 7d43ac0d..11ffc705 100644 > --- a/src/common/util-common.c > +++ b/src/common/util-common.c Why util-common? Is this being used in both pacman and libalpm? > @@ -198,6 +198,24 @@ char *strndup(const char *s, size_t n) > } > #endif > > +/** Helper function for check whether a string ends with a given suffix > + * @param str a string > + * @param suffix we want to check > + * @return 0 in case if the given string does not end with the suffix, > + * a non-zero value otherwise. > + */ > +int str_endswith(const char *str, const char *suffix) str_ends_with > +{ > + int str_len = strlen(str); > + int suffix_len = strlen(suffix); > + > + if(suffix_len > str_len) { >= I am assuming you want to match a suffix and not the entire string. > + return 0; > + } > + > + return !strcmp(str + str_len - suffix_len, suffix); return (strcmp(str + str_len - suffix_len, suffix) == 0) > +} > + > void wordsplit_free(char **ws) > { > if(ws) { > diff --git a/src/common/util-common.h b/src/common/util-common.h > index 483d5da4..6b66be3e 100644 > --- a/src/common/util-common.h > +++ b/src/common/util-common.h > @@ -35,6 +35,8 @@ char **wordsplit(const char *str); > > size_t strtrim(char *str); > > +int str_endswith(const char *str, const char *suffix); > + > #ifndef HAVE_STRNDUP > char *strndup(const char *s, size_t n); > #endif >
