@ -961,6 +961,11 @@ int yon_config_load_register_no_cleaning(YON_CONFIG_TYPE config_type,char *secti
{
char * key = yon_char_divide_search ( str , " = " , - 1 ) ;
char * final_str = yon_char_divide_search ( str , " \n " , - 1 ) ;
if ( ( final_str [ 0 ] = = ' \' ' & & final_str [ strlen ( final_str ) - 1 ] = = ' \' ' ) | | ( final_str [ 0 ] = = ' \" ' & & final_str [ strlen ( final_str ) - 1 ] = = ' \" ' ) ) {
final_str [ strlen ( final_str ) - 1 ] = ' \0 ' ;
free ( yon_char_divide ( final_str , 0 ) ) ;
}
if ( ! yon_dictionary_get ( ( dictionary * * ) & __yon__config__strings , key ) ) {
yon_config_parameter_add_or_create_if_exists_with_data ( __yon__config__strings , key , yon_char_new ( final_str ) ) ;
@ -1015,10 +1020,14 @@ int yon_config_load_register(YON_CONFIG_TYPE config_type,char *section,char *par
memset ( str , 0 , 4096 ) ;
while ( fgets ( str , 4096 , output ) )
{
if ( strcmp ( str , " " ) ! = 0 & & strcmp ( str , " (null) \n " ) ! = 0 )
if ( ! yon_char_is_empty ( str ) & & strcmp ( str , " (null) \n " ) ! = 0 )
{
char * key = yon_char_divide_search ( str , " = " , - 1 ) ;
char * final_str = yon_char_divide_search ( str , " \n " , - 1 ) ;
if ( ( final_str [ 0 ] = = ' \' ' & & final_str [ strlen ( final_str ) - 1 ] = = ' \' ' ) | | ( final_str [ 0 ] = = ' \" ' & & final_str [ strlen ( final_str ) - 1 ] = = ' \" ' ) ) {
final_str [ strlen ( final_str ) - 1 ] = ' \0 ' ;
free ( yon_char_divide ( final_str , 0 ) ) ;
}
if ( ! yon_dictionary_get ( ( dictionary * * ) & __yon__config__strings , key ) ) {
yon_config_parameter_add_or_create_if_exists_with_data ( __yon__config__strings , key , yon_char_new ( final_str ) ) ;
@ -1105,11 +1114,13 @@ int yon_config_append_element(char *key, char *append, char *divider){
int yon_config_set_status ( char * key , int status ) {
check_config {
if ( ! yon_char_is_empty ( key ) ) {
if ( yon_dictionary_get ( ( dictionary * * ) & __yon__config__strings , key ) ) {
( ( yon_config_parameter * ) __yon__config__strings ) - > flag1 = status ;
return 1 ;
}
}
}
return 0 ;
}
@ -1295,18 +1306,20 @@ int yon_config_save_registered(char *path){
dictionary * sections_remove = NULL ;
for_dictionaries ( dct , ( dictionary * ) __yon__config__strings ) {
if ( ( ( yon_config_parameter * ) dct ) - > flag1 = = 1 ) {
if ( dct - > data & & strcmp ( yon_dictionary_get_data ( dct , char * ) ," " )! = 0 ) {
if ( dct - > data & & ! yon_char_is_empty ( yon_dictionary_get_data ( dct , char * ) )) {
( ( yon_config_parameter * ) dct ) - > flag1 = 0 ;
if ( sections_add & & yon_dictionary_get ( & sections_add , ( ( yon_config_parameter * ) dct ) - > section ) ) sections_add - > data = ( void * ) yon_char_unite ( yon_dictionary_get_data ( sections_add , char * ) , " " , dct - > key , " = \" " , yon_dictionary_get_data ( dct , char * ) , " \" " , NULL ) ;
else yon_dictionary_add_or_create_if_exists_with_data ( sections_add , ( ( yon_config_parameter * ) dct ) - > section , yon_char_unite ( ubconfig_save_command , path ? yon_char_append ( " --target " , path ) : " " , " set " , ( ( yon_config_parameter * ) dct ) - > section , " " , dct - > key , " = \" " , yon_dictionary_get_data ( dct , char * ) , " \" " , NULL ) ) ;
}
} else if ( ( ( yon_config_parameter * ) dct ) - > flag1 = = - 1 ) {
if ( dct - > data & & yon_char_is_empty ( yon_dictionary_get_data ( dct , char * ) ) ) {
( ( yon_config_parameter * ) dct ) - > flag1 = 0 ;
if ( sections_remove & & yon_dictionary_get ( & sections_remove , ( ( yon_config_parameter * ) dct ) - > section ) ) sections_remove - > data = ( void * ) yon_char_unite ( yon_dictionary_get_data ( sections_remove , char * ) , " " , dct - > key , NULL ) ;
else yon_dictionary_add_or_create_if_exists_with_data ( sections_remove , ( ( yon_config_parameter * ) dct ) - > section , yon_char_unite ( ubconfig_save_command , path ? yon_char_append ( " --target " , path ) : " " , " remove " , ( ( yon_config_parameter * ) dct ) - > section , " " , dct - > key , NULL ) ) ;
yon_dictionary_rip ( dct ) ;
}
}
}
if ( sections_add )
for_dictionaries ( dct , sections_add ) {
char * command = yon_dictionary_get_data ( dct , char * ) ;