diff options
author | Doug McLain <doug@nostar.net> | 2008-06-02 05:02:28 +0000 |
---|---|---|
committer | Doug McLain <doug@nostar.net> | 2008-06-02 05:02:28 +0000 |
commit | 9c0d7d72d70082a54f823cd44c0ccda5da64bb6f (patch) | |
tree | 96ec400b83b8c1c06852b1936f684b5fbcd47a79 /libs/pbd/mountpoint.cc | |
parent | 2f3f697bb8e185eb43c2c50b4eefc2bcb937f269 (diff) |
remove empty sigc++2 directory
git-svn-id: svn://localhost/ardour2/branches/3.0@3432 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/pbd/mountpoint.cc')
-rw-r--r-- | libs/pbd/mountpoint.cc | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/libs/pbd/mountpoint.cc b/libs/pbd/mountpoint.cc deleted file mode 100644 index acc549890a..0000000000 --- a/libs/pbd/mountpoint.cc +++ /dev/null @@ -1,159 +0,0 @@ -/* - 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 - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id$ -*/ - -#include <cstdio> -#include <cstring> -#include <string> -#include <limits.h> - -#include <pbd/mountpoint.h> - -using std::string; - -#if HAVE_GETMNTENT -#include <mntent.h> - -struct mntent_sorter { - bool operator() (const mntent *a, const mntent *b) { - return strcmp (a->mnt_dir, b->mnt_dir); - } -}; - -string -mountpoint (string path) -{ - FILE *mntf; - mntent *mnt; - unsigned int maxmatch = 0; - unsigned int matchlen; - const char *cpath = path.c_str(); - char best[PATH_MAX+1]; - - if ((mntf = setmntent ("/etc/mtab", "r")) == 0) { - return ""; - } - - best[0] = '\0'; - - while ((mnt = getmntent (mntf))) { - unsigned int n; - - n = 0; - matchlen = 0; - - /* note: strcmp's semantics are not - strict enough to use for this. - */ - - while (cpath[n] && mnt->mnt_dir[n]) { - if (cpath[n] != mnt->mnt_dir[n]) { - break; - } - matchlen++; - n++; - } - - if (cpath[matchlen] == '\0') { - - endmntent (mntf); - return mnt->mnt_dir; - - } else { - - if (matchlen > maxmatch) { - snprintf (best, sizeof(best), "%s", mnt->mnt_dir); - maxmatch = matchlen; - } - } - } - - endmntent (mntf); - - return best; -} - -#else // !HAVE_GETMNTENT - -#include <sys/param.h> -#include <sys/ucred.h> -#include <sys/mount.h> - -string -mountpoint (string path) -{ - struct statfs *mntbufp = 0; - int count; - unsigned int maxmatch = 0; - unsigned int matchlen; - const char *cpath = path.c_str(); - char best[PATH_MAX+1]; - - if ((count = getmntinfo(&mntbufp, MNT_NOWAIT)) == 0) { - free(mntbufp); - return "\0"; - } - - best[0] = '\0'; - - for (int i = 0; i < count; ++i) { - unsigned int n = 0; - matchlen = 0; - - /* note: strcmp's semantics are not - strict enough to use for this. - */ - - while (cpath[n] && mntbufp[i].f_mntonname[n]) { - if (cpath[n] != mntbufp[i].f_mntonname[n]) { - break; - } - matchlen++; - n++; - } - - if (cpath[matchlen] == '\0') { - snprintf(best, sizeof(best), "%s", mntbufp[i].f_mntonname); - free(mntbufp); - return best; - - } else { - - if (matchlen > maxmatch) { - snprintf (best, sizeof(best), "%s", mntbufp[i].f_mntonname); - maxmatch = matchlen; - } - } - } - - free(mntbufp); - - 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()); - exit (0); -} - -#endif // TEST_MOUNTPOINT |