|
|
@ -167,7 +167,7 @@ static int cut_internal(struct ast_channel *chan, char *data, char *buffer, size
|
|
|
|
pbx_substitute_variables_helper(chan, tmp, tmp2, MAXRESULT - 1);
|
|
|
|
pbx_substitute_variables_helper(chan, tmp, tmp2, MAXRESULT - 1);
|
|
|
|
|
|
|
|
|
|
|
|
if (tmp2) {
|
|
|
|
if (tmp2) {
|
|
|
|
int curfieldnum = 1;
|
|
|
|
int curfieldnum = 1, firstfield = 1;
|
|
|
|
while (tmp2 != NULL && args.field != NULL) {
|
|
|
|
while (tmp2 != NULL && args.field != NULL) {
|
|
|
|
char *nextgroup = strsep(&(args.field), "&");
|
|
|
|
char *nextgroup = strsep(&(args.field), "&");
|
|
|
|
int num1 = 0, num2 = MAXRESULT;
|
|
|
|
int num1 = 0, num2 = MAXRESULT;
|
|
|
@ -209,11 +209,12 @@ static int cut_internal(struct ast_channel *chan, char *data, char *buffer, size
|
|
|
|
char *tmp3 = strsep(&tmp2, ds);
|
|
|
|
char *tmp3 = strsep(&tmp2, ds);
|
|
|
|
int curlen = strlen(buffer);
|
|
|
|
int curlen = strlen(buffer);
|
|
|
|
|
|
|
|
|
|
|
|
if (curlen)
|
|
|
|
if (firstfield) {
|
|
|
|
snprintf(buffer + curlen, buflen - curlen, "%c%s", d, tmp3);
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
snprintf(buffer, buflen, "%s", tmp3);
|
|
|
|
snprintf(buffer, buflen, "%s", tmp3);
|
|
|
|
|
|
|
|
firstfield = 0;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
snprintf(buffer + curlen, buflen - curlen, "%c%s", d, tmp3);
|
|
|
|
|
|
|
|
}
|
|
|
|
curfieldnum++;
|
|
|
|
curfieldnum++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|