]> source.dussan.org Git - rspamd.git/commitdiff
Add fixed strings assigning utility function.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 7 Oct 2015 10:44:15 +0000 (11:44 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 7 Oct 2015 10:44:15 +0000 (11:44 +0100)
src/libutil/fstring.c
src/libutil/fstring.h

index a03121f4227dc185e5b29ca1f5a1d4b2559a9e1e..6566f5af92cbe8a46644eda0020587a297627ff4 100644 (file)
@@ -71,6 +71,24 @@ rspamd_fstring_new_init (const gchar *init, gsize len)
        return s;
 }
 
+rspamd_fstring_t *
+rspamd_fstring_assign (rspamd_fstring_t *str, const gchar *init, gsize len)
+{
+       gsize avail = str->allocated;
+
+       if (avail < len) {
+               str = rspamd_fstring_grow (str, len);
+       }
+
+       if (len > 0) {
+               memcpy (str->str, init, len);
+       }
+
+       str->len = len;
+
+       return str;
+}
+
 void
 rspamd_fstring_free (rspamd_fstring_t *str)
 {
@@ -312,4 +330,4 @@ rspamd_fstring_cmp (const rspamd_fstring_t *s1,
        }
 
        return s1->len - s2->len;
-}
\ No newline at end of file
+}
index 70d6624d15ea1dc4f354e7212fd6cd7818faa954..4d9c3678dae92f30a0c53935e49180945946bc2c 100644 (file)
@@ -48,17 +48,26 @@ typedef struct f_str_tok {
 /**
  * Create new fixed length string
  */
-rspamd_fstring_t* rspamd_fstring_new (void);
+rspamd_fstring_t* rspamd_fstring_new (void)
+               G_GNUC_WARN_UNUSED_RESULT;
 
 /**
  * Create new fixed length string with preallocated size
  */
-rspamd_fstring_t *rspamd_fstring_sized_new (gsize initial_size);
+rspamd_fstring_t *rspamd_fstring_sized_new (gsize initial_size)
+               G_GNUC_WARN_UNUSED_RESULT;
 
 /**
  * Create new fixed length string and initialize it with the initial data
  */
-rspamd_fstring_t *rspamd_fstring_new_init (const gchar *init, gsize len);
+rspamd_fstring_t *rspamd_fstring_new_init (const gchar *init, gsize len)
+               G_GNUC_WARN_UNUSED_RESULT;
+
+/**
+ * Assign new value to fixed string
+ */
+rspamd_fstring_t *rspamd_fstring_assign (rspamd_fstring_t *str,
+               const gchar *init, gsize len) G_GNUC_WARN_UNUSED_RESULT;
 
 /**
  * Free fixed length string
@@ -81,7 +90,8 @@ void rspamd_fstring_erase (rspamd_fstring_t *str, gsize pos, gsize len);
  * Convert fixed string to a zero terminated string. This string should be
  * freed by a caller
  */
-char * rspamd_fstring_cstr (const rspamd_fstring_t *str);
+char * rspamd_fstring_cstr (const rspamd_fstring_t *str)
+               G_GNUC_WARN_UNUSED_RESULT;
 
 /*
  * Return fast hash value for fixed string converted to lowercase
@@ -100,6 +110,9 @@ gboolean rspamd_fstring_equal (const rspamd_fstring_t *s1,
 gint rspamd_fstring_casecmp (const rspamd_fstring_t *s1,
                const rspamd_fstring_t *s2);
 
+/**
+ * Compare two fixed strings
+ */
 gint rspamd_fstring_cmp (const rspamd_fstring_t *s1,
                const rspamd_fstring_t *s2);