* grub-core/fs/fat.c: Display the filename when file is not found.
        * grub-core/fs/fshelp.c: Likewise.
        * grub-core/fs/hfs.c: Likewise.
        * grub-core/fs/jfs.c: Likewise.
        * grub-core/fs/minix.c: Likewise.
        * grub-core/fs/ufs.c: Likewise.
---
 ChangeLog.filename-file-not-found |    8 ++++++++
 grub-core/fs/fat.c                |   11 +++++++++--
 grub-core/fs/fshelp.c             |    2 +-
 grub-core/fs/hfs.c                |    2 +-
 grub-core/fs/jfs.c                |    2 +-
 grub-core/fs/minix.c              |    2 +-
 grub-core/fs/ufs.c                |    2 +-
 7 files changed, 22 insertions(+), 7 deletions(-)
 create mode 100644 ChangeLog.filename-file-not-found
diff --git a/ChangeLog.filename-file-not-found 
b/ChangeLog.filename-file-not-found
new file mode 100644
index 0000000..f735f52
--- /dev/null
+++ b/ChangeLog.filename-file-not-found
@@ -0,0 +1,8 @@
+       Display the path of the file when file is not found
+
+       * grub-core/fs/fat.c: Display the filename when file is not found.
+       * grub-core/fs/fshelp.c: Likewise.
+       * grub-core/fs/hfs.c: Likewise.
+       * grub-core/fs/jfs.c: Likewise.
+       * grub-core/fs/minix.c: Likewise.
+       * grub-core/fs/ufs.c: Likewise.
diff --git a/grub-core/fs/fat.c b/grub-core/fs/fat.c
index 8905094..04859da 100644
--- a/grub-core/fs/fat.c
+++ b/grub-core/fs/fat.c
@@ -608,6 +608,7 @@ grub_fat_find_dir (grub_disk_t disk, struct grub_fat_data 
*data,
                                const struct grub_dirhook_info *info))
 {
   char *dirname, *dirp;
+  char *origpath = NULL;
   int call_hook;
   int found = 0;
 
@@ -648,6 +649,10 @@ grub_fat_find_dir (grub_disk_t disk, struct grub_fat_data 
*data,
       return 0;
     }
 
+  origpath = grub_strdup (path);
+  if (!origpath)
+    return 0;
+
   /* Extract a directory name.  */
   while (*path == '/')
     path++;
@@ -659,7 +664,7 @@ grub_fat_find_dir (grub_disk_t disk, struct grub_fat_data 
*data,
 
       dirname = grub_malloc (len + 1);
       if (! dirname)
-       return 0;
+       goto fail;
 
       grub_memcpy (dirname, path, len);
       dirname[len] = '\0';
@@ -672,9 +677,11 @@ grub_fat_find_dir (grub_disk_t disk, struct grub_fat_data 
*data,
 
   grub_fat_iterate_dir (disk, data, iter_hook);
   if (grub_errno == GRUB_ERR_NONE && ! found && !call_hook)
-    grub_error (GRUB_ERR_FILE_NOT_FOUND, "file not found");
+    grub_error (GRUB_ERR_FILE_NOT_FOUND, "file `%s' not found", origpath);
 
+ fail:
   grub_free (dirname);
+  grub_free (origpath);
 
   return found ? dirp : 0;
 }
diff --git a/grub-core/fs/fshelp.c b/grub-core/fs/fshelp.c
index d0b1e49..177b2a8 100644
--- a/grub-core/fs/fshelp.c
+++ b/grub-core/fs/fshelp.c
@@ -195,7 +195,7 @@ grub_fshelp_find_file (const char *path, grub_fshelp_node_t 
rootnode,
          name = next;
        }
 
-      return grub_error (GRUB_ERR_FILE_NOT_FOUND, "file not found");
+      return grub_error (GRUB_ERR_FILE_NOT_FOUND, "file `%s' not found", path);
     }
 
   if (!path || path[0] != '/')
diff --git a/grub-core/fs/hfs.c b/grub-core/fs/hfs.c
index cef8563..706d0ae 100644
--- a/grub-core/fs/hfs.c
+++ b/grub-core/fs/hfs.c
@@ -915,7 +915,7 @@ grub_hfs_find_dir (struct grub_hfs_data *data, const char 
*path,
       if (! grub_hfs_find_node (data, (char *) &key, data->cat_root,
                                0, (char *) &fdrec.frec, sizeof (fdrec.frec)))
        {
-         grub_error (GRUB_ERR_FILE_NOT_FOUND, "file not found");
+         grub_error (GRUB_ERR_FILE_NOT_FOUND, "file `%s' not found", origpath);
          goto fail;
        }
 
diff --git a/grub-core/fs/jfs.c b/grub-core/fs/jfs.c
index c9839a2..5447f79 100644
--- a/grub-core/fs/jfs.c
+++ b/grub-core/fs/jfs.c
@@ -684,7 +684,7 @@ grub_jfs_find_file (struct grub_jfs_data *data, const char 
*path)
     }
 
   grub_jfs_closedir (diro);
-  grub_error (GRUB_ERR_FILE_NOT_FOUND, "file not found");
+  grub_error (GRUB_ERR_FILE_NOT_FOUND, "file `%s' not found", path);
   return grub_errno;
 }
 
diff --git a/grub-core/fs/minix.c b/grub-core/fs/minix.c
index aa5b9a0..fd4c290 100644
--- a/grub-core/fs/minix.c
+++ b/grub-core/fs/minix.c
@@ -387,7 +387,7 @@ grub_minix_find_file (struct grub_minix_data *data, const 
char *path)
       pos += sizeof (ino) + data->filename_size;
     } while (pos < GRUB_MINIX_INODE_SIZE (data));
 
-  grub_error (GRUB_ERR_FILE_NOT_FOUND, "file not found");
+  grub_error (GRUB_ERR_FILE_NOT_FOUND, "file `%s' not found", path);
   return grub_errno;
 }
 
diff --git a/grub-core/fs/ufs.c b/grub-core/fs/ufs.c
index 40cf068..5dd01ab 100644
--- a/grub-core/fs/ufs.c
+++ b/grub-core/fs/ufs.c
@@ -512,7 +512,7 @@ grub_ufs_find_file (struct grub_ufs_data *data, const char 
*path)
       pos += grub_le_to_cpu16 (dirent.direntlen);
     } while (pos < INODE_SIZE (data));
 
-  grub_error (GRUB_ERR_FILE_NOT_FOUND, "file not found");
+  grub_error (GRUB_ERR_FILE_NOT_FOUND, "file `%s' not found", path);
   return grub_errno;
 }
 
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to