+++ /dev/null
-/*\r
- Copyright (C) 2009 John Emmas\r
-\r
- This program is free software; you can redistribute it and/or modify\r
- it under the terms of the GNU General Public License as published by\r
- the Free Software Foundation; either version 2 of the License, or\r
- (at your option) any later version.\r
-\r
- This program is distributed in the hope that it will be useful,\r
- but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
- GNU General Public License for more details.\r
-\r
- You should have received a copy of the GNU General Public License\r
- along with this program; if not, write to the Free Software\r
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
-\r
-*/\r
-\r
-#ifdef __MINGW64__\r
-\r
-#include <WTypes.h>\r
-#include <glibmm.h>\r
-\r
-//***************************************************************\r
-//\r
-// realpath()\r
-//\r
-// Emulates POSIX realpath() using Win32 _fullpath().\r
-//\r
-// Returns:\r
-//\r
-// On Success: A pointer to the resolved (absolute) path\r
-// On Failure: NULL\r
-//\r
-\r
-extern "C" {\r
- \r
-char* \r
-realpath (const char *original_path, char resolved_path[_MAX_PATH+1])\r
-{\r
-char *pRet = NULL;\r
-bool bIsSymLink = 0; // We'll probably need to test the incoming path\r
- // to find out if it points to a Windows shortcut\r
- // (or a hard link) and set this appropriately.\r
- if (bIsSymLink)\r
- {\r
- // At the moment I'm not sure if Windows '_fullpath()' is directly\r
- // equivalent to POSIX 'realpath()' - in as much as the latter will\r
- // resolve the supplied path if it happens to point to a symbolic\r
- // link ('_fullpath()' probably DOESN'T do this but I'm not really\r
- // sure if Ardour needs such functionality anyway). Therefore we'll\r
- // possibly need to add that functionality here at a later date.\r
- }\r
- else\r
- {\r
- char temp[(MAX_PATH+1)*6]; // Allow for maximum length of a path in UTF8 characters\r
-\r
- // POSIX 'realpath()' requires that the buffer size is at\r
- // least PATH_MAX+1, so assume that the user knew this !!\r
- pRet = _fullpath(temp, Glib::locale_from_utf8(original_path).c_str(), _MAX_PATH);\r
- if (NULL != pRet)\r
- strcpy(resolved_path, Glib::locale_to_utf8(temp).c_str());\r
- }\r
-\r
- return (pRet);\r
-}\r
-\r
-}\r
-\r
-#endif // __MINGW64__\r