]> git.proxmox.com Git - grub2.git/commitdiff
update grub_errno as per the return value
authorbvk.groups@gmail.com <>
Tue, 7 Sep 2010 16:16:04 +0000 (21:46 +0530)
committerbvk.groups@gmail.com <>
Tue, 7 Sep 2010 16:16:04 +0000 (21:46 +0530)
grub-core/script/execute.c

index b43ec85e17212ef99725454dd046a631eabc520f..87dd6581ceb6c1876f2864e7197f5b734d58e07c 100644 (file)
@@ -621,7 +621,17 @@ grub_script_execute_cmdline (struct grub_script_cmd *cmd)
     ret = grub_script_function_call (func, argc, args);
 
   if (invert)
-    ret = ! ret;
+    {
+      if (ret == GRUB_ERR_TEST_FAILURE)
+       grub_errno = ret = GRUB_ERR_NONE;
+      else if (ret == GRUB_ERR_NONE)
+       ret = grub_error (GRUB_ERR_TEST_FAILURE, "false");
+      else
+       {
+         grub_print_error ();
+         grub_errno = ret = GRUB_ERR_NONE;
+       }
+    }
 
   /* Free arguments.  */
   grub_script_argv_free (&argv);