| 543 | |
| 544 | |
| 545 | ScriptScanner::ScriptScanner(const char* buffer, |
| 546 | int buffer_length, |
| 547 | bool is_plain_text) |
| 548 | : start_byte_(buffer), |
| 549 | next_byte_(buffer), |
| 550 | next_byte_limit_(buffer + buffer_length), |
| 551 | byte_length_(buffer_length), |
| 552 | is_plain_text_(is_plain_text), |
| 553 | letters_marks_only_(true), |
| 554 | one_script_only_(true), |
| 555 | exit_state_(kMaxExitStateLettersMarksOnly) { |
| 556 | script_buffer_ = new char[kMaxScriptBuffer]; |
| 557 | script_buffer_lower_ = new char[kMaxScriptLowerBuffer]; |
| 558 | map2original_.Clear(); // map from script_buffer_ to buffer |
| 559 | map2uplow_.Clear(); // map from script_buffer_lower_ to script_buffer_ |
| 560 | } |
| 561 | |
| 562 | // Extended version to allow spans of any non-tag text and spans of mixed script |
| 563 | ScriptScanner::ScriptScanner(const char* buffer, |