From 45081818b7c661e0748e8117859b0b851fe6db57 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Fri, 6 Feb 2009 08:24:57 +0000
Subject: [PATCH] Fix up raw output by doing the cterm -> conio alignment
 BEFORE re-enabling ciolib output.

---
 src/xpdoor/xpdoor.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/xpdoor/xpdoor.c b/src/xpdoor/xpdoor.c
index 668091990c..1dc49fccfc 100644
--- a/src/xpdoor/xpdoor.c
+++ b/src/xpdoor/xpdoor.c
@@ -326,22 +326,25 @@ int xpd_rwrite(const char *data, int data_len)
 
 	/* Set up cterm to match conio */
 	gettextinfo(&ti);
-	cterm.x=ti.winleft+ti.curx-1;
-	cterm.y=ti.wintop+ti.cury-1;
+	cterm.xpos=ti.winleft+ti.curx-1;
+	cterm.ypos=ti.wintop+ti.cury-1;
 	cterm.attr=ti.attribute;
 	cterm.quiet=TRUE;
+	cterm.doorway_mode=TRUE;
 
 	/* Disable ciolib output for ANSI */
 	ciolib_ansi_writebyte_cb=dummy_writebyte_cb;
 
 	/* Send data to cterm */
 	cterm_write((char *)data, data_len, NULL, 0, NULL);
-	xpd_ansi_writestr_cb((char *)data,data_len);
 
-	/* Re-enable ciolib */
-	ciolib_ansi_writebyte_cb=xpd_ansi_writebyte_cb;
+	/* Send data to remote */
+	xpd_ansi_writestr_cb((char *)data,data_len);
 
 	/* Set conio to match cterm */
-	gotoxy(cterm.x-ti.winleft+1, cterm.y-ti.winright+1);
+	gotoxy(cterm.xpos-ti.winleft+1, cterm.ypos-ti.winright+1);
 	textattr(cterm.attr);
+
+	/* Re-enable ciolib output */
+	ciolib_ansi_writebyte_cb=xpd_ansi_writebyte_cb;
 }
-- 
GitLab