+ k = 0;
+ FOREACH_WORD_QUOTED(w, l, rvalue, state) {
+ if (strncmp(w, ";", l) == 0)
+ break;
+
+ k++;
+ }
+
+ if (!(n = new(char*, k + !honour_argv0)))
+ return -ENOMEM;
+
+ k = 0;
+ FOREACH_WORD_QUOTED(w, l, rvalue, state) {
+ if (strncmp(w, ";", l) == 0)
+ break;
+
+ if (honour_argv0 && w == rvalue) {
+ assert(!path);
+ if (!(path = cunescape_length(w, l)))
+ goto fail;
+ } else {
+ if (!(n[k++] = cunescape_length(w, l)))
+ goto fail;
+ }
+ }