]> git.donarmstrong.com Git - lilypond.git/commitdiff
* flower/file-path.cc (find): Bugfix: Return name of file found.
authorJan Nieuwenhuizen <janneke@gnu.org>
Thu, 3 Nov 2005 20:52:07 +0000 (20:52 +0000)
committerJan Nieuwenhuizen <janneke@gnu.org>
Thu, 3 Nov 2005 20:52:07 +0000 (20:52 +0000)
* lily/main.cc (setup_paths): Bugfix for argv0 logic.
(setup_paths)[__CYGWIN__ || __MINGW32__ || ]: Normalize argv0.
(setup_paths)[__MINGW32__]: Also look for argv0 + .exe.

ChangeLog
flower/file-path.cc
lily/main.cc

index 9c4b906ec8fecca13c0712f23c79b810ab806f1e..3a8f5e17772c6c660e9420da40e8a4a500be9a51 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
 2005-11-03  Jan Nieuwenhuizen  <janneke@gnu.org>
 
+       * flower/file-path.cc (find): Bugfix: Return name of file found.
+
        * lily/main.cc (setup_paths): Bugfix for argv0 logic.
+       (setup_paths)[__CYGWIN__ || __MINGW32__ || ]: Normalize argv0.
+       (setup_paths)[__MINGW32__]: Also look for argv0 + .exe.
 
 2005-11-02  Jan Nieuwenhuizen  <janneke@gnu.org>
 
index ddadfaca5bd0a43190f58f84d48389fc8abf0bd1..05c6e7ce34357b408a81e400e7d84fcd00c99797 100644 (file)
@@ -148,26 +148,22 @@ File_path::find (String name) const
 String
 File_path::find (String name, char const *extensions[])
 {
-  File_name file_name (name);
   if (name.is_empty () || name == "-")
-    file_name.base_ = "-";
-  else
+    return name;
+  
+  File_name file_name (name);
+  String orig_ext = file_name.ext_;
+  for (int i = 0; extensions[i]; i++)
     {
-      String orig_ext = file_name.ext_;
-      for (int i = 0; extensions[i]; i++)
-       {
-         file_name.ext_ = orig_ext;
-         if (*extensions[i] && !file_name.ext_.is_empty ())
-           file_name.ext_ += ".";
-         file_name.ext_ += extensions[i];
-         if (!find (file_name.to_string ()).is_empty ())
-           break;
-       }
-      
-      /* Reshuffle extension */
-      file_name = File_name (file_name.to_string ());
+      file_name.ext_ = orig_ext;
+      if (*extensions[i] && !file_name.ext_.is_empty ())
+       file_name.ext_ += ".";
+      file_name.ext_ += extensions[i];
+      String found = find (file_name.to_string ());
+      if (!found.is_empty ())
+       return found;
     }
-  return file_name.to_string ();
+  return "";
 }
 
 /** Append a directory, return false if failed.  */
index dbcc0381d1a99364e241fd2c5f64b2f3f87ae20f..46b08d398c3c6e2577b62ccf885d73e5df5bb138 100644 (file)
@@ -300,7 +300,9 @@ String
 dir_name (String const file_name)
 {
   String s = file_name;
+#if defined (__CYGWIN__) || defined (__MINGW32__)
   s.substitute ('\\', '/');
+#endif  
   s = s.left_string (s.index_last ('/'));
   return s;
 }
@@ -321,15 +323,28 @@ setup_paths (char const* argv0)
     be_verbose_global = true;
 
   /* Find absolute ARGV0 name, using PATH.  */
-  File_path p;
-  p.parse_path (getenv ("PATH"));
-  String argv0_abs = p.find (argv0);
+  File_path path;
+  path.parse_path (getenv ("PATH"));
+
+#if defined (__CYGWIN__) || defined (__MINGW32__)
+  String s = argv0;
+  s.substitute ('\\', '/');
+  argv0 = s.to_str0 ();
+#endif /* __CYGWIN__ || __MINGW32__ */
+
+#ifndef __MINGW32__
+  String argv0_abs = path.find (argv0);
+#else /* __MINGW32__ */
+  char const *ext[] = {"exe", "", 0 };
+  String argv0_abs = path.find (argv0, ext);
+#endif /* __MINGW32__ */
+
   if (argv0_abs.is_empty ())
     {
       File_name name (argv0);
       /* If NAME contains slashes and its DIR is not absolute, it can
         only be referenced from CWD.  */
-      if (name.to_string ().index ('/') >= 0 && name.dir_[0] != DIRSEP)
+      if (name.to_string ().index ('/') >= 0 && name.dir_[0] != '/')
        {
          char cwd[PATH_MAX];
          getcwd (cwd, PATH_MAX);