cstr_escape
Available inall subroutines.
Escapes bytes from a string using C-style escape sequences.
The escaping rules in priority order are as follows:
- if the byte is the double quote (0x22), it is escaped as
\"(backslash double quote) - if the byte is the backslash (0x5C), it is escaped as
\\(double backslash) - if the byte is one of the following control characters, it is escaped as follows:
\b(0x08, backspace)\t(0x09, horizontal tab)\n(0x0A, newline)\v(0x0B, vertical tab)\r(0x0D, carriage return)
- if the byte is less than or equal to 0x1F, or it is greater or equal to 0x7F
(in other words, a control character not explicitly listed above),
it is escaped as
\xHHwhere HH is the hexadecimal value of the byte - if none of the above matched, the byte is passed through as-is:
for example
afor 0x61
HINT: If you are escaping JSON strings, use json.escape instead.
This function is not prefixed with the std. namespace.
Example
# var.escaped is set to: city="london"declare local var.escaped STRING;set var.escaped = "city=%22" + cstr_escape(client.geo.city.ascii) + "%22";