aboutsummaryrefslogtreecommitdiff
path: root/libbb/match_fstype.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2009-03-14 22:57:20 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2009-03-14 22:57:20 +0000
commit7aaedcf21ee4c9eb49d7f1f74500c1b84cef75e7 (patch)
tree72f83132e3d6e64a67956ff2160fff7c8c9f22c1 /libbb/match_fstype.c
parent447ab18cf6e2a05842bab443255b0fdf0f4e598e (diff)
downloadbusybox-7aaedcf21ee4c9eb49d7f1f74500c1b84cef75e7.tar.gz
mount: support "-O option"; stop trying to mount swap partitions
function old new delta mount_main 975 1152 +177 umount_main 640 636 -4 packed_usage 25666 25662 -4 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 177/-8) Total: 169 bytes
Diffstat (limited to 'libbb/match_fstype.c')
-rw-r--r--libbb/match_fstype.c36
1 files changed, 17 insertions, 19 deletions
diff --git a/libbb/match_fstype.c b/libbb/match_fstype.c
index 99e276784..9360e757a 100644
--- a/libbb/match_fstype.c
+++ b/libbb/match_fstype.c
@@ -5,40 +5,38 @@
* This allows us to match fstypes that start with no like so
* mount -at ,noddy
*
- * Returns 0 for a match, otherwise -1
+ * Returns 1 for a match, otherwise 0
*
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
#include "libbb.h"
-int FAST_FUNC match_fstype(const struct mntent *mt, const char *fstype)
+int FAST_FUNC match_fstype(const struct mntent *mt, const char *t_fstype)
{
- int no = 0;
+ int match = 1;
int len;
- if (!mt)
- return -1;
+ if (!t_fstype)
+ return match;
- if (!fstype)
- return 0;
-
- if (fstype[0] == 'n' && fstype[1] == 'o') {
- no = -1;
- fstype += 2;
+ if (t_fstype[0] == 'n' && t_fstype[1] == 'o') {
+ match--;
+ t_fstype += 2;
}
len = strlen(mt->mnt_type);
- while (fstype) {
- if (!strncmp(mt->mnt_type, fstype, len)
- && (!fstype[len] || fstype[len] == ',')
+ while (1) {
+ if (strncmp(mt->mnt_type, t_fstype, len) == 0
+ && (t_fstype[len] == '\0' || t_fstype[len] == ',')
) {
- return no;
+ return match;
}
- fstype = strchr(fstype, ',');
- if (fstype)
- fstype++;
+ t_fstype = strchr(t_fstype, ',');
+ if (!t_fstype)
+ break;
+ t_fstype++;
}
- return -(no + 1);
+ return !match;
}