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

Reply via email to