X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmountlist.c;h=a8ef87d8c8abdc94f2ceec66c9141b92a8bc46a0;hb=7ec881d86b09cad88b3999ee314c21abe78c7eb2;hp=55071c3fc80fe44003a6c2cf7a61f0cf6ce38d73;hpb=917752adb19961999cd68c6c961efffe33c85141;p=gnulib.git diff --git a/lib/mountlist.c b/lib/mountlist.c index 55071c3fc..a8ef87d8c 100644 --- a/lib/mountlist.c +++ b/lib/mountlist.c @@ -1,5 +1,7 @@ /* mountlist.c -- return a list of mounted file systems - Copyright (C) 1991, 1992, 1997-2004 Free Software Foundation, Inc. + + Copyright (C) 1991, 1992, 1997, 1998, 1999, 2000, 2001, 2002, 2003, + 2004, 2005 Free Software Foundation, Inc. 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 @@ -13,14 +15,15 @@ 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #if HAVE_CONFIG_H # include #endif +#include "mountlist.h" + #include -#include #include #include @@ -32,9 +35,7 @@ char *strstr (); #include -#ifdef HAVE_FCNTL_H -# include -#endif +#include #ifdef HAVE_UNISTD_H # include @@ -133,8 +134,6 @@ char *strstr (); # define MNT_IGNORE(M) 0 #endif -#include "mountlist.h" - #if USE_UNLOCKED_IO # include "unlocked-io.h" #endif @@ -143,6 +142,24 @@ char *strstr (); # define SIZE_MAX ((size_t) -1) #endif +#ifndef ME_DUMMY +# define ME_DUMMY(Fs_name, Fs_type) \ + (strcmp (Fs_type, "autofs") == 0 \ + || strcmp (Fs_type, "subfs") == 0 \ + /* for Irix 6.5 */ \ + || strcmp (Fs_type, "ignore") == 0) +#endif + +#ifndef ME_REMOTE +/* A file system is `remote' if its Fs_name contains a `:' + or if (it is of type smbfs and its Fs_name starts with `//'). */ +# define ME_REMOTE(Fs_name, Fs_type) \ + (strchr (Fs_name, ':') != 0 \ + || ((Fs_name)[0] == '/' \ + && (Fs_name)[1] == '/' \ + && strcmp (Fs_type, "smbfs") == 0)) +#endif + #if MOUNTED_GETMNTINFO # if ! HAVE_F_FSTYPENAME_IN_STATFS @@ -736,16 +753,16 @@ read_file_system_list (bool need_fs_type) me = xmalloc (sizeof *me); if (vmp->vmt_flags & MNT_REMOTE) { - char *host, *path; + char *host, *dir; me->me_remote = 1; - /* Prepend the remote pathname. */ + /* Prepend the remote dirname. */ host = thisent + vmp->vmt_data[VMT_HOSTNAME].vmt_off; - path = thisent + vmp->vmt_data[VMT_OBJECT].vmt_off; - me->me_devname = xmalloc (strlen (host) + strlen (path) + 2); + dir = thisent + vmp->vmt_data[VMT_OBJECT].vmt_off; + me->me_devname = xmalloc (strlen (host) + strlen (dir) + 2); strcpy (me->me_devname, host); strcat (me->me_devname, ":"); - strcat (me->me_devname, path); + strcat (me->me_devname, dir); } else {