[Openvas-commits] r7908 - in trunk/openvas-libraries: . base

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Thu Jun 3 10:55:13 CEST 2010


Author: felix
Date: 2010-06-03 10:55:07 +0200 (Thu, 03 Jun 2010)
New Revision: 7908

Modified:
   trunk/openvas-libraries/ChangeLog
   trunk/openvas-libraries/base/openvas_string.c
   trunk/openvas-libraries/base/openvas_string.h
Log:
* base/openvas_string.c (openvas_string_flatten_string_list): New
utility function.

* base/openvas_string.h (openvas_string_flatten_string_list): Added
proto.


Modified: trunk/openvas-libraries/ChangeLog
===================================================================
--- trunk/openvas-libraries/ChangeLog	2010-06-03 08:15:29 UTC (rev 7907)
+++ trunk/openvas-libraries/ChangeLog	2010-06-03 08:55:07 UTC (rev 7908)
@@ -1,5 +1,13 @@
 2010-06-03  Felix Wolfsteller <felix.wolfsteller at greenbone.net>
 
+	* base/openvas_string.c (openvas_string_flatten_string_list): New
+	utility function.
+
+	* base/openvas_string.h (openvas_string_flatten_string_list): Added
+	proto.
+
+2010-06-03  Felix Wolfsteller <felix.wolfsteller at greenbone.net>
+
 	Added module to retrieve resources from sources. In the current
 	implementation this means retrieve strings from an ADS/LDAP- directory.
 	Implementation was done aiming at these strings becoming target

Modified: trunk/openvas-libraries/base/openvas_string.c
===================================================================
--- trunk/openvas-libraries/base/openvas_string.c	2010-06-03 08:15:29 UTC (rev 7907)
+++ trunk/openvas-libraries/base/openvas_string.c	2010-06-03 08:55:07 UTC (rev 7908)
@@ -230,3 +230,31 @@
     }
   return FALSE;
 }
+
+/**
+ * @brief Concatenates strings in a GSList, optionally separating these with
+ * @brief a defined string.
+ *
+ * @param[in]  string_list  List of strings, if NULL, return empty string.
+ * @param[in]  separator    If not NULL, string to put between each two strings
+ *                          in \ref string_list.
+ *
+ * @return Concatenation of strings in \ref string_list, empty string if list
+ *         is empty.
+ */
+gchar*
+openvas_string_flatten_string_list (GSList* string_list, const gchar* separator)
+{
+  /* This is an inefficient solution. Improvements can be done by
+   * precalculating the length, or use GString or the like. */
+  gchar* result = "";
+  GSList* it = string_list;
+  while (it)
+    {
+      openvas_append_string (&result, it->data);
+      if (separator)
+        openvas_append_string (&result, separator);
+      it = g_slist_next (it);
+    }
+  return result;
+}

Modified: trunk/openvas-libraries/base/openvas_string.h
===================================================================
--- trunk/openvas-libraries/base/openvas_string.h	2010-06-03 08:15:29 UTC (rev 7907)
+++ trunk/openvas-libraries/base/openvas_string.h	2010-06-03 08:55:07 UTC (rev 7908)
@@ -43,4 +43,7 @@
 
 gboolean openvas_strv_contains_str (gchar ** strv, const gchar * str);
 
+gchar* openvas_string_flatten_string_list (GSList* string_list,
+                                           const gchar* separator);
+
 #endif /* not _OPENVAS_LIBRARIES_STRING_H */



More information about the Openvas-commits mailing list