• src/sbbs3/prntfile.cpp

    From rswindell to CVS commit on Thursday, April 23, 2020 22:33:39
    src/sbbs3 prntfile.cpp 1.40 1.41
    Update of /cvsroot/sbbs/src/sbbs3
    In directory cvs:/tmp/cvs-serv12380

    Modified Files:
    prntfile.cpp
    Log Message:
    Fix bug reported by Nelgin in printfile(), when called with-OUT the P_OPENCLOSE mode flag, an EOF @-code would not stop the output since it calls putmsg()
    for *each* line of the file and was not checking the return value of putmsg() for an abnormal/early-termination indicator.

  • From rswindell to CVS commit on Friday, May 01, 2020 23:09:38
    src/sbbs3 prntfile.cpp 1.42 1.43
    Update of /cvsroot/sbbs/src/sbbs3
    In directory cvs:/tmp/cvs-serv20164

    Modified Files:
    prntfile.cpp
    Log Message:
    Keep Deuce from killing Vert by viewing 16GB log files:
    Don't use P_OPENCLOSE printfile() mode for any files > 2MB in size.

  • From rswindell to CVS commit on Saturday, May 02, 2020 00:55:21
    src/sbbs3 prntfile.cpp 1.43 1.44
    Update of /cvsroot/sbbs/src/sbbs3
    In directory cvs:/tmp/cvs-serv10676

    Modified Files:
    prntfile.cpp
    Log Message:
    Make printtail() not load entire files into memory, but instead read the last part of the file, assuming lines are not >8K (on average).

  • From Rob Swindell to Git commit to sbbs/master on Sunday, November 22, 2020 00:14:40
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/a5b344c97eebf2879f563371
    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    Convert menu paths (e.g. /sbbs/text/menu/../filename) to full paths

    If text/menu is a symlink (on *nix), then the path above would actually
    point to a filename in the parent of the symlink target, which is not
    what we want (we want the filename in the text dir). Fixed by using
    FULLPATH.
  • From Rob Swindell to Git commit to main/sbbs/master on Saturday, December 05, 2020 19:26:39
    https://gitlab.synchro.net/main/sbbs/-/commit/bba2a9d5f6426be4cec140f8
    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    Don't print a CRLF in printfile() (called by menu) if no file exists

    printfile() assumes you want the file displayed starting in column 0, so will send a CRLF to insure that it does (unless the P_NOCRLF mode flag is specified). But this CRLF printing was happening before the file was opened and when the P_NOERROR mode flag is specified, this should be a silent failure with no print output. So move the CRLF printing to *after* the file is opened.

    This expose an issue in the latest xtrn_sec.js where it makes several calls to bbs.menu() with the P_NOERROR mode flag set, expecting nothing to happen if/when the optional display files (e.g. xtrn*_tail.*) don't exist.

    Reported by JC via IRC.
  • From Digital Man to Git commit to main/sbbs/master on Saturday, December 05, 2020 19:32:24
    Re: src/sbbs3/prntfile.cpp
    By: Rob Swindell to Git commit to main/sbbs/master on Sat Dec 05 2020 07:26 pm

    https://gitlab.synchro.net/main/sbbs/-/commit/bba2a9d5f6426be4cec140f8 Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    Don't print a CRLF in printfile() (called by menu) if no file exists

    printfile() assumes you want the file displayed starting in column 0, so will send a CRLF to insure that it does (unless the P_NOCRLF mode flag is specified). But this CRLF printing was happening before the file was opened and when the P_NOERROR mode flag is specified, this should be a silent failure with no print output. So move the CRLF printing to *after* the file is opened.

    This expose an issue in the latest xtrn_sec.js where it makes several calls to bbs.menu() with the P_NOERROR mode flag set, expecting nothing to happen if/when the optional display files (e.g. xtrn*_tail.*) don't exist.

    Reported by JC via IRC.

    Correction: reported by Dan_C.
    --
    digital man

    Synchronet/BBS Terminology Definition #49:
    MODEM = Modulator/Demodulator
    Norco, CA WX: 60.5°F, 22.0% humidity, 0 mph S wind, 0.00 inches rain/24hrs
  • From Rob Swindell to Git commit to main/sbbs/master on Thursday, March 24, 2022 21:49:53
    https://gitlab.synchro.net/main/sbbs/-/commit/479bd24c574ad0dbe6461d09
    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    De-dupe random menu filenames by truncating at first dot, rather than last.

    Fix for one of the problems described in issue #380.

    bbs.menu("random*"); would display column-width-specific files (e.g. random.132col.msg) even when they weren't appropriate for the current
    user terminal width.

    This is fixed by truncating the filenames matching the requested pattern at their first-dot rather than the last.

    The downside is, you can't have a set of random.#.* files, where # is the unique part of the filename and * is the file-type extension. Just use
    the naming pattern "random-#.*" instead (or something similar) instead.
  • From Rob Swindell to Git commit to main/sbbs/master on Thursday, March 24, 2022 23:14:29
    https://gitlab.synchro.net/main/sbbs/-/commit/a8db694b2acee8cc66221bea
    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    Use text/menu/*.###col.* display files for even-wider terminals

    e.g. display basename.132col.msg even if the terminal is 133+ columns wide.

    Fixes issue #380.
  • From Rob Swindell to Git commit to main/sbbs/master on Thursday, March 24, 2022 23:58:06
    https://gitlab.synchro.net/main/sbbs/-/commit/e3ba24274983408008b1bf32
    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    Revert to *.XXcol.* being an exact column width, add *.cXX.* support

    That previous commit made all *.40col.msg files display for 80 column users. Not my intention.

    So revert to the previous behavior of *.XXcol.* display files. I didn't want to go renaming a bunch of menu files as a result of the previous commit and I didn't want a bunch of sysops with *.XXcol.* files to be suddenly surprised at their new BBS behavior.

    And introduce a new file naming convention, *.cXX.* (where XX is a MINIMUM column width). This is the same naming convention used by Mystic, which also treats it is as a minimum terminal width, not a required exact width.
  • From Rob Swindell to Git commit to main/sbbs/master on Friday, March 25, 2022 00:37:53
    https://gitlab.synchro.net/main/sbbs/-/commit/9ac7335f36e51bfd13f953e4
    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    Detect/display menu files, even if only a .ans version exists

    I'm so tired of this 30 year old frequently asked question.

    If a sysop really wants their Synchronet BBS to only work correctly for ANSI users, I suppose that should be their prerogative.

    I always felt that by not detecting/displaying menu files when the minimum set of files was not present, I was helping sysops to identify an issue with their system (which would not work correctly for non-ANSI users). *And* I always felt that having a single menu/display file that correctly supported both ANSI and non-ANSI users was a nice convenience (who really wants to maintain multiple versions of their menu files?). But I'm so tired of answering this question, I just give up.

    Hopefully this doesn't break anything for anyone. <shrug>
  • From MRO@BBSESINF to Rob Swindell on Friday, March 25, 2022 05:31:47
    Re: src/sbbs3/prntfile.cpp
    By: Rob Swindell to Git commit to main/sbbs/master on Fri Mar 25 2022 12:37 am

    I'm so tired of this 30 year old frequently asked question.

    If a sysop really wants their Synchronet BBS to only work correctly for ANSI users, I suppose that should be their prerogative.
    I always felt that by not detecting/displaying menu files when the minimum set of files was not present, I was helping sysops to identify an issue with their system (which would not work correctly for non-ANSI users). *And* I always felt that having a single menu/display file that correctly supported both ANSI and non-ANSI users was a nice convenience (who really wants to maintain multiple versions of their menu files?). But I'm so tired of answering this question, I just give up.

    thanks for giving up.
    ---
    ■ Synchronet ■ ::: BBSES.info - free BBS services :::
  • From Digital Man to MRO on Friday, March 25, 2022 12:35:07
    Re: src/sbbs3/prntfile.cpp
    By: MRO to Rob Swindell on Fri Mar 25 2022 05:31 am

    thanks for giving up.

    I feel for the dozens of PETSCII terminal users that might be impacted.
    Oh well. :-)
    --
    digital man (rob)

    This Is Spinal Tap quote #20:
    Well, I'm sure I'd feel much worse if I weren't under such heavy sedation. Norco, CA WX: 81.9°F, 28.0% humidity, 5 mph ESE wind, 0.00 inches rain/24hrs
  • From MRO@BBSESINF to Digital Man on Friday, March 25, 2022 15:26:51
    Re: src/sbbs3/prntfile.cpp
    By: Digital Man to MRO on Fri Mar 25 2022 12:35 pm

    Re: src/sbbs3/prntfile.cpp
    By: MRO to Rob Swindell on Fri Mar 25 2022 05:31 am

    thanks for giving up.

    I feel for the dozens of PETSCII terminal users that might be impacted.
    Oh well. :-)

    maybe have it do a special entry in the log file.
    ---
    ■ Synchronet ■ ::: BBSES.info - free BBS services :::
  • From Digital Man to MRO on Friday, March 25, 2022 14:18:00
    Re: src/sbbs3/prntfile.cpp
    By: MRO to Digital Man on Fri Mar 25 2022 03:26 pm

    Re: src/sbbs3/prntfile.cpp
    By: Digital Man to MRO on Fri Mar 25 2022 12:35 pm

    Re: src/sbbs3/prntfile.cpp
    By: MRO to Rob Swindell on Fri Mar 25 2022 05:31 am

    thanks for giving up.

    I feel for the dozens of PETSCII terminal users that might be impacted. Oh well. :-)

    maybe have it do a special entry in the log file.

    I'm thinking just have chksetup.js detect/report when a menu set is missing a .asc or .msg version.
    --
    digital man (rob)

    Synchronet/BBS Terminology Definition #24:
    DOVE = Domain/Vertrauen
    Norco, CA WX: 85.1°F, 32.0% humidity, 7 mph SSE wind, 0.00 inches rain/24hrs
  • From Rob Swindell to Git commit to main/sbbs/master on Saturday, March 26, 2022 20:03:49
    https://gitlab.synchro.net/main/sbbs/-/commit/519459c5e1197bd66262b3d5
    Modified Files:
    src/sbbs3/prntfile.cpp
    Log Message:
    De-duplicate at the first '.' following the filename, not the path

    Fix the fix to issue #380.

    Thanks for letting me know Keyop.
  • From Rob Swindell (on Windows 11) 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
  • From Rob Swindell (on Windows 11) 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.
  • From Rob Swindell (on Debian Linux) 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.