From adb05e50ffca63c403382ea8f62601ffa7186d53 Mon Sep 17 00:00:00 2001 From: "Rob Swindell (on Debian Linux)" <rob@synchro.net> Date: Fri, 27 Jan 2023 21:11:34 -0800 Subject: [PATCH] New user terminal settings weren't display/settable durin sign-up The interactive prompting for terminal capabilities worked fine, but the default configuration menu settings did not reflect the user's previous choices and changes they made (e.g. toggle mouse support or BS/DEL key swap) were not reflected in the menu. Once logged in, the normal user defaults menu worked as expected. This is all because term_supports() keyed off of SS_USERON which isn't set during new user sign-up, so let's key off SS_USERON|SS_NEWUSER now. --- src/sbbs3/con_out.cpp | 4 ++-- src/sbbs3/newuser.cpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sbbs3/con_out.cpp b/src/sbbs3/con_out.cpp index 9a12afb431..81e585f88b 100644 --- a/src/sbbs3/con_out.cpp +++ b/src/sbbs3/con_out.cpp @@ -505,9 +505,9 @@ void sbbs_t::backspace(int count) /****************************************************************************/ long sbbs_t::term_supports(long cmp_flags) { - long flags = ((sys_status&SS_USERON) && !(useron.misc&AUTOTERM)) ? useron.misc : autoterm; + long flags = ((sys_status&(SS_USERON|SS_NEWUSER)) && !(useron.misc&AUTOTERM)) ? useron.misc : autoterm; - if((sys_status&SS_USERON) && (useron.misc&AUTOTERM)) + if((sys_status&(SS_USERON|SS_NEWUSER)) && (useron.misc&AUTOTERM)) flags |= useron.misc & (NO_EXASCII | SWAP_DELETE | COLOR | ICE_COLOR | MOUSE); return(cmp_flags ? ((flags&cmp_flags)==cmp_flags) : (flags&TERM_FLAGS)); diff --git a/src/sbbs3/newuser.cpp b/src/sbbs3/newuser.cpp index 44aeb022bc..decd830eb8 100644 --- a/src/sbbs3/newuser.cpp +++ b/src/sbbs3/newuser.cpp @@ -453,6 +453,8 @@ BOOL sbbs_t::newuser() SAFEPRINTF2(str,"%suser/%4.4u.dat",cfg.data_dir,useron.number); create_sif_dat(cfg.new_sif,str); } + sys_status|=SS_NEWUSER; + if(!(cfg.uq&UQ_NODEF)) maindflts(&useron); @@ -492,7 +494,6 @@ BOOL sbbs_t::newuser() user_event(EVENT_NEWUSER); getuserdat(&cfg,&useron); // In case event(s) modified user data logline("N+","Successful new user logon"); - sys_status|=SS_NEWUSER; return(TRUE); } -- GitLab