aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>2007-04-05 22:19:43 +0000
committervda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>2007-04-05 22:19:43 +0000
commit8e8e3393f0afdc7e78d354bf9970a0c1e532d62a (patch)
tree8e036b9e5a2afca8a0810085a8967ad0e9db6b0c
parent63e158bf68ca057a43d3c281fb2c4468328c7d55 (diff)
downloadbusybox-w32-8e8e3393f0afdc7e78d354bf9970a0c1e532d62a.tar.gz
busybox-w32-8e8e3393f0afdc7e78d354bf9970a0c1e532d62a.tar.bz2
busybox-w32-8e8e3393f0afdc7e78d354bf9970a0c1e532d62a.zip
svn add match_fstype.c :(
git-svn-id: svn://busybox.net/trunk/busybox@18345 69ca8d6d-28ef-0310-b511-8ec308f3f277
-rw-r--r--libbb/match_fstype.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/libbb/match_fstype.c b/libbb/match_fstype.c
new file mode 100644
index 000000000..7698ceb08
--- /dev/null
+++ b/libbb/match_fstype.c
@@ -0,0 +1,44 @@
1/* vi: set sw=4 ts=4: */
2/*
3 * Match fstypes for use in mount unmount
4 * We accept notmpfs,nfs but not notmpfs,nonfs
5 * This allows us to match fstypes that start with no like so
6 * mount -at ,noddy
7 *
8 * Returns 0 for a match, otherwise -1
9 *
10 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
11 */
12
13#include "libbb.h"
14
15int match_fstype(const struct mntent *mt, const char *fstype)
16{
17 int no = 0;
18 int len;
19
20 if (!mt)
21 return -1;
22
23 if (!fstype)
24 return 0;
25
26 if (fstype[0] == 'n' && fstype[1] == 'o') {
27 no = -1;
28 fstype += 2;
29 }
30
31 len = strlen(mt->mnt_type);
32 while (fstype) {
33 if (!strncmp(mt->mnt_type, fstype, len)
34 && (!fstype[len] || fstype[len] == ',')
35 ) {
36 return no;
37 }
38 fstype = strchr(fstype, ',');
39 if (fstype)
40 fstype++;
41 }
42
43 return -(no + 1);
44}