unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: tomi.ollila@iki.fi
To: notmuch@notmuchmail.org
Cc: Tomi Ollila <tomi.ollila@iki.fi>
Subject: [PATCH 1/3] added function notmuch_talloc_g_key_file_get_string_list()
Date: Wed, 14 Sep 2011 00:32:02 +0300	[thread overview]
Message-ID: <1315949524-4948-2-git-send-email-tomi.ollila@iki.fi> (raw)
In-Reply-To: <1315949524-4948-1-git-send-email-tomi.ollila@iki.fi>

From: Tomi Ollila <tomi.ollila@iki.fi>

The function notmuch_talloc_g_key_file_get_string_list() wraps
call to g_key_file_get_string_list() in a way that the returned
string array is copied to talloc'd memory area. The returned
pointer is itself also a talloc context, child of the context
given as first argument.
---
 notmuch-config.c |   44 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/notmuch-config.c b/notmuch-config.c
index 485fa72..706f481 100644
--- a/notmuch-config.c
+++ b/notmuch-config.c
@@ -170,6 +170,44 @@ get_username_from_passwd_file (void *ctx)
     return name;
 }
 
+/** XXX move to (not-yet-existent) notmuch-talloc.c, or somewhere */
+static char **
+notmuch_talloc_g_key_file_get_string_list (const void * ctx,
+					   GKeyFile *key_file,
+					   const gchar *group_name,
+					   const gchar *key,
+					   gsize *length,
+					   GError **error)
+{
+    char ** newlist;
+    gchar ** strlist = g_key_file_get_string_list (key_file, group_name, key,
+						   length, error);
+    if (strlist) {
+	int i;
+	int l = *length;
+
+	newlist = talloc_array (ctx, char *, l + 1);
+	if (newlist == NULL)
+	    goto fail1;
+	for (i = 0; i < l; i++) {
+	    if ( (newlist[i] = talloc_strdup (newlist, strlist[i])) == NULL)
+		goto fail2;
+	}
+	newlist[i] = NULL;
+	g_strfreev (strlist);
+
+	return newlist;
+    }
+    return NULL;
+
+fail2:
+    talloc_free (newlist);
+fail1:
+    g_strfreev (strlist);
+    *length = 0; /* like in g_key_file_get_string_list () */
+    return NULL;
+}
+
 /* Open the named notmuch configuration file. If the filename is NULL,
  * the value of the environment variable $NOTMUCH_CONFIG will be used.
  * If $NOTMUCH_CONFIG is unset, the default configuration file
@@ -229,7 +267,7 @@ notmuch_config_open (void *ctx,
 	fprintf (stderr, "Out of memory.\n");
 	return NULL;
     }
-    
+
     talloc_set_destructor (config, notmuch_config_destructor);
 
     if (filename) {
@@ -393,7 +431,7 @@ notmuch_config_open (void *ctx,
 }
 
 /* Close the given notmuch_config_t object, freeing all resources.
- * 
+ *
  * Note: Any changes made to the configuration are *not* saved by this
  * function. To save changes, call notmuch_config_save before
  * notmuch_config_close.
@@ -653,7 +691,7 @@ notmuch_config_command_get (void *ctx, char *item)
     } else if (strcmp(item, "user.other_email") == 0) {
 	const char **other_email;
 	size_t i, length;
-	
+
 	other_email = notmuch_config_get_user_other_email (config, &length);
 	for (i = 0; i < length; i++)
 	    printf ("%s\n", other_email[i]);
-- 
1.7.3.4

  reply	other threads:[~2011-09-13 21:32 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-13 21:32 [PATCH 0/3] Configuration file option to exclude files/directories tomi.ollila
2011-09-13 21:32 ` tomi.ollila [this message]
2011-09-13 21:32 ` [PATCH 2/3] Made notmuch_config_get_new_tags() use notmuch_talloc_g_key_file_get_string_list() tomi.ollila
2011-09-13 21:32 ` [PATCH 3/3] added support for user-specified directories to exclude tomi.ollila
2011-12-07 23:51 ` [PATCH 0/3] Configuration file option to exclude files/directories David Bremner
2011-12-08  0:24   ` Tom Prince
2011-12-08  9:05   ` Tomi Ollila
2012-01-25  0:46     ` Pieter Praet
2012-01-26 10:11       ` [PATCH 1/2] moved _notmuch_get_list () and _notmuch_set_list () up in file Tomi Ollila
2012-01-26 10:11         ` [PATCH 2/2] added support for user-specified directories to exclude Tomi Ollila
2012-01-26 13:11           ` Jani Nikula
2012-01-27 10:41             ` Tomi Ollila
2012-01-27 22:14               ` Austin Clements
2012-01-28 14:16               ` Fabio Zanini
2012-01-27 22:50           ` Austin Clements
2012-01-26 13:03         ` [PATCH 1/2] moved _notmuch_get_list () and _notmuch_set_list () up in file Jani Nikula
2012-01-27 10:42           ` Tomi Ollila
2012-01-27 18:18             ` Ethan Glasser-Camp
2012-01-30 10:31               ` [PATCH] moved _config_(get|set)_list () functions earlyer in the file Tomi Ollila
2012-01-30 15:06                 ` Austin Clements
2012-01-31  3:28                 ` David Bremner
2012-01-27 10:59           ` [PATCH] moved _notmuch_(get|set)_list " Tomi Ollila
2012-01-27 22:15             ` Austin Clements
2012-01-25  6:28     ` [PATCH 0/3] Configuration file option to exclude files/directories David Edmondson
2012-02-01 14:12       ` [PATCH] test: add tests wrt ignoring user-specified files and directories Pieter Praet
2012-02-03 12:14         ` Tomi Ollila
2012-02-03 22:39           ` Austin Clements
2012-02-03 22:44         ` Austin Clements
2012-02-19 20:43           ` Pieter Praet
2012-01-31 16:28 ` [PATCH] added support for user-specified files & directories to ignore Tomi Ollila
2012-02-01 14:25   ` Pieter Praet
2012-02-01 14:49   ` Jani Nikula
2012-02-01 16:30   ` Austin Clements
2012-02-06  9:28 ` [PATCH v6 1/3] test: add tests wrt ignoring user-specified files and directories Tomi Ollila
2012-02-06  9:28   ` [PATCH v6 2/3] add support for user-specified files & directories to ignore Tomi Ollila
2012-02-06  9:50     ` Tomi Ollila
2012-02-06  9:28   ` [PATCH v6 3/3] NEWS: add news section for new.ignore Tomi Ollila
2012-02-14 19:18     ` Austin Clements
2012-02-13  8:20   ` [PATCH v6 1/3] test: add tests wrt ignoring user-specified files and directories Tomi Ollila
2012-02-14 19:20     ` Austin Clements
2012-02-14 19:18   ` Austin Clements
2012-02-15  9:17 ` [PATCH v7 0/3] NEWS and test comment adjustments Tomi Ollila
2012-02-15  9:17   ` [PATCH v7 1/3] test: add tests wrt ignoring user-specified files and directories Tomi Ollila
2012-02-15  9:17   ` [PATCH v7 2/3] add support for user-specified files & directories to ignore Tomi Ollila
2012-02-15  9:17   ` [PATCH v7 3/3] NEWS: add news section for new.ignore Tomi Ollila
2012-02-17 12:13   ` [PATCH v7 0/3] NEWS and test comment adjustments David Bremner
2012-02-19 20:47     ` Pieter Praet
2012-02-19 20:47       ` [PATCH 1/6] cli: update 'new.ignore' config file comment wrt file/directory matching Pieter Praet
2012-02-28  2:46         ` David Bremner
2012-02-19 20:47       ` [PATCH 2/6] NEWS: sync 'new.ignore' entry with its comment in notmuch-config.c Pieter Praet
2012-02-28  2:46         ` David Bremner
2012-02-19 20:47       ` [PATCH 3/6] cli: add '--debug' option to 'notmuch new' Pieter Praet
2012-02-19 20:47       ` [PATCH 4/6] cli: notmuch new: optionally output debug information when ignoring files/directories Pieter Praet
2012-02-19 20:47       ` [PATCH 5/6] test-lib.sh: pass 'NOTMUCH_NEW's args down to 'notmuch new' Pieter Praet
2012-02-19 20:47       ` [PATCH 6/6] test: another test wrt ignoring user-specified files and directories Pieter Praet
2012-08-31 21:13         ` David Bremner
2012-10-12 19:32           ` [PATCH] " Ethan Glasser-Camp
2012-10-20 20:42             ` David Bremner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1315949524-4948-2-git-send-email-tomi.ollila@iki.fi \
    --to=tomi.ollila@iki.fi \
    --cc=notmuch@notmuchmail.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).