int update_param(const char* pname, const char* pvalue) { if(ctx->params && pname){ const tsk_param_t* param; if((param = tsk_params_get_param_by_name(ctx->params, pname))){ tsk_strupdate(&TSK_PARAM(param)->value, pvalue); return 0; } else{ TSK_DEBUG_INFO("[%s] parameter does not exist", pname); } } else{ TSK_DEBUG_ERROR("Invalid parameter"); } return -1; }
/**@ingroup tsk_params_group * Adds a parameter to the list of parameters. If the parameter already exist(case-insensitive), then it's value will be updated. * @param self The destination list. * @param name The name of the parameter to add. * @param value The value of the parameter to add. * @retval Zero if succeed and -1 otherwise. */ int tsk_params_add_param(tsk_params_L_t **self, const char* name, const char* value) { tsk_param_t *param; if(!self || !name) { TSK_DEBUG_ERROR("Invalid parameter"); return -1; } if(!*self){ *self = tsk_list_create(); } if((param = (tsk_param_t*)tsk_params_get_param_by_name(*self, name))){ tsk_strupdate(¶m->value, value); /* Already exist ==> update the value. */ } else{ param = tsk_param_create(name, value); tsk_list_push_back_data(*self, (void**)¶m); } return 0; }