mirror of
https://git.proxmox.com/git/systemd
synced 2026-01-23 16:25:43 +00:00
util: introduce cunescape_length()
This commit is contained in:
parent
0bab36f250
commit
6febfd0d4b
@ -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;
|
||||
|
||||
11
src/util.h
11
src/util.h
@ -222,6 +222,12 @@ int undecchar(char c);
|
||||
|
||||
char *cescape(const char *s);
|
||||
char *cunescape(const char *s);
|
||||
char *cunescape_length(const char *s, size_t length);
|
||||
|
||||
char *xescape(const char *s, const char *bad);
|
||||
|
||||
char *bus_path_escape(const char *s);
|
||||
char *bus_path_unescape(const char *s);
|
||||
|
||||
char *path_kill_slashes(char *path);
|
||||
|
||||
@ -230,11 +236,6 @@ bool path_equal(const char *a, const char *b);
|
||||
|
||||
char *ascii_strlower(char *path);
|
||||
|
||||
char *xescape(const char *s, const char *bad);
|
||||
|
||||
char *bus_path_escape(const char *s);
|
||||
char *bus_path_unescape(const char *s);
|
||||
|
||||
bool ignore_file(const char *filename);
|
||||
|
||||
bool chars_intersect(const char *a, const char *b);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user