1/* vi: set sw=4 ts=4: */ 2/* 3 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. 4 */ 5 6#include "libbb.h" 7 8/* returns the array index of the string */ 9/* (index of first match is returned, or -1) */ 10int index_in_str_array(const char *const string_array[], const char *key) 11{ 12 int i; 13 14 for (i = 0; string_array[i] != 0; i++) { 15 if (strcmp(string_array[i], key) == 0) { 16 return i; 17 } 18 } 19 return -1; 20} 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 36/* returns the array index of the string, even if it matches only a beginning */ 37/* (index of first match is returned, or -1) */ 38#ifdef UNUSED 39int index_in_substr_array(const char *const string_array[], const char *key) 40{ 41 int i; 42 int len = strlen(key); 43 if (len) { 44 for (i = 0; string_array[i] != 0; i++) { 45 if (strncmp(string_array[i], key, len) == 0) { 46 return i; 47 } 48 } 49 } 50 return -1; 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} 70