mirror of
https://github.com/zeek/zeek.git
synced 2025-10-07 09:08:20 +00:00
Changing what's escaped when printing.
With this patch the model is: - "print" cleans the data so that non-printable characters get escaped. This is not necessarily reversible. - to print in a reversible way, one can go through escape_string(); this escapes backslashes as well to make the decoding non-ambigious. - Logging always escapes similar to escape_string(), making it reversible. Compared to master, we also change the escaping as follows: - We now only escape with "\xXX", no more "^X" or "\0". Exception: backslashes. - We escape backlashes as "\\". - There's no "alternative" output style anymore, i.e., fmt() '%A' qualifier is gone. Baselines in testing/btest are updated, external tests not yet. Addresses BIT-1333.
This commit is contained in:
parent
e41c623ad0
commit
7344052b50
66 changed files with 397 additions and 349 deletions
12
src/util.cc
12
src/util.cc
|
@ -141,10 +141,16 @@ ODesc* get_escaped_string(ODesc* d, const char* str, size_t len,
|
|||
|
||||
if ( escape_all || isspace(c) || ! isascii(c) || ! isprint(c) )
|
||||
{
|
||||
char hex[4] = {'\\', 'x', '0', '0' };
|
||||
bytetohex(c, hex + 2);
|
||||
d->AddRaw(hex, 4);
|
||||
if ( c == '\\' )
|
||||
d->AddRaw("\\\\", 2);
|
||||
else
|
||||
{
|
||||
char hex[4] = {'\\', 'x', '0', '0' };
|
||||
bytetohex(c, hex + 2);
|
||||
d->AddRaw(hex, 4);
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
d->AddRaw(&c, 1);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue