diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index ee8888f..c09b947 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -8,6 +8,7 @@ int yon_load_proceed(YON_CONFIG_TYPE type){ yon_config_clean(); yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL); if (type==YON_CONFIG_GLOBAL){ + yon_debug_output("%s\n",yon_char_unite(config_get_command("global"),NULL)); yon_config_load_config(type,config_get_command("global"),NULL); } if (type==YON_CONFIG_LOCAL){ @@ -80,7 +81,7 @@ void yon_interface_update(main_window *widgets){ int size; GtkTreeIter iter; char *def_groups = yon_config_get_by_key(USERGROUPS_parameter); - config_str users = yon_config_get_all_by_key(USERADD_parameter,&size); + config_str users = yon_config_get_all_by_key(USERADD_SEARCH_macro,&size); if (users){ for (int i=0;iUsersList,&iter); @@ -115,7 +116,7 @@ void yon_interface_update(main_window *widgets){ } gtk_list_store_set(widgets->UsersList,&iter, - 0,(parameters[5][0]=='!'||parameters[5][0]=='*')||(parameters[5][0]=='!'&¶meters[5][1]=='*'), + 0,parameters_size>5?(parameters[5][0]=='!'||parameters[5][0]=='*')||(parameters[5][0]=='!'&¶meters[5][1]=='*'):0, 2,login, 3,parameters_size>0?parameters[0]:"", 1,parameters_size>1&&!yon_char_is_empty(parameters[1])?parameters[1]:"", @@ -147,7 +148,7 @@ void yon_interface_update(main_window *widgets){ if (parameters_size>2&&!strcmp(parameters[2],"x")){ parameters[2]=""; } - if (!strcmp(parameters[1],"x")) parameters[1]=""; + if (parameters_size>1&&!strcmp(parameters[1],"x")) parameters[1]=""; char *pars=""; if (parameters_size>4&&strcmp(parameters[4],"x")&&strcmp(parameters[4],"")){ @@ -388,8 +389,10 @@ void yon_hide_passwords(template_saving_window *window){ void on_save_done(main_window *widgets, config_str output, int size){ char *final_output = yon_char_parsed_to_string(output,size,""); - printf("%s\n",final_output); - free(final_output); + if (final_output){ + printf("%s\n",final_output); + free(final_output); + } yon_char_parsed_free(output,size); on_config_update(NULL,widgets); if (main_config.load_mode==1){ @@ -440,7 +443,7 @@ void on_config_save(GtkWidget *self, main_window *widgets){ } char *old_final = yon_char_parsed_to_string(old_parsed,old_size,":"); char *new_final = yon_char_parsed_to_string(new_parsed,new_size,":"); - if (!strcmp(old_final,new_final)){ + if (old_final&&new_final&&!strcmp(old_final,new_final)){ gtk_list_store_set(window->list,&iter,5,0,-1); } free(old_final); @@ -2285,9 +2288,11 @@ void on_parameter_changed(GtkWidget *self,ubl_settings_usergroups_user_window *w !yon_char_is_empty(do_not_check)?" ":"", yon_char_return_if_exist(no_user_group,""), NULL); - if (final_string[strlen(final_string)-1]==' ') final_string[strlen(final_string)-1]='\0'; - gtk_entry_set_text(GTK_ENTRY(window->userExtraOptionsEntry),final_string); - free(final_string); + if (final_string&&strlen(final_string)){ + if (final_string[strlen(final_string)-1]==' ') final_string[strlen(final_string)-1]='\0'; + gtk_entry_set_text(GTK_ENTRY(window->userExtraOptionsEntry),final_string); + free(final_string); + } } void on_remove_expired(GtkWidget *self, GtkEntryIconPosition icon_pos, GdkEvent *event, GtkEntry *target){ @@ -2344,7 +2349,6 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ window->userTitleNameLabel=yon_gtk_builder_get_widget(builder,"userTitleNameLabel"); window->expiration_unix=NULL; - time_t t = time(NULL); struct tm tm = *localtime(&t); gtk_calendar_select_day(GTK_CALENDAR(window->ExpirationCalendar),tm.tm_mday);