Test fix for crash

pull/72/head
parent c304280de9
commit 9a363d7f6e

@ -1245,103 +1245,105 @@ void on_main_edit(GtkWidget *self, main_window *widgets){
gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,-1); gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,-1);
char *parameter_string = yon_config_get_by_key(USERADD(name)); char *parameter_string = yon_config_get_by_key(USERADD(name));
int parsed_size=0; int parsed_size=0;
if (parameter_string[0]=='\"') yon_char_divide(parameter_string,0); if (parameter_string){
if (parameter_string[strlen(parameter_string)-1]=='\"') parameter_string[strlen(parameter_string)-1]='\0'; if (parameter_string[0]=='\"') yon_char_divide(parameter_string,0);
config_str parameters = yon_char_parse(parameter_string,&parsed_size,":"); if (parameter_string[strlen(parameter_string)-1]=='\"') parameter_string[strlen(parameter_string)-1]='\0';
gtk_entry_set_text(GTK_ENTRY(window->userLoginEntry), name); config_str parameters = yon_char_parse(parameter_string,&parsed_size,":");
gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), name); gtk_entry_set_text(GTK_ENTRY(window->userLoginEntry), name);
gtk_entry_set_text(GTK_ENTRY(window->userUserNameEntry), parsed_size>0?parameters[0]:""); gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), name);
if (parsed_size>1){ gtk_entry_set_text(GTK_ENTRY(window->userUserNameEntry), parsed_size>0?parameters[0]:"");
if (strcmp(parameters[1],"x")){ if (parsed_size>1){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck),0); if (strcmp(parameters[1],"x")){
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry), parsed_size>1?parameters[1]:""); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck),0);
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry), parsed_size>1?parameters[1]:"");
}
} }
} if (parsed_size>2){
if (parsed_size>2){ if (!strcmp(parameters[2],"x"))
if (!strcmp(parameters[2],"x")) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck),1);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck),1); else
else gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), parsed_size>2?parameters[2]:"");
gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), parsed_size>2?parameters[2]:""); }
} if (parsed_size>3){
if (parsed_size>3){ if (strcmp(parameters[3],"x"))
if (strcmp(parameters[3],"x")) gtk_entry_set_text(GTK_ENTRY(window->userAdditionalGroupsEntry), parsed_size>3?parameters[3]:"");
gtk_entry_set_text(GTK_ENTRY(window->userAdditionalGroupsEntry), parsed_size>3?parameters[3]:"");
}
} if (parsed_size>4&&!yon_char_is_empty(parameters[4])){
if (parsed_size>4&&!yon_char_is_empty(parameters[4])){ int params_size;
int params_size; config_str parameters_substring = yon_char_parse(parameters[4],&params_size," ");
config_str parameters_substring = yon_char_parse(parameters[4],&params_size," "); for (int i=0;i<params_size;i++){
for (int i=0;i<params_size;i++){ if (!strcmp(parameters_substring[i],"--home-dir")){
if (!strcmp(parameters_substring[i],"--home-dir")){ gtk_entry_set_text(GTK_ENTRY(window->userHomeEntry),parameters_substring[i+1]);
gtk_entry_set_text(GTK_ENTRY(window->userHomeEntry),parameters_substring[i+1]); gtk_combo_box_set_active(GTK_COMBO_BOX(window->userHomeCombo),2);
gtk_combo_box_set_active(GTK_COMBO_BOX(window->userHomeCombo),2); i++;
i++; } else if (!strcmp(parameters_substring[i],"--shell")||!strcmp(parameters_substring[i],"-s")){
} else if (!strcmp(parameters_substring[i],"--shell")||!strcmp(parameters_substring[i],"-s")){ int active = yon_gtk_combo_box_text_find(window->userShellCombo,parameters_substring[i+1]);
int active = yon_gtk_combo_box_text_find(window->userShellCombo,parameters_substring[i+1]); if (!active){
if (!active){ gtk_entry_set_text(GTK_ENTRY(window->userShellEntry),parameters_substring[i+1]);
gtk_entry_set_text(GTK_ENTRY(window->userShellEntry),parameters_substring[i+1]); gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->userShellCombo),"Set");
gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->userShellCombo),"Set"); }
i++;
}else if (!strcmp(parameters_substring[i],"--system")||!strcmp(parameters_substring[i],"-r")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck),1);
}else if (!strcmp(parameters_substring[i],"--no-create-home")||!strcmp(parameters_substring[i],"-M")){
gtk_combo_box_set_active(GTK_COMBO_BOX(window->userHomeCombo),2);
}else if (!strcmp(parameters_substring[i],"--no-user-group")||!strcmp(parameters_substring[i],"-N")){
// gtk
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck),0);
gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry),"");
}else if (!strcmp(parameters_substring[i],"--non-unique")||!strcmp(parameters_substring[i],"-o")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userCreateUnuniqueCheck),1);
}else if (!strcmp(parameters_substring[i],"--badnames")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userDontCheckCheck),1);
} }
i++;
}else if (!strcmp(parameters_substring[i],"--system")||!strcmp(parameters_substring[i],"-r")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck),1);
}else if (!strcmp(parameters_substring[i],"--no-create-home")||!strcmp(parameters_substring[i],"-M")){
gtk_combo_box_set_active(GTK_COMBO_BOX(window->userHomeCombo),2);
}else if (!strcmp(parameters_substring[i],"--no-user-group")||!strcmp(parameters_substring[i],"-N")){
// gtk
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck),0);
gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry),"");
}else if (!strcmp(parameters_substring[i],"--non-unique")||!strcmp(parameters_substring[i],"-o")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userCreateUnuniqueCheck),1);
}else if (!strcmp(parameters_substring[i],"--badnames")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userDontCheckCheck),1);
} }
// gtk_entry_set_text(GTK_ENTRY(window->), parsed_size>4?parameters[4]:"");
} }
// gtk_entry_set_text(GTK_ENTRY(window->), parsed_size>4?parameters[4]:""); window->old_password=parameters[5];
} if(parsed_size>5){
window->old_password=parameters[5]; if (strcmp(parameters[5],"x")){
if(parsed_size>5){ gtk_entry_set_text(GTK_ENTRY(window->userPasswordEntry), parsed_size>5?parameters[5]:"");
if (strcmp(parameters[5],"x")){ gtk_combo_box_set_active(GTK_COMBO_BOX(window->userPasswordCombo),3);
gtk_entry_set_text(GTK_ENTRY(window->userPasswordEntry), parsed_size>5?parameters[5]:""); }
gtk_combo_box_set_active(GTK_COMBO_BOX(window->userPasswordCombo),3);
}
}
free(parameters);
parameters=yon_char_parse(yon_config_get_by_key(USERSHADOW(name)),&parsed_size,":");
gtk_entry_set_text(GTK_ENTRY(window->userPasswordChangedEntry),parsed_size>0?parameters[0]:"");
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userPasswordChangeDelayMinimumSpin),atol(parsed_size>1?parameters[1]:"0"));
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userPasswordChangeDelayMaximumSpin),atol(parsed_size>2?parameters[2]:"0"));
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userWarningSpin),atol(parsed_size>3?parameters[3]:"0"));
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userActivitySpin),atol(parsed_size>4?parameters[4]:"0"));
if (parsed_size>5&&!yon_char_is_empty(parameters[5])){
GDateTime *date = g_date_time_new_from_unix_local(atol(parameters[5]));
gtk_entry_set_text(GTK_ENTRY(window->userPasswordExpirationEntry),g_date_time_format(date,"%c"));
}
gtk_window_set_transient_for(GTK_WINDOW(window->CreateUserWindow),GTK_WINDOW(widgets->Window));
gtk_widget_show(window->CreateUserWindow);
char *useradd_sync = NULL;
useradd_sync = yon_config_get_by_key(USERADD_SYNC(name));
if (useradd_sync){
if (strstr(useradd_sync,"boot")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UseraddBootCheck),1);
} }
if (strstr(useradd_sync,"shutdown")){ free(parameters);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UseraddShutdownCheck),1); parameters=yon_char_parse(yon_config_get_by_key(USERSHADOW(name)),&parsed_size,":");
gtk_entry_set_text(GTK_ENTRY(window->userPasswordChangedEntry),parsed_size>0?parameters[0]:"");
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userPasswordChangeDelayMinimumSpin),atol(parsed_size>1?parameters[1]:"0"));
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userPasswordChangeDelayMaximumSpin),atol(parsed_size>2?parameters[2]:"0"));
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userWarningSpin),atol(parsed_size>3?parameters[3]:"0"));
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userActivitySpin),atol(parsed_size>4?parameters[4]:"0"));
if (parsed_size>5&&!yon_char_is_empty(parameters[5])){
GDateTime *date = g_date_time_new_from_unix_local(atol(parameters[5]));
gtk_entry_set_text(GTK_ENTRY(window->userPasswordExpirationEntry),g_date_time_format(date,"%c"));
} }
free(useradd_sync); gtk_window_set_transient_for(GTK_WINDOW(window->CreateUserWindow),GTK_WINDOW(widgets->Window));
} gtk_widget_show(window->CreateUserWindow);
char *usershadow_sync =yon_config_get_by_key(USERSHADOW_SYNC(name));
if (usershadow_sync){ char *useradd_sync = NULL;
if (strstr(usershadow_sync,"boot")){ useradd_sync = yon_config_get_by_key(USERADD_SYNC(name));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsershadowBootCheck),1); if (useradd_sync){
if (strstr(useradd_sync,"boot")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UseraddBootCheck),1);
}
if (strstr(useradd_sync,"shutdown")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UseraddShutdownCheck),1);
}
free(useradd_sync);
} }
if (strstr(usershadow_sync,"shutdown")){ char *usershadow_sync =yon_config_get_by_key(USERSHADOW_SYNC(name));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsershadowShutdownCheck),1); if (usershadow_sync){
if (strstr(usershadow_sync,"boot")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsershadowBootCheck),1);
}
if (strstr(usershadow_sync,"shutdown")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsershadowShutdownCheck),1);
}
free(usershadow_sync);
} }
free(usershadow_sync);
} }
} }

Loading…
Cancel
Save