GRUB does not show errors about non-existing properties or wrong values.
property name and error hadling works only for global properties
This patch fixes this misbehavior.
--
With best regards,
_______________________________
Vladimir Testov, ROSA Laboratory.
www.rosalab.ru
diff -Naur grub-2.00/grub-core/gfxmenu/gui_box.c grub-patch/grub-core/gfxmenu/gui_box.c
--- grub-2.00/grub-core/gfxmenu/gui_box.c 2010-12-01 17:45:43.000000000 +0300
+++ grub-patch/grub-core/gfxmenu/gui_box.c 2013-03-04 14:17:51.423471466 +0400
@@ -300,6 +300,10 @@
else
self->id = 0;
}
+ else
+ {
+ return GRUB_ERR_IO;
+ }
return grub_errno;
}
diff -Naur grub-2.00/grub-core/gfxmenu/gui_canvas.c grub-patch/grub-core/gfxmenu/gui_canvas.c
--- grub-2.00/grub-core/gfxmenu/gui_canvas.c 2010-12-01 17:45:43.000000000 +0300
+++ grub-patch/grub-core/gfxmenu/gui_canvas.c 2013-03-04 14:16:32.200770137 +0400
@@ -186,6 +186,10 @@
else
self->id = 0;
}
+ else
+ {
+ return GRUB_ERR_IO;
+ }
return grub_errno;
}
diff -Naur grub-2.00/grub-core/gfxmenu/gui_circular_progress.c grub-patch/grub-core/gfxmenu/gui_circular_progress.c
--- grub-2.00/grub-core/gfxmenu/gui_circular_progress.c 2010-12-01 17:45:43.000000000 +0300
+++ grub-patch/grub-core/gfxmenu/gui_circular_progress.c 2013-03-04 14:15:57.352997914 +0400
@@ -270,6 +270,10 @@
grub_gfxmenu_timeout_register ((grub_gui_component_t) self,
circprog_set_state);
}
+ else
+ {
+ return GRUB_ERR_IO;
+ }
return grub_errno;
}
diff -Naur grub-2.00/grub-core/gfxmenu/gui_image.c grub-patch/grub-core/gfxmenu/gui_image.c
--- grub-2.00/grub-core/gfxmenu/gui_image.c 2012-02-08 16:41:16.000000000 +0400
+++ grub-patch/grub-core/gfxmenu/gui_image.c 2013-03-04 14:15:17.657499911 +0400
@@ -237,6 +237,10 @@
else
self->id = 0;
}
+ else
+ {
+ return GRUB_ERR_IO;
+ }
return grub_errno;
}
diff -Naur grub-2.00/grub-core/gfxmenu/gui_label.c grub-patch/grub-core/gfxmenu/gui_label.c
--- grub-2.00/grub-core/gfxmenu/gui_label.c 2012-03-03 16:00:50.000000000 +0400
+++ grub-patch/grub-core/gfxmenu/gui_label.c 2013-03-04 14:14:53.121066492 +0400
@@ -231,6 +231,10 @@
grub_gfxmenu_timeout_register ((grub_gui_component_t) self,
label_set_state);
}
+ else
+ {
+ return GRUB_ERR_IO;
+ }
return GRUB_ERR_NONE;
}
diff -Naur grub-2.00/grub-core/gfxmenu/gui_list.c grub-patch/grub-core/gfxmenu/gui_list.c
--- grub-2.00/grub-core/gfxmenu/gui_list.c 2011-12-14 14:36:07.000000000 +0400
+++ grub-patch/grub-core/gfxmenu/gui_list.c 2013-03-04 12:54:31.311035573 +0400
@@ -527,6 +527,10 @@
else
self->id = 0;
}
+ else
+ {
+ return GRUB_ERR_IO;
+ }
return grub_errno;
}
diff -Naur grub-2.00/grub-core/gfxmenu/gui_progress_bar.c grub-patch/grub-core/gfxmenu/gui_progress_bar.c
--- grub-2.00/grub-core/gfxmenu/gui_progress_bar.c 2012-03-10 22:37:48.000000000 +0400
+++ grub-patch/grub-core/gfxmenu/gui_progress_bar.c 2013-03-04 14:16:57.169163072 +0400
@@ -345,6 +345,10 @@
grub_gfxmenu_timeout_register ((grub_gui_component_t) self,
progress_bar_set_state);
}
+ else
+ {
+ return GRUB_ERR_IO;
+ }
return grub_errno;
}
diff -Naur grub-2.00/grub-core/gfxmenu/theme_loader.c grub-patch/grub-core/gfxmenu/theme_loader.c
--- grub-2.00/grub-core/gfxmenu/theme_loader.c 2012-02-24 14:19:45.000000000 +0400
+++ grub-patch/grub-core/gfxmenu/theme_loader.c 2013-03-04 15:01:36.112753989 +0400
@@ -557,7 +557,16 @@
parse_proportional_spec (value, &component->h, &component->hfrac);
else
/* General property handling. */
- component->ops->set_property (component, property, value);
+ {
+ grub_err_t error = component->ops->set_property (component, property, value);
+ if (error != GRUB_ERR_NONE)
+ {
+ grub_error (GRUB_ERR_IO,
+ "%s:%d:%d unknown property or wrong value `%s'=`%s'",
+ p->filename, p->line_num, p->col_num,
+ property, value);
+ }
+ }
grub_free (value);
grub_free (property);
_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel