mirror of
https://github.com/zeek/zeek.git
synced 2025-10-13 20:18: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
10
src/Desc.cc
10
src/Desc.cc
|
@ -181,13 +181,7 @@ void ODesc::AddBytes(const BroString* s)
|
|||
AddBytes(reinterpret_cast<const char*>(s->Bytes()), s->Len());
|
||||
else
|
||||
{
|
||||
int render_style = BroString::EXPANDED_STRING;
|
||||
//if ( Style() == ALTERNATIVE_STYLE )
|
||||
// // Only change NULs, since we can't in any case
|
||||
// // cope with them.
|
||||
// render_style = BroString::ESC_NULL;
|
||||
|
||||
const char* str = s->Render(render_style);
|
||||
const char* str = s->Render(BroString::EXPANDED_STRING);
|
||||
Add(str);
|
||||
delete [] str;
|
||||
}
|
||||
|
@ -256,7 +250,7 @@ pair<const char*, size_t> ODesc::FirstEscapeLoc(const char* bytes, size_t n)
|
|||
|
||||
for ( size_t i = 0; i < n; ++i )
|
||||
{
|
||||
if ( ! isprint(bytes[i]) )
|
||||
if ( ! isprint(bytes[i]) || bytes[i] == '\\' )
|
||||
return escape_pos(bytes + i, 1);
|
||||
|
||||
size_t len = StartsWithEscapeSequence(bytes + i, bytes + n);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue