diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-03-23 18:55:36 +0700 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2015-03-26 11:56:22 +0100 |
commit | 4034a06ddb82ec9868cd52496fef2f5faa25575f (patch) | |
tree | a832cd56abb7830985f3e7e9dff7451b96478c24 /src/shared/util.h | |
parent | be3ce3014eacd66fa292fc9e4e6b3d3b0ef7de23 (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.h | 9 |
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); |