]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2008-01-05 Robert Millan <rmh@aybabtu.com>
authorrobertmh <robertmh@localhost>
Sat, 5 Jan 2008 12:04:35 +0000 (12:04 +0000)
committerrobertmh <robertmh@localhost>
Sat, 5 Jan 2008 12:04:35 +0000 (12:04 +0000)
        * kern/env.c (grub_env_context_open): Propagate hooks for global
        variables to new context.

        * kern/main.c (grub_set_root_dev): Export `root' variable.

ChangeLog
kern/env.c
kern/main.c

index 7e9d7ee35ccbb045b833ee05a3d33b2c7fdcb6f9..cc69c4b9c3f00240c41710b69e4a66687dbf2fac 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-01-05  Robert Millan  <rmh@aybabtu.com>
+
+       * kern/env.c (grub_env_context_open): Propagate hooks for global
+       variables to new context.
+
+       * kern/main.c (grub_set_root_dev): Export `root' variable.
+
 2008-01-05  Robert Millan  <rmh@aybabtu.com>
 
        * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
index 6ab10e2a1e6c124244447b01ac44f37ef8fff008..2b777826ef4ff2e3bf8e6866b7313e143d7291a7 100644 (file)
@@ -1,7 +1,7 @@
 /* env.c - Environment variables */
 /*
  *  GRUB  --  GRand Unified Bootloader
- *  Copyright (C) 2003,2005,2006,2007  Free Software Foundation, Inc.
+ *  Copyright (C) 2003,2005,2006,2007,2008  Free Software Foundation, Inc.
  *
  *  GRUB is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -96,11 +96,14 @@ grub_env_context_open (void)
       for (var = context->prev->vars[i]; var; var = var->next)
        {
          if (var->type == GRUB_ENV_VAR_GLOBAL)
-           if (grub_env_set (var->name, var->value) != GRUB_ERR_NONE)
-             {
-               grub_env_context_close ();
-               return grub_errno;
-             }
+           {
+             if (grub_env_set (var->name, var->value) != GRUB_ERR_NONE)
+               {
+                 grub_env_context_close ();
+                 return grub_errno;
+               }
+             grub_register_variable_hook (var->name, var->read_hook, var->write_hook);
+           }
        }
     }
   
index ae2d6ef71a894ad904e8090cb01069c35581bf71..2ecccc21adf773775bcb10ffbd7cfcd9eadc0de7 100644 (file)
@@ -1,7 +1,7 @@
 /* main.c - the kernel main routine */
 /*
  *  GRUB  --  GRand Unified Bootloader
- *  Copyright (C) 2002,2003,2005  Free Software Foundation, Inc.
+ *  Copyright (C) 2002,2003,2005,2006,2008  Free Software Foundation, Inc.
  *
  *  GRUB is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -78,6 +78,7 @@ grub_set_root_dev (void)
   const char *prefix;
 
   grub_register_variable_hook ("root", 0, grub_env_write_root);
+  grub_env_export ("root");
   
   prefix = grub_env_get ("prefix");