Code:
diff -BbuprN -x '*.o' tbamud-3.68original/src/comm.c tbamud-3.68/src/comm.c
--- tbamud-3.68original/src/comm.c 2017-11-26 11:09:03.056819800 +1300
+++ tbamud-3.68/src/comm.c 2017-11-26 12:44:44.712641300 +1300
@@ -1572,6 +1572,7 @@ static int process_output(struct descrip
/* add the extra CRLF if the person isn't in compact mode */
if (STATE(t) == CON_PLAYING && t->character && !IS_NPC(t->character) && !PRF_FLAGGED(t->character, PRF_COMPACT))
+ if ( !t->pProtocol->WriteOOB )
strcat(osb, "\r\n"); /* strcpy: OK (osb:MAX_SOCK_BUF-2 reserves space) */
if (!t->pProtocol->WriteOOB) /* add a prompt */
@@ -1579,7 +1580,7 @@ static int process_output(struct descrip
/* now, send the output. If this is an 'interruption', use the prepended
* CRLF, otherwise send the straight output sans CRLF. */
- if (t->has_prompt) {
+ if (t->has_prompt && !t->pProtocol->WriteOOB) {
t->has_prompt = FALSE;
result = write_to_descriptor(t->descriptor, i);
if (result >= 2)
diff -BbuprN -x '*.o' tbamud-3.68original/src/protocol.c tbamud-3.68/src/protocol.c
--- tbamud-3.68original/src/protocol.c 2017-11-26 11:09:04.634011300 +1300
+++ tbamud-3.68/src/protocol.c 2017-11-26 12:46:08.232726300 +1300
@@ -40,7 +40,7 @@ static void Write( descriptor_t *apDescr
{
if ( apDescriptor != NULL)
{
- if ( apDescriptor->pProtocol->WriteOOB > 0)
+ if ( apDescriptor->pProtocol->WriteOOB > 0 || *(apDescriptor->output) == '\0' )
{
apDescriptor->pProtocol->WriteOOB = 2;
}