From: Tilghman Lesher Date: Wed, 27 May 2009 19:29:58 +0000 (+0000) Subject: Recorded merge of revisions 197209 via svnmerge from X-Git-Tag: 1.6.1.3-rc1~207 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=418e8a88d485c8364dbd240de7eaa0fe428b4e05;p=thirdparty%2Fasterisk.git Recorded merge of revisions 197209 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r197209 | tilghman | 2009-05-27 14:20:56 -0500 (Wed, 27 May 2009) | 12 lines Recorded merge of revisions 197194 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r197194 | tilghman | 2009-05-27 14:09:42 -0500 (Wed, 27 May 2009) | 5 lines Use a different determinator on whether to print the delimiter, since leading fields may be blank. (closes issue #15208) Reported by: ramonpeek Patch by me, though inspired in part by a patch from ramonpeek ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@197245 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/funcs/func_cut.c b/funcs/func_cut.c index 231729ddf4..eace3ecd44 100644 --- a/funcs/func_cut.c +++ b/funcs/func_cut.c @@ -147,7 +147,7 @@ static int cut_internal(struct ast_channel *chan, char *data, char *buffer, size pbx_substitute_variables_helper(chan, tmp, tmp2, MAXRESULT - 1); if (tmp2) { - int curfieldnum = 1; + int curfieldnum = 1, firstfield = 1; while (tmp2 != NULL && args.field != NULL) { char *nextgroup = strsep(&(args.field), "&"); int num1 = 0, num2 = MAXRESULT; @@ -189,10 +189,12 @@ static int cut_internal(struct ast_channel *chan, char *data, char *buffer, size char *tmp3 = strsep(&tmp2, ds); int curlen = strlen(buffer); - if (curlen) - snprintf(buffer + curlen, buflen - curlen, "%c%s", d, tmp3); - else + if (firstfield) { snprintf(buffer, buflen, "%s", tmp3); + firstfield = 0; + } else { + snprintf(buffer + curlen, buflen - curlen, "%c%s", d, tmp3); + } curfieldnum++; }