Changed return type of simple saving functions to return commands and output

pull/84/head
parent dd3a9e47a2
commit a2a8e3a398

@ -1423,7 +1423,7 @@ char *yon_config_save_simple(YON_CONFIG_TYPE target, char *path){
return NULL; return NULL;
} }
int yon_config_save_list_simple(config_str parameters_keys, size_t size, char *path){ char *yon_config_save_list_simple(config_str parameters_keys, size_t size, char *path){
if (yon_char_is_empty(path)) return 0; if (yon_char_is_empty(path)) return 0;
check_config{ check_config{
int parameters_size=0; int parameters_size=0;
@ -1431,14 +1431,26 @@ int yon_config_save_list_simple(config_str parameters_keys, size_t size, char *p
if (parameters&&parameters_size){ if (parameters&&parameters_size){
char *command_parameters = yon_char_parsed_to_string(parameters,parameters_size," -- "); char *command_parameters = yon_char_parsed_to_string(parameters,parameters_size," -- ");
char *command = yon_char_unite(ubconfig_dull_command,"--target ",path," ", command_parameters,NULL); char *command = yon_char_unite(ubconfig_dull_command,"--target ",path," ", command_parameters,NULL);
return !!system(command); FILE *file = popen(command,"r");
if (file){
int file_size=0;
config_str file_output = yon_config_load_file(file,&file_size);
if (file_output){
char *final_string = yon_char_parsed_to_string(file_output,file_size,"");
if (!yon_char_is_empty(final_string)){
return final_string;
}
}
fclose(file);
}
} }
} }
return 0; return NULL;
} }
int yon_config_save_args_simple(char *path, ...){ char *yon_config_save_args_simple(char *path, ...){
if (yon_char_is_empty(path)) return 0; if (yon_char_is_empty(path)) return 0;
check_config{ check_config{
va_list args; va_list args;
@ -1455,10 +1467,26 @@ int yon_config_save_args_simple(char *path, ...){
if (parameters&&parameters_size){ if (parameters&&parameters_size){
char *command_parameters = yon_char_parsed_to_string(parameters,parameters_size," -- "); char *command_parameters = yon_char_parsed_to_string(parameters,parameters_size," -- ");
char *command = yon_char_unite(ubconfig_dull_command,"--target ",path," ", command_parameters,NULL); char *command = yon_char_unite(ubconfig_dull_command,"--target ",path," ", command_parameters,NULL);
return !!system(command); FILE *file = popen(command,"r");
if (file){
int file_size=0;
config_str file_output = yon_config_load_file(file,&file_size);
if (file_output){
char *output_string = yon_char_parsed_to_string(file_output,file_size,"");
yon_char_parsed_free(file_output,file_size);
char *final_string = yon_char_unite(command,"\n",output_string,NULL);
free(output_string);
if (!yon_char_is_empty(final_string)){
return final_string;
}
} else {
yon_char_parsed_free(file_output,file_size);
}
fclose(file);
}
} }
} }
return 0; return NULL;
} }
int yon_config_update_by_key(char *key){ int yon_config_update_by_key(char *key){

@ -1527,14 +1527,14 @@ char *yon_config_save_simple(YON_CONFIG_TYPE target, char *path);
/// @param size size of parameter keys list. /// @param size size of parameter keys list.
/// @param path Path to configuration .ini. /// @param path Path to configuration .ini.
/// @return TRUE if successful, FALSE otherwise. /// @return TRUE if successful, FALSE otherwise.
int yon_config_save_list_simple(config_str parameters_keys, size_t size, char *path); char *yon_config_save_list_simple(config_str parameters_keys, size_t size, char *path);
/// @brief Save list of parameters into configuration. /// @brief Save list of parameters into configuration.
/// @param path Path to configuration .ini. /// @param path Path to configuration .ini.
/// @param ... A NULL-terminated list of parameter keys. /// @param ... A NULL-terminated list of parameter keys.
/// @return TRUE if successful, FALSE otherwise. /// @return TRUE if successful, FALSE otherwise.
int yon_config_save_args_simple(char *path, ...); char *yon_config_save_args_simple(char *path, ...);
/// @brief Update parameter's value from configuration. /// @brief Update parameter's value from configuration.
/// @param key Parameter's key. /// @param key Parameter's key.

Loading…
Cancel
Save