---- Changes since 1.390 ----
Converted all code to use the new Webmin user interface library.
+---- Changes since 1.400 ----
+Multiple module lines in menu.lst are now preserved and editable. This prevents breakage sometimes seen on kernels using Xen.
&ui_table_row($text{'title_args'},
&ui_textbox("args", $args, 50)).
&ui_table_row($text{'title_initrd'},
- &ui_opt_textbox("initrd", $title->{'initrd'}, 50,
+ &ui_opt_textbox("initrd", $title->{'initrd'}, 40,
$text{'global_none'})).
+ &ui_table_row($text{'title_modules'},
+ &ui_textarea("module",
+ join("\n", split(/\0/, $title->{'module'})), 3, 50,
+ "off")).
&ui_table_end() ]);
# Chain loader
defined($title->{'makeactive'})) ]);
# None (menu entry only)
-push(@opts, [ 0, $text{'title_none'} ]);
+push(@opts, [ 0, $text{'title_none1'}, $text{'title_none2'} ]);
print &ui_table_row($text{'title_boot'},
&ui_radio_table("boot_mode", $boot, \@opts), 3);
if (/^\s*(\S+)\s*=\s*(.*)/ || /^\s*(\S+)\s*(.*)/) {
if ($title && $1 ne 'title') {
# directive in an existing section
- $title->{$1} = $2;
+ if (defined($title->{$1})) {
+ # Multiple values!
+ $title->{$1} .= "\0".$2;
+ }
+ else {
+ $title->{$1} = $2;
+ }
$title->{'eline'} = $lnum;
}
else {
push(@lines, $k);
}
else {
- push(@lines, $k." ".$_[2]->{$k});
+ foreach my $v (split(/\0/, $_[2]->{$k})) {
+ push(@lines, $k." ".$v);
+ }
}
}
}
title_kfile=Path to kernel
title_args=Kernel options
title_initrd=Initial ramdisk file
+title_modules=Extra modules
title_chain=Other OS
title_chain_def=From first sector of partition
title_chain_file=From chainloader file
title_makeactive=Make root partition active?
-title_none=None (non-booting menu entry)
+title_none1=None
+title_none2=(non-booting menu entry)
title_err=Failed to save boot option
title_etitle=Missing option title
title_eroot=Missing root partition
delete($title->{'kernel'});
delete($title->{'chainloader'});
delete($title->{'initrd'});
+ delete($title->{'module'});
if ($in{'boot_mode'} == 2) {
$title->{'kernel'} = $in{'kernel'};
$title->{'kernel'} .= " $in{'args'}" if ($in{'args'});
$title->{'initrd'} = $in{'initrd'} if (!$in{'initrd_def'});
+ $title->{'module'} = join("\0", split(/\r?\n/, $in{'module'}));
}
elsif ($in{'boot_mode'} == 1) {
$title->{'chainloader'} = $in{'chain_def'} ? '+1'