|
@@ -20,40 +20,6 @@ int string_get_size(u64 size, enum string_size_units units,
|
|
|
#define UNESCAPE_ANY \
|
|
#define UNESCAPE_ANY \
|
|
|
(UNESCAPE_SPACE | UNESCAPE_OCTAL | UNESCAPE_HEX | UNESCAPE_SPECIAL)
|
|
(UNESCAPE_SPACE | UNESCAPE_OCTAL | UNESCAPE_HEX | UNESCAPE_SPECIAL)
|
|
|
|
|
|
|
|
-/**
|
|
|
|
|
- * string_unescape - unquote characters in the given string
|
|
|
|
|
- * @src: source buffer (escaped)
|
|
|
|
|
- * @dst: destination buffer (unescaped)
|
|
|
|
|
- * @size: size of the destination buffer (0 to unlimit)
|
|
|
|
|
- * @flags: combination of the flags (bitwise OR):
|
|
|
|
|
- * %UNESCAPE_SPACE:
|
|
|
|
|
- * '\f' - form feed
|
|
|
|
|
- * '\n' - new line
|
|
|
|
|
- * '\r' - carriage return
|
|
|
|
|
- * '\t' - horizontal tab
|
|
|
|
|
- * '\v' - vertical tab
|
|
|
|
|
- * %UNESCAPE_OCTAL:
|
|
|
|
|
- * '\NNN' - byte with octal value NNN (1 to 3 digits)
|
|
|
|
|
- * %UNESCAPE_HEX:
|
|
|
|
|
- * '\xHH' - byte with hexadecimal value HH (1 to 2 digits)
|
|
|
|
|
- * %UNESCAPE_SPECIAL:
|
|
|
|
|
- * '\"' - double quote
|
|
|
|
|
- * '\\' - backslash
|
|
|
|
|
- * '\a' - alert (BEL)
|
|
|
|
|
- * '\e' - escape
|
|
|
|
|
- * %UNESCAPE_ANY:
|
|
|
|
|
- * all previous together
|
|
|
|
|
- *
|
|
|
|
|
- * Returns amount of characters processed to the destination buffer excluding
|
|
|
|
|
- * trailing '\0'.
|
|
|
|
|
- *
|
|
|
|
|
- * Because the size of the output will be the same as or less than the size of
|
|
|
|
|
- * the input, the transformation may be performed in place.
|
|
|
|
|
- *
|
|
|
|
|
- * Caller must provide valid source and destination pointers. Be aware that
|
|
|
|
|
- * destination buffer will always be NULL-terminated. Source string must be
|
|
|
|
|
- * NULL-terminated as well.
|
|
|
|
|
- */
|
|
|
|
|
int string_unescape(char *src, char *dst, size_t size, unsigned int flags);
|
|
int string_unescape(char *src, char *dst, size_t size, unsigned int flags);
|
|
|
|
|
|
|
|
static inline int string_unescape_inplace(char *buf, unsigned int flags)
|
|
static inline int string_unescape_inplace(char *buf, unsigned int flags)
|