diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-07-07 20:58:02 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-07-07 20:58:02 +0200 |
commit | 6febfd0d4bdf7519e119149b8d8ec03c210aed1d (patch) | |
tree | a56870e2efd0e93d95d9d58664cc9ae808ee0d6f /src/util.c | |
parent | 0bab36f250cc79776954fd6066c1e2a33f64c016 (diff) |
util: introduce cunescape_length()
Diffstat (limited to 'src/util.c')
-rw-r--r-- | src/util.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/util.c b/src/util.c index 58b96aec68..5103cc6ce2 100644 --- a/src/util.c +++ b/src/util.c @@ -1129,7 +1129,7 @@ char *cescape(const char *s) { return r; } -char *cunescape(const char *s) { +char *cunescape_length(const char *s, size_t length) { char *r, *t; const char *f; @@ -1137,10 +1137,10 @@ char *cunescape(const char *s) { /* Undoes C style string escaping */ - if (!(r = new(char, strlen(s)+1))) + if (!(r = new(char, length+1))) return r; - for (f = s, t = r; *f; f++) { + for (f = s, t = r; f < s + length; f++) { if (*f != '\\') { *(t++) = *f; @@ -1242,6 +1242,9 @@ finish: return r; } +char *cunescape(const char *s) { + return cunescape_length(s, strlen(s)); +} char *xescape(const char *s, const char *bad) { char *r, *t; |