]> source.dussan.org Git - rspamd.git/commitdiff
Add the tolower variant of strlcpy function.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 23 Aug 2013 01:12:47 +0000 (02:12 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 23 Aug 2013 01:12:47 +0000 (02:12 +0100)
src/util.c
src/util.h

index 90497c803f8c8794fd0163bcba18fda9f6a21489..88d62f974dce6e2abca9e5ef4eb1245f1b23ea1d 100644 (file)
@@ -1325,6 +1325,29 @@ rspamd_strlcpy (gchar *dst, const gchar *src, gsize siz)
        return (s - src - 1);    /* count does not include NUL */
 }
 
+gsize
+rspamd_strlcpy_tolower (gchar *dst, const gchar *src, gsize siz)
+{
+       gchar *d = dst;
+       const gchar *s = src;
+       gsize n = siz;
+
+       /* Copy as many bytes as will fit */
+       if (n != 0) {
+               while (--n != 0) {
+                       if ((*d++ = g_ascii_tolower (*s++)) == '\0') {
+                               break;
+                       }
+               }
+       }
+
+       if (n == 0 && siz != 0) {
+               *d = '\0';
+       }
+
+       return (s - src - 1);    /* count does not include NUL */
+}
+
 /* Compare two emails for building emails tree */
 gint
 compare_email_func (gconstpointer a, gconstpointer b)
index c95cc54482c3177aa5a325b2ac9d8ac9242ca31d..405d289a3384296956741ba3daec1585e0b7b235 100644 (file)
@@ -186,7 +186,7 @@ void g_queue_clear (GQueue *queue);
 #endif
 
 
-/*
+/**
  * Copy src to dest limited to len, in compare with standart strlcpy(3) rspamd strlcpy does not
  * traverse the whole string and it is possible to use it for non NULL terminated strings. This is
  * more like memccpy(dst, src, size, '\0')
@@ -198,6 +198,15 @@ void g_queue_clear (GQueue *queue);
  */
 gsize rspamd_strlcpy (gchar *dst, const gchar *src, gsize siz);
 
+/**
+ * Lowercase strlcpy variant
+ * @param dst
+ * @param src
+ * @param siz
+ * @return
+ */
+gsize rspamd_strlcpy_tolower (gchar *dst, const gchar *src, gsize siz);
+
 /*
  * Strip <> from email address
  */