diff --git a/source/libublsettings-char.c b/source/libublsettings-char.c index e9d6c50..ffabdb3 100644 --- a/source/libublsettings-char.c +++ b/source/libublsettings-char.c @@ -297,7 +297,7 @@ char *yon_char_replace_single(char *source, char *find, char *replace){ return NULL; } -char **yon_char_parse(const char *parameters, int *size, char *divider){ +char **yon_char_parse(const char * parameters, int *size, char * divider){ *size=0; if (parameters&&!yon_char_is_empty(divider)){ char **string=NULL; @@ -305,7 +305,12 @@ char **yon_char_parse(const char *parameters, int *size, char *divider){ char *param = strstr(paramline,divider); for (;param;param=strstr(paramline,divider)){ string = yon_remalloc(string,sizeof(char*)*((*size)+1)); - string[(*size)]=yon_char_divide(paramline,strlen(paramline)-strlen(param)); + int cur_size = strlen(paramline)-strlen(param); + string[(*size)] = malloc(cur_size+1); + memset(string[(*size)],0,cur_size+1); + memcpy(string[(*size)],paramline,cur_size); + memcpy(paramline,paramline+strlen(string[(*size)])+strlen(divider),strlen(param)); + // string[(*size)]=yon_char_divide(paramline,strlen(paramline)-strlen(param)); *size=(*size)+1; } string = yon_remalloc(string,sizeof(char*)*((*size)+1)); diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 11d97d9..20e4929 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -320,6 +320,9 @@ char *yon_config_command_get_full(config_str command, int command_size){ } if (final_size>0){ char *final_command = yon_char_parsed_to_string(final,final_size," -- get "); + char *temp = yon_char_replace(final_command,"ubconfig","ubconfig -ea"); + free(final_command); + final_command = temp; yon_char_parsed_free(final,final_size); return final_command; } @@ -1194,7 +1197,7 @@ config_str yon_config_get_save_parameters_by_key(int *size, char *parameter,...) } config_str yon_config_get_save_parameters(int *size){ - + check_config{} else return NULL; (*size)=0; int removed_size=0; config_str removed = NULL; @@ -1295,6 +1298,9 @@ char *yon_config_parameter_prepare_command(char *command, char *path, char *sect yon_char_parsed_add_or_create_if_exists(parsed,&size,parameter); } } + char *temp = yon_char_new("ubconfig -ea"); + free(parsed[0]); + parsed[0]=temp; char *final = yon_char_parsed_to_string(parsed,size," "); yon_char_parsed_free(parsed,size); return final;