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
next prev parent 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).