diff --git a/libaegisub/common/parser.cpp b/libaegisub/common/parser.cpp index c855c7e20f4b9501294ff8aa07ab7b492c40dd5e..ef53ed0d20a91da684784cb2431404eae733ce91 100644 --- a/libaegisub/common/parser.cpp +++ b/libaegisub/common/parser.cpp @@ -206,10 +206,12 @@ namespace parser { namespace ass { std::vector<DialogueToken> TokenizeDialogueBody(std::string const& str, bool karaoke_templater) { - dialogue_tokens<lex::lexertl::actor_lexer<>> tokenizer(karaoke_templater); + static const dialogue_tokens<lex::lexertl::actor_lexer<>> kt(true); + static const dialogue_tokens<lex::lexertl::actor_lexer<>> not_kt(false); + auto const& tokenizer = karaoke_templater ? kt : not_kt; - char const* first = str.c_str(); - char const* last = first + str.size(); + char const *first = str.c_str(); + char const *last = first + str.size(); std::vector<DialogueToken> data; auto it = tokenizer.begin(first, last), end = tokenizer.end();