From ecd0d5118a9d83ff0bf7ee1d9e12e916ab7d31ab Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 11 Aug 2025 16:34:06 +0600 Subject: [PATCH] Test loading change --- source/libublsettings-char.c | 2 +- source/libublsettings-config.c | 230 +++++++++++++++++++++++++-------- source/libublsettings.h | 4 +- 3 files changed, 182 insertions(+), 54 deletions(-) diff --git a/source/libublsettings-char.c b/source/libublsettings-char.c index 261a0cc..b01dc71 100644 --- a/source/libublsettings-char.c +++ b/source/libublsettings-char.c @@ -297,7 +297,7 @@ char *yon_char_replace_single(char *source, char *find, char *replace){ return NULL; } -char **yon_char_parse(char *parameters, int *size, char *divider){ +char **yon_char_parse(const char *parameters, int *size, char *divider){ *size=0; if (parameters){ char **string=NULL; diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index b74a365..28b8329 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -261,7 +261,7 @@ char *yon_config_replace_parameter(char *command, char *parameter, int place){ if (!yon_char_is_empty(command)); int size=0; config_str parsed = yon_char_parse(command,&size," "); - int firstparameter = yon_config_command_get_section_pos(parsed,size)+1; + int firstparameter = yon_config_command_get_section_pos(command)+1; if (firstparameter+place-1){ if (parsed_size>get_place+2){ for (int j=get_place+2;j0){ + int final_size; + config_str final = NULL; + yon_char_parsed_add_or_create_if_exists(final,&final_size,command[0]); + for (int i=1;i-1){ + char *cur_string = ""; + for (int j=pos;j0){ + char *final_command = yon_char_parsed_to_string(final,final_size," -- get "); + yon_char_parsed_free(final,final_size); + return final_command; + } + } + return NULL; +} + +config_str yon_config_command_get_parameters(const char *command, int *size){ + (*size)=0; + if (yon_char_is_empty(command)) return NULL; + + int parsed_size; + config_str parsed = yon_char_parse(command,&parsed_size,""); + int pos = yon_config_command_get_section_pos(command); + if (pos>-1){ + for (int i=0;i0){ + (*size)=parsed_size; + return parsed; + } + } + return NULL; +} + +int yon_config_command_check_parameter(const char *command,const char *parameter){ + int size; + config_str parameters = yon_config_command_get_parameters(command,&size); + for (int i=0;i0){ - for (int j=0;j0){ +// for (int j=0;j