int PonscripterLabel::textCommand() { if (pretextgosub_label && (line_enter_status == 0 || (line_enter_status == 1 && (script_h.readStrBuf(string_buffer_offset) == '[' || (zenkakko_flag && file_encoding->DecodeChar(script_h.getStrBuf(string_buffer_offset)) == 0x3010 /* left lenticular bracket */))))) { gosubDoPretextgosub(); line_enter_status = 1; return RET_CONTINUE; } int ret = enterTextDisplayMode(); if (ret != RET_NOMATCH) return ret; line_enter_status = 2; ret = processText(); if (ret == RET_CONTINUE) { indent_offset = 0; } return ret; }
int ONScripter::textCommand() { if (line_enter_status <= 1 && saveon_flag && internal_saveon_flag){ saveSaveFile( -1 ); internal_saveon_flag = false; } char *buf = script_h.getStringBuffer(); bool tag_flag = true; if (buf[string_buffer_offset] == '[') string_buffer_offset++; else if (zenkakko_flag && buf[string_buffer_offset ] == "�y"[0] && buf[string_buffer_offset+1] == "�y"[1]) string_buffer_offset += 2; else tag_flag = false; int start_offset = string_buffer_offset; int end_offset = start_offset; while (tag_flag && buf[string_buffer_offset]){ if (zenkakko_flag && buf[string_buffer_offset ] == "�z"[0] && buf[string_buffer_offset+1] == "�z"[1]){ end_offset = string_buffer_offset; string_buffer_offset += 2; break; } else if (buf[string_buffer_offset] == ']'){ end_offset = string_buffer_offset; string_buffer_offset++; break; } else if (IS_TWO_BYTE(buf[string_buffer_offset])) string_buffer_offset += 2; else string_buffer_offset++; } if (pretextgosub_label && (!pagetag_flag || page_enter_status == 0) && line_enter_status == 0){ if (current_page->tag) delete[] current_page->tag; if (end_offset > start_offset){ int len = end_offset - start_offset; current_page->tag = new char[len+1]; memcpy(current_page->tag, buf + start_offset, len); current_page->tag[len] = 0; } else{ current_page->tag = NULL; } gosubReal( pretextgosub_label, script_h.getCurrent() ); line_enter_status = 1; return RET_CONTINUE; } enterTextDisplayMode(); line_enter_status = 2; if (pagetag_flag) page_enter_status = 1; while(processText()); return RET_CONTINUE; }
int ONScripterLabel::textCommand() { char *start_buf = script_h.getCurrent(); if (pretextgosub_label && (!pagetag_flag || page_enter_status == 0) && (line_enter_status == 0 || (line_enter_status == 1 && (start_buf[0] == '[' || zenkakko_flag && start_buf[0] == LOC_TWOBYTE_SYMBOL('[')[0] && start_buf[1] == LOC_TWOBYTE_SYMBOL('[')[1]))) ){ if (start_buf[0] == '[') start_buf++; else if (zenkakko_flag && start_buf[0] == LOC_TWOBYTE_SYMBOL('[')[0] && start_buf[1] == LOC_TWOBYTE_SYMBOL('[')[1]) start_buf += 2; else start_buf = NULL; char *end_buf = start_buf; while (end_buf && *end_buf){ if (zenkakko_flag && end_buf[0] == LOC_TWOBYTE_SYMBOL(']')[0] && end_buf[1] == LOC_TWOBYTE_SYMBOL(']')[1]){ script_h.setCurrent(end_buf+2); break; } else if (*end_buf == ']'){ script_h.setCurrent(end_buf+1); break; } else if (IS_TWO_BYTE(end_buf[0])) end_buf+=2; else end_buf++; } if (current_page->tag) delete[] current_page->tag; if (current_tag.tag) delete[] current_tag.tag; if (start_buf){ int len = end_buf - start_buf; current_page->tag = new char[len+1]; memcpy(current_page->tag, start_buf, len); current_page->tag[len] = 0; current_tag.tag = new char[len+1]; memcpy(current_tag.tag, current_page->tag, len+1); } else{ current_page->tag = NULL; current_tag.tag = NULL; } gosubReal( pretextgosub_label, script_h.getCurrent() ); line_enter_status = 1; return RET_CONTINUE; } int ret = enterTextDisplayMode(); if ( ret != RET_NOMATCH ) return ret; line_enter_status = 2; if (pagetag_flag) page_enter_status = 1; ret = processText(); if (ret == RET_CONTINUE){ indent_offset = 0; } return ret; }