X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fpbd%2Fmountpoint.cc;h=89675c985e1260a4bb8ac131781b1f6fe3118a32;hb=628e60f8fda6be4ce5790a3a226531b164c61e68;hp=46cea42e0a2d0adf4130f2981b1a5110a50585c0;hpb=d51f3e34b4b9aecb62fa3ecaca9d0ac298ef511c;p=ardour.git diff --git a/libs/pbd/mountpoint.cc b/libs/pbd/mountpoint.cc index 46cea42e0a..89675c985e 100644 --- a/libs/pbd/mountpoint.cc +++ b/libs/pbd/mountpoint.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2002 Paul Davis + Copyright (C) 2002 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,7 +17,7 @@ $Id$ */ - +#ifndef COMPILER_MSVC #include #include #include @@ -50,7 +50,7 @@ mountpoint (string path) unsigned int matchlen; const char *cpath = path.c_str(); char best[PATH_MAX+1]; - + if ((mntf = setmntent ("/etc/mtab", "r")) == 0) { return ""; } @@ -63,7 +63,7 @@ mountpoint (string path) n = 0; matchlen = 0; - /* note: strcmp's semantics are not + /* note: strcmp's semantics are not strict enough to use for this. */ @@ -94,6 +94,19 @@ mountpoint (string path) return best; } +#elif defined(PLATFORM_WINDOWS) +#include +string +mountpoint (string path) +{ + /* this function is currently only called from 'old_peak_path()' + * via find_broken_peakfile() - only relevant for loading pre + * libsndfile Ardour 2.0 sessions. + */ + assert(0); + return ""; // TODO ... if needed +} + #else // !HAVE_GETMNTENT #include @@ -103,16 +116,20 @@ mountpoint (string path) string mountpoint (string path) { +#if defined(__NetBSD__) + struct statvfs *mntbufp = 0; +#else struct statfs *mntbufp = 0; +#endif int count; unsigned int maxmatch = 0; unsigned int matchlen; const char *cpath = path.c_str(); char best[PATH_MAX+1]; - - /* From the manpage, under "BUGS" : "The memory allocated by getmntinfo() cannot be free(3)'d by the + + /* From the manpage, under "BUGS" : "The memory allocated by getmntinfo() cannot be free(3)'d by the application." - + Thus: we do NOT try to free memory allocated by getmntinfo() */ @@ -126,7 +143,7 @@ mountpoint (string path) unsigned int n = 0; matchlen = 0; - /* note: strcmp's semantics are not + /* note: strcmp's semantics are not strict enough to use for this. */ @@ -150,13 +167,13 @@ mountpoint (string path) } } } - + return best; } #endif // HAVE_GETMNTENT #ifdef TEST_MOUNTPOINT - + main (int argc, char *argv[]) { printf ("mp of %s = %s\n", argv[1], mountpoint (argv[1]).c_str()); @@ -164,3 +181,7 @@ main (int argc, char *argv[]) } #endif // TEST_MOUNTPOINT + +#else // COMPILER_MSVC + const char* pbd_mountpoint = "pbd/msvc/mountpoint.cc takes precedence over this file"; +#endif // COMPILER_MSVC