[systemd-devel] [PATCH 4/9] strv: Add strv_split_escaped
Richard Maw
richard.maw at codethink.co.uk
Thu May 28 05:02:10 PDT 2015
This is to strv_split_quoted as unescape_first_word is to
unquote_first_word.
---
src/shared/strv.c | 8 ++++++--
src/shared/strv.h | 1 +
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/shared/strv.c b/src/shared/strv.c
index d44a72f..a6c42d4 100644
--- a/src/shared/strv.c
+++ b/src/shared/strv.c
@@ -278,7 +278,7 @@ char **strv_split_newlines(const char *s) {
return l;
}
-int strv_split_quoted(char ***t, const char *s, UnquoteFlags flags) {
+int strv_split_escaped(char ***t, const char *s, const char *separators, UnquoteFlags flags) {
size_t n = 0, allocated = 0;
_cleanup_strv_free_ char **l = NULL;
int r;
@@ -289,7 +289,7 @@ int strv_split_quoted(char ***t, const char *s, UnquoteFlags flags) {
for (;;) {
_cleanup_free_ char *word = NULL;
- r = unquote_first_word(&s, &word, flags);
+ r = unescape_first_word(&s, &word, separators, flags);
if (r < 0)
return r;
if (r == 0)
@@ -313,6 +313,10 @@ int strv_split_quoted(char ***t, const char *s, UnquoteFlags flags) {
return 0;
}
+int strv_split_quoted(char ***t, const char *s, UnquoteFlags flags) {
+ return strv_split_escaped(t, s, WHITESPACE, flags|UNQUOTE_QUOTES);
+}
+
char *strv_join(char **l, const char *separator) {
char *r, *e;
char **s;
diff --git a/src/shared/strv.h b/src/shared/strv.h
index 22f8f98..edde2e4 100644
--- a/src/shared/strv.h
+++ b/src/shared/strv.h
@@ -73,6 +73,7 @@ static inline bool strv_isempty(char * const *l) {
char **strv_split(const char *s, const char *separator);
char **strv_split_newlines(const char *s);
+int strv_split_escaped(char ***t, const char *s, const char *separators, UnquoteFlags flags);
int strv_split_quoted(char ***t, const char *s, UnquoteFlags flags);
char *strv_join(char **l, const char *separator);
--
1.9.1
More information about the systemd-devel
mailing list