]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* include/grub/util/getroot.h (grub_get_prefix): Remove prototype.
authorChristian Franke <franke@computer.org>
Mon, 26 Apr 2010 01:35:55 +0000 (03:35 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 26 Apr 2010 01:35:55 +0000 (03:35 +0200)
* util/getroot.c [__CYGWIN__] (get_win32_path): Remove function.
(grub_get_prefix): Remove function.
* util/grub-emu.c (main): Replace grub_get_prefix () call by
make_system_path_relative_to_its_root ().
* util/sparc64/ieee1275/grub-setup.c (main): Likewise.

ChangeLog
include/grub/util/getroot.h
util/getroot.c
util/grub-emu.c
util/sparc64/ieee1275/grub-setup.c

index 92c8dc53c35f139978f33483add1254288ab18af..29e634bf647affdbf6e7539820062e54dc92a707 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2010-04-26  Christian Franke  <franke@computer.org>
+
+       * include/grub/util/getroot.h (grub_get_prefix): Remove prototype.
+       * util/getroot.c [__CYGWIN__] (get_win32_path): Remove function.
+       (grub_get_prefix): Remove function.
+       * util/grub-emu.c (main): Replace grub_get_prefix () call by
+       make_system_path_relative_to_its_root ().
+       * util/sparc64/ieee1275/grub-setup.c (main): Likewise.
+
 2010-04-24  Christian Franke  <franke@computer.org>
 
        * Makefile.in (TARGET_LDFLAGS): Add -static-libgcc.
 
        * disk/lvm.c (grub_lvm_memberlist): Issue an error if pv->disk = 0.
 
-2010-04-17  Christian Franke <franke@computer.org>
+2010-04-17  Christian Franke  <franke@computer.org>
 
        * Makefile.in: Add missing localedir setting.
 
index f9f7f9baaca36a41772d1a6adbe6370a90d0b98c..dff7b4df7a95fa1e2a4a56908005d76736ab90a2 100644 (file)
@@ -26,7 +26,6 @@ enum grub_dev_abstraction_types {
 };
 
 char *grub_guess_root_device (const char *dir);
-char *grub_get_prefix (const char *dir);
 int grub_util_get_dev_abstraction (const char *os_dev);
 char *grub_util_get_grub_dev (const char *os_dev);
 const char *grub_util_check_block_device (const char *blk_dev);
index 94eadc5e113f85b77fbb185332c838b4884e0ecb..891bd0f1055837826c35252bd3cf68f1b056c06a 100644 (file)
@@ -79,103 +79,6 @@ xgetcwd (void)
   return path;
 }
 
-#ifdef __CYGWIN__
-/* Convert POSIX path to Win32 path,
-   remove drive letter, replace backslashes.  */
-static char *
-get_win32_path (const char *path)
-{
-  char winpath[PATH_MAX];
-  cygwin_conv_to_full_win32_path (path, winpath);
-
-  int len = strlen (winpath);
-  if (len > 2 && winpath[1] == ':')
-    {
-      len -= 2;
-      memmove (winpath, winpath + 2, len + 1);
-    }
-
-  int i;
-  for (i = 0; i < len; i++)
-    if (winpath[i] == '\\')
-      winpath[i] = '/';
-  return xstrdup (winpath);
-}
-#endif
-
-char *
-grub_get_prefix (const char *dir)
-{
-  char *saved_cwd;
-  char *abs_dir, *prev_dir;
-  char *prefix;
-  struct stat st, prev_st;
-
-  /* Save the current directory.  */
-  saved_cwd = xgetcwd ();
-
-  if (chdir (dir) < 0)
-    grub_util_error ("cannot change directory to `%s'", dir);
-
-  abs_dir = xgetcwd ();
-  strip_extra_slashes (abs_dir);
-  prev_dir = xstrdup (abs_dir);
-
-  if (stat (".", &prev_st) < 0)
-    grub_util_error ("cannot stat `%s'", dir);
-
-  if (! S_ISDIR (prev_st.st_mode))
-    grub_util_error ("`%s' is not a directory", dir);
-
-  while (1)
-    {
-      if (chdir ("..") < 0)
-       grub_util_error ("cannot change directory to the parent");
-
-      if (stat (".", &st) < 0)
-       grub_util_error ("cannot stat current directory");
-
-      if (! S_ISDIR (st.st_mode))
-       grub_util_error ("current directory is not a directory???");
-
-      if (prev_st.st_dev != st.st_dev || prev_st.st_ino == st.st_ino)
-       break;
-
-      free (prev_dir);
-      prev_dir = xgetcwd ();
-      prev_st = st;
-    }
-
-  strip_extra_slashes (prev_dir);
-  prefix = xmalloc (strlen (abs_dir) - strlen (prev_dir) + 2);
-  prefix[0] = '/';
-  strcpy (prefix + 1, abs_dir + strlen (prev_dir));
-  strip_extra_slashes (prefix);
-
-  if (chdir (saved_cwd) < 0)
-    grub_util_error ("cannot change directory to `%s'", dir);
-
-#ifdef __CYGWIN__
-  if (st.st_dev != (DEV_CYGDRIVE_MAJOR << 16))
-    {
-      /* Reached some mount point not below /cygdrive.
-        GRUB does not know Cygwin's emulated mounts,
-        convert to Win32 path.  */
-      grub_util_info ("Cygwin prefix = %s", prefix);
-      char * wprefix = get_win32_path (prefix);
-      free (prefix);
-      prefix = wprefix;
-    }
-#endif
-
-  free (saved_cwd);
-  free (abs_dir);
-  free (prev_dir);
-
-  grub_util_info ("prefix = %s", prefix);
-  return prefix;
-}
-
 #ifdef __MINGW32__
 
 static char *
index 8660f0aa006a85b660fefff02be4bb0bc3806595..8c53b0aca14b99ab3354c621097f46e79a8b2bfd 100644 (file)
@@ -242,7 +242,7 @@ main (int argc, char *argv[])
   if (strcmp (root_dev, "host") == 0)
     dir = xstrdup (dir);
   else
-    dir = grub_get_prefix (dir);
+    dir = make_system_path_relative_to_its_root (dir);
   prefix = xmalloc (strlen (root_dev) + 2 + strlen (dir) + 1);
   sprintf (prefix, "(%s)%s", root_dev, dir);
   free (dir);
index b511a96b24f369aa523ac8f2c89b9072c0d36512..06bc16795ec2608be972589feea432d8282fdbd6 100644 (file)
@@ -627,7 +627,8 @@ main (int argc, char *argv[])
 
   find_dest_dev (&ginfo, argv);
 
-  ginfo.prefix = grub_get_prefix (ginfo.dir ? : DEFAULT_DIRECTORY);
+  ginfo.prefix = make_system_path_relative_to_its_root (ginfo.dir ?
+                                                       : DEFAULT_DIRECTORY);
 
   check_root_dev (&ginfo);