From 7aaedcf21ee4c9eb49d7f1f74500c1b84cef75e7 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Sat, 14 Mar 2009 22:57:20 +0000 Subject: 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 --- libbb/match_fstype.c | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) (limited to 'libbb/match_fstype.c') 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; } -- cgit v1.2.3