• src/sbbs3/prntfile.cpp

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Monday, August 26, 2024 17:10:47
    https://gitlab.synchro.net/main/sbbs/-/commit/46c603ce3c9eba660f425cc4

    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    Fix NULL pointer deref in random_menu()

    When no files with extensions are found, though they matched the glob()
    pattern, a NULL pointer deref would result (segfault).

    This could happen if the only files matching the pattern had no extenions or
    were directories (not files).

    Fix for issue #779

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Thursday, October 10, 2024 22:23:27
    https://gitlab.synchro.net/main/sbbs/-/commit/b656e19ff168e27583a33c26

    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    Report error when menu() can't find a display file and P_NOERROR not used

    This issue was introduced in commit d02fc1a2 (3 years ago), where menu() would
    silenty fail (just return false) if no display file matching the supported
    menu/display file types/extensions could be found.

    Previous to commit d02fc1a2, we would log a NOTICE-level message and display
    a "File not found" message to the user (what sbbs_t::printfile() does), but
    since d02fc1a2, we no longer even call printfile() when the file doesn't
    exist, so no error was logged or message displayed to the user.

    Of course, when using the P_NOERROR mode flag, silent failure is expected and
    that's still what happens in that case.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sunday, October 13, 2024 02:26:14
    https://gitlab.synchro.net/main/sbbs/-/commit/639781e2ad929914bf27f469

    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    Don't use global menu_dir for calls to menu() with path starting with '.'

    For scripts that set the global menu_dir (e.g. via JS bbs.menu_dir), let's
    not require that all the files moved from text to text/menu (for example).

    Problem reported by Amessyroom when using his custom shell and bullseye.js.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Monday, February 03, 2025 18:56:14
    https://gitlab.synchro.net/main/sbbs/-/commit/ca77086526440a723dfd30e7

    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    Fix random menu/display file selection when some files can't be displayed

    When one or more files that match the menu file pattern can't be displayed
    (e.g. the user's terminal is not wide enough or there's any other menu file
    open/read error), pick another random menu file and try displaying that one,
    until either a menu file has been displayed successfully or all files
    (matching the pattern) have been attempted.

    For example, you have text/menu/random1.c80.msg and random2.msg, if the first
    file (random1.c80.msg) is selected at random but the user's terminal isn't
    at least 80 columns wide, another file will be picked at random. Since only
    random2.msg remains in the list (matching the pattern "random*"), that's the
    only file that will always be displayed.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Tuesday, April 08, 2025 16:52:07
    https://gitlab.synchro.net/main/sbbs/-/commit/b6cebf82986e178a0594a09f

    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    Disable Celerity "pipe code" parsing when displaying ".rip" files

    RIP sequences conflict with Celerity pipe codes, so don't convert them to
    color codes (even when enabled in SCFG->Systems->Extra Attribute Codes...).

    We *used* to disable all pipe code parsing when sending to a RIP-enabled
    terminal but since we don't do that any longer, this is a better/cleaner fix.

    Renegade "pipe codes" (|xx where xx are decimal digits) don't "seem" to
    conflict with any RIP sequences (so leave that parsing enabled for .rip files)
    but Deuce can help me to be sure about that (please).

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Saturday, May 03, 2025 16:51:17
    https://gitlab.synchro.net/main/sbbs/-/commit/3a3e4dbd316f60e5ffd784bb

    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    Resolve relative menu/../* to absolute path before checking for file existence

    On *nix, fexist("../mods/text/menu/../filename") would fail unless the
    mods/text/menu sub-directory existed. It works on Windows fine however.

    This resolves issue #918, reported by Keyop - thank you!

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Saturday, May 03, 2025 22:47:05
    https://gitlab.synchro.net/main/sbbs/-/commit/8506c2b64aed65e0c62c0f77

    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    Fix bug in random_menu() introduce in previous commit

    Broke random menu/display files - we needed another temp variable here.

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