From: pdmef Date: Fri, 9 Sep 2005 03:22:19 +0000 (+0000) Subject: Rocco Rutte: X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=commitdiff_plain;h=2f2c527885bb77e4ba1e90f02812f3ee47985afa Rocco Rutte: - when expanding init strings for option init, quote them for mutt_extract_token() git-svn-id: svn://svn.berlios.de/mutt-ng/trunk@499 e385b8ad-14ed-0310-8656-cc95a2468c6d --- diff --git a/VERSION.svn b/VERSION.svn index f9aaa4d..761fcd3 100644 --- a/VERSION.svn +++ b/VERSION.svn @@ -1 +1 @@ -498 +499 diff --git a/init.c b/init.c index 10333ee..1d6c933 100644 --- a/init.c +++ b/init.c @@ -442,6 +442,7 @@ static int rx_from_string (struct option_t* dst, const char* val, regerror (e, rx, errbuf, errlen); regfree (rx); mem_free (&rx); + return (0); } if (p->pattern && p->rx) { @@ -1367,21 +1368,25 @@ static void del_option (void* p) { } static int init_expand (char** dst, const char* src) { - BUFFER token; - BUFFER in; + BUFFER token, in; + size_t len = 0; + + mem_free (dst); if (src && *src) { memset (&token, 0, sizeof (BUFFER)); memset (&in, 0, sizeof (BUFFER)); - in.data = (char*) src; + len = str_len (src) + 2; + in.data = mem_malloc (len+1); + snprintf (in.data, len, "\"%s\"", src); in.dptr = in.data; - in.dsize = str_len (src); - mutt_extract_token (&token, &in, M_TOKEN_SPACE); - mem_free (dst); + in.dsize = len; + mutt_extract_token (&token, &in, 0); if (token.data && *token.data) *dst = str_dup (token.data); else *dst = str_dup (""); + mem_free (&in.data); mem_free (&token.data); } else *dst = str_dup ("");