aboutsummaryrefslogtreecommitdiffstats
path: root/funcs/func_cut.c
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2009-05-27 19:20:56 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2009-05-27 19:20:56 +0000
commit15b8686c5774e84d42c013c98e96f771a1e96b16 (patch)
tree10214f7d0c1168a304c0929a97ef583af5c8bef7 /funcs/func_cut.c
parent6a0033e66ad72f66d00ad54499718d2f60e22874 (diff)
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: http://svn.digium.com/svn/asterisk/trunk@197209 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'funcs/func_cut.c')
-rw-r--r--funcs/func_cut.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/funcs/func_cut.c b/funcs/func_cut.c
index 437ebf621..9c7c530f4 100644
--- a/funcs/func_cut.c
+++ b/funcs/func_cut.c
@@ -186,6 +186,7 @@ static int cut_internal(struct ast_channel *chan, char *data, struct ast_str **b
if (ast_str_strlen(str)) {
int curfieldnum = 1;
char *tmp2 = ast_str_buffer(str);
+ int firstfield = 1;
while (tmp2 != NULL && args.field != NULL) {
char *nextgroup = strsep(&(args.field), "&");
int num1 = 0, num2 = INT_MAX;
@@ -222,7 +223,8 @@ static int cut_internal(struct ast_channel *chan, char *data, struct ast_str **b
/* Output fields until we either run out of fields or num2 is reached */
while (tmp2 != NULL && curfieldnum <= num2) {
char *tmp3 = strsep(&tmp2, ds);
- ast_str_append(buf, buflen, "%s%s", ast_str_strlen(*buf) ? ds : "", tmp3);
+ ast_str_append(buf, buflen, "%s%s", firstfield ? "" : ds, tmp3);
+ firstfield = 0;
curfieldnum++;
}
}