It is legal to use "configfile <top level filename>" where filename does
not contain directory part. In this case config_directory is set to filename.
Set it to empty string so $config_directory/file works as expected.

May be it makes sense to generate full pathname (including device part)
so that interpretation of $config_directory does not depend on possible
change of $root.

---
 grub-core/normal/main.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
index 991a595..16f22fb 100644
--- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c
@@ -196,6 +196,8 @@ read_config_file (const char *config)
     ptr = grub_strrchr (config_dir, '/');
   if (ptr)
     *ptr = 0;
+  else if (config_dir)
+    *config_dir = 0;
   grub_env_set ("config_directory", config_dir);
   grub_free (config_dir);
 
-- 
tg: (bb05e31..) u/config_file_without_dir (depends on: master)

_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to