11.12.2013 at 15:15 Lennart Poettering <lenn...@poettering.net> wrote:

On Wed, 11.12.13 14:24, Maciej Wereski (m.were...@partner.samsung.com) 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.

There is one problem with using it in this patch. In my case quotation mark isn't first char of the string, so using pointer and length won't get rid of it. String needs to be modified.

regards,
--
Maciej Wereski
Samsung R&D Institute Poland
Samsung Electronics
m.were...@partner.samsung.com
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to