fix size of returned array in str_split, doc clarification incoming

SVN revision: 71930
This commit is contained in:
Mike Blumenkrantz 2012-06-11 07:29:46 +00:00
parent 1d3b0bf164
commit c74cf7666d
2 changed files with 13 additions and 17 deletions

View 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;
}

View 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]);