From 95ff790553f5ae502d72a0fee482836f6b6d4265 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Mon, 4 May 2020 04:07:54 +0000
Subject: [PATCH] The temporary pause toggle command (Ctrl-O) is now stored in
 the sbbs_t::console member so re-loads of the user-record (due to external
 changes) won't seemingly-randomly toggle off the user's temp toggle.

---
 src/sbbs3/con_out.cpp | 2 +-
 src/sbbs3/inkey.cpp   | 2 +-
 src/sbbs3/sbbsdefs.h  | 3 ++-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/sbbs3/con_out.cpp b/src/sbbs3/con_out.cpp
index 5dd73d14e1..c63b68ca28 100644
--- a/src/sbbs3/con_out.cpp
+++ b/src/sbbs3/con_out.cpp
@@ -714,7 +714,7 @@ int sbbs_t::outchar(char ch)
 	if(outchar_esc==3)
 		outchar_esc=0;
 
-	if(lncntr==rows-1 && ((useron.misc&UPAUSE) || sys_status&SS_PAUSEON)
+	if(lncntr==rows-1 && ((useron.misc&(UPAUSE^(console&CON_PAUSEOFF))) || sys_status&SS_PAUSEON)
 		&& !(sys_status&(SS_PAUSEOFF|SS_ABORT))) {
 		lncntr=0;
 		pause();
diff --git a/src/sbbs3/inkey.cpp b/src/sbbs3/inkey.cpp
index 7d2707f061..44d319ac30 100644
--- a/src/sbbs3/inkey.cpp
+++ b/src/sbbs3/inkey.cpp
@@ -204,7 +204,7 @@ char sbbs_t::handle_ctrlkey(char ch, long mode)
 
 	switch(ch) {
 		case CTRL_O:	/* Ctrl-O toggles pause temporarily */
-			useron.misc^=UPAUSE;
+			console^=CON_PAUSEOFF;
 			return(0); 
 		case CTRL_P:	/* Ctrl-P Private node-node comm */
 			if(!(sys_status&SS_USERON))
diff --git a/src/sbbs3/sbbsdefs.h b/src/sbbs3/sbbsdefs.h
index b34b547de5..6fc511ad9f 100644
--- a/src/sbbs3/sbbsdefs.h
+++ b/src/sbbs3/sbbsdefs.h
@@ -474,9 +474,10 @@ typedef enum {						/* Values for xtrn_t.event				*/
 								/* Console I/O Bits	(console)				*/
 #define CON_R_ECHO		(1<<0)	/* Echo remotely							*/
 #define CON_R_ECHOX		(1<<1)	/* Echo X's to remote user					*/
+#define CON_L_ECHOX		0		// Unused
 #define CON_R_INPUT		(1<<2)	/* Accept input remotely					*/
 #define CON_L_ECHO		(1<<3)	/* Echo locally              				*/
-#define CON_L_ECHOX		(1<<4)	/* Echo X's locally							*/
+#define CON_PAUSEOFF	(1<<4)	// Temporary pause over-ride (same as UPAUSE)
 #define CON_L_INPUT		(1<<5)	/* Accept input locally						*/
 #define CON_RAW_IN		(1<<8)	/* Raw input mode - no editing capabilities	*/
 #define CON_ECHO_OFF	(1<<10)	/* Remote & Local echo disabled for ML/MF	*/
-- 
GitLab