diff options
author | Denis Vlasenko | 2009-03-14 22:57:20 +0000 |
---|---|---|
committer | Denis Vlasenko | 2009-03-14 22:57:20 +0000 |
commit | 7aaedcf21ee4c9eb49d7f1f74500c1b84cef75e7 (patch) | |
tree | 72f83132e3d6e64a67956ff2160fff7c8c9f22c1 /libbb | |
parent | 447ab18cf6e2a05842bab443255b0fdf0f4e598e (diff) | |
download | busybox-7aaedcf21ee4c9eb49d7f1f74500c1b84cef75e7.zip busybox-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')
-rw-r--r-- | libbb/match_fstype.c | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/libbb/match_fstype.c b/libbb/match_fstype.c index 99e2767..9360e75 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; } |