dect
/
asterisk
Archived
13
0
Fork 0

a few syntax changes and safer code

git-svn-id: http://svn.digium.com/svn/asterisk/trunk@103682 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
jpeeler 2008-02-14 19:47:39 +00:00
parent 339bee10d3
commit 3fb2da6dbb
1 changed files with 14 additions and 20 deletions

View File

@ -230,16 +230,16 @@ static void ast_eivr_getvariable(struct ast_channel *chan, char *data, char *out
{
/* original input data: "G,var1,var2," */
/* data passed as "data": "var1,var2" */
char *inbuf, *variable;
const char *value;
char *saveptr;
int j;
struct ast_str *newstring = ast_str_alloca(outbuflen);
outbuf[0] = 0;
outbuf[0] = '\0';
for (j = 1, inbuf = data; ; j++, inbuf = NULL) {
variable = strtok_r(inbuf, ",", &saveptr);
for (j = 1, inbuf = data; ; j++) {
variable = strsep(&inbuf, ",");
if (variable == NULL) {
int outstrlen = strlen(outbuf);
if(outstrlen && outbuf[outstrlen - 1] == ',') {
@ -251,10 +251,8 @@ static void ast_eivr_getvariable(struct ast_channel *chan, char *data, char *out
value = pbx_builtin_getvar_helper(chan, variable);
if(!value)
value = "";
strncat(outbuf,variable,outbuflen);
strncat(outbuf,"=",outbuflen);
strncat(outbuf,value,outbuflen);
strncat(outbuf,",",outbuflen);
ast_str_append(&newstring, 0, "%s=%s,", variable, value);
ast_copy_string(outbuf, newstring->str, outbuflen);
}
};
@ -265,28 +263,24 @@ static void ast_eivr_setvariable(struct ast_channel *chan, char *data)
char *inbuf, *variable;
char *saveptr;
int j;
for(j=1, inbuf=data; ; j++, inbuf=NULL) {
variable = strtok_r(inbuf, ",", &saveptr);
for (j = 1, inbuf = data; ; j++, inbuf = NULL) {
variable = strsep(&inbuf, ",");
ast_chan_log(LOG_DEBUG, chan, "Setting up a variable: %s\n", variable);
if(variable) {
/* variable contains "varname=value" */
strncpy(buf, variable, sizeof(buf));
ast_copy_string(buf, variable, sizeof(buf));
value = strchr(buf, '=');
if(!value)
value="";
else {
value[0] = 0;
value++;
}
else
*value++ = '\0';
pbx_builtin_setvar_helper(chan, buf, value);
}
else break;
else
break;
}
};
static struct playlist_entry *make_entry(const char *filename)