[d-kernel] Re: Fwd: [Bug 3318] New: При установке любого ядра не прописывается соотвествующая секция в меню grub

Anton Farygin rider at altlinux.com
Wed Nov 26 14:50:35 MSK 2003


Alexey Tourbin wrote:
> On Tue, Nov 25, 2003 at 05:36:09PM +0300, Alexey Tourbin wrote:
> 
>>--- /usr/share/loader/grub-	2003-03-19 17:41:06 +0300
>>+++ /usr/share/loader/grub	2003-11-25 17:34:24 +0300
>>@@ -154,6 +154,7 @@ sub get_boot_partitions {
>>     local *F;
>>     open F, '/etc/fstab'; 
>>     while (<F>) {
>>+	next if /^#/;
>>  	my @s = split ' ';
>> 	$part = $s[0] if $s[1] =~ m|/$| and not $part;
>> 	if ($s[1] =~ m|/boot$|) {
>>
>>Вообще, там есть что по части перла зафиксить.
>>Или на shell'е переписать.
> 
> 
> В mdk юмористы (сравниваю с новой версией):
> 
> @@ -154,7 +187,7 @@ sub get_boot_partitions {
>      local *F;
>      open F, '/etc/fstab';
>      while (<F>) {
> -       next if /^#/;
> +       s/#.*//;
>         my @s = split ' ';
>         $part = $s[0] if $s[1] =~ m|/$| and not $part;
>         if ($s[1] =~ m|/boot$|) {
> 
> hackish

Мда... мне кажется, что я даже знаю - зачем это они сделали ... ;-)

Иначе им будет тяжело выводить об ошибке парсинга в какой-то 
определенной строке fstab.

Т.е. - я бы это реализовал например так (C++)

ifstream fd("/etc/fstab");
char line[512];
unsigned int linenumber = 0;

while(fd.getline(line, sizeof(line), '\n'))
{
    ++linenumber;
    if(line[0] == "#")
	continue;
     parse(line,linenumber);
}




More information about the devel-kernel mailing list