summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--e2fsprogs/fsck.c4
-rw-r--r--include/libbb.h2
-rw-r--r--libbb/compare_string_array.c8
3 files changed, 7 insertions, 7 deletions
diff --git a/e2fsprogs/fsck.c b/e2fsprogs/fsck.c
index ae4e3d0..7f7ab3e 100644
--- a/e2fsprogs/fsck.c
+++ b/e2fsprogs/fsck.c
@@ -1006,11 +1006,11 @@ static int ignore(struct fs_info *fs)
if (!fs_match(fs, &fs_type_compiled)) return 1;
/* Are we ignoring this type? */
- if(compare_string_array(ignored_types, fs->type))
+ if(compare_string_array(ignored_types, fs->type) >= 0)
return 1;
/* Do we really really want to check this fs? */
- wanted = compare_string_array(really_wanted, fs->type);
+ wanted = compare_string_array(really_wanted, fs->type) >= 0;
/* See if the <fsck.fs> program is available. */
s = find_fsck(fs->type);
diff --git a/include/libbb.h b/include/libbb.h
index 70a9336..d1c6be6 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -466,7 +466,7 @@ typedef struct {
} procps_status_t;
extern procps_status_t * procps_scan(int save_user_arg0);
-extern unsigned short compare_string_array(const char * const string_array[], const char *key);
+extern int compare_string_array(const char * const string_array[], const char *key);
extern int my_query_module(const char *name, int which, void **buf, size_t *bufsize, size_t *ret);
diff --git a/libbb/compare_string_array.c b/libbb/compare_string_array.c
index 8961e00..fc077b3 100644
--- a/libbb/compare_string_array.c
+++ b/libbb/compare_string_array.c
@@ -17,16 +17,16 @@
#include <string.h>
/* returns the array number of the string */
-extern unsigned short
+extern int
compare_string_array(const char * const string_array[], const char *key)
{
- unsigned short i;
+ int i;
for (i = 0; string_array[i] != 0; i++) {
if (strcmp(string_array[i], key) == 0) {
- break;
+ return i;
}
}
- return(i);
+ return -i;
}