diff --git a/source/ubl-settings-bootloader.c b/source/ubl-settings-bootloader.c index ebc5c68..552002a 100644 --- a/source/ubl-settings-bootloader.c +++ b/source/ubl-settings-bootloader.c @@ -246,6 +246,37 @@ void on_kernel_parameter_switch(GtkCellRenderer *, char *path, main_window *widg config_str parsed = yon_char_parse(config_param,&size," "); switch (status){ case 0:{ + if (strstr(parameter,"=")){ + char *param_copy = yon_char_new(parameter); + char *cur_param = yon_char_divide_search(param_copy,"=",-1); + free(param_copy); + GtkTreeIter itar; + for_iter(GTK_TREE_MODEL(widgets->KernelParametersList),&itar){ + char *target; + gtk_tree_model_get(GTK_TREE_MODEL(widgets->KernelParametersList),&itar,1,&target,-1); + GtkTreePath *cur_path=gtk_tree_model_get_path(GTK_TREE_MODEL(widgets->KernelParametersList),&iter), *compare_path=gtk_tree_model_get_path(GTK_TREE_MODEL(widgets->KernelParametersList),&itar); + if (strstr(target,cur_param)&&strstr(target,"=")&>k_tree_path_compare(cur_path,compare_path)){ + gtk_list_store_set(widgets->KernelParametersList,&itar,0,0,-1); + int pos = yon_char_parsed_check_exist(parsed,size,target); + if (pos>-1){ + if (size>1){ + parsed = yon_char_parsed_rip(parsed,&size,pos); + char *final = yon_char_parsed_to_string(parsed,size," "); + yon_config_register(GRUB_CMDLINE_LINUX_parameter,GRUB_CMDLINE_LINUX_command,final); + gtk_entry_set_text(GTK_ENTRY(widgets->CommandLineParametersEntry),final); + free(final); + } else { + gtk_entry_set_text(GTK_ENTRY(widgets->CommandLineParametersEntry),""); + yon_config_remove_by_key(GRUB_CMDLINE_LINUX_parameter); + } + } + } + gtk_tree_path_free(cur_path); + gtk_tree_path_free(compare_path); + + } + free(cur_param); + } int pos = yon_char_parsed_check_exist(parsed,size,parameter); if (pos == -1){ yon_char_parsed_add_or_create_if_exists(parsed,&size,parameter); @@ -400,7 +431,7 @@ void config_init(){ main_config.lock_save_global=0; main_config.lock_save_local=0; main_config.load_mode=1; - main_config.password_min_length=yon_password_get_min_len(); + main_config.password_min_length = yon_password_get_min_len(); main_config.kernel_parameters = yon_resource_open_file(kernel_options_path,&main_config.kernel_size); main_config.input_parameters = yon_resource_open_file(terminal_input_path,&main_config.input_size); main_config.output_parameters = yon_resource_open_file(terminal_output_path,&main_config.output_size); diff --git a/ubl-settings-bootloader.glade b/ubl-settings-bootloader.glade index afee83e..67b2691 100644 --- a/ubl-settings-bootloader.glade +++ b/ubl-settings-bootloader.glade @@ -694,7 +694,9 @@ True KernelParametersList - + + none + @@ -825,7 +827,9 @@ True InputTerminalList - + + none + @@ -960,7 +964,9 @@ True OutputTerminalList - + + none +