From c76b7f577ddc593164f7fbf4cf87a195cc4ffad5 Mon Sep 17 00:00:00 2001 From: Pavel Labath Date: Thu, 4 Jun 2009 17:55:45 +0200 Subject: [PATCH] A couple more fixes for the template machinery Signed-off-by: Brenden Matthews --- src/conky.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/conky.c b/src/conky.c index ee20248..1bfec8a 100644 --- a/src/conky.c +++ b/src/conky.c @@ -2982,12 +2982,12 @@ static char *handle_template(const char *tmpl, const char *args) args_dup = strdup(args); p = args_dup; while (*p) { - while (*p && (*p == ' ' && *(p - 1) != '\\')) + while (*p && (*p == ' ' && p > args_dup && *(p - 1) != '\\')) p++; - if (*(p - 1) == '\\') + if (p > args_dup && *(p - 1) == '\\') p--; p_old = p; - while (*p && (*p != ' ' || *(p - 1) == '\\')) + while (*p && (*p != ' ' || p == args_dup || *(p - 1) == '\\')) p++; if (*p) { (*p) = '\0'; @@ -3069,6 +3069,7 @@ static char *find_and_replace_templates(const char *inbuf) tmpl_out = handle_template(templ, args); if (tmpl_out) { outlen += strlen(tmpl_out); + *o = '\0'; outbuf = realloc(outbuf, outlen * sizeof(char)); strcat (outbuf, tmpl_out); free(tmpl_out); -- 1.7.9.5