master #96

Open
asmeron wants to merge 3 commits from YanTheKaller/libublsettings:master into master

@ -677,8 +677,17 @@ int yon_config_remove_element(char *key, char *delete_target, char *divider){
if (dict){ if (dict){
if (yon_char_is_empty(dict->data)) return 0; if (yon_char_is_empty(dict->data)) return 0;
char *temp = yon_char_remove_element((char*)dict->data,delete_target,divider); char *temp = yon_char_remove_element((char*)dict->data,delete_target,divider);
if (!yon_char_is_empty((char*)dict->data)) free(dict->data); if (strcmp((char*)dict->data,temp)){
dict->data = temp; if (!yon_char_is_empty((char*)dict->data)){
free(dict->data);
}
dict->data = temp;
if (!yon_char_is_empty(temp)){
dict->flag1 = -1;
} else {
dict->flag1 = 1;
}
}
return 1; return 1;
} }
@ -693,12 +702,14 @@ int yon_config_remove_elements(char *key, char *delete_target, char *divider){
if (yon_char_is_empty(dict->data)) return 0; if (yon_char_is_empty(dict->data)) return 0;
char *temp = yon_char_remove_elements((char*)dict->data,delete_target,divider); char *temp = yon_char_remove_elements((char*)dict->data,delete_target,divider);
if (!yon_char_is_empty(temp)){ if (!yon_char_is_empty(temp)){
if (!yon_char_is_empty((char*)dict->data)) free(dict->data); if (strcmp((char*)dict->data,temp)){
dict->data = temp; if (!yon_char_is_empty((char*)dict->data)) free(dict->data);
yon_config_set_status(key,1); dict->data = temp;
dict->flag1=1;
}
} else { } else {
dict->data = NULL; dict->data = NULL;
yon_config_set_status(key,-1); dict->flag1=-1;
} }
@ -716,12 +727,14 @@ int yon_config_remove_elements_all(char *key, char *delete_target, char *divider
if (dict&&yon_char_check_elements((char*)dict->data,delete_target,divider)){ if (dict&&yon_char_check_elements((char*)dict->data,delete_target,divider)){
char *temp = yon_char_remove_elements((char*)dict->data,delete_target,divider); char *temp = yon_char_remove_elements((char*)dict->data,delete_target,divider);
if (!yon_char_is_empty(temp)){ if (!yon_char_is_empty(temp)){
if (!yon_char_is_empty((char*)dict->data)) free(dict->data); if (strcmp((char*)dict->data,temp)){
dict->data = temp; if (!yon_char_is_empty((char*)dict->data)) free(dict->data);
yon_config_set_status(key,1); dict->data = temp;
dict->flag1=1;
}
} else { } else {
dict->data = NULL; dict->data = NULL;
yon_config_set_status(key,-1); dict->flag1=-1;
} }

@ -170,3 +170,16 @@ void yon_launch(char *command)
{ {
int ansver = system(command); int ansver = system(command);
} }
#define os_name_get_command "sed -En 's/^PRETTY_NAME=[\"]*([^\"]+)[\"]*/\\1/p' /etc/os-release"
char *yon_ubl_get_os_name(){
char *os_name = NULL;
int size;
config_str ret = yon_config_load(os_name_get_command,&size);
if (size){
yon_char_remove_last_symbol(ret[0],'\n');
os_name = yon_char_new(ret[0]);
yon_char_parsed_free(ret,size);
}
return os_name;
}

@ -1587,24 +1587,34 @@ int yon_config_force_save_registered(char *path);
config_str yon_config_find_keys(char *target, int *size); config_str yon_config_find_keys(char *target, int *size);
/**yon_config_get_all(int *size) /// @brief Get all configuration parameters list
* [EN] /// @param size A pointer for returning list's size
* /// @return A newly allocated list of parameter keys;
* [RU]
* Возвращает массив со всеми параметрами конфига, оканчивающаяся NULL
* [size] - указатель, в который выгружается длина массива
*/
config_str yon_config_get_all(int *size); config_str yon_config_get_all(int *size);
/// @brief Get all modified configuration parameters
/// @param size A pointer for returning list's size
/// @return A newly allocated list of parameter keys;
config_str yon_config_get_all_modified(int *size); config_str yon_config_get_all_modified(int *size);
/// @brief Get all configuration parameters, which were not marked as ignored.
/// @param size A pointer for returning list's size
/// @return A newly allocated list of parameter keys;
config_str yon_config_get_all_no_ignored(int *size); config_str yon_config_get_all_no_ignored(int *size);
/*Возвращает ключ из параметра, или сам параметр если ключ не был найден*/ /*Возвращает ключ из параметра, или сам параметр если ключ не был найден*/
char *yon_config_parameter_get_key(char *parameter_string); char *yon_config_parameter_get_key(char *parameter_string);
/// @brief Move configuration parameter to be before another parameter. Used to sort parameters for saving if a precise saving order is required
/// @param parameter Moved configuration parameter;
/// @param target Parameter to which the required parameter will be moved
/// @return TRUE if succeeded, FALSE otherwise
int yon_config_move_before(char *parameter, char *target); int yon_config_move_before(char *parameter, char *target);
/// @brief Move configuration parameter to be after another parameter. Used to sort parameters for saving if a precise saving order is required
/// @param parameter Moved configuration parameter;
/// @param target Parameter to which the required parameter will be moved
/// @return TRUE if succeeded, FALSE otherwise
int yon_config_move_after(char *parameter, char *target); int yon_config_move_after(char *parameter, char *target);
/// @brief Revert configuration to default values. /// @brief Revert configuration to default values.
@ -1670,24 +1680,23 @@ int yon_config_custom_swap(yon_config_custom **target);
/// @brief Apply custom config to internal config. Remove all parameters and insert custom configuration; /// @brief Apply custom config to internal config. Remove all parameters and insert custom configuration;
/// @return TRUE if applied successfully, FALSE otherwise /// @return TRUE if applied successfully, FALSE otherwise
int yon_config_custom_apply(yon_config_custom **target); int yon_config_custom_apply(yon_config_custom **target);
// terminal-using functions // terminal-using functions
/**yon_launch_app_with_arguments(char *name, char *args) /// @brief Execute command in separate thread
* [EN] /// @param command Command to execute
* Execute [command] in separate thread; /// @param args arguments, adding to command, can be NULL;
* [RU] /// @return returned status of command execution.
* Выполнить команду [command] в отдельном потоке; int yon_launch_app_with_arguments(char *command, char *args);
*/
int yon_launch_app_with_arguments(char *name, char *args);
/**yon_launch(char *command) /// @brief Execute a command
* [EN] /// @param command Command to execute
* Execute command [command]
* [RU]
* Выполнить команду [command]
*/
void yon_launch(char *command); void yon_launch(char *command);
/// @brief Get cuurent OS name
/// @return Newly allocated string or NULL
char *yon_ubl_get_os_name();
// // Trash collector functions // // Trash collector functions
// int yon_trash_collector_append(void *pointer, char group_key); // int yon_trash_collector_append(void *pointer, char group_key);

Loading…
Cancel
Save