diff --git a/tools/hscollider/GroundTruth.cpp b/tools/hscollider/GroundTruth.cpp index f30a8f5e..a2673063 100644 --- a/tools/hscollider/GroundTruth.cpp +++ b/tools/hscollider/GroundTruth.cpp @@ -241,6 +241,13 @@ void addCallout(string &re) { re.append("\\E)(?C)"); } +static +bool isUtf8(const CompiledPcre &compiled) { + unsigned long int options = 0; + pcre_fullinfo(compiled.bytecode, NULL, PCRE_INFO_OPTIONS, &options); + return options & PCRE_UTF8; +} + unique_ptr GroundTruth::compile(unsigned id, bool no_callouts) { bool highlander = false; @@ -380,6 +387,8 @@ GroundTruth::compile(unsigned id, bool no_callouts) { throw PcreCompileFailure(oss.str()); } + compiled->utf8 |= isUtf8(*compiled); + return compiled; } @@ -451,13 +460,6 @@ int scanBasic(const CompiledPcre &compiled, const string &buffer, return ret; } -static -bool isUtf8(const CompiledPcre &compiled) { - unsigned long int options = 0; - pcre_fullinfo(compiled.bytecode, NULL, PCRE_INFO_OPTIONS, &options); - return options & PCRE_UTF8; -} - static CaptureVec makeCaptureVec(const vector &ovector, int ret) { assert(ret > 0);