On Fri, Jun 28, 2013 at 1:55 PM, Michal Novotny <minovotn@redhat.com> wrote:

On 06/28/2013 01:54 PM, Peter Krempa wrote:
> On 06/28/13 13:50, Michal Novotny wrote:
>> On 06/28/2013 01:48 PM, Daniel P. Berrange wrote:
>>> On Fri, Jun 28, 2013 at 01:43:44PM +0200, Michal Novotny wrote:
>>>> if libvirt doesn't have the tokenizer support yet, it may be a good RFE
>>>> as I believe it could be really useful ;-)
>>>>
>>>> Peter, do you know about anything libvirt supports to tokenize string?
>>> We have virStringSplit for tokenizing strings which have a fixed
>>> separator.
>>>
>>>
>>> Daniel
>> That sounds good, however what about splitting the function to 2
>> separate functions, one accepting the second parameter as the separator,
>> called e.g. virStringSplitBy() and second just calling the first one
>> with the fixed separator?
>>
>> Wouldn't it be better?
> I think the current state is more than sufficient:
>
> /**
>  * virStringSplit:
>  * @string: a string to split
>  * @delim: a string which specifies the places at which to split
>  *     the string. The delimiter is not included in any of the resulting
>  *     strings, unless @max_tokens is reached.
>  * @max_tokens: the maximum number of pieces to split @string into.
>  *     If this is 0, the string is split completely.
>  *
>  * Splits a string into a maximum of @max_tokens pieces, using the given
>  * @delim. If @max_tokens is reached, the remainder of @string is
>  * appended to the last token.
>  *
>  * As a special case, the result of splitting the empty string "" is an empty
>  * vector, not a vector containing a single string. The reason for this
>  * special case is that being able to represent a empty vector is typically
>  * more useful than consistent handling of empty elements. If you do need
>  * to represent empty elements, you'll need to check for the empty string
>  * before calling virStringSplit().
>  *
>  * Return value: a newly-allocated NULL-terminated array of strings. Use
>  *    virStringFreeList() to free it.
>  */
> char **virStringSplit(const char *string,
>                       const char *delim,
>                       size_t max_tokens)

Ah, then I misunderstood the "fixed separator" thing ;-) I was thinking
the delimiter it fixed. This one looks good ;-)

David, you could use virStringSplit() instead ;-)


I will wait for Peter's patch ;)


regards,
david