Fixed lowest free UID/GID getting

pull/193/head
Ivan Dmitrievich Yartsev 10 months ago
parent 8cf75a56ba
commit a5f7c3e682

@ -1319,18 +1319,15 @@ void on_GID_update(GtkWidget *, ubl_settings_usergroups_group_creation_window *w
yon_char_parsed_prepend_strings(config_groups,config_size,":"); yon_char_parsed_prepend_strings(config_groups,config_size,":");
config_str final = yon_char_parsed_merge(main_config.groups,main_config.groups_size,config_groups,config_size,&final_size); config_str final = yon_char_parsed_merge(main_config.groups,main_config.groups_size,config_groups,config_size,&final_size);
long prev_busy=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))?0:main_config.MINGID; long prev_busy=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))?0:main_config.MINGID;
int minimum = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))?0:main_config.MINGID;
int maximum = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))?68000:main_config.MAXGID;
for (int i=0;i<final_size;i++){ for (int i=0;i<final_size;i++){
int parsed_size; int parsed_size;
config_str parsed = yon_char_parse(final[i],&parsed_size,":"); config_str parsed = yon_char_parse(final[i],&parsed_size,":");
if (minimum<atol(parsed[2])&&atol(parsed[2])<maximum){
if (atol(parsed[2])>=main_config.MINGID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))){ if (atol(parsed[2])>prev_busy){
if (atol(parsed[2])>main_config.MAXGID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck)))
break;
if (atol(parsed[2])==prev_busy+1)
prev_busy=atol(parsed[2]); prev_busy=atol(parsed[2]);
else {
yon_char_parsed_free(parsed, parsed_size);
break;
} }
} }
yon_char_parsed_free(parsed, parsed_size); yon_char_parsed_free(parsed, parsed_size);
@ -1915,17 +1912,18 @@ void on_UID_update(GtkWidget *, ubl_settings_usergroups_user_window *window){
int parsed_size; int parsed_size;
config_str parsed = yon_char_parse(final[i],&parsed_size,":"); config_str parsed = yon_char_parse(final[i],&parsed_size,":");
if (atol(parsed[2])>=main_config.MINUID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))){ int minimum = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateUnuniqueCheck))?0:main_config.MINGID;
if (atol(parsed[2])>main_config.MAXUID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))) int maximum = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateUnuniqueCheck))?68000:main_config.MAXGID;
break; for (int i=0;i<final_size;i++){
if (atol(parsed[2])==prev_busy+1) int parsed_size;
config_str parsed = yon_char_parse(final[i],&parsed_size,":");
if (minimum<atol(parsed[2])&&atol(parsed[2])<maximum){
if (atol(parsed[2])>prev_busy){
prev_busy=atol(parsed[2]); prev_busy=atol(parsed[2]);
else {
yon_char_parsed_free(parsed, parsed_size);
break;
} }
} }
yon_char_parsed_free(parsed, parsed_size); }
yon_char_parsed_free(parsed, parsed_size);
} }
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1)); gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1));
} }

Loading…
Cancel
Save