|
|
|
@ -35,6 +35,33 @@ char *yon_char_append_c(const char *source, char append)
|
|
|
|
return NULL;
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
char *yon_char_append_element(char *source,char *target, char *divider){
|
|
|
|
|
|
|
|
if (!yon_char_is_empty(target)&&!yon_char_is_empty(divider)){
|
|
|
|
|
|
|
|
if (yon_char_is_empty(source)) return yon_char_new(target);
|
|
|
|
|
|
|
|
int size;
|
|
|
|
|
|
|
|
config_str parsed = yon_char_parse(source,&size,divider);
|
|
|
|
|
|
|
|
if (yon_char_parsed_check_exist(parsed,size,target)==-1){
|
|
|
|
|
|
|
|
yon_char_parsed_add_or_create_if_exists(parsed,&size,target);
|
|
|
|
|
|
|
|
return yon_char_parsed_to_string(parsed,size,divider);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return yon_char_new(source);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
char *yon_char_remove_element(char *source,char *target, char *divider){
|
|
|
|
|
|
|
|
if (!yon_char_is_empty(source)&&!yon_char_is_empty(target)&&!yon_char_is_empty(divider)){
|
|
|
|
|
|
|
|
if (yon_char_is_empty(source)) return NULL;
|
|
|
|
|
|
|
|
int size;
|
|
|
|
|
|
|
|
config_str parsed = yon_char_parse(source,&size,divider);
|
|
|
|
|
|
|
|
int pos = yon_char_parsed_check_exist(parsed,size,target);
|
|
|
|
|
|
|
|
if (pos!=-1){
|
|
|
|
|
|
|
|
parsed = yon_char_parsed_rip(parsed,&size,pos);
|
|
|
|
|
|
|
|
return yon_char_parsed_to_string(parsed,size,divider);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return yon_char_new(source);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
char *yon_char_new(const char *chr)
|
|
|
|
char *yon_char_new(const char *chr)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (chr){
|
|
|
|
if (chr){
|
|
|
|
@ -574,8 +601,10 @@ char *yon_char_parsed_to_string_full(config_str parsed, int size, char *divider_
|
|
|
|
if (parsed && size>0){
|
|
|
|
if (parsed && size>0){
|
|
|
|
char *final_string = "";
|
|
|
|
char *final_string = "";
|
|
|
|
char *temp;
|
|
|
|
char *temp;
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
temp = yon_char_unite(final_string,parsed[0],NULL);
|
|
|
|
temp = yon_char_unite(final_string,yon_char_is_empty(final_string)?"":divider_replace,parsed[i],NULL);
|
|
|
|
final_string=temp;
|
|
|
|
|
|
|
|
for (int i=1;i<size;i++){
|
|
|
|
|
|
|
|
temp = yon_char_unite(final_string,divider_replace,parsed[i],NULL);
|
|
|
|
if (!yon_char_is_empty(final_string)) free(final_string);
|
|
|
|
if (!yon_char_is_empty(final_string)) free(final_string);
|
|
|
|
final_string=temp;
|
|
|
|
final_string=temp;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -666,11 +695,13 @@ char *yon_char_wrap_to_length_str(char *target, unsigned int length){
|
|
|
|
config_str final = NULL;
|
|
|
|
config_str final = NULL;
|
|
|
|
char *current = yon_char_new(target);
|
|
|
|
char *current = yon_char_new(target);
|
|
|
|
for (;strlen(current)>length;){
|
|
|
|
for (;strlen(current)>length;){
|
|
|
|
int last = yon_char_find_last_symbol_before_length(target,' ',length);
|
|
|
|
int last = yon_char_find_last_symbol_before_length(current,' ',length);
|
|
|
|
if (last>-1){
|
|
|
|
if (last>-1){
|
|
|
|
char *parsed = yon_char_divide(current,last);
|
|
|
|
char *parsed = yon_char_divide(current,last);
|
|
|
|
yon_char_parsed_add_or_create_if_exists(final,&size,parsed);
|
|
|
|
yon_char_parsed_add_or_create_if_exists(final,&size,parsed);
|
|
|
|
free(parsed);
|
|
|
|
free(parsed);
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|