/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1997--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1997--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
Jan Nieuwenhuizen <janneke@gnu.org>
LilyPond is free software: you can redistribute it and/or modify
#include <sys/stat.h>
#endif
-#ifdef __CYGWIN__
-#include <sys/cygwin.h>
-#endif
-
#ifndef ROOTSEP
#define ROOTSEP ':'
#endif
#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
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<char> cwd (PATH_MAX);
+#else
+ vector<char> 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. */
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