aboutsummaryrefslogtreecommitdiff
path: root/libbb/compare_string_array.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/compare_string_array.c')
-rw-r--r--libbb/compare_string_array.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/libbb/compare_string_array.c b/libbb/compare_string_array.c
index 077a280a2..e873d7cc3 100644
--- a/libbb/compare_string_array.c
+++ b/libbb/compare_string_array.c
@@ -19,8 +19,23 @@ int index_in_str_array(const char * const string_array[], const char *key)
19 return -1; 19 return -1;
20} 20}
21 21
22int index_in_strings(const char *strings, const char *key)
23{
24 int idx = 0;
25
26 while (strings[0]) {
27 if (strcmp(strings, key) == 0) {
28 return idx;
29 }
30 strings += strlen(strings) + 1; /* skip NUL */
31 idx++;
32 }
33 return -1;
34}
35
22/* returns the array index of the string, even if it matches only a beginning */ 36/* returns the array index of the string, even if it matches only a beginning */
23/* (index of first match is returned, or -1) */ 37/* (index of first match is returned, or -1) */
38#ifdef UNUSED
24int index_in_substr_array(const char * const string_array[], const char *key) 39int index_in_substr_array(const char * const string_array[], const char *key)
25{ 40{
26 int i; 41 int i;
@@ -34,3 +49,21 @@ int index_in_substr_array(const char * const string_array[], const char *key)
34 } 49 }
35 return -1; 50 return -1;
36} 51}
52#endif
53
54int index_in_substrings(const char *strings, const char *key)
55{
56 int len = strlen(key);
57
58 if (len) {
59 int idx = 0;
60 while (strings[0]) {
61 if (strncmp(strings, key, len) == 0) {
62 return idx;
63 }
64 strings += strlen(strings) + 1; /* skip NUL */
65 idx++;
66 }
67 }
68 return -1;
69}