diff --git a/src/sbbs3/useredit.cpp b/src/sbbs3/useredit.cpp index da042207b96cc036d63d96aa3778a8b5ce0311d2..2b3797854c097685b8b68edd655525ae4b34accf 100644 --- a/src/sbbs3/useredit.cpp +++ b/src/sbbs3/useredit.cpp @@ -905,16 +905,15 @@ void sbbs_t::maindflts(user_t* user) putusermisc(user->number, user->misc); break; case 'E': - if(noyes(text[UseExternalEditorQ])) { + if((!user->xedit && noyes(text[UseExternalEditorQ])) + || (user->xedit && !yesno(text[UseExternalEditorQ]))) { if(!(sys_status & SS_ABORT)) putuserstr(user->number, USER_XEDIT, nulstr); break; } - if(user->xedit) - user->xedit--; for(i=0;i<cfg.total_xedits;i++) uselect(1,i,text[ExternalEditorHeading],cfg.xedit[i]->name, cfg.xedit[i]->ar); - if((i=uselect(0,user->xedit,0,0,0))>=0) + if((i=uselect(0,user->xedit ? user->xedit-1:0,0,0,0))>=0) putuserstr(user->number, USER_XEDIT, cfg.xedit[i]->code); break; case 'K': /* Command shell */