From c97ca39445bf75a3e0d200f3c4524edb1cd17ce4 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Fri, 4 Aug 2023 16:06:53 +0600 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B1=D0=B0=D0=B3=20=D0=BF=D1=80=D0=B8=20=D1=83=D0=B4?= =?UTF-8?q?=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=B2=D0=BE=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/model/model.c | 39 +++++++++++++++++++++++++++++++++++++-- source/model/save.c | 1 + source/model/ubl-utils.c | 5 ++++- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/source/model/model.c b/source/model/model.c index f930152..0838803 100644 --- a/source/model/model.c +++ b/source/model/model.c @@ -41,6 +41,17 @@ void model_free_vector_string(vector* vec_str) { } } } +void model_free_vector_disk_status(vector* vec_disk_status) { + if (vec_disk_status) { + if (vec_disk_status->vectorList.total> 0) { + for (int i = 0; i < vec_disk_status->vectorList.total; i++) { + disk_status* _config = (disk_status*)vec_disk_status->pfVectorGet(vec_disk_status, i); + // model_clear_cfg_device(_config); + vectorDelete(vec_disk_status, i); + } + } + } +} void model_tree_view_add(config_u_g_p* _config) { model_null_str_writing(_config); @@ -319,11 +330,35 @@ void del_disk_to_vector_device(vector* vec_temp, char* str_disk) { } } +char* format_str_del_config(config_u_g_p* _config) { + char* space = g_malloc0(sizeof(char)*2); + char* actors = yon_char_new(""); + char* cmd = NULL; + for (int i = 0; i < _config->actors.vectorList.total; i++) { + actors = yon_char_unite(actors, space, _config->actors.pfVectorGet(&_config->actors, i), NULL); + space[0] = ','; + space[1] = '\0'; + } + if (strstr(_config->type_arr, "prjquota")) { + if (_config->actors.vectorList.total == 0) { + cmd = yon_char_unite(_config->type_arr, ":", _config->UNIX_file, ":",fill_tree_view_id(_config->id), NULL); + } + else { + cmd = yon_char_unite(_config->type_arr, ":", _config->UNIX_file, ":",fill_tree_view_id(_config->id), ",", actors, NULL); + } + + } + else { + cmd = yon_char_unite(_config->type_arr, ":", _config->UNIX_file, ":", actors, NULL); + } + free(space); + return cmd; +} + void model_template_remove(vector* vec_temp, vector* vec_remove, int index) { if (index!=-1) { config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index); - char* load_key = yon_char_new(_config->loaded_keys); - vec_remove->pfVectorAdd(vec_remove, load_key); + vec_remove->pfVectorAdd(vec_remove, format_str_del_config(_config)); model_clear_cfg(_config); vec_temp->pfVectorDelete(vec_temp, index); } diff --git a/source/model/save.c b/source/model/save.c index f4848f5..b60273a 100644 --- a/source/model/save.c +++ b/source/model/save.c @@ -192,6 +192,7 @@ int wrapper_template_save(config_all* _all_config, char* source_set_cmd, char* s if (str_cmd_remove_device != NULL) { free(str_cmd_remove_device); } + vector_init(&_all_config->v_remove); _all_config->flag_set_data = 0; return 1; } diff --git a/source/model/ubl-utils.c b/source/model/ubl-utils.c index 57196f0..ac34d72 100644 --- a/source/model/ubl-utils.c +++ b/source/model/ubl-utils.c @@ -639,15 +639,18 @@ char *yon_char_replace(char *source, char *find, char*replace){ */ char **yon_char_parse(char *parameters, int *size, char *divider){ char **string=NULL; + if (!strstr(parameters, divider)) { + return NULL; + } int i=1; string=malloc(sizeof(char*)); char *paramline=yon_char_new(parameters); char *param; while ((param=yon_char_divide_search(paramline,divider,1))){ + if (strcmp(param,paramline)==0) break; string=realloc(string,sizeof(char*)*i); string[i-1]=yon_char_new(param); i++; - if (strcmp(param,paramline)==0) break; } string=realloc(string,sizeof(char*)*i); string[i-1]=yon_char_new(paramline);