/* Console buffer flipping support */
+static void back_buffer_clear_cell(COORD pos)
+{
+ DWORD unused;
+ static WORD attr[1] = {CONSOLE_CLEAR_ATTRIBUTE};
+ static char buf[1] = {CONSOLE_CLEAR_CHARACTER};
+
+ WriteConsoleOutputAttribute(console.hConOut, attr,
+ 1, pos, &unused);
+ WriteConsoleOutputCharacterA(console.hConOut, buf,
+ 1, pos, &unused);
+}
+
static void back_buffer_flip()
{
cell_t * back = console.back_buffer;
if (back->iskanji == 1) {
cell_t * back2 = back + 1;
cell_t * front2 = front + 1;
+ if(back2->iskanji != 2){
+ /* \8a®\91S\82È\83}\83\8b\83`\83o\83C\83g\95¶\8e\9a\82Å\82È\82¢\82Ì\82Å\8bó\94\92 */
+ back_buffer_clear_cell(pos);
+ *front = *back;
+ back++;
+ front++;
+ continue;
+ }
/* pos.x == 0 \82Ì\8fð\8c\8f\82Í\95s\97v\82Ì\82Í\82¸\82¾\82ª #42072 \91Î\8dô\82Å\92Ç\89Á\81B */
if (back->attribute != front->attribute ||
back2->attribute != front2->attribute || pos.X == 0) {
front += 2;
continue;
}
+ if (back->iskanji == 2) {
+ /* \8a®\91S\82È\83}\83\8b\83`\83o\83C\83g\95¶\8e\9a\82Å\82È\82¢\82Ì\82Å\8bó\94\92 */
+ back_buffer_clear_cell(pos);
+ *front = *back;
+ back++;
+ front++;
+ continue;
+ }
#endif
if (back->attribute != front->attribute) {
WriteConsoleOutputAttribute(console.hConOut, &back->attribute,