|
|
|
|
@ -515,6 +515,7 @@ char **yon_char_parse(char *parameters, int *size, char *divider){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
char **yon_char_parsed_rip(char **char_string, int *size, int item_to_delete){
|
|
|
|
|
if (char_string&&(*size)>0&&(*size)>item_to_delete&&item_to_delete>0){
|
|
|
|
|
char **new_char_parsed=NULL;
|
|
|
|
|
new_char_parsed=malloc(sizeof(char*)*((*size)-1));
|
|
|
|
|
int flag = 0;
|
|
|
|
|
@ -531,16 +532,18 @@ char **yon_char_parsed_rip(char **char_string, int *size, int item_to_delete){
|
|
|
|
|
}
|
|
|
|
|
(*size)=(*size)-1;
|
|
|
|
|
return new_char_parsed;
|
|
|
|
|
} else return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int yon_char_parsed_check_exist(char **parameters, int size, char *param){
|
|
|
|
|
|
|
|
|
|
if (parameters){
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
if (parameters[i]){
|
|
|
|
|
if (strstr(parameters[i],param))
|
|
|
|
|
return i;
|
|
|
|
|
} else 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){
|
|
|
|
|
if (source&&size>0){
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
free(source[i]);
|
|
|
|
|
}
|
|
|
|
|
free(source);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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){
|
|
|
|
|
if (parsed && size>0){
|
|
|
|
|
char *final_string = "";
|
|
|
|
|
char *temp;
|
|
|
|
|
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)){
|
|
|
|
|
return final_string;
|
|
|
|
|
} else return NULL;
|
|
|
|
|
}
|
|
|
|
|
} else if (size==0&&!parsed) return "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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_type=DICTIONARY_CHAR_TYPE;
|
|
|
|
|
param->first=param;
|
|
|
|
|
param->flag1=0;
|
|
|
|
|
param->flag1=1;
|
|
|
|
|
param->key=yon_char_new(key);
|
|
|
|
|
param->next=NULL;
|
|
|
|
|
param->prev=NULL;
|
|
|
|
|
@ -914,7 +922,7 @@ int yon_config_remove_ignore(char *key){
|
|
|
|
|
|
|
|
|
|
int yon_config_get_status(char *key){
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
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)){
|
|
|
|
|
yon_config_parameter_add_or_create_if_exists_with_data(__yon__config__strings,key,yon_char_new(final_str));
|
|
|
|
|
} else {
|
|
|
|
|
if (strcmp((char*)__yon__config__strings->data,final_str)){
|
|
|
|
|
__yon__config__strings->data=final_str;
|
|
|
|
|
} else {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
yon_config_remove_ignore(key);
|
|
|
|
|
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)){
|
|
|
|
|
yon_config_parameter_add_or_create_if_exists_with_data(__yon__config__strings,key,yon_char_new(final_str));
|
|
|
|
|
} else {
|
|
|
|
|
if (strcmp((char*)__yon__config__strings->data,final_str)){
|
|
|
|
|
__yon__config__strings->data=final_str;
|
|
|
|
|
} else {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
yon_config_remove_ignore(key);
|
|
|
|
|
if (config_type==YON_CONFIG_DEFAULT){
|
|
|
|
|
@ -1059,7 +1075,12 @@ int yon_config_remove_element(char *key, char *delete, char *divider){
|
|
|
|
|
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){
|
|
|
|
|
free(dict->data);
|
|
|
|
|
dict->data=final_string;
|
|
|
|
|
@ -1082,7 +1103,17 @@ int yon_config_append_element(char *key, char *append, char *divider){
|
|
|
|
|
} 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{
|
|
|
|
|
for_config{
|
|
|
|
|
((yon_config_parameter*)temp)->flag1=status;
|
|
|
|
|
@ -1187,15 +1218,19 @@ int yon_config_set(char *key, void *data){
|
|
|
|
|
} else return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int yon_config_append(char *key, char *data){
|
|
|
|
|
int yon_config_append(char *key, char *data, char *divider){
|
|
|
|
|
check_config{
|
|
|
|
|
yon_config_parameter *dict = (yon_config_parameter*)yon_dictionary_get((dictionary**)&__yon__config__strings,key);
|
|
|
|
|
if (strcmp(((char*)dict->data),"")!=0)
|
|
|
|
|
dict->data=(void*)(yon_char_unite((char*)dict->data," ",data,NULL));
|
|
|
|
|
else dict->data=(void*)data;
|
|
|
|
|
if (dict){
|
|
|
|
|
if (strcmp(((char*)dict->data),"")!=0){
|
|
|
|
|
char *str = (char*)dict->data;
|
|
|
|
|
dict->data=(void*)(yon_char_unite(yon_char_is_empty(str)?"":str,yon_char_is_empty(str)?"":",",divider,data,NULL));
|
|
|
|
|
}
|
|
|
|
|
else dict->data=(void*)yon_char_new(data);
|
|
|
|
|
dict->flag1=1;
|
|
|
|
|
return 1;
|
|
|
|
|
} else return 0;
|
|
|
|
|
} else return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int yon_config_clean(){
|
|
|
|
|
@ -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)){
|
|
|
|
|
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->data_type=DICTIONARY_CHAR_TYPE;
|
|
|
|
|
__yon__config__strings->section=yon_char_new(config_section);
|
|
|
|
|
}
|
|
|
|
|
else if (yon_dictionary_get((dictionary**)&__yon__config__strings,key)){
|
|
|
|
|
if (data!=__yon__config__strings->data&&strcmp(__yon__config__strings->data,data)){
|
|
|
|
|
__yon__config__strings->data=yon_char_new(data);
|
|
|
|
|
__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)){
|
|
|
|
|
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){
|
|
|
|
|
|