X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fstrv.c;h=9dbab2937cd3c39c525d042c5056bc237a6a9913;hp=01464e1e330816bfd0f4fae3af4ae3085b5ac0b6;hb=598b557bf0dea33db2c13d383382efbd847ed5f0;hpb=ddb26e1818f67c2b97313d2ccf7468b2240ec086 diff --git a/src/strv.c b/src/strv.c index 01464e1e3..9dbab2937 100644 --- a/src/strv.c +++ b/src/strv.c @@ -264,7 +264,7 @@ char **strv_split_quoted(const char *s) { i = 0; FOREACH_WORD_QUOTED(w, l, s, state) - if (!(r[i++] = strndup(w, l))) { + if (!(r[i++] = cunescape_length(w, l))) { strv_free(r); return NULL; } @@ -539,3 +539,20 @@ fail: return NULL; } + +char *strv_env_get_with_length(char **l, const char *name, size_t k) { + char **i; + + assert(name); + + STRV_FOREACH(i, l) + if (strncmp(*i, name, k) == 0 && + (*i)[k] == '=') + return *i + k + 1; + + return NULL; +} + +char *strv_env_get(char **l, const char *name) { + return strv_env_get_with_length(l, name, strlen(name)); +}