summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-12-15 11:58:42 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-12-15 14:46:01 +0000
commit99c6a57da476c6859c0f9352fe73e5109f7d8ab7 (patch)
tree31dba05161a764027da1fed7237446919e4129b8 /src
parent0da32cfb2f54fa73b02da40ccab3e806a2e94723 (diff)
downloadrspamd-99c6a57da476c6859c0f9352fe73e5109f7d8ab7.tar.gz
rspamd-99c6a57da476c6859c0f9352fe73e5109f7d8ab7.zip
[Minor] Make rspamd_memcspn public
Diffstat (limited to 'src')
-rw-r--r--src/libutil/str_util.c6
-rw-r--r--src/libutil/str_util.h9
2 files changed, 12 insertions, 3 deletions
diff --git a/src/libutil/str_util.c b/src/libutil/str_util.c
index 63e22e641..c5df324b7 100644
--- a/src/libutil/str_util.c
+++ b/src/libutil/str_util.c
@@ -1828,13 +1828,13 @@ decode:
#define BITOP(a,b,op) \
((a)[(gsize)(b)/(8*sizeof *(a))] op (gsize)1<<((gsize)(b)%(8*sizeof *(a))))
-static gsize
+gsize
rspamd_memcspn (const gchar *s, const gchar *e, gsize len)
{
- gsize byteset[32/sizeof(gsize)];
+ gsize byteset[32 / sizeof(gsize)];
const gchar *p = s, *end = s + len;
- memset(byteset, 0, sizeof byteset);
+ memset (byteset, 0, sizeof byteset);
for (; *e && BITOP (byteset, *(guchar *)e, |=); e++);
for (; p < end && !BITOP (byteset, *(guchar *)p, &); p++);
diff --git a/src/libutil/str_util.h b/src/libutil/str_util.h
index 1fdb1a857..2c9905e13 100644
--- a/src/libutil/str_util.h
+++ b/src/libutil/str_util.h
@@ -350,4 +350,13 @@ extern const guchar lc_map[256];
*/
const void *rspamd_memrchr (const void *m, gint c, gsize len);
+/**
+ * Return length of memory segment starting in `s` that contains no chars from `e`
+ * @param s any input
+ * @param e zero terminated string of exceptions
+ * @param len length of `s`
+ * @return segment size
+ */
+gsize rspamd_memcspn (const gchar *s, const gchar *e, gsize len);
+
#endif /* SRC_LIBUTIL_STR_UTIL_H_ */