summaryrefslogtreecommitdiff
path: root/src/shared/util.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-03-23 18:55:36 +0700
committerLennart Poettering <lennart@poettering.net>2015-03-26 11:56:22 +0100
commit4034a06ddb82ec9868cd52496fef2f5faa25575f (patch)
treea832cd56abb7830985f3e7e9dff7451b96478c24 /src/shared/util.h
parentbe3ce3014eacd66fa292fc9e4e6b3d3b0ef7de23 (diff)
util: rework word parsing and c unescaping code
When parsing words from input files, optionally automatically unescape the passed strings, controllable via a new flags parameter. Make use of this in tmpfiles, and port everything else over, too. This improves parsing quite a bit, since we no longer have to process the same string multiple times with different calls, where an earlier call might corrupt the input for a later call.
Diffstat (limited to 'src/shared/util.h')
-rw-r--r--src/shared/util.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/shared/util.h b/src/shared/util.h
index 29e85bb7e1..124c7c06d4 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
@@ -1017,8 +1017,13 @@ int take_password_lock(const char *root);
int is_symlink(const char *path);
int is_dir(const char *path, bool follow);
-int unquote_first_word(const char **p, char **ret, bool relax);
-int unquote_many_words(const char **p, ...) _sentinel_;
+typedef enum UnquoteFlags{
+ UNQUOTE_RELAX = 1,
+ UNQUOTE_CUNESCAPE = 2,
+} UnquoteFlags;
+
+int unquote_first_word(const char **p, char **ret, UnquoteFlags flags);
+int unquote_many_words(const char **p, UnquoteFlags flags, ...) _sentinel_;
int free_and_strdup(char **p, const char *s);