X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fpbd%2Fmountpoint.cc;h=89675c985e1260a4bb8ac131781b1f6fe3118a32;hb=4367b51e565e9233a69e86a47ab48c0027091426;hp=65f011c745efa0de2f005366d3de4214985073ee;hpb=f4b5f4c72ee60b6f509e307c5bfd164108d1f30b;p=ardour.git diff --git a/libs/pbd/mountpoint.cc b/libs/pbd/mountpoint.cc index 65f011c745..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 @@ -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. */ @@ -95,11 +95,16 @@ mountpoint (string path) } #elif defined(PLATFORM_WINDOWS) - +#include string mountpoint (string path) { - // TODO ... if needed + /* 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 @@ -111,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() */ @@ -134,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. */ @@ -158,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());