From 70918067f45c20128b003a898bfb2d0188267ac0 Mon Sep 17 00:00:00 2001
From: "Rob Swindell (on Windows)" <rob@synchro.net>
Date: Thu, 14 Sep 2023 21:25:17 -0700
Subject: [PATCH] Don't decrement user.xedit before calling uselect()

This bug would leave the user's external editor setting decremented by one if
they aborted (with Ctrl-C).

Fixes issue #631
---
 src/sbbs3/exec.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/sbbs3/exec.cpp b/src/sbbs3/exec.cpp
index ad6b82cf6a..cb1f1cebc6 100644
--- a/src/sbbs3/exec.cpp
+++ b/src/sbbs3/exec.cpp
@@ -2021,8 +2021,7 @@ bool sbbs_t::select_editor(void)
 
 	for(i=0;i<cfg.total_xedits;i++)
 		uselect(1,i,text[ExternalEditorHeading],cfg.xedit[i]->name,cfg.xedit[i]->ar);
-	if(useron.xedit) useron.xedit--;
-	if((i=uselect(0,useron.xedit,0,0,0))>=0) {
+	if((i=uselect(0,useron.xedit ? (useron.xedit-1):0,0,0,0))>=0) {
 		useron.xedit=i+1;
 		if(useron.number > 0)
 			putuserstr(useron.number, USER_XEDIT, cfg.xedit[i]->code); 
-- 
GitLab