svlogd: extend usage text. +70 bytes
[oweals/busybox.git] / libbb / match_fstype.c
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 1 for a match, otherwise 0
9  *
10  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
11  */
12
13 #include "libbb.h"
14
15 int FAST_FUNC match_fstype(const struct mntent *mt, const char *t_fstype)
16 {
17         int match = 1;
18         int len;
19
20         if (!t_fstype)
21                 return match;
22
23         if (t_fstype[0] == 'n' && t_fstype[1] == 'o') {
24                 match--;
25                 t_fstype += 2;
26         }
27
28         len = strlen(mt->mnt_type);
29         while (1) {
30                 if (strncmp(mt->mnt_type, t_fstype, len) == 0
31                  && (t_fstype[len] == '\0' || t_fstype[len] == ',')
32                 ) {
33                         return match;
34                 }
35                 t_fstype = strchr(t_fstype, ',');
36                 if (!t_fstype)
37                         break;
38                 t_fstype++;
39         }
40
41         return !match;
42 }