• src/sbbs3/js_system.cpp

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sat Dec 27 01:17:57 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/2a1a0ccd5211c36000b9071e
    Modified Files:
    src/sbbs3/js_system.cpp
    Log Message:
    New system property: phonenumber_template

    ... as configured by the sysop in SCFG->System->Advanced Options->Phone Number Format.

    A silly artifact from days of old, but still, was missing from the JS object model (e.g. for user in new-user registration), so here it is. Probably should be eliminated at some point.

    ---
    ■ 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 Sat Dec 27 01:17:57 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/fb5af6115b3a941a3bc2f451
    Modified Files:
    src/sbbs3/js_system.cpp
    Log Message:
    New system.check_netmail_addr() function

    ... returns true if the netmail address is in a format supported by the system

    ---
    ■ 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 Sat Jan 3 00:14:09 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/9f8036d4681db84d9bc21d59
    Modified Files:
    src/sbbs3/js_system.cpp
    Log Message:
    Add system.check_birthdate() method to validate birth dates

    ---
    ■ 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 Mon Jan 5 04:27:43 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/091bcc4595476a8bd334a83a
    Modified Files:
    src/sbbs3/js_system.cpp
    Log Message:
    Add systme.minutestr() method for formatting a string from duration-in-minutes

    system.secondstr() now accepts an optional verbose argument

    ---
    ■ 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 Fri Jan 9 22:41:25 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/cb5d631a442ea2e043097905
    Modified Files:
    src/sbbs3/js_system.cpp
    Log Message:
    Fix invalid JSDOCS string

    It's a nice thing some of the runners build for JSDOCS

    ---
    ■ 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 Thu Feb 19 01:28:14 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/5ce8af6f019643be0cc47f86
    Modified Files:
    src/sbbs3/js_system.cpp
    Log Message:
    Add system.undel_user() method - the counterpart to system.del_user()

    This is the "correct" way to undelete a previously-deleted user account/record.

    ---
    ■ 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 Sun Apr 5 12:40:25 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/6e9c0f3a452bd9d76bc5da19
    Modified Files:
    src/sbbs3/js_system.cpp
    Log Message:
    system.get_telegram(0) now returns null, always

    previously, it would get any waiting telegrams waiting for user #1

    This would fail exec/tests/system/rtypes.js if there were any telegrams waiting for user #1.

    There's no good reason this function needs to promote argument values < 1 to 1.

    ---
    ■ 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 Wed May 6 22:36:57 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/bd294a6c23647cbcf9799cb1
    Modified Files:
    src/sbbs3/js_system.cpp
    Log Message:
    js_system: use UINT_TO_JSVAL for node.extaux to avoid signed overflow (CID 530515)

    node.extaux is uint32_t; the cast to (int) for INT_TO_JSVAL could yield
    a negative value for extaux > INT_MAX. Use UINT_TO_JSVAL like the rest
    of the codebase already does for this field (e.g., js_system.cpp:2717).

    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 Thu Jul 2 00:55:42 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/657bb4ee6dd07aa16be5b260
    Modified Files:
    src/sbbs3/js_system.cpp
    Log Message:
    Fix system.filter_ip() ignoring a duration argument after the filename

    js_filter_ip()'s argument parser stopped scanning as soon as the filename
    (6th string) was assigned (loop guarded by `fname == NULL`), so a numeric duration passed after the filename -- the order the JSDOCSTR documents, "[protocol, reason, host, ip, username, filename] [duration-in-seconds]" --
    was never read. duration stayed 0, producing a filter entry with no
    expiration (no e=), i.e. a permanent block, when a timed one was requested.

    Scan all arguments for the (optional) numeric duration regardless of
    position, and ignore any extra string arguments (freeing them) rather than overwriting the filename. The documented argument order now works; verified with a fresh build via jsexec (duration after filename now yields e=).

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

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