On 10/15/2012 12:30 PM, Michal Židek wrote:
Added new parameter to split_on_separator that allows to skip
empty values.
https://fedorahosted.org/sssd/ticket/1484
Patch is in attachment.
Michal
Nack. See below.
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -31,7 +31,8 @@
* the separator is a string, and is case-sensitive.
* optionally single values can be trimmed of of spaces and tabs */
int split_on_separator(TALLOC_CTX *mem_ctx, const char *str,
- const char sep, bool trim, char ***_list, int *size)
+ const char sep, bool trim, bool skip_empty,
+ char ***_list, int *size)
{
const char *t, *p, *n;
size_t l, len;
@@ -80,6 +81,11 @@ int split_on_separator(TALLOC_CTX *mem_ctx, const char *str,
}
if (len == 0) {
+ if (skip_empty) {
+ /* Move to next string and continue */
+ t = n;
+ continue;
+ }
Move this^ condition before talloc_realloc.
Handling last element should be rewritten so we treat it the same way as
all previous elements i.e. trim, check if we will put the element in,
realloc, strdup.