changeset 7090:c8878d66c4a1 HEAD

Added functions for building an "environment array". It can be passed later to execve().
author Timo Sirainen <tss@iki.fi>
date Wed, 02 Jan 2008 01:35:21 +0200
parents 10d49a20b04e
children 59ac3628b8d8
files src/lib/env-util.c src/lib/env-util.h
diffstat 2 files changed, 31 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/env-util.c	Wed Jan 02 00:03:41 2008 +0200
+++ b/src/lib/env-util.c	Wed Jan 02 01:35:21 2008 +0200
@@ -1,6 +1,7 @@
 /* Copyright (c) 2002-2008 Dovecot authors, see the included COPYING file */
 
 #include "lib.h"
+#include "array.h"
 #include "env-util.h"
 
 #include <stdlib.h>
@@ -26,3 +27,25 @@
 	if (pool != NULL)
 		pool_unref(&pool);
 }
+
+void envarr_add(ARRAY_TYPE(const_string) *arr,
+		const char *key, const char *value)
+{
+	const char *str = t_strconcat(key, "=", value, NULL);
+
+	array_append(arr, &str, 1);
+}
+
+void envarr_addi(ARRAY_TYPE(const_string) *arr, const char *key,
+		 unsigned int value)
+{
+	char str[MAX_INT_STRLEN];
+
+	i_snprintf(str, sizeof(str), "%u", value);
+	envarr_add(arr, key, str);
+}
+
+void envarr_addb(ARRAY_TYPE(const_string) *arr, const char *key)
+{
+	envarr_add(arr, key, "1");
+}
--- a/src/lib/env-util.h	Wed Jan 02 00:03:41 2008 +0200
+++ b/src/lib/env-util.h	Wed Jan 02 01:35:21 2008 +0200
@@ -7,4 +7,12 @@
 /* Clear all environment variables. */
 void env_clean(void);
 
+/* Append a string containing key=value to the array */
+void envarr_add(ARRAY_TYPE(const_string) *arr,
+		const char *key, const char *value);
+void envarr_addi(ARRAY_TYPE(const_string) *arr, const char *key,
+		 unsigned int value);
+/* Append a string containing key=1 to the array */
+void envarr_addb(ARRAY_TYPE(const_string) *arr, const char *key);
+
 #endif