X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Ffile-name.cc;h=990e3d6d9161d983860b0c380e1a1139b17edf9c;hb=b872748c6aa8bb721ced458691b38ac2fac5dfc8;hp=188056675f94346469256f8112e8d3fbff384f9b;hpb=99b6f3aa3558b01c9d4158b19a1f1794c534f89c;p=lilypond.git diff --git a/flower/file-name.cc b/flower/file-name.cc index 188056675f..990e3d6d91 100644 --- a/flower/file-name.cc +++ b/flower/file-name.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2014 Han-Wen Nienhuys + Copyright (C) 1997--2015 Han-Wen Nienhuys Jan Nieuwenhuizen LilyPond is free software: you can redistribute it and/or modify @@ -33,10 +33,6 @@ using namespace std; #include #endif -#ifdef __CYGWIN__ -#include -#endif - #ifndef ROOTSEP #define ROOTSEP ':' #endif @@ -49,21 +45,6 @@ using namespace std; #define EXTSEP '.' #endif -#ifdef __CYGWIN__ -static string -dos_to_posix (const string &file_name) -{ - char buf[PATH_MAX] = ""; - char s[PATH_MAX] = {0}; - file_name.copy (s, PATH_MAX - 1); - /* ugh: char const* argument gets modified. */ - int fail = cygwin_conv_to_posix_path (s, buf); - if (!fail) - return buf; - return file_name; -} -#endif /* __CYGWIN__ */ - /** Use slash as directory separator. On Windows, they can pretty much be exchanged. */ #if 0 @@ -96,9 +77,21 @@ dir_name (const string &file_name) string get_working_directory () { - char cwd[PATH_MAX]; - // getcwd returns NULL upon a failure, contents of cwd would be undefined! - return string (getcwd (cwd, PATH_MAX)); +#ifdef PATH_MAX + vector cwd (PATH_MAX); +#else + vector cwd (1024); +#endif + while (getcwd (cwd.data (), cwd.size ()) == NULL) + { + if (errno != ERANGE) + { + // getcwd () fails. + return ""; + } + cwd.resize (cwd.size () * 2); + } + return string (cwd.data ()); } /* Join components to full file_name. */ @@ -144,12 +137,6 @@ File_name::to_string () const File_name::File_name (string file_name) { -#ifdef __CYGWIN__ - /* All system functions would work, even if we do not convert to - posix file_name, but we would think that \foe\bar\baz.ly is in - the cwd. */ - file_name = dos_to_posix (file_name); -#endif #ifdef __MINGW32__ file_name = slashify (file_name); #endif