]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
libsmbconf: add smbconf_reverse_find_in_array() to find last occurence of a string.
authorMichael Adam <obnox@samba.org>
Mon, 7 Apr 2008 22:03:39 +0000 (00:03 +0200)
committerMichael Adam <obnox@samba.org>
Wed, 9 Apr 2008 23:28:55 +0000 (01:28 +0200)
Michael

source/lib/smbconf/smbconf_private.h
source/lib/smbconf/smbconf_util.c

index cba9148c7c8466357ec9c5063ba10c8fe0716a23..44229e26ec34d97ba46823208dff8c804d8a8162 100644 (file)
@@ -70,4 +70,7 @@ WERROR smbconf_add_string_to_array(TALLOC_CTX *mem_ctx,
 bool smbconf_find_in_array(const char *string, char **list,
                           uint32_t num_entries, uint32_t *entry);
 
+bool smbconf_reverse_find_in_array(const char *string, char **list,
+                                  uint32_t num_entries, uint32_t *entry);
+
 #endif
index 99b08cdd70827d5cb0a2bbce9156c38d46a6d1fe..ee79b6360fb93f12e637e0eb24f948d276ba8e2a 100644 (file)
@@ -122,3 +122,24 @@ bool smbconf_find_in_array(const char *string, char **list,
 
        return false;
 }
+
+bool smbconf_reverse_find_in_array(const char *string, char **list,
+                                  uint32_t num_entries, uint32_t *entry)
+{
+       uint32_t i;
+
+       if ((string == NULL) || (list == NULL) || (num_entries == 0)) {
+               return false;
+       }
+
+       for (i = num_entries - 1; i >= 0; i++) {
+               if (strequal(string, list[i])) {
+                       if (entry != NULL) {
+                               *entry = i;
+                       }
+                       return true;
+               }
+       }
+
+       return false;
+}