• src/sbbs3/getmsg.cpp

    From Rob Swindell@VERT to Git commit to sbbs/master on Sunday, September 27, 2020 00:17:05
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/5b310552ae629b3608fc3e69
    Modified Files:
    src/sbbs3/getmsg.cpp
    Log Message:
    Update getlastmsg() to return total messages, excluding votes & poll-closures.

    The return value of getlastmsg() is displayed as the total messages in a sub-board when scanning subs. For sub-boards that allow voting, use the new smb_msg_count() function to determine the number of displayable messages.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Wednesday, December 09, 2020 00:56:39
    https://gitlab.synchro.net/main/sbbs/-/commit/1806aaf90600fbe42dddd980
    Modified Files:
    src/sbbs3/getmsg.cpp
    Log Message:
    Some message attributes (auxiliary and network) weren't shown

    Copy some code from atcodes.cpp to show all the aux and network attributes.

    Also, the MsgAttr text.dat string only contains 17 %s's but we were passing 18, so the last attribute (KillSent) would never be shown.

    Instead, split this into 3 strings and just pass those 3 strings to the MsgAttr format string along with a ton of blank strings. So we don't have to keep updating the MsgAttr text.dat string every time we add more attribute flags (that was kind of ridiculous).

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Thursday, December 10, 2020 01:33:34
    https://gitlab.synchro.net/main/sbbs/-/commit/4a824f52e48c220a23d02608
    Modified Files:
    src/sbbs3/getmsg.cpp
    Log Message:
    Display message comment headers without relying on smb_getmsgtxt()

    Since we're calling smb_getplaintext() manually here, and its not going to return the comment headers as part of the plain-text (the way smb_getmsgtxt() can), so we need to display find/display the comment headers first.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Saturday, December 19, 2020 16:09:15
    https://gitlab.synchro.net/main/sbbs/-/commit/90310234a0396f4bb4a5d508
    Modified Files:
    src/sbbs3/getmsg.cpp
    Log Message:
    In Raw I/O mode, disable markup support and @-code expansion

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Wednesday, January 20, 2021 23:00:27
    https://gitlab.synchro.net/main/sbbs/-/commit/f039b2aa3d8c26807b35390e
    Modified Files:
    src/sbbs3/getmsg.cpp
    Log Message:
    Clean-up MIME-Decoded plain-text format message

    Don't display at all if smb_getplaintext() returns a blank string.
    Don't display "(null)" if there's no text sub-type.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sunday, July 03, 2022 15:55:50
    https://gitlab.synchro.net/main/sbbs/-/commit/bd725db622999e7311ab340e
    Modified Files:
    src/sbbs3/getmsg.cpp
    Log Message:
    Paranoia around use of smb.subnum as an index into scfg.sub[]

    Use the is_valid_subnum() function before using the smb.subnum as an index into (s)cfg.sub[]. Related to the previous committed fix of writemsg(): leaving the global smb.subnum as -1 (INVALID_SUB) after replying to a post via email or netmail, resulting in a crash here.

    ---
    þ 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 Wednesday, May 06, 2026 22:36:57
    https://gitlab.synchro.net/main/sbbs/-/commit/55eaccec35c18dc552485d8a
    Modified Files:
    src/sbbs3/getmsg.cpp
    Log Message:
    getmsg: guard idx.number underflow in getmsgnum (CID 530525)

    When smb_getmsgidx_by_time succeeded but returned idx.number == 0
    (should not happen for valid messages, but defensively), 'idx.number - 1' underflowed uint32_t and produced 0xFFFFFFFF == ~0, the function's
    error sentinel Ä accidentally correct, but undefined per signed-int
    return. Make the zero-number case explicitly return ~0.

    Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

    ---
    þ 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 Tuesday, September 29, 2026 15:57:27
    https://gitlab.synchro.net/main/sbbs/-/commit/c9ab235a137b8a83e8311db7
    Modified Files:
    src/sbbs3/getmsg.cpp
    Log Message:
    Message listings: don't emit control chars from UTF-8 header fields

    Converting a UTF-8 header field to CP437 can yield a control character:
    U+263A (white smiling face) maps to 0x01, i.e. Ctrl-A. Since a81d979492 (teeth-19-temp, 2026-07-28) the message/mail listings pass the converted
    fields through bputs(), which interprets such bytes rather than displaying them. A subject ending in U+263A put "\1\r\n" at the end of its line: the Ctrl-A consumed the CR (toggling CON_ECHO_OFF for users without flag M),
    and the bare LF left the column at the P_TRUNCATE limit, so the entire next listing line was truncated to nothing.

    msghdr_field() now replaces any control character in the converted field
    with the inverted question mark used for unsupported code points.

    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

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