From 184d0b6fcc479e0bc52d32da5abac9c96c3380df Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Mon, 8 Jul 2019 21:18:06 +0000
Subject: [PATCH] Work on the whole DEL = backspace thing a bit, making it
 "less hostile".

---
 src/sbbs3/newuser.cpp  |  1 -
 src/sbbs3/useredit.cpp | 18 ++++++++++++++----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/sbbs3/newuser.cpp b/src/sbbs3/newuser.cpp
index 1acaa8cf35..507b1ac9d8 100644
--- a/src/sbbs3/newuser.cpp
+++ b/src/sbbs3/newuser.cpp
@@ -184,7 +184,6 @@ BOOL sbbs_t::newuser()
 				bprintf(text[InvalidBackspaceKeyFmt], key, key);
 				if(text[ContinueQ][0] && !yesno(text[ContinueQ]))
 					return FALSE;
-				newline();
 			}
 		}
 
diff --git a/src/sbbs3/useredit.cpp b/src/sbbs3/useredit.cpp
index cb179eafde..a1f171e0c4 100644
--- a/src/sbbs3/useredit.cpp
+++ b/src/sbbs3/useredit.cpp
@@ -941,10 +941,20 @@ void sbbs_t::maindflts(user_t* user)
 						user->misc|=NO_EXASCII;
 					else
 						user->misc&=~NO_EXASCII;
-					if(!noyes(text[SwapDeleteKeyQ]))
-						user->misc|=SWAP_DELETE;
-					else
-						user->misc&=~SWAP_DELETE;
+					user->misc &= ~SWAP_DELETE;
+					while(text[HitYourBackspaceKey][0] && !(user->misc&SWAP_DELETE) && online) {
+						bputs(text[HitYourBackspaceKey]);
+						uchar key = getkey(K_NONE);
+						bprintf(text[CharacterReceivedFmt], key, key);
+						if(key == '\b')
+							break;
+						if(key == DEL) {
+							if(text[SwapDeleteKeyQ][0] == 0 || yesno(text[SwapDeleteKeyQ]))
+								user->misc |= SWAP_DELETE;
+						}
+						else
+							bprintf(text[InvalidBackspaceKeyFmt], key, key);
+					}
 				}
 				if(sys_status&SS_ABORT)
 					break;
-- 
GitLab