aboutsummaryrefslogtreecommitdiffstats
path: root/e-util
diff options
context:
space:
mode:
Diffstat (limited to 'e-util')
-rw-r--r--e-util/e-util.c26
-rw-r--r--e-util/e-util.h35
2 files changed, 61 insertions, 0 deletions
diff --git a/e-util/e-util.c b/e-util/e-util.c
index 1696338858..5d8e9b19db 100644
--- a/e-util/e-util.c
+++ b/e-util/e-util.c
@@ -1592,3 +1592,29 @@ e_strdup_append_strings (gchar *first_string, ...)
return buffer;
}
+
+gchar **
+e_strdupv (const gchar **str_array)
+{
+ if (str_array) {
+ gint i;
+ gchar **retval;
+
+ i = 0;
+ while (str_array[i])
+ i++;
+
+ retval = g_new (gchar*, i + 1);
+
+ i = 0;
+ while (str_array[i]) {
+ retval[i] = g_strdup (str_array[i]);
+ i++;
+ }
+ retval[i] = NULL;
+
+ return retval;
+ } else {
+ return NULL;
+ }
+}
diff --git a/e-util/e-util.h b/e-util/e-util.h
index e636a0fbbf..65a8d0d618 100644
--- a/e-util/e-util.h
+++ b/e-util/e-util.h
@@ -75,6 +75,40 @@ GtkType l##_get_type(void)\
return type;\
}
+#define GET_STRING_ARRAY_FROM_ELLIPSIS(labels, first_string) \
+ { \
+ va_list args; \
+ int i; \
+ char *s; \
+ \
+ va_start (args, (first_string)); \
+ \
+ i = 0; \
+ for (s = (first_string); s; s = va_arg (args, char *)) \
+ i++; \
+ va_end (args); \
+ \
+ (labels) = g_new (char *, i + 1); \
+ \
+ va_start (args, (first_string)); \
+ i = 0; \
+ for (s = (first_string); s; s = va_arg (args, char *)) \
+ (labels)[i++] = s; \
+ \
+ va_end (args); \
+ (labels)[i] = NULL; \
+ }
+
+
+#define GET_DUPLICATED_STRING_ARRAY_FROM_ELLIPSIS(labels, first_string) \
+ { \
+ int i; \
+ GET_STRING_ARRAY_FROM_ELLIPSIS ((labels), (first_string)); \
+ for (i = 0; labels[i]; i++) \
+ labels[i] = g_strdup (labels[i]); \
+ }
+
+
#if 1
# define E_OBJECT_CLASS_ADD_SIGNALS(oc,sigs,last) \
gtk_object_class_add_signals (oc, sigs, last)
@@ -118,6 +152,7 @@ void e_filename_make_safe (gcha
gchar *e_format_number (gint number);
gchar *e_format_number_float (gfloat number);
gboolean e_create_directory (gchar *directory);
+gchar **e_strdupv (const gchar **str_array);
typedef int (*ESortCompareFunc) (const void *first,