@ -515,31 +515,34 @@ char **yon_char_parse(char *parameters, int *size, char *divider){
}
}
char * * yon_char_parsed_rip ( char * * char_string , int * size , int item_to_delete ) {
char * * yon_char_parsed_rip ( char * * char_string , int * size , int item_to_delete ) {
char * * new_char_parsed = NULL ;
if ( char_string & & ( * size ) > 0 & & ( * size ) > item_to_delete & & item_to_delete > 0 ) {
new_char_parsed = malloc ( sizeof ( char * ) * ( ( * size ) - 1 ) ) ;
char * * new_char_parsed = NULL ;
int flag = 0 ;
new_char_parsed = malloc ( sizeof ( char * ) * ( ( * size ) - 1 ) ) ;
for ( int i = 0 ; i < ( * size ) ; i + + ) {
int flag = 0 ;
if ( i = = item_to_delete ) {
for ( int i = 0 ; i < ( * size ) ; i + + ) {
flag = 1 ;
if ( i = = item_to_delete ) {
}
flag = 1 ;
if ( flag = = 0 ) {
}
new_char_parsed [ i ] = yon_char_new ( char_string [ i ] ) ;
if ( flag = = 0 ) {
}
new_char_parsed [ i ] = yon_char_new ( char_string [ i ] ) ;
else if ( flag = = 1 & & i ! = item_to_delete ) {
}
new_char_parsed [ i - 1 ] = yon_char_new ( char_string [ i ] ) ;
else if ( flag = = 1 & & i ! = item_to_delete ) {
new_char_parsed [ i - 1 ] = yon_char_new ( char_string [ i ] ) ;
}
}
}
}
( * size ) = ( * size ) - 1 ;
( * size ) = ( * size ) - 1 ;
return new_char_parsed ;
return new_char_parsed ;
} else return NULL ;
}
}
int yon_char_parsed_check_exist ( char * * parameters , int size , char * param ) {
int yon_char_parsed_check_exist ( char * * parameters , int size , char * param ) {
if ( parameters ) {
for ( int i = 0 ; i < size ; i + + ) {
for ( int i = 0 ; i < size ; i + + ) {
if ( parameters [ i ] ) {
if ( parameters [ i ] ) {
if ( strstr ( parameters [ i ] , param ) )
if ( strstr ( parameters [ i ] , param ) )
return i ;
return i ;
} else return - 1 ;
} else return - 1 ;
}
}
}
return - 1 ;
return - 1 ;
@ -593,10 +596,12 @@ config_str yon_char_parsed_new (int *size, ...){
}
}
void yon_char_parsed_free ( config_str source , int size ) {
void yon_char_parsed_free ( config_str source , int size ) {
for ( int i = 0 ; i < size ; i + + ) {
if ( source & & size > 0 ) {
free ( source [ i ] ) ;
for ( int i = 0 ; i < size ; i + + ) {
free ( source [ i ] ) ;
}
free ( source ) ;
}
}
free ( source ) ;
}
}
config_str yon_char_parsed_copy ( config_str to_copy , int size ) {
config_str yon_char_parsed_copy ( config_str to_copy , int size ) {
@ -725,13 +730,16 @@ dictionary *yon_char_parsed_convert_copy_to_dictionary(config_str parsed, int si
char * yon_char_parsed_to_string ( config_str parsed , int size , char * divider_replace ) {
char * yon_char_parsed_to_string ( config_str parsed , int size , char * divider_replace ) {
if ( parsed & & size > 0 ) {
if ( parsed & & size > 0 ) {
char * final_string = " " ;
char * final_string = " " ;
char * temp ;
for ( int i = 0 ; i < size ; i + + ) {
for ( int i = 0 ; i < size ; i + + ) {
yon_char_unite ( final_string , yon_char_is_empty ( final_string ) ? " " : divider_replace , parsed [ i ] , NULL ) ;
temp = yon_char_unite ( final_string , yon_char_is_empty ( final_string ) ? " " : divider_replace , parsed [ i ] , NULL ) ;
if ( ! yon_char_is_empty ( final_string ) ) free ( final_string ) ;
final_string = temp ;
}
}
if ( ! yon_char_is_empty ( final_string ) ) {
if ( ! yon_char_is_empty ( final_string ) ) {
return final_string ;
return final_string ;
} else return NULL ;
} else return NULL ;
}
} else if ( size = = 0 & & ! parsed ) return " " ;
}
}
int yon_ubl_check_root ( ) {
int yon_ubl_check_root ( ) {
@ -864,7 +872,7 @@ yon_config_parameter *yon_config_parameter_new_with_data(char *key, void *data){
param - > data = data ;
param - > data = data ;
param - > data_type = DICTIONARY_CHAR_TYPE ;
param - > data_type = DICTIONARY_CHAR_TYPE ;
param - > first = param ;
param - > first = param ;
param - > flag1 = 0 ;
param - > flag1 = 1 ;
param - > key = yon_char_new ( key ) ;
param - > key = yon_char_new ( key ) ;
param - > next = NULL ;
param - > next = NULL ;
param - > prev = NULL ;
param - > prev = NULL ;
@ -914,7 +922,7 @@ int yon_config_remove_ignore(char *key){
int yon_config_get_status ( char * key ) {
int yon_config_get_status ( char * key ) {
dictionary * dict ;
dictionary * dict ;
if ( yon_dictionary_get ( ( dictionary * * ) & __yon__config__strings , key ) ) {
if ( ( dict = yon_dictionary_get ( ( dictionary * * ) & __yon__config__strings , key ) ) ) {
return ( ( yon_config_parameter * ) dict ) - > flag1 ;
return ( ( yon_config_parameter * ) dict ) - > flag1 ;
}
}
else return 0 ;
else return 0 ;
@ -957,7 +965,11 @@ int yon_config_load_register_no_cleaning(YON_CONFIG_TYPE config_type,char *secti
if ( ! yon_dictionary_get ( ( dictionary * * ) & __yon__config__strings , key ) ) {
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 ) ) ;
yon_config_parameter_add_or_create_if_exists_with_data ( __yon__config__strings , key , yon_char_new ( final_str ) ) ;
} else {
} else {
__yon__config__strings - > data = final_str ;
if ( strcmp ( ( char * ) __yon__config__strings - > data , final_str ) ) {
__yon__config__strings - > data = final_str ;
} else {
continue ;
}
}
}
yon_config_remove_ignore ( key ) ;
yon_config_remove_ignore ( key ) ;
if ( config_type = = YON_CONFIG_DEFAULT ) {
if ( config_type = = YON_CONFIG_DEFAULT ) {
@ -1011,7 +1023,11 @@ int yon_config_load_register(YON_CONFIG_TYPE config_type,char *section,char *par
if ( ! yon_dictionary_get ( ( dictionary * * ) & __yon__config__strings , key ) ) {
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 ) ) ;
yon_config_parameter_add_or_create_if_exists_with_data ( __yon__config__strings , key , yon_char_new ( final_str ) ) ;
} else {
} else {
__yon__config__strings - > data = final_str ;
if ( strcmp ( ( char * ) __yon__config__strings - > data , final_str ) ) {
__yon__config__strings - > data = final_str ;
} else {
continue ;
}
}
}
yon_config_remove_ignore ( key ) ;
yon_config_remove_ignore ( key ) ;
if ( config_type = = YON_CONFIG_DEFAULT ) {
if ( config_type = = YON_CONFIG_DEFAULT ) {
@ -1059,7 +1075,12 @@ int yon_config_remove_element(char *key, char *delete, char *divider){
found = 1 ;
found = 1 ;
}
}
}
}
char * final_string = yon_char_parsed_to_string ( parsed , size , divider ) ;
char * final_string = NULL ;
if ( size > 0 ) final_string = yon_char_parsed_to_string ( parsed , size , divider ) ;
else {
final_string = malloc ( sizeof ( char ) * 1 ) ;
final_string [ 0 ] = ' \0 ' ;
}
if ( final_string ) {
if ( final_string ) {
free ( dict - > data ) ;
free ( dict - > data ) ;
dict - > data = final_string ;
dict - > data = final_string ;
@ -1082,7 +1103,17 @@ int yon_config_append_element(char *key, char *append, char *divider){
} else return 0 ;
} else return 0 ;
}
}
void yon_config_set_status ( int status ) {
int yon_config_set_status ( char * key , int status ) {
check_config {
if ( yon_dictionary_get ( ( dictionary * * ) & __yon__config__strings , key ) ) {
( ( yon_config_parameter * ) __yon__config__strings ) - > flag1 = status ;
return 1 ;
}
}
return 0 ;
}
void yon_config_set_status_full ( int status ) {
check_config {
check_config {
for_config {
for_config {
( ( yon_config_parameter * ) temp ) - > flag1 = status ;
( ( yon_config_parameter * ) temp ) - > flag1 = status ;
@ -1187,14 +1218,18 @@ int yon_config_set(char *key, void *data){
} else return 0 ;
} else return 0 ;
}
}
int yon_config_append ( char * key , char * data ){
int yon_config_append ( char * key , char * data , char * divider ){
check_config {
check_config {
yon_config_parameter * dict = ( yon_config_parameter * ) yon_dictionary_get ( ( dictionary * * ) & __yon__config__strings , key ) ;
yon_config_parameter * dict = ( yon_config_parameter * ) yon_dictionary_get ( ( dictionary * * ) & __yon__config__strings , key ) ;
if ( strcmp ( ( ( char * ) dict - > data ) , " " ) ! = 0 )
if ( dict ) {
dict - > data = ( void * ) ( yon_char_unite ( ( char * ) dict - > data , " " , data , NULL ) ) ;
if ( strcmp ( ( ( char * ) dict - > data ) , " " ) ! = 0 ) {
else dict - > data = ( void * ) data ;
char * str = ( char * ) dict - > data ;
dict - > flag1 = 1 ;
dict - > data = ( void * ) ( yon_char_unite ( yon_char_is_empty ( str ) ? " " : str , yon_char_is_empty ( str ) ? " " : " , " , divider , data , NULL ) ) ;
return 1 ;
}
else dict - > data = ( void * ) yon_char_new ( data ) ;
dict - > flag1 = 1 ;
return 1 ;
} else return 0 ;
} else return 0 ;
} else return 0 ;
}
}
@ -1210,18 +1245,20 @@ void yon_config_register(char *key, char *config_section, void *data){
if ( ! __yon__config__strings | | ! yon_dictionary_get ( ( dictionary * * ) & __yon__config__strings , key ) ) {
if ( ! __yon__config__strings | | ! 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 ( data ) ) ;
yon_config_parameter_add_or_create_if_exists_with_data ( __yon__config__strings , key , yon_char_new ( data ) ) ;
__yon__config__strings - > flag1 = 1 ;
__yon__config__strings - > flag1 = 1 ;
__yon__config__strings - > data_type = DICTIONARY_CHAR_TYPE ;
__yon__config__strings - > section = yon_char_new ( config_section ) ;
}
}
else if ( yon_dictionary_get ( ( dictionary * * ) & __yon__config__strings , key ) ) {
else if ( yon_dictionary_get ( ( dictionary * * ) & __yon__config__strings , key ) ) {
if ( data ! = __yon__config__strings - > data & & strcmp ( __yon__config__strings - > data , data ) ) {
if ( data ! = __yon__config__strings - > data & & strcmp ( __yon__config__strings - > data , data ) ) {
__yon__config__strings - > data = yon_char_new ( data ) ;
__yon__config__strings - > data = yon_char_new ( data ) ;
__yon__config__strings - > flag1 = 1 ;
__yon__config__strings - > flag1 = 1 ;
__yon__config__strings - > data_type = DICTIONARY_CHAR_TYPE ;
__yon__config__strings - > section = yon_char_new ( config_section ) ;
if ( yon_dictionary_get ( & __yon_config_ignored , __yon__config__strings - > key ) ) {
if ( yon_dictionary_get ( & __yon_config_ignored , __yon__config__strings - > key ) ) {
yon_dictionary_rip ( __yon_config_ignored ) ;
yon_dictionary_rip ( __yon_config_ignored ) ;
}
}
}
}
}
}
__yon__config__strings - > data_type = DICTIONARY_CHAR_TYPE ;
__yon__config__strings - > section = yon_char_new ( config_section ) ;
}
}
config_str yon_config_load ( char * command , int * str_len ) {
config_str yon_config_load ( char * command , int * str_len ) {
Для чего тут этот перечень параметров ? Тем более некоторые устарели и не используются !
Договорились, что в каждой утилите будут текстовые команды на конкретную операцию !
f52181a7ce