summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2019-03-23 13:11:47 +0200
committerSergey Poznyakoff <gray@gnu.org>2019-03-23 13:11:47 +0200
commit1a523cb6c788fc46b234019f4198b865c4b5f502 (patch)
treef9e0ee763a911564df16cb61d06a3145b79cf5d0
parent15b4ea89880ea674717e9fa64e146dd744e8e35c (diff)
downloadmailutils-1a523cb6c788fc46b234019f4198b865c4b5f502.tar.gz
mailutils-1a523cb6c788fc46b234019f4198b865c4b5f502.tar.bz2
Two new string functions
mu_string_prefix(A, B) returns true if B is the prefix of A. mu_string_suffix(A, B) returns true if B is the suffix of A. * include/mailutils/cstr.h (mu_string_prefix) (mu_string_suffix): protos. * libmailutils/string/Makefile.am: Add new files. * libmailutils/string/strpref.c: New file. * libmailutils/string/strsuf.c: New file.
-rw-r--r--include/mailutils/cstr.h3
-rw-r--r--libmailutils/string/Makefile.am2
-rw-r--r--libmailutils/string/strpref.c12
-rw-r--r--libmailutils/string/strsuf.c13
4 files changed, 30 insertions, 0 deletions
diff --git a/include/mailutils/cstr.h b/include/mailutils/cstr.h
index a27942249..4ef55be89 100644
--- a/include/mailutils/cstr.h
+++ b/include/mailutils/cstr.h
@@ -31,6 +31,9 @@ int mu_c_strcasecmp (const char *a, const char *b);
31int mu_c_strncasecmp (const char *a, const char *b, size_t n); 31int mu_c_strncasecmp (const char *a, const char *b, size_t n);
32char *mu_c_strcasestr (const char *haystack, const char *needle); 32char *mu_c_strcasestr (const char *haystack, const char *needle);
33 33
34int mu_string_prefix (char const *str, char const *pfx);
35int mu_string_suffix (char const *str, char const *sfx);
36
34size_t mu_rtrim_class (char *str, int __class); 37size_t mu_rtrim_class (char *str, int __class);
35size_t mu_rtrim_cset (char *str, const char *cset); 38size_t mu_rtrim_cset (char *str, const char *cset);
36size_t mu_ltrim_class (char *str, int __class); 39size_t mu_ltrim_class (char *str, int __class);
diff --git a/libmailutils/string/Makefile.am b/libmailutils/string/Makefile.am
index 1eb58dea4..5cdd73913 100644
--- a/libmailutils/string/Makefile.am
+++ b/libmailutils/string/Makefile.am
@@ -32,7 +32,9 @@ libstring_la_SOURCES = \
32 str_to_c.c\ 32 str_to_c.c\
33 strcount.c\ 33 strcount.c\
34 strltrim.c\ 34 strltrim.c\
35 strpref.c\
35 strskip.c\ 36 strskip.c\
37 strsuf.c\
36 stripws.c\ 38 stripws.c\
37 strlst.c\ 39 strlst.c\
38 strrtrim.c\ 40 strrtrim.c\
diff --git a/libmailutils/string/strpref.c b/libmailutils/string/strpref.c
new file mode 100644
index 000000000..43392ffa1
--- /dev/null
+++ b/libmailutils/string/strpref.c
@@ -0,0 +1,12 @@
1#include <config.h>
2#include <string.h>
3#include <mailutils/cstr.h>
4
5int
6mu_string_prefix (char const *str, char const *pfx)
7{
8 size_t len = strlen (pfx);
9 if (strlen (str) < len)
10 return 0;
11 return memcmp (str, pfx, len) == 0;
12}
diff --git a/libmailutils/string/strsuf.c b/libmailutils/string/strsuf.c
new file mode 100644
index 000000000..273d2f641
--- /dev/null
+++ b/libmailutils/string/strsuf.c
@@ -0,0 +1,13 @@
1#include <config.h>
2#include <string.h>
3#include <mailutils/cstr.h>
4
5int
6mu_string_suffix (char const *str, char const *sfx)
7{
8 size_t sfxlen = strlen (sfx);
9 size_t len = strlen (str);
10 if (len < sfxlen)
11 return 0;
12 return memcmp (str + len - sfxlen, sfx, sfxlen) == 0;
13}

Return to:

Send suggestions and report system problems to the System administrator.