Merge pull request 'Fixed saving command building' (#39) from YanTheKaller/libublsettings:master into master

Reviewed-on: #39
master v1.35
Dmitry Razumov 1 year ago
commit 853fe19745

@ -467,6 +467,39 @@ char *yon_cut(char *source, int size, int startpos)
return NULL;
}
config_str yon_char_wrap_to_lines(char *target, unsigned int line_count, unsigned int *final_size){
if (!yon_char_is_empty(target)&&line_count){
(*final_size)=0;
unsigned int spaces = yon_char_find_count(target," ");
float line_spaces = (float)spaces/line_count;
float left = spaces%line_count;
int processed=0;
int size;
config_str parsed = yon_char_parse(target,&size," ");
config_str final = NULL;
for (int i=0;i<line_count;i++){
char *final_str = NULL;
for (int j=0;j<(int)line_spaces+left?1:0;j++){
if (processed>spaces+1) break;
if (final_str){
char *temp = yon_char_unite(final_str," ",parsed[processed],NULL);
free(final_str);
final_str = temp;
} else {
final_str = parsed[processed];
}
processed++;
}
if (left) left--;
yon_char_parsed_add_or_create_if_exists(final,final_size,final_str);
}
return final;
}
else return NULL;
}
char *yon_char_divide(char *source, int dividepos)
{
if (source&&strlen(source)>=dividepos){
@ -489,13 +522,10 @@ int yon_char_find_count(char *source, char *find){
int i=0;
int size=0;
int pos=0;
config_str rtn = yon_char_parse(working_string,&size,"\n");
config_str rtn = yon_char_parse(working_string,&size,find);
free(working_string);
for (int j=0;j<size;j++){
if(strstr(rtn[j],find))
i++;
}
return i;
yon_char_parsed_free(rtn,size);
return size-1;
}
int yon_char_count(char *source, char *find){
@ -669,7 +699,7 @@ int yon_char_parsed_strstr(char **parameters, int size, char *param){
if (parameters){
for (int i=0;i<size;i++){
if (parameters[i]){
if (!strstr(parameters[i],param))
if (strstr(parameters[i],param))
return i;
} else return -1;
}
@ -2089,13 +2119,13 @@ char *yon_config_parameter_prepare_command(char *command, char *path, char *sect
}
}
if (section){
if (size>get_pos+2){
if (size>get_pos+1){
free(parsed[get_pos+1]);
parsed[get_pos+1]=yon_char_new(section);
}
}
if (parameter){
if (size>get_pos+3){
if (size>=get_pos+2){
free(parsed[get_pos+2]);
parsed[get_pos+2] = yon_char_new(parameter);
}

@ -335,6 +335,15 @@ char *yon_char_unite(const char *source, ...);
*/
char *yon_cut(char *source, int size, int startpos);
/**yon_char_wrap_to_lines(char *target, unsigned int line_count, unsigned int *final_size)
* [EN]
*
* [RU]
* Делит строку [target] на [line_count] частей по пробелу и
* возвращает массив строк длиной [final_size]
*/
config_str yon_char_wrap_to_lines(char *target, unsigned int line_count, unsigned int *final_size);
/**yon_char_divide(char *source, int dividepos)
* [EN]
* divides source string in dividepos position,

Loading…
Cancel
Save