Move BroString to zeek namespace

This commit is contained in:
Tim Wojtulewicz 2020-06-24 10:54:29 -07:00
parent 464efbe66a
commit 58c6e10b62
54 changed files with 317 additions and 303 deletions

View file

@ -65,11 +65,11 @@ function string_cat%(...%): string
n += a->AsString()->Len();
u_char* b = new u_char[n+1];
BroString* s = new BroString(1, b, n);
zeek::BroString* s = new zeek::BroString(1, b, n);
for ( const auto& a : @ARG@ )
{
const BroString* s = a->AsString();
const zeek::BroString* s = a->AsString();
memcpy(b, s->Bytes(), s->Len());
b += s->Len();
}
@ -111,7 +111,7 @@ function join_string_vec%(vec: string_vec, sep: string%): string
e->Describe(&d);
}
BroString* s = new BroString(1, d.TakeBytes(), d.Len());
zeek::BroString* s = new zeek::BroString(1, d.TakeBytes(), d.Len());
s->SetUseFreeToDelete(true);
return zeek::make_intrusive<zeek::StringVal>(s);
@ -162,7 +162,7 @@ function edit%(arg_s: string, arg_edit_char: string%): string
new_s[ind] = '\0';
return zeek::make_intrusive<zeek::StringVal>(new BroString(1, byte_vec(new_s), ind));
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(1, byte_vec(new_s), ind));
%}
## Get a substring from a string, given a starting position and length.
@ -180,10 +180,10 @@ function sub_bytes%(s: string, start: count, n: int%): string
if ( start > 0 )
--start; // make it 0-based
BroString* ss = s->AsString()->GetSubstring(start, n);
zeek::BroString* ss = s->AsString()->GetSubstring(start, n);
if ( ! ss )
ss = new BroString("");
ss = new zeek::BroString("");
return zeek::make_intrusive<zeek::StringVal>(ss);
%}
@ -541,7 +541,7 @@ function to_lower%(str: string%): string
*ls++ = '\0';
return zeek::make_intrusive<zeek::StringVal>(new BroString(1, lower_s, n));
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(1, lower_s, n));
%}
## Replaces all lowercase letters in a string with their uppercase counterpart.
@ -570,7 +570,7 @@ function to_upper%(str: string%): string
*us++ = '\0';
return zeek::make_intrusive<zeek::StringVal>(new BroString(1, upper_s, n));
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(1, upper_s, n));
%}
## Replaces non-printable characters in a string with escaped sequences. The
@ -590,7 +590,7 @@ function to_upper%(str: string%): string
function clean%(str: string%): string
%{
char* s = str->AsString()->Render();
return zeek::make_intrusive<zeek::StringVal>(new BroString(1, byte_vec(s), strlen(s)));
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(1, byte_vec(s), strlen(s)));
%}
## Replaces non-printable characters in a string with escaped sequences. The
@ -607,8 +607,8 @@ function clean%(str: string%): string
## .. zeek:see:: clean escape_string
function to_string_literal%(str: string%): string
%{
char* s = str->AsString()->Render(BroString::BRO_STRING_LITERAL);
return zeek::make_intrusive<zeek::StringVal>(new BroString(1, byte_vec(s), strlen(s)));
char* s = str->AsString()->Render(zeek::BroString::BRO_STRING_LITERAL);
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(1, byte_vec(s), strlen(s)));
%}
## Determines whether a given string contains only ASCII characters.
@ -646,7 +646,7 @@ function is_ascii%(str: string%): bool
## .. zeek:see:: clean to_string_literal
function escape_string%(s: string%): string
%{
char* escstr = s->AsString()->Render(BroString::ESC_HEX | BroString::ESC_ESC);
char* escstr = s->AsString()->Render(zeek::BroString::ESC_HEX | zeek::BroString::ESC_ESC);
auto val = zeek::make_intrusive<zeek::StringVal>(escstr);
delete [] escstr;
return val;
@ -666,7 +666,7 @@ function string_to_ascii_hex%(s: string%): string
for ( int i = 0; i < s->Len(); ++i )
sprintf(x + i * 2, "%02x", sp[i]);
return zeek::make_intrusive<zeek::StringVal>(new BroString(1, (u_char*) x, s->Len() * 2));
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(1, (u_char*) x, s->Len() * 2));
%}
## Uses the Smith-Waterman algorithm to find similar/overlapping substrings.
@ -706,20 +706,20 @@ function str_smith_waterman%(s1: string, s2: string, params: sw_params%) : sw_su
function str_split%(s: string, idx: index_vec%): string_vec
%{
auto idx_v = idx->AsVector();
BroString::IdxVec indices(idx_v->size());
zeek::BroString::IdxVec indices(idx_v->size());
unsigned int i;
for ( i = 0; i < idx_v->size(); i++ )
indices[i] = (*idx_v)[i]->AsCount();
BroString::Vec* result = s->AsString()->Split(indices);
zeek::BroString::Vec* result = s->AsString()->Split(indices);
auto result_v = zeek::make_intrusive<zeek::VectorVal>(zeek::id::string_vec);
if ( result )
{
i = 1;
for ( BroString::VecIt it = result->begin();
for ( zeek::BroString::VecIt it = result->begin();
it != result->end(); ++it, ++i )
result_v->Assign(i, zeek::make_intrusive<zeek::StringVal>(*it));
// StringVal now possesses string.
@ -744,7 +744,7 @@ function strip%(str: string%): string
if ( n == 0 )
// Empty string.
return zeek::make_intrusive<zeek::StringVal>(new BroString(s, n, 1));
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(s, n, 1));
const u_char* sp = s;
@ -757,11 +757,11 @@ function strip%(str: string%): string
while ( isspace(*sp) && sp <= e )
++sp;
return zeek::make_intrusive<zeek::StringVal>(new BroString(sp, (e - sp + 1), 1));
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(sp, (e - sp + 1), 1));
%}
%%{
static bool should_strip(u_char c, const BroString* strip_chars)
static bool should_strip(u_char c, const zeek::BroString* strip_chars)
{
auto strip_bytes = strip_chars->Bytes();
@ -792,7 +792,7 @@ function lstrip%(str: string, chars: string &default=" \t\n\r\v\f"%): string
// empty input string
if ( n == 0 )
return zeek::make_intrusive<zeek::StringVal>(new BroString(s, n, 1));
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(s, n, 1));
int i;
auto bs_chars = chars->AsString();
@ -801,7 +801,7 @@ function lstrip%(str: string, chars: string &default=" \t\n\r\v\f"%): string
if ( ! should_strip(s[i], bs_chars) )
break;
return zeek::make_intrusive<zeek::StringVal>(new BroString(s + i, n - i, 1));
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(s + i, n - i, 1));
%}
## Removes all combinations of characters in the *chars* argument
@ -823,7 +823,7 @@ function rstrip%(str: string, chars: string &default=" \t\n\r\v\f"%): string
// empty input string
if ( n == 0 )
return zeek::make_intrusive<zeek::StringVal>(new BroString(s, n, 1));
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(s, n, 1));
int n_to_remove;
auto bs_chars = chars->AsString();
@ -832,7 +832,7 @@ function rstrip%(str: string, chars: string &default=" \t\n\r\v\f"%): string
if ( ! should_strip(s[n - n_to_remove - 1], bs_chars) )
break;
return zeek::make_intrusive<zeek::StringVal>(new BroString(s, n - n_to_remove, 1));
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(s, n - n_to_remove, 1));
%}
## Generates a string of a given size and fills it with repetitions of a source
@ -854,7 +854,7 @@ function string_fill%(len: int, source: string%): string
dst[len - 1] = 0;
return zeek::make_intrusive<zeek::StringVal>(new BroString(1, byte_vec(dst), len));
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(1, byte_vec(dst), len));
%}
## Takes a string and escapes characters that would allow execution of
@ -894,7 +894,7 @@ function safe_shell_quote%(source: string%): string
dst[j++] = '"';
dst[j] = '\0';
return zeek::make_intrusive<zeek::StringVal>(new BroString(1, dst, j));
return zeek::make_intrusive<zeek::StringVal>(new zeek::BroString(1, dst, j));
%}
## Finds all occurrences of a pattern in a string.