From 94fcd0a8398902ebeff9f2f2ef00358c854622ff Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 15 Feb 2024 11:04:31 +0600 Subject: [PATCH 1/2] Added function for conig parameter parsing --- source/libublsettings.c | 19 +++++++++++++++++++ source/libublsettings.h | 2 ++ 2 files changed, 21 insertions(+) diff --git a/source/libublsettings.c b/source/libublsettings.c index b314d5d..57d96cb 100644 --- a/source/libublsettings.c +++ b/source/libublsettings.c @@ -996,6 +996,25 @@ int yon_config_load_register_no_cleaning(YON_CONFIG_TYPE config_type,char *secti } else return -1; } +int yon_config_parse_parameter(char *parameter,char **key, char **value){ + (*key)=NULL; + (*value)=NULL; + check_config{ + char *key_temp = yon_char_divide_search(parameter,"=",-1); + if (key_temp!=parameter){ + char *final_str=yon_char_divide_search(parameter,"\n",-1); + if ((final_str[0]=='\''&&final_str[strlen(final_str)-1]=='\'')||(final_str[0]=='\"'&&final_str[strlen(final_str)-1]=='\"')){ + final_str[strlen(final_str)-1] = '\0'; + free(yon_char_divide(final_str,0)); + } + (*key)=key_temp; + (*value)=final_str; + return 1; + } + } + return 0; +} + int yon_config_load_register(YON_CONFIG_TYPE config_type,char *section,char *parameter, ...){ if (config_type!=YON_CONFIG_BOTH){ if (__yon__config__strings){ diff --git a/source/libublsettings.h b/source/libublsettings.h index d18fd13..ee8822d 100644 --- a/source/libublsettings.h +++ b/source/libublsettings.h @@ -648,6 +648,8 @@ int yon_config_get_status(char *key); int yon_config_check_ignore(char *key); +int yon_config_parse_parameter(char *parameter,char **key, char **value); + /**yon_config_load_register_no_cleaning(YON_CONFIG_TYPE config_type,char *section,char *parameter, ...) * [EN] * -- 2.35.1 From 055ac024e183011d9e2dbdef256a710097b4d3d8 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 16 Feb 2024 13:36:08 +0600 Subject: [PATCH 2/2] Fix of parameter parsing --- source/libublsettings.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/libublsettings.c b/source/libublsettings.c index 57d96cb..9e87111 100644 --- a/source/libublsettings.c +++ b/source/libublsettings.c @@ -1000,9 +1000,10 @@ int yon_config_parse_parameter(char *parameter,char **key, char **value){ (*key)=NULL; (*value)=NULL; check_config{ - char *key_temp = yon_char_divide_search(parameter,"=",-1); + char *copied = yon_char_new(parameter); + char *key_temp = yon_char_divide_search(copied,"=",-1); if (key_temp!=parameter){ - char *final_str=yon_char_divide_search(parameter,"\n",-1); + char *final_str=yon_char_divide_search(copied,"\n",-1); if ((final_str[0]=='\''&&final_str[strlen(final_str)-1]=='\'')||(final_str[0]=='\"'&&final_str[strlen(final_str)-1]=='\"')){ final_str[strlen(final_str)-1] = '\0'; free(yon_char_divide(final_str,0)); -- 2.35.1