change the interface of libbb/compare_string_array (unsigned short to int), usaging for e2fsprogs/fsck
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 @@
 	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 @@
 } 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;
 }