X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fpbd%2Fmountpoint.cc;h=89675c985e1260a4bb8ac131781b1f6fe3118a32;hb=db981b6085d3557d82178d003368905b48608ff0;hp=545e71fbf2bba934d3e6b546fe7faf278f149371;hpb=5aba4df25276c0cb45bb06169f37f7b14a95ecb9;p=ardour.git diff --git a/libs/pbd/mountpoint.cc b/libs/pbd/mountpoint.cc index 545e71fbf2..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,7 +95,7 @@ mountpoint (string path) } #elif defined(PLATFORM_WINDOWS) - +#include string mountpoint (string path) { @@ -116,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() */ @@ -139,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. */ @@ -163,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());