On Wed, 11.12.13 14:24, Maciej Wereski ([email protected]) wrote:
> >>+ xattr = new0(char, strlen(i->argument)+1);
> >>+ if (!xattr)
> >>+ return log_oom();
> >>+
> >>+ tmp = strv_split(i->argument, WHITESPACE);
> >>+ if (!tmp)
> >>+ return log_oom();
> >>+
> >>+ strv_len = strv_length(tmp);
> >>+ for (n = 0; n < strv_len; ++n) {
> >
> >Sounds like a job for the STRV_FOREACH() macro. Since you don't actually
> >need the strv as strv here it sounds like you actually really want to
> >use FOREACH_WORD_QUOTED() for this, which will also do the unquoting for
> >you.
>
> Well, FOREACH_WORD_QUOTED() won't work properly, because quotation marks
> aren't first chars in strings (e.g. user.name="John Smith"). Maybe better
> idea would be to introduce mandatory separator (e.g. semicolon) instead of
> quotation marks.
Yeah, FOREACH_WORD_QUOTED() is quite badly designed. We should fix it to
do somewhat sane quoting and escaping. I'll look into it.
Lennart
--
Lennart Poettering, Red Hat
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel