fix size of returned array in str_split, doc clarification incoming
authordiscomfitor <discomfitor>
Mon, 11 Jun 2012 07:29:46 +0000 (07:29 +0000)
committerdiscomfitor <discomfitor@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 11 Jun 2012 07:29:46 +0000 (07:29 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@71930 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/eina_str.c
src/tests/eina_test_str.c

index 4ad77c4..2a54c00 100644 (file)
@@ -162,7 +162,7 @@ eina_str_split_full_helper(const char *str,
         str_array[0] = s;
         str_array[1] = NULL;
         if (elements)
-          *elements = 2;
+          *elements = 1;
         return str_array;
      }
 
@@ -186,7 +186,7 @@ eina_str_split_full_helper(const char *str,
           str_array[x] = s + x;
         str_array[x] = NULL;
         if (elements)
-          *elements = x + 1;
+          *elements = x;
         return str_array;
      }
    /* copy tokens and string */
@@ -283,11 +283,7 @@ eina_str_split_full_helper(const char *str,
      }
    str_array[tokens] = NULL;
    if (elements)
-     {
-        *elements = tokens;
-        if ((!max_tokens) || (tokens == (unsigned int)max_tokens))
-          (*elements)++;
-     }
+     *elements = tokens;
 
    return str_array;
 }
index b1bc4ff..7fefc26 100644 (file)
@@ -96,7 +96,7 @@ START_TEST(str_split)
 
    result = eina_str_split_full("nomatch", "x", -1, &elements);
         fail_if(result == NULL);
-        fail_if(elements != 2);
+        fail_if(elements != 1);
         fail_if(strcmp(result[0], "nomatch") != 0);
         fail_if(result[1]);
         free(result[0]);
@@ -104,7 +104,7 @@ START_TEST(str_split)
 
    result = eina_str_split_full("nomatch", "xyz", -1, &elements);
         fail_if(result == NULL);
-        fail_if(elements != 2);
+        fail_if(elements != 1);
         fail_if(strcmp(result[0], "nomatch") != 0);
         fail_if(result[1]);
         free(result[0]);
@@ -112,8 +112,8 @@ START_TEST(str_split)
 
    result = eina_str_split_full("match:match:match", ":", -1, &elements);
         fail_if(result == NULL);
-        fail_if(elements != 4);
-   for (elements = 0; elements < 4 - 1; elements++)
+        fail_if(elements != 3);
+   for (elements = 0; elements < 3 - 1; elements++)
      fail_if(strcmp(result[elements], "match") != 0);
      fail_if(result[3]);
         free(result[0]);
@@ -121,7 +121,7 @@ START_TEST(str_split)
 
    result = eina_str_split_full("a:b:c", ":", -1, &elements);
         fail_if(result == NULL);
-        fail_if(elements != 4);
+        fail_if(elements != 3);
         fail_if(strcmp(result[0], "a") != 0);
         fail_if(strcmp(result[1], "b") != 0);
         fail_if(strcmp(result[2], "c") != 0);
@@ -131,7 +131,7 @@ START_TEST(str_split)
 
    result = eina_str_split_full("a:b:", ":", -1, &elements);
         fail_if(result == NULL);
-        fail_if(elements != 4);
+        fail_if(elements != 3);
         fail_if(strcmp(result[0], "a") != 0);
         fail_if(strcmp(result[1], "b") != 0);
         fail_if(strcmp(result[2], "") != 0);
@@ -141,7 +141,7 @@ START_TEST(str_split)
 
    result = eina_str_split_full(":b:c", ":", -1, &elements);
         fail_if(result == NULL);
-        fail_if(elements != 4);
+        fail_if(elements != 3);
         fail_if(strcmp(result[0], "") != 0);
         fail_if(strcmp(result[1], "b") != 0);
         fail_if(strcmp(result[2], "c") != 0);
@@ -151,7 +151,7 @@ START_TEST(str_split)
 
    result = eina_str_split_full(":", ":", -1, &elements);
         fail_if(result == NULL);
-        fail_if(elements != 3);
+        fail_if(elements != 2);
         fail_if(strcmp(result[0], "") != 0);
         fail_if(strcmp(result[1], "") != 0);
         fail_if(result[2]);
@@ -160,7 +160,7 @@ START_TEST(str_split)
 
    result = eina_str_split_full("a", "!!!!!!!!!", -1, &elements);
         fail_if(result == NULL);
-        fail_if(elements != 2);
+        fail_if(elements != 1);
         fail_if(strcmp(result[0], "a") != 0);
         fail_if(result[1]);
         free(result[0]);
@@ -168,7 +168,7 @@ START_TEST(str_split)
 
    result = eina_str_split_full("aaba", "ab", -1, &elements);
         fail_if(result == NULL);
-        fail_if(elements != 3);
+        fail_if(elements != 2);
         fail_if(strcmp(result[0], "a") != 0);
         fail_if(strcmp(result[1], "a") != 0);
         fail_if(result[2]);