static size_t realtime_callback(void *ptr, size_t size, size_t nmemb, void *data) { register int realsize = size * nmemb; char *line = NULL, *nextline = NULL, *val = NULL, *p = NULL; jsval rval; struct config_data *config_data = data; char code[256]; if (config_data->name && (line = ast_strdupa((char *) ptr))) { while (line) { if ((nextline = strchr(line, '\n'))) { *nextline = '\0'; nextline++; } if ((val = strchr(line, '='))) { *val = '\0'; val++; if (val[0] == '>') { *val = '\0'; val++; } for (p = line; p && *p == ' '; p++); line = p; for (p=line+strlen(line)-1;*p == ' '; p--) *p = '\0'; for (p = val; p && *p == ' '; p++); val = p; for (p=val+strlen(val)-1;*p == ' '; p--) *p = '\0'; snprintf(code, sizeof(code), "~%s[\"%s\"] = \"%s\"", config_data->name, line, val); eval_some_js(code, config_data->cx, config_data->obj, &rval); } line = nextline; } } return realsize; }