• src/sbbs3/atcodes.cpp

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Mon Apr 7 21:32:28 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/fccf1a5718fdcb9864bcbccf
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Better parsing of invalid @-codes

    @-codes never start with a number (decimal digit)
    @-codes never contain any whitespace (including tabs, CR and LF).

    These 2 issues caused the stock batch file transfer menu for RIP terminals
    to display all messed-up.

    This RIP menu (text/menu/batchxfr.rip) contains @s and they triggered some stripping of text and expanding to a text.dat string (!).

    ---
    ■ 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 Tue Apr 8 16:52:07 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/7b42b9be244f639d5afd7e23
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Clean-up the initial string/pointer adjustment in show_atcodes()

    No functional change.

    ---
    ■ 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 Tue Apr 22 16:12:46 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/fc4ee1b9f4fe8397fedcb8c9
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Allow C escape sequences in EXEC: @-code argument, to allow param passing

    e.g. separate module name from command-line params with \x20 and separate params from eachother with \x20.

    ---
    ■ 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 Wed Jun 11 21:08:01 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/c122ddd88d1cb0b1c0abb5f6
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Renamed DAYBYTES to USEDCDT (amount of free credits used today)

    DAYBYTES is now an alias for BTODAY, since that more accurately reflects what PCB and WC used this code for, though WC4 Sysop Guide says it's in "K", we'll ignore that inconsistency (Wildcat! docs are wrong maybe?).

    ---
    ■ 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 Jun 12 16:04:56 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/e636d71e390a0f2a4d014a63
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Transfer stats @-codes using byte total estimates (e.g. "1.2M")

    BTODAY now expands to a byte estimate (DAYBYTES is still the exact byte count)

    New codes: UPB and DLB for total-uploaded-bytes and total-downloaded-bytes There are already existed other codes for kibibytes or exact bytes, but there were none for byte estimates that shorten larger numbers nicely.

    Here's an example of the various transfer stats related @-codes now:

    DTODAY: '1'
    BTODAY: '2.8K'
    KTODAY: '2'
    DAYBYTES: '2827'
    DLFILES: '615'
    DLB: '2.2G'
    DLBYTES: '2406384443'
    DOWNK: '2349984'
    UPFILES: '247'
    UPB: '13.6G'
    UPBYTES: '14602185912'
    UPK: '14259947'

    ---
    ■ 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 Jun 12 20:57:16 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/e159c5096ead5b835dbbd06b
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    New @-codes to display credit percentages awarded for up/downloads for curdir

    - UCP (upload credit percentage)
    - DCP (download credit percentage)

    ---
    ■ 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 Jun 18 21:46:45 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/db7fde0045aa49a3699d60b2
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Add BYTERATIO alias (PCBoard compatible) for UDR @-code

    First addition for issue #940

    ---
    ■ 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 Dec 8 16:47:32 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/d4d92c9ce53f4b2196164d3a
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    New @-code: PSTAT - expands to On|Off text.dat string indicating Pause status

    Similar to UPAUSE @-code, but this takes into account the Ctrl-O hot key and sys_status methods of forcing screen pause on or off.

    ---
    ■ 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 Dec 8 16:47:32 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/45cd7ac09f1705d59b575f89
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    New @-code: RAWIO expands to On|Off text.dat string indicating Raw I/O status

    Raw I/O mode is toggled with Ctrl-Z key

    ---
    ■ 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:58 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/32b4cfef53328f4ec9e76208
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Remove duplice at-code: GENDERS (defined twice)

    ---
    ■ 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 00:49:23 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/e25c2129ac0ac8c4c8c9025f
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Fixes and additions with statistics and security related @-codes

    - The following codes wold return bad/truncated "hours" if the val was > 9hrs
    TPERC, TPERD (e.g. "4:00" instead of "24:00")
    - The following codes wold return bad/truncated "hours" if the val was > 99hrs
    TTODAY, TTOTAL, TBANKED (e.g. "10:00" instead of "250:00")

    New codes:
    - TMLAST (time used last call in [H]H:MM format)
    - HRLAST (estimated hours used last call, with 'h' suffix)
    - LASTTM (exact time used during last call, with 'm' suffix)
    - TMTODAY (exact total time used today, with 'm' suffix)
    - HRTODAY (estimated hours used today, with 'h' suffix)
    - HRPERD (estimated hours allowed per day, with 'h' suffix)
    - HRPERC (estimated hours allowed per call, with 'h' suffix)
    - TOTALHR (estimated total time used, in hours, with 'd' or 'h' suffix)
    - TOTALTM (exact total time used, verbose, with 'm' suffix)
    - EXTRAHR (extra time, in estimated hours with 'd' or 'h' suffix)
    - EXTRATM (extra time, verbose, with 'm' suffix)
    - TMBANK (banked time, verbose, with 'm' suffix)
    - HRBANK (banked time, estimated in hours, with 'm' suffix)
    - CDT (estimated number of credits, e.g. "4.0G")
    - CDTPERD (estimated free credits per day, e.g. "5.0G")
    - CDTUSED (estimated free credits used today, e.g. "1.0G")
    - CDTLEFT (estimated total credits available to user, e.g. "5.5G")
    - CDTFREE (estimated remaining free credits, e.g. "0.5G")

    Duration @-codes are expanded in a few variant formats:
    1 raw units (seconds or minutes) as a whole number (e.g. MEXTRA, TLAST)
    2 hours and minutes, zero-padded as "[H]HH:MM" (e.g. TEXTRA, TBANKED)
    3 hours and minutes, shortened as "[HHH:]MM" (e.g. TTODAY)
    4 estimated day and hours (e.g. TOTALHR="15.4d", EXTRAHR="2.5h")
    5 exact number of days, hours, and minutes (e.g. TOTALTM="15d 9h 37m")

    Byte/credit @-codes are expanded in a few variant formats:
    1 raw byte/credit numbers as a whole number (e.g. CREDITS, DLBYTES)
    2 kibibyte units as whole number (KTODAY) or fraction (FILEKB) with no suffix
    3 mebibyte units as whole number (FILESPACEM) or fraction (FILEMB), no suffix
    4 gibibyte units as whole number (FILESPACEG) or fraction (FILEGB), no suffix
    5 estimated size as fraction (e.g. BTODAY, DLB) with suffix

    While multiple formats are available for most values, not all formats are available for every value. The 'T' format modifier can be used to add
    thousands separators (commas) to the raw unit outputs (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 Mon Jan 5 05:25:37 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/834f48490ad1214f657c423c
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Resolve GCC printf usage warning

    ---
    ■ 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 Tue Jan 6 19:28:48 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/4d50e62660bcba11b1c1b274
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Add UN as an alias for USERNUM

    User numbers are not often more than 4 digits, so its more convenient for display file editing purposes to have a shorter code.

    ---
    ■ 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 Wed Jan 7 23:21:25 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/222622e3bde35bbba76262ff
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Add codes: FFILES, FBYTES, FCOST, and FTIME, with new format parameters

    Inspired by PCBoards's FFILES and FBYTES (see issue #940), these codes
    report details of the user's current batch download queue. I completed the set by adding FCOST and FTIME.

    An important new feature introduced with these codes are new (optional) byte-count and time-duration specific format parameters. e.g. while FBYTES returns the total size of all files in the batch download queue in bytes, FBYTES:K will return the total size in kibibytes. Similarly, FTIME will
    return the estimated number of minutes to download the queue while FTIME:S
    will return the estimated number of seconds.

    There are currently 8 formats of time-durations and 5 formats of byte-count representations. I suspect I'll be adjusting these and adding more before finalizing and documenting on the wiki.

    I plan to give more codes this treatment and remove many of the new duration codes I recently added since this feature means we don't need a separate uniquely-named code for each output format: it was a real pain to come up with good or consistent, but short names, and manage them all.

    ---
    ■ 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 Jan 8 01:54:14 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/fb97ffcb3fcc8dddeb831ca7
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Support byte-count and time-duration format parameters for legacy @-codes

    Now supporting byte-count format parameters:
    - FILE_BYTES
    - FILE_CREDITS
    - FILE_TIME_TO_DL
    - FREECDT
    - CREDITS
    - CDTLEFT
    - CDTUSED
    - CDTPERD
    - DLB
    - UPB
    - BTODAY
    - STATS.ULB
    - STATS.DLB

    Now supporting time-duration format parameters:
    - TBANKED
    - MBANKED
    - TEXTRA
    - MEXTRA
    - TLAST
    - TTOTAL
    - MTODAY
    - TTODAY
    - MTODAY (aka TOTALTIME)
    - TPERD
    - TPERC
    - MPERD
    - MPERC (aka TIMELIMIT)
    - TLEFT
    - TIMEON
    - TUSED
    - STATS.TIMEON
    - STATS.TTODAY

    Removed short-lived now-superfluous codes (whew!):
    - TMUSED
    - MUSED
    - HRUSED
    - TONLINE
    - TMONLINE
    - MONLINE
    - HRONLINE
    - SECLEFT
    - TMLEFT
    - MLEFT
    - HRLEFT
    - TPERD
    - TPERC
    - HRPERD
    - HRPERC
    - TMTODAY
    - HRTODAY
    - TOTALHR
    - TMLAST
    - HRLAST
    - LASTTM
    - EXTRATM
    - EXTRAHR
    - HRBANK
    - TMBANK
    - CDT
    - CDTFREE

    ---
    ■ 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 Jan 8 02:51:25 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/8a343cbf4c6a9f43954569b9
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Remove BYTERATIO (for now) since it doesn't match PCBoard output

    Added/adjusted several comments

    ---
    ■ 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 Jan 8 14:53:52 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/8c208eb20de2af81bc2d36b5
    Modified Files:
    src/sbbs3/atcodes.cpp
    Log Message:
    Type cast to resolve CID 640932

    Hopefully users don't ever actually need/have more than 63-bits for credits.

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