• src/sbbs3/logon.cpp

    From Rob Swindell@VERT to Git commit to main/sbbs/master on Tue Jan 25 19:17:32 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/3f17c245f7a2e514826e9a26
    Modified Files:
    src/sbbs3/logon.cpp
    Log Message:
    Don't modify useron.misc during logon, even for AUTOTERM

    We shouldn't need to set any of the autoterm flags in useron.misc these days (term_supports() checks autoterm when appropriate).

    Try this Nelgin.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Tue Jan 25 22:18:33 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/88cef39afc51baf131c5a41f
    Modified Files:
    src/sbbs3/logon.cpp
    Log Message:
    Beautification of the previous commit

    And don't store the autoterm flags in useron.misc even when correcting a manual-PETSCII configuration.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Feb 6 02:13:58 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/f5fed0b229e70b79a5ebb330
    Modified Files:
    src/sbbs3/logon.cpp
    Log Message:
    Fix access-control by terminal cap issue introduced a week ago

    In commit 3f17c245, I was addressing the issue reported by Nelgin via IRC: <nelgin> If you login using a term that doesn't support ansi, it changes your settings - can you set 'em back when done?
    <DigitalMan> if you have auto-term enabled, it doesn't actually change your settings, just what's in use during that session
    <nelgin> I logged in using my BBC emulator which doesn't do ansi, then when I logged in through syncterm, I got the display like it was on the BBC. All my characters replaced with #'s and stuff.
    <nelgin> I had to go back into the user menu to fix it. That is going to confuse users.

    However, the chk_ar() function in userdat.c which is used to populate JS objects (e.g. xtrn_area.sec_list[].prog_list[]) uses the user.misc value (cannot call term_supports()), so the current user terminal flags need to be reflected in user.misc always. So the real fix for the originally reported problem is to clear the charset-related terminal settings when logging in with auto-terminal settings enabled (and before the auto-detected charset flags are OR'd in).

    I toyed with the idea of storing a copy of the term_supports() result in client_t, which is passed to chk_ar() when appropriate, but decided that was a bit overkill and there were issues with servers that don't have term_supports (e.g. the web server) and properly populating access-controlled areas in the JS object model (e.g. door games that require ANSI). Better to use the last-auto-detected terminal caps than assuming "no" terminal capabilities in that scenario.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net