Synchronet Git Commit Log

This is a log of the 500 most recent pushes to the master branch of the Synchronet Git repository.
If you want to view more pushes/commits, you can by passing ?<number> in URL.
  1. Rob Swindell (on Windows 11)
    Mon Nov 18 2024 11:15:34 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/nopen.c diff
    Fix non-Windows build, broken in previous commit

  2. Rob Swindell (on Windows 11)
    Mon Nov 18 2024 10:56:16 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/nopen.c diff
    We need to initialize the fd to -1 here (since we zero-it out the fmutex_t) and might return before setting it to anything else.

  3. Rob Swindell (on Windows 11)
    Mon Nov 18 2024 10:56:16 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/nopen.c diff
    src/sbbs3/nopen.h diff
    Simplify fmutex_open() signature even more, add fmutex_init() Can't used designated initializers in fmutex_init() because this file is still built with C++Builder6.

  4. Rob Swindell (on Windows 11)
    Mon Nov 18 2024 10:56:16 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/AboutBoxFormUnit.cpp diff
    Update cryptlib copyright dates to match latest cryptlib.h

  5. Deucе
    Mon Nov 18 2024 10:01:23 GMT-0800 (PST)
    Modified Files:
    

    src/conio/OverhaulNotes.txt diff
    Add nodes about different screen update methods that will be needed

  6. Rob Swindell (on Windows 11)
    Mon Nov 18 2024 01:48:48 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    Correct initialization of fmutex_t so the file descriptor is -1 For some reason, MSVC was initializing the time_t (second element of the struct) to -1, not the int fd (the first element), which was initialized to 0. Weird.

  7. Rob Swindell (on Debian Linux)
    Sun Nov 17 2024 17:45:15 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/nopen.c diff
    src/sbbs3/nopen.h diff
    Simplify the fmutex_open() usage: always auto-remove when using open/close() The auto-remove param was only needed for fmutex(), which immediately closes (and thus don't want auto-removal), so create an internal function that's used by both fmutex() and fmutex_open().

  8. Rob Swindell (on Debian Linux)
    Sun Nov 17 2024 17:27:57 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/nopen.c diff
    src/sbbs3/nopen.h diff
    Have fmutex_open()/close() accept a fmutex_t* argument This is needed for *nix where normal (i.e. not Samba-mount) file behavior requires that we manually unlink() the file, but not until just before closing it. So we have to keep track of the file name and the 'auto_remove' desire of the caller. This is not necessary when the file is on a Linux-smbfs, but we need to work as expected on normal/local *nix file systems too. This solves atomic lock file removal for *nix, but does not gaurantee lock file cleanup upon ungraceful process termination (e.g. crash). At least in this particular case, Windows beats UNIX.

  9. Rob Swindell (on ChromeOS)
    Sun Nov 17 2024 16:35:15 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Revert "Use fmutex_open for 100% locking and auto-removal upon close/termination" This reverts commit e55183c0953d0b033d9f11796f4290e488596e92. fmutex_open()'s auto-remove feature doesn't work on normal/local Linux file systems: unlink() of a file immediately removes its directory entry allowing subsequent opens of the same file name, defeating the lock. I had tested fmutex_open() on a Samba mount (from Linux) and it worked as I wanted (like the Windows version does). Still searching for a good solution: if a process terminates, gracefully or not, I'd like the file to be removed at that time and until then, other processes or threads can't create or open the same lock file (using O_EXCL and file locking to insure this).

  10. Rob Swindell (on ChromeOS)
    Sun Nov 17 2024 14:03:01 GMT-0800 (PST)
    Modified Files:
    

    exec/load/openweathermap.js diff
    Update the openweathermap (OWM) API version number Change requested in issue #747 and from Dan_C in #synchronet

  11. Rob Swindell (on Debian Linux)
    Sun Nov 17 2024 13:00:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfg.h diff
    src/sbbs3/scfg/scfgnode.c diff
    src/sbbs3/scfg/scfgxtrn.c diff
    Create/use function to toggle bit flags (options/settings) Oh, so much copy/paste eliminated!

  12. Deucе
    Sun Nov 17 2024 11:08:18 GMT-0800 (PST)
    Modified Files:
    

    src/conio/win32gdi.c diff
    When SyncTERM is deactivated and it is in fullscreen mode, minimize. This appears to be the best we can do when Windows+M (minimize all) is pressed. We don't seem to be notified that we should minimize, only that a different application is being activated. This also makes Alt-TAB behave a bit more like expected.

  13. Deucе
    Sun Nov 17 2024 11:08:18 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Log change.

  14. Rob Swindell (on Debian Linux)
    Sun Nov 17 2024 03:07:44 GMT-0800 (PST)
    Modified Files:
    

    exec/mqtt_spy.js diff
    Add backup Ctrl-C input checking, just incase console.aborted isn't working Telnet BINARY_TX mode from the client disables CTRL-C input checking in all versions of SBBS (before now). This change shouldn't be necessary now, but it worked-around the BINARY_TX issue when I was having it (couldn't abort mqtt spy).

  15. Rob Swindell (on Debian Linux)
    Sun Nov 17 2024 03:10:50 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    A little beautification of errno logging

  16. Rob Swindell (on Debian Linux)
    Sun Nov 17 2024 02:53:53 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Perform "first level Ctrl-C input checking" even when in Telnet BINARY_TX This condition caused aborting BBS operations via Ctrl-C to fail when connecting from a traditional Telnet client using binary transmission mode (e.g. telnet -8) or SyncTERM v1.2rc6. The check of rio_abortable was probably enough to disable this function during file transfers (e.g. we've had no issues with SSH file transfers that might include byte 0x03 received from the client), but I added the check for SS_FILEXFER system status check too, perhaps unnecessary.

  17. Rob Swindell (on Windows 11)
    Sun Nov 17 2024 01:16:04 GMT-0800 (PST)
    Modified Files:
    

    3rdp/win32.release/cryptlib/bin/cl32.dll diff
    3rdp/win32.release/cryptlib/include/cryptlib.h diff
    Cryptlib v3.4.8 for Win32, patched

  18. Deucе
    Sun Nov 17 2024 00:31:51 GMT-0800 (PST)
    Modified Files:
    

    3rdp/build/CMakeLists-cl.txt diff
    3rdp/build/CMakeLists.txt diff
    3rdp/build/GNUmakefile diff
    3rdp/build/cl-Dynamic-linked-static-lib.patch diff
    3rdp/build/cl-PAM-noprompts.patch diff
    3rdp/build/cl-SSL-fix.patch diff
    3rdp/build/cl-add-patches-info.patch diff
    3rdp/build/cl-add-pubkey-attribute.patch diff
    3rdp/build/cl-add-win64.patch diff
    3rdp/build/cl-algorithms.patch diff
    3rdp/build/cl-allow-duplicate-ext.patch diff
    3rdp/build/cl-allow-none-auth-svr.patch diff
    3rdp/build/cl-allow-none-auth.patch diff
    3rdp/build/cl-allow-pkcs12.patch diff
    3rdp/build/cl-allow-servercheck-pubkeys.patch diff
    3rdp/build/cl-allow-ssh-2.0-go.patch diff
    3rdp/build/cl-allow-ssh-auth-retries.patch diff
    3rdp/build/cl-bigger-maxattribute.patch diff
    3rdp/build/cl-bn-noasm64-fix.patch diff
    3rdp/build/cl-channel-select-both.patch diff
    3rdp/build/cl-clear-GCM-flag.patch diff
    3rdp/build/cl-double-delete-fine-on-close.patch diff
    3rdp/build/cl-endian.patch diff
    3rdp/build/cl-fix-cbli-incompatible.patch diff
    3rdp/build/cl-fix-cpuid-order.patch diff
    3rdp/build/cl-fix-mb-w-conv-warnings.patch diff
    3rdp/build/cl-fix-shell-exec-types.patch diff
    3rdp/build/cl-fix-ssh-channel-close.patch diff
    3rdp/build/cl-good-sockets.patch diff
    3rdp/build/cl-haiku-build.patch diff
    3rdp/build/cl-handle-unsupported-pubkey.patch diff
    3rdp/build/cl-just-use-cc.patch diff
    3rdp/build/cl-lowercase-versionhelpers.patch diff
    3rdp/build/cl-macosx-minver.patch diff
    3rdp/build/cl-make-channels-work.patch diff
    3rdp/build/cl-mingw-add-m32.patch diff
    3rdp/build/cl-mingw-vcver.patch diff
    3rdp/build/cl-mingw32-static.patch diff
    3rdp/build/cl-mingw64-is-really-new.patch diff
    3rdp/build/cl-mingw64-thread-handles.patch diff
    3rdp/build/cl-mingw64-unicode-gibble.patch diff
    3rdp/build/cl-moar-objects.patch diff
    3rdp/build/cl-netbsd-hmac-symbol.patch diff
    3rdp/build/cl-netbsd-no-getfsstat.patch diff
    3rdp/build/cl-no-odbc.patch diff
    3rdp/build/cl-no-pie.patch diff
    3rdp/build/cl-no-safe-stack.patch diff
    3rdp/build/cl-no-testobjs.patch diff
    3rdp/build/cl-no-tpm.patch diff
    3rdp/build/cl-no-via-aes.patch diff
    3rdp/build/cl-noasm-defines.patch diff
    3rdp/build/cl-pass-after-pubkey.patch diff
    3rdp/build/cl-poll-not-select.patch diff
    3rdp/build/cl-posix-me-gently.patch diff
    3rdp/build/cl-prefer-ECC-harder.patch diff
    3rdp/build/cl-prefer-ECC.patch diff
    3rdp/build/cl-quote-cc.patch diff
    3rdp/build/cl-ranlib.patch diff
    3rdp/build/cl-read-timeout-every-time.patch diff
    3rdp/build/cl-remove-march.patch diff
    3rdp/build/cl-server-term-support.patch diff
    3rdp/build/cl-ssh-eof-half-close.patch diff
    3rdp/build/cl-ssh-list-ctr-modes.patch diff
    3rdp/build/cl-ssh-sbbs-id-string.patch diff
    3rdp/build/cl-ssh-service-type-for-channel.patch diff
    3rdp/build/cl-terminal-params.patch diff
    3rdp/build/cl-thats-not-asm.patch diff
    3rdp/build/cl-use-ssh-ctr.patch diff
    3rdp/build/cl-vcxproj.patch diff
    3rdp/build/cl-vt-lt-2005-always-defined.patch diff
    3rdp/build/cl-win32-lean-and-mean.patch diff
    3rdp/build/cl-win32-noasm.patch diff
    3rdp/build/cl-zlib.patch diff
    3rdp/build/cl-zz-country.patch diff
    3rdp/dist/cryptlib.zip diff
    Removed Files:

    3rdp/build/cl-fix-ssh-ecc-ephemeral.patch diff
    3rdp/build/cl-fix-ssh-header-read.patch diff
    3rdp/build/cl-fix-test-select.patch diff
    3rdp/build/cl-openbsd-threads.patch diff
    3rdp/build/cl-ssl-suite-blocksizes.patch diff
    3rdp/build/cl-win32-build-fix.patch diff
    Update Cryptlib to 3.4.8

  19. Rob Swindell
    Sun Nov 17 2024 00:31:52 GMT-0800 (PST)
    Modified Files:
    

    3rdp/build/CMakeLists-cl.txt diff
    3rdp/build/CMakeLists.txt diff
    3rdp/build/GNUmakefile diff
    3rdp/build/cl-Dynamic-linked-static-lib.patch diff
    3rdp/build/cl-PAM-noprompts.patch diff
    3rdp/build/cl-SSL-fix.patch diff
    3rdp/build/cl-add-patches-info.patch diff
    3rdp/build/cl-add-pubkey-attribute.patch diff
    3rdp/build/cl-add-win64.patch diff
    3rdp/build/cl-algorithms.patch diff
    3rdp/build/cl-allow-duplicate-ext.patch diff
    3rdp/build/cl-allow-none-auth-svr.patch diff
    3rdp/build/cl-allow-none-auth.patch diff
    3rdp/build/cl-allow-pkcs12.patch diff
    3rdp/build/cl-allow-servercheck-pubkeys.patch diff
    3rdp/build/cl-allow-ssh-2.0-go.patch diff
    3rdp/build/cl-allow-ssh-auth-retries.patch diff
    3rdp/build/cl-bigger-maxattribute.patch diff
    3rdp/build/cl-bn-noasm64-fix.patch diff
    3rdp/build/cl-channel-select-both.patch diff
    3rdp/build/cl-clear-GCM-flag.patch diff
    3rdp/build/cl-double-delete-fine-on-close.patch diff
    3rdp/build/cl-endian.patch diff
    3rdp/build/cl-fix-cbli-incompatible.patch diff
    3rdp/build/cl-fix-cpuid-order.patch diff
    3rdp/build/cl-fix-mb-w-conv-warnings.patch diff
    3rdp/build/cl-fix-shell-exec-types.patch diff
    3rdp/build/cl-fix-ssh-channel-close.patch diff
    3rdp/build/cl-good-sockets.patch diff
    3rdp/build/cl-haiku-build.patch diff
    3rdp/build/cl-handle-unsupported-pubkey.patch diff
    3rdp/build/cl-just-use-cc.patch diff
    3rdp/build/cl-lowercase-versionhelpers.patch diff
    3rdp/build/cl-macosx-minver.patch diff
    3rdp/build/cl-make-channels-work.patch diff
    3rdp/build/cl-mingw-add-m32.patch diff
    3rdp/build/cl-mingw-vcver.patch diff
    3rdp/build/cl-mingw32-static.patch diff
    3rdp/build/cl-mingw64-is-really-new.patch diff
    3rdp/build/cl-mingw64-thread-handles.patch diff
    3rdp/build/cl-mingw64-unicode-gibble.patch diff
    3rdp/build/cl-moar-objects.patch diff
    3rdp/build/cl-netbsd-hmac-symbol.patch diff
    3rdp/build/cl-netbsd-no-getfsstat.patch diff
    3rdp/build/cl-no-odbc.patch diff
    3rdp/build/cl-no-pie.patch diff
    3rdp/build/cl-no-safe-stack.patch diff
    3rdp/build/cl-no-testobjs.patch diff
    3rdp/build/cl-no-tpm.patch diff
    3rdp/build/cl-no-via-aes.patch diff
    3rdp/build/cl-noasm-defines.patch diff
    3rdp/build/cl-pass-after-pubkey.patch diff
    3rdp/build/cl-poll-not-select.patch diff
    3rdp/build/cl-posix-me-gently.patch diff
    3rdp/build/cl-prefer-ECC-harder.patch diff
    3rdp/build/cl-prefer-ECC.patch diff
    3rdp/build/cl-quote-cc.patch diff
    3rdp/build/cl-ranlib.patch diff
    3rdp/build/cl-read-timeout-every-time.patch diff
    3rdp/build/cl-remove-march.patch diff
    3rdp/build/cl-server-term-support.patch diff
    3rdp/build/cl-ssh-eof-half-close.patch diff
    3rdp/build/cl-ssh-list-ctr-modes.patch diff
    3rdp/build/cl-ssh-sbbs-id-string.patch diff
    3rdp/build/cl-ssh-service-type-for-channel.patch diff
    3rdp/build/cl-terminal-params.patch diff
    3rdp/build/cl-thats-not-asm.patch diff
    3rdp/build/cl-use-ssh-ctr.patch diff
    3rdp/build/cl-vcxproj.patch diff
    3rdp/build/cl-vt-lt-2005-always-defined.patch diff
    3rdp/build/cl-win32-lean-and-mean.patch diff
    3rdp/build/cl-win32-noasm.patch diff
    3rdp/build/cl-zlib.patch diff
    3rdp/build/cl-zz-country.patch diff
    3rdp/dist/cryptlib.zip diff
    Removed Files:

    3rdp/build/cl-fix-ssh-ecc-ephemeral.patch diff
    3rdp/build/cl-fix-ssh-header-read.patch diff
    3rdp/build/cl-fix-test-select.patch diff
    3rdp/build/cl-openbsd-threads.patch diff
    3rdp/build/cl-ssl-suite-blocksizes.patch diff
    3rdp/build/cl-win32-build-fix.patch diff
    Merge branch 'cryptlib-3.4.8' into 'master' Update Cryptlib to 3.4.8 See merge request main/sbbs!473

  20. Deucе
    Sat Nov 16 2024 23:02:32 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    "support" CHARSET search parameter. Allow only US-ASCII, and send the BADCHARSET response code indicating that. Fixes issue with aerc.

  21. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 22:20:59 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgxtrn.c diff
    Add a "Use Shell" toggle option for fixed events On *nix, you need the command shell to do wildcard expansion of filenames

  22. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 22:23:50 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/date_str.c diff
    Treat -1 as invalid time in time_as_hhmm()

  23. Rob Swindell (on Windows 11)
    Sat Nov 16 2024 20:06:54 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbs_ini.c diff
    Resolve MSVC warning

  24. Rob Swindell (on Windows 11)
    Sat Nov 16 2024 20:07:23 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    Use safe_strerror() in place of strerror() - everything multithreaded should

  25. Rob Swindell (on Windows 11)
    Sat Nov 16 2024 20:08:18 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    Add description comment for find_login_id()

  26. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 19:13:33 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    Fix the "ERROR x getting data user y" log message (usernum was 0). Add the errno value to help root-cause. We really should be using safe_strerror() everywhere.

  27. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 16:25:26 GMT-0800 (PST)
    Modified Files:
    

    exec/load/newsutil.js diff
    Store original "references" header field as an RFC822HEADER in SMB If an original references header field was supplied with the message, include *that* in the header (since it should contain all the IDs of the replied-to message thread) rather than just the message's reply_id (a single message ID) when sending via NNTP. This maintains more NNTP post integrity when sending back out via NNTP. Not sure why we were storing received "references" in the hdr.references returned by parse_news_header(), we don't seem to be using it anywere. Maybe copied from 822header.js or mailproc_util.js? Seems like cruft, so remove it. Also, don't ever send an "In-Reply-To" heder field via NNTP (it's not valid /used for NNTP articles, per RFC 5536).

  28. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 15:12:35 GMT-0800 (PST)
    Modified Files:
    

    exec/load/newsutil.js diff
    In-Reply-To is not a valid NNTP article header field ... so this was just redundant noise. Altough "References" is a valid header field *both* for email and nntp articles, "In-Reply-To" is for email only. per RFC 5536

  29. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 14:38:06 GMT-0800 (PST)
    Modified Files:
    

    exec/load/newsutil.js diff
    Fix the regex in the parsing of the "References" header field We only want one Message-ID (we'll use the last, since that appears to be the message being replied to based on SLRN behavior). This fixes reply linkage when posing from newsreaders that put multiple message-IDs in the references header field. This is required for SBBSecho to do its magic creation of the FTN REPLY kludge during export. This is the fix that Accession was looking for, I think.

  30. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 14:25:55 GMT-0800 (PST)
    Modified Files:
    

    exec/nntpservice.js diff
    Revert "Don't overwrite the posted-reply FTN REPLY ID if it was provided by the client" This reverts commit a7f1a24a2ce7e67a87d067a89450a18108b8965d. Not the fix we're looking for.

  31. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 14:26:09 GMT-0800 (PST)
    Modified Files:
    

    exec/nntpservice.js diff
    Revert "Look up referenced FTN MSGID of messages being POSTed and use in FTN-REPLY" This reverts commit d4692e0a5cf643b67928ec8e2cdf9b333c1ab2d0. Not the fix we're looking for.

  32. Deucе
    Sat Nov 16 2024 14:13:28 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Don't overwrite the offset with the IMAP offset, add a new one.

  33. Deucе
    Sat Nov 16 2024 14:13:28 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    "Final" optimizations Use the fastest message base access methods documented. Cache read/write configs and avoid parsing on read if unchanged. Make common saves dependent on there being changes. This is likely as good as it gets (assuming it works)

  34. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 14:04:33 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Use fmutex_open for 100% locking and auto-removal upon close/termination

  35. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 13:22:16 GMT-0800 (PST)
    Modified Files:
    

    exec/nntpservice.js diff
    Don't overwrite the posted-reply FTN REPLY ID if it was provided by the client

  36. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 13:14:50 GMT-0800 (PST)
    Modified Files:
    

    exec/nntpservice.js diff
    Look up referenced FTN MSGID of messages being POSTed and use in FTN-REPLY ... for Acccession

  37. Deucе
    Sat Nov 16 2024 12:30:36 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Wrap each cleanup step in a separate try/catch in exit func. Clean up as much as possible.

  38. Deucе
    Sat Nov 16 2024 12:28:13 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Replace / with - in group/sub names Almost no clients support a / in names. Maybe I'll define an x- extension or something when I write my own mail client.

  39. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 12:18:38 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/nopen.c diff
    src/sbbs3/nopen.h diff
    Leave the user/*.ftp lock file open for better protection This appears to be the only way to 100% provide mutual exclusivity between Windows and Linux client sharing a Samba file system. Also, make fmutex_close() take a pointer to the file descriptor so that we can better manage the resource (i.e. don't close a descriptor that's already been closed and possibly valid in another thread).

  40. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 11:00:04 GMT-0800 (PST)
    Modified Files:
    

    exec/newslink.js diff
    Print the correct .ini filename where ptrs are saved was printing the filename in uppercase if configured as such

  41. Deucе
    Sat Nov 16 2024 03:04:16 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Some saved_config cleanup before splitting configs.

  42. Deucе
    Sat Nov 16 2024 03:04:16 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Overhaul the saved config. Rather than a single file with config for all subs, use a separate file for each sub. This makes clients that do parallel connections to different mailboxes work much better, and make loading and saving the config for a mailbox much faster. The caching stuff is removed to simplify things, and hopefully won't need to come back... we should just not save config if it doesn't change. Only issue I'm still aware of is that 99% of IMAP clients just can't deal with slashes in mailbox paths. Like... at all. The protocol supports them, but every client seems to have a different way of breaking with them.

  43. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 01:29:50 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    src/sbbs3/nopen.c diff
    src/sbbs3/nopen.h diff
    We can call remove() right after opening to enable auto-remove on *nix ... which simplifies the fmutex_close() function and signature.

  44. Rob Swindell (on Debian Linux)
    Sat Nov 16 2024 01:31:16 GMT-0800 (PST)
    Modified Files:
    

    exec/newslink.js diff
    Don't download more msgs than the max for the sub-board (if non-zero) No sense downloading articles we're just going to toss out the next time we performance msgbase maintenance.

  45. Rob Swindell (on Debian Linux)
    Fri Nov 15 2024 23:54:41 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mailsrvr.c diff
    src/sbbs3/mailsrvr.h diff
    src/sbbs3/sbbs_ini.c diff
    src/sbbs3/scfg/scfgsrvr.c diff
    Make the spamblock.cfg auto-added entries expirable (configurable duration) By default, the duration is infinite, but some sysops may not want this file to be ever-grower but rather periodically pruned by the new trashman utility. Sysop that don't use spambait.cfg won't benefit from this change.

  46. Rob Swindell (on Windows 11)
    Fri Nov 15 2024 22:36:35 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/nopen.c diff
    Fix for Borland C++ build Also, don't get hostname unless we're surely going to write to the file.

  47. Rob Swindell (on Windows 11)
    Fri Nov 15 2024 22:37:19 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Just a little wording update on the fmutex file open log message

  48. Rob Swindell (on Windows 11)
    Fri Nov 15 2024 22:17:38 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/nopen.c diff
    src/sbbs3/nopen.h diff
    Add fmutex_close() method to atomically remove the mutex file on Win32 The 'atomic_remove' argument isn't used in non-Windows builds since we can remove() before close() on non-Windows OSes already.

  49. Rob Swindell (on Windows 11)
    Fri Nov 15 2024 22:17:38 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Use fmutex_close() and don't log ENOENT errors when removing pack*.now files

  50. Deucе
    Fri Nov 15 2024 21:48:52 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Add a sanity check on saved config. I managed to hit a bug where bseen and seen were both completely filled. No idea how I hit it, so not positive it's fixed. This is cheap insurance against the 43k file groung to 1.6MB for someone else.

  51. Deucе
    Fri Nov 15 2024 19:08:34 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    More speed optimizations 1) Cache the binified seen data rather than regenerate every time 2) Only call js.gc() after a complete fetch or store loop

  52. Rob Swindell (on Windows 11)
    Fri Nov 15 2024 16:49:43 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/con_out.cpp diff
    The progress reports (e.g. "[ Done 100.0% ]") should never go to logs

  53. Rob Swindell (on Windows 11)
    Fri Nov 15 2024 18:27:27 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/nopen.c diff
    src/sbbs3/nopen.h diff
    Add fmutex_open() for cases where you want to keep the mutex file open

  54. Rob Swindell (on Windows 11)
    Fri Nov 15 2024 18:28:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Use fmutex_open() instead of fmutex() to better protect the pack*.lock files

  55. Rob Swindell (on Windows 11)
    Fri Nov 15 2024 16:45:09 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/nopen.c diff
    Use sopen(... SH_DENYRW) for fmutex() instead of open() O_EXCL doesn't appear to be working very reliably over Samba, so let's add file locking to the equation.

  56. Deucе
    Fri Nov 15 2024 16:09:59 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Don't rollback scan pointer on sub close.

  57. Deucе
    Fri Nov 15 2024 12:49:20 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Remove set-but-never-used msg_ptrs

  58. Deucе
    Fri Nov 15 2024 12:49:20 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    What I hope are the last \Seen and \Recent fixes.

  59. Rob Swindell (on Windows 11)
    Fri Nov 15 2024 12:21:48 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Reolve !ERROR 2 (No such file or directory) removing "data/pack####.now" glob() results might be out of date by the time we look at each file, just skip missing QWK pack semaphore files silently. This should resolve the ".now already gone" messages too. Hopefully. Removed some extraneous quotes around logged event command-lines.

  60. Rob Swindell (on Debian Linux)
    Fri Nov 15 2024 12:19:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Use timestr() instead of ctime_r() for logging full date/times Also when detecting a blocked event_thread, log the event_code that is/was running last.

  61. Deucе
    Fri Nov 15 2024 11:54:12 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Simplify close_sub() Should be no functional change.

  62. Deucе
    Fri Nov 15 2024 10:30:44 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    If open_sub() fails, set readonly to true.

  63. Deucе
    Fri Nov 15 2024 10:24:52 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Save scan_ptr for all subs in config. Also, make save_cfg() require that the lock be held.

  64. Deucе
    Fri Nov 15 2024 09:24:02 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    More Seen flag overhaul. This should now actually work properly. Also, add a debug_exceptions flag to rethrow exceptions so I can get line numbers.

  65. Deucе
    Fri Nov 15 2024 08:12:22 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Roll the epoch back to zero if it hits 9007199254740991 It shouldn't though.

  66. Deucе
    Thu Nov 14 2024 23:59:05 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Fix BODYSTRUCTURE bug that prevented macOS Sequoia from loading messages Also, always use full_send(), not the socket send.

  67. Rob Swindell (on Windows 11)
    Thu Nov 14 2024 22:30:39 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbs.h diff
    sbbs_t::fremove() will now, by default, ignore (not log) ENOENT errors ENOENT = "No such file or directory" Passing 'true' for the optional 'log_all_errors' parameter overrides this (logs all errors, including ENOENT).

  68. Rob Swindell (on Windows 11)
    Thu Nov 14 2024 22:40:33 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    src/sbbs3/scfg/scfgmsg.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    Remove "QWK Prepack" feature (has been on chopping block for a long time) This removes unnecessary some cruft and complexity, most especially from the event_thread(). Using sbbs_t::fremove() instead of remove(). This probably resolves some Coverity issues where we weren't checking the return value.

  69. Rob Swindell (on Debian Linux)
    Thu Nov 14 2024 21:16:17 GMT-0800 (PST)
    Modified Files:
    

    exec/newslink.js diff
    Return 1 on failure (e.g. authentication failure), not 0 Only log message header read error if the msgbase.status is non-zero Don't try to import anything if the stop semfile is signaled while exporting. Increment revision to 1.2

  70. Rob Swindell (on Debian Linux)
    Thu Nov 14 2024 21:17:21 GMT-0800 (PST)
    Modified Files:
    

    exec/testbuild.js diff
    Updates nightly builds in filebase

  71. Rob Swindell (on Debian Linux)
    Thu Nov 14 2024 21:07:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Detect hung event_thread and log details Add log message when spawning background timed event

  72. Rob Swindell (on Windows 11)
    Thu Nov 14 2024 20:54:09 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Log event command-lines (repeating event code was redundant) Only log messages about QWK mutex files existing when > 60 seconds old

  73. Rob Swindell (on Windows 11)
    Thu Nov 14 2024 20:07:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Better support for multiple hosts handling QWK events First, fix the logged username bug in the "Lock exists" log message. Next, double check that the trigger file (sem file or REP file) still exists after acquiring the file mutex. Use a temp varible (fname) to make the code easier to read.

  74. Deucе
    Thu Nov 14 2024 19:57:25 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Fix UID FETCH deadlock. Also, after grabbing a lock, enter a try/catch that will unlock and re-throw the error.

  75. Deucе
    Thu Nov 14 2024 19:39:55 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Increase lock timeout to 5 min, reset imap config on exception

  76. Rob Swindell (on Windows 11)
    Thu Nov 14 2024 18:24:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgxtrn.c diff
    Include number of timed events and external programs in title of list windows

  77. Rob Swindell (on Windows 11)
    Thu Nov 14 2024 18:24:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/answer.cpp diff
    src/sbbs3/date_str.c diff
    src/sbbs3/date_str.h diff
    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/js_global.c diff
    src/sbbs3/logout.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/nopen.c diff
    src/sbbs3/nopen.h diff
    src/sbbs3/sbbsecho.c diff
    Only allow one FTP session per QWKnet user account Vertrauen's FTP server gets abused by QWKnet logins sometimes and handling the race conditions around QWK packet creation attempts is silly - there's no legit reason why a QWKnet account needs to be logged-in multiple times concurrently to the hub's FTP server, so reject the subsequent logins even when they're on different hosts (as is the case with Vertrauen). As part of this change: - fmutex() now takes an new time_t* argument to (optionally) store the time of the mutex file for helping logging (locked since when?). - time_as_hhmm() created to format a string as either HH:MM or HH:MM[a|p] (depending on system configuration for 12 or 24 hour time formatting). - renamed the old hhmmtostr ()to tm_as_hhmm() (since it takes a struct tm arg) and have it return a non-padded string (useful in more situations without requiring truncation) when the sysop prefers 24-hour time.

  78. Rob Swindell (on Debian Linux)
    Thu Nov 14 2024 01:59:22 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/sopenfile.c diff
    Add a -l (loop) option to retry until failure Pretty remedial option parsing here, the order is significant

  79. Rob Swindell (on Debian Linux)
    Thu Nov 14 2024 18:23:33 GMT-0800 (PST)
    Modified Files:
    

    exec/jsdocs.js diff
    Add git details to version information displayed

  80. Deucе
    Wed Nov 13 2024 23:26:21 GMT-0800 (PST)
    Modified Files:
    

    src/uifc/uifc32.c diff
    Just overhaul this who chunk of code.

  81. Deucе
    Wed Nov 13 2024 22:36:31 GMT-0800 (PST)
    Modified Files:
    

    src/uifc/uifc32.c diff
    Fix bug reported by DigitalMan It looks like this has been a long-standing UIFC bug (pre-3.0) If a uifc list that can scroll is showing the bottom-most line, and an option that is not the last is deleted, and both *cur and *bar are left untouched, *bar would be adjusted to be too high, resulting in various highlight bar corruption issues. This commit just rewrites that logic to be comprehensible, and ensures that if bar is set such that the list would end before the bottom of the window, it gets moved up. This makes delete do the right thing (didn't test with insert, that may do weird things). Also, since I figured out a good definition of what bar actually represtens, add a comment to that effect.

  82. Deucе
    Wed Nov 13 2024 22:37:47 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Mention the change

  83. Rob Swindell (on Windows 11)
    Wed Nov 13 2024 19:44:43 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_msgbase.c diff
    Document the editor property (field) of the message header object there are still other undocumented fields/properties, but this one for sure was missing.

  84. Rob Swindell (on Windows 11)
    Wed Nov 13 2024 19:46:34 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    src/sbbs3/sbbs_ini.c diff
    src/sbbs3/scfg/scfgsrvr.c diff
    src/sbbs3/startup.h diff
    Allow a separate log level for the event thread of the terminal server So you want to debug (timed) events, but don't want to get debug-spew in your terminal server log output? Now you can: By default, the event thread log level will be the same as the terminal server, but now you can override this by setting [BBS] EventLogLevel in the sbbs.ini file or set it in SCFG->Servers->Terminal Server->Event Log Level.

  85. Deucе
    Wed Nov 13 2024 17:57:15 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    New IMAP search parser/generator Previously, the IMAP search tried to do sneaky things to optimize execution time, but that ended up with problems when nested ()s were used, among other, more subtle issues. Also, the old search wasn't even tested enough so that each term would work. The new system transpiles the IMAP query to Javascript then runs the compiled JS function for each message. Should be much more accurate (though may also be much slower). Actually fixes the issue reported as #397, and closes #730.

  86. Rob Swindell (on Debian Linux)
    Wed Nov 13 2024 14:28:23 GMT-0800 (PST)
    Modified Files:
    

    exec/newslink.js diff
    Don't report how many bases are being scanned, cause we don't know ... was always reporting 0 because 'area' is not an array object

  87. Rob Swindell (on Debian Linux)
    Wed Nov 13 2024 14:30:25 GMT-0800 (PST)
    Modified Files:
    

    exec/load/newsutil.js diff
    Import and export the message "editor" as the NNTP "user-agent" header field The message editor is exported/imported to/from FTN as the "NOTE" kludge. For Accession, per irc.synchro.net

  88. Rob Swindell (on Windows 11)
    Wed Nov 13 2024 12:32:31 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    src/sbbs3/sbbsecho.h diff
    When processing AreaRequest with -R (rescan), rescan existing echoes too If the body of the request mesages message contains a list of area-tags, even if we already have the node linked to those echoes, do the rescan for each listed echo. Previously, only newly-added echoes would be rescanned via this method. Apparently the D'bridge built-in method of generating AreaManager requests uses this syntax (per Ward Dossche). Also, when rescanning due to AreaManager rescan request and generating a response netmail message, include the total number of messages exported as a result. Increase SBBSecho version number to v3.22 (Please upgrade, Fernando) :-)

  89. Eric Oulashin
    Wed Nov 13 2024 11:20:48 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    DDFileLister: Check whether cost is in the file metadata before using it. Also, when getting a file's full path, ensure its name is passed to get_path(), as described by the JS documentation.

  90. Rob Swindell
    Wed Nov 13 2024 11:20:48 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    Merge branch 'ddfilelister_check_cost_in_metadata' into 'master' DDFileLister: Check whether cost is in the file metadata before using it. Also, when getting a file's full path, ensure its name is passed to get_path(), as described by the JS documentation. See merge request main/sbbs!472

  91. Rob Swindell (on Windows 11)
    Wed Nov 13 2024 00:32:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/logon.cpp diff
    src/sbbs3/logout.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/scfg/scfg.h diff
    src/sbbs3/scfg/scfgnode.c diff
    src/sbbs3/scfg/scfgxtrn.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    Add a 'misc' field for System/Fixed Events allow disabling and "Native" Configured in SCFG->External Programs->Fixed Events and the Node Daily Events configured in SCFG->Nodes, now can be disabled (without just clearing the command-line) and toggle-on "Native", so the program doesn't have to be added to the dreaded "Native Program List" in order to *not* be treated as a 16-bit DOS program (the default). Eventually I'll allow multiple of each time of system fixed event, but this is an improvement for now at least.

  92. Rob Swindell (on Windows 11)
    Tue Nov 12 2024 21:13:59 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    A file descriptor of 0 is technically valid (though normally, STDIN) Likely fix for CID 514647

  93. Rob Swindell (on Windows 11)
    Tue Nov 12 2024 21:11:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Support multiple files ("FileList" per FTS-1) in subj when creating .REQ files Previously, this feature assumed just one request per FREQ message, however FTS-1 make this clear: If one or more of FileAttached, FileRequest, or FileUpdateReq are asserted in an AttributeWord, the subject{72} field is interpreted as a list of file specifications which may include wildcards and other system-dependent data. This list is of the form FileList = [ FileSpec { Sep FileSpec } ] Null FileSpec = (* implementation dependent file specification. may not contain Null or any of the characters in Sep. *) Sep = ( " " | "," ) { " " }

  94. Rob Swindell (on Windows 11)
    Tue Nov 12 2024 21:11:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/fidodefs.h diff
    src/sbbs3/sbbsecho.c diff
    Complete the support for multiple files (FileList) in subject of netmails ... also the support for multiple spaces or commas separating each filename. Oh, FTS-1, how did I miss thee?

  95. Deucе
    Tue Nov 12 2024 20:56:57 GMT-0800 (PST)
    Modified Files:
    

    src/conio/Common.gmake diff
    src/sbbs3/GNUmakefile diff
    src/syncterm/GNUmakefile diff
    src/xpdev/Common.gmake diff
    Normalize SDL on macOS Prefer sdl2-config from the path, and only use the framework in /Library/Frameworks if that doesn't exist... to that end, don't copy the framework into the app anymore unless you're using it. This should clean out the pipes.

  96. Rob Swindell (on Windows 11)
    Tue Nov 12 2024 20:18:37 GMT-0800 (PST)
    Added Files:
    

    src/sbbs3/scfg/resource.h diff
    src/sbbs3/scfg/scfg.rc diff
    src/sbbs3/sync.ico diff
    Modified Files:

    src/sbbs3/scfg/scfg.vcxproj diff
    Add "SYNC" icon (64x64, captured from GJ's "SYNCH" ANSI splash) To replace lost the default/conio icon (for Windows builds) recently

  97. Rob Swindell (on Windows 11)
    Tue Nov 12 2024 19:02:27 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Use new FILE_RETRY_ERRNO() macro for sopen() retries in sbbs_t::nopen()

  98. Rob Swindell (on Windows 11)
    Tue Nov 12 2024 19:03:38 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/str_util.c diff
    src/sbbs3/str_util.h diff
    Add make_newsgroup_name()

  99. Rob Swindell (on Windows 11)
    Tue Nov 12 2024 19:04:41 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgsub.c diff
    src/sbbs3/scfglib1.c diff
    Use (new) make_newsgroup_name() function ... to be sure configured newsgroup name is RFC compliant.

  100. Rob Swindell (on Windows 11)
    Tue Nov 12 2024 20:00:59 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Support multiple filenames in subjects of file-attach netmails being packed When writing the attached file path/names to the FLO file, parse each filename out of the subject, accordingly. This should fix issue #824. There's an inconsistent support in SBBSecho for FileLists in the subjects of netmail messages. In a couple of places, single-space-separated filelists are fine (but not commas or multiple space, even though they are allowed per FTS-1). This particular fix is just for the packing of netmail messages and the appending the attached file(s) to the FLO file. Those other places (e.g. .REQ file creation) will need their own fixes for proper filelist support.

  101. Rob Swindell (on Debian Linux)
    Tue Nov 12 2024 18:16:47 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.h diff
    Add FILE_RETRY_ERRNO() definition, to be used in sopen()/lock() loops Note: EBUSY was added to the list of errno values that should cause a retry as observed on Vertrauen, running sbbs-linux on a Samba mount, opening locked files can return failure (-1) with errno = EBUSY, e.g. evnt BBS Events !ERROR 16 (Device or resource busy) in logon.cpp line 616 (logonstats) reading "system stats" access=0 This was apparently resolved by adding EBUSY (16) the values that trigger an sopen() retry (i.e. from [f]nopen()).

  102. Rob Swindell (on Debian Linux)
    Tue Nov 12 2024 18:16:47 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/nopen.c diff
    src/smblib/smbfile.c diff
    src/smblib/smblib.c diff
    Use (new) FILE_RETRY_ERRNO() macro to decide to retry sopen() also retrying fread() and chsize(), but that seems harmless.

  103. Deucе
    Tue Nov 12 2024 09:43:59 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Current IMAP standards to not allow additional text after FLAGS Remove the grease.

  104. Deucе
    Tue Nov 12 2024 00:03:14 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Add more paranoia. This is a suitable amount of paranoia now.

  105. Deucе
    Mon Nov 11 2024 23:59:51 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Add a bit of paranoia to the infinite loop in lock_cfg() too.

  106. Deucе
    Mon Nov 11 2024 23:50:40 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_socket.c diff
    Document return values of Socket.poll()

  107. Deucе
    Mon Nov 11 2024 23:50:40 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    poll() for write, and break on sock.send() returning zero Should fix log-padding infinite loop.

  108. Rob Swindell (on Windows 11)
    Mon Nov 11 2024 18:56:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mailsrvr.c diff
    Include the size of the message headers in the POP3 STAT response too I suppose if we only had messages with no body text, this value could be 0 (not accounting for any headers) and thus throw a client off. So consider this as part of the fix for issue #822.

  109. Rob Swindell (on Debian Linux)
    Mon Nov 11 2024 18:39:25 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mailsrvr.c diff
    Report bigger "size of message" in POP3 LIST response For messages that have no body, we'd report 0. But RFC 1939 says this value is supposed to be "the exact size of the message in octets" <sigh>. This would include header fields, so while we can't know the exact RFC822 size, adding the msg's hdr.length to these values gives size > 0 for messages with no body text and this enables the Apple iPhone Mail app to download the message (fixing issue #822). Part two of this fix is to provide a blank line of message text when there is none. This changes the message displayed in the iPhone Mail app from: "This message cannot be displayed because of the way it is formatted. Ask the sender to send it again using a different format or email program. text/plain" to (the much nicer): "This message has no content".

  110. Deucе
    Mon Nov 11 2024 15:11:46 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    NAMESPACE didn't help with Claws/Sylpheed. Change the message.

  111. Deucе
    Mon Nov 11 2024 14:55:26 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Fix handling of short send()s For some reason, I thought socket.send() did this, but apparently not. Fixes issue transferring large messages. Also, add support for the useless NAMESPACE command.

  112. Deucе
    Mon Nov 11 2024 13:42:37 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Don't map new-scan config to IMAP subscriptions The sets of message bases you want to get over different protocols may be different. While we're here, fix an error with single-parameter FETCH parsing which prevented Sylpheed from being able to read messages.

  113. Deucе
    Mon Nov 11 2024 11:40:47 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Add comment as to why the body is being replaced.

  114. Deucе
    Mon Nov 11 2024 11:26:18 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Update fix in e0e1fc389c Instead of text with completely different meaning, change the "no body" text to a single space.

  115. Deucе
    Mon Nov 11 2024 11:09:34 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Fix deadlock introduced in last commit.

  116. Deucе
    Mon Nov 11 2024 10:22:20 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Hold config lock for whole sequence. Rather than locking for just one message, lock for the entire command when potentially updating Seen data. With this, we can block all connections the user has except the currently executing one, and not need to read/write the seen data between every message. While this can take minutes on very large subs, it's certainly better than hours as previously. It's rude to have multiple sockets actively pumelling the server anyway.

  117. Deucе
    Mon Nov 11 2024 01:42:58 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    exec/load/822header.js diff
    Fix what appears to be a potential security hole (and some other stuff) If the INI file could not be opened, a failure would be returned, but authentication would (potentially) succeed. I can't think of a way to exploit this, but it's getting late. Also, make some minor optimizations that won't make a difference yet, and move opening the file into a single function.

  118. Deucе
    Mon Nov 11 2024 01:42:58 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Optimize read/save of Seen config Previously, this uses INI format files, with ini file accessors to read and save this file. Now it just dumps a JSON file in and slurps it out. This saves about 0.4s/msg on my system when reading headers.

  119. Deucе
    Mon Nov 11 2024 01:42:59 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Do some more optimizations around setting the Seen flag. This speeds things up a fair bit, and will make things faster after an initial scan. I may expand this method a bit to lock other sockets for for either some period of time or some number of messages to allow the initial scan to be even faster.

  120. Rob Swindell (on Debian Linux)
    Mon Nov 11 2024 01:37:50 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgmsg.c diff
    Allow 3 digit message base retry timeout

  121. Rob Swindell (on Windows 11)
    Mon Nov 11 2024 01:20:03 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/nopen.h diff
    src/sbbs3/userdat.c diff
    Reduce LOOP_NOPEN and LOOP_USERDAT from 500 to 100 With the incremental backoffs, these were super long waits for locks. Not sure about my math there, but at 500, the total timeout was not "about 45 seconds" but rather several minutes. At 100, the total max retry time should be almost exactly 45 seconds: Retries ms-per total seconds 0 - 9 0 0 10 - 19 100 1 20 - 29 200 3 30 - 39 300 6 40 - 49 400 10 50 - 59 500 15 60 - 69 600 21 70 - 79 700 28 80 - 89 800 36 90 - 99 900 45* 100 - 109 1000 55 110 - 119 1100 66 120 - 129 1200 78 130 - 139 1300 91 140 - 149 1400 105 150 - 159 1500 120 160 - 169 1600 136 170 - 179 1700 153 180 - 189 1800 171 190 - 200 1900 200! ... so yeah, 500 was way too big a number.

  122. Rob Swindell (on Debian Linux)
    Mon Nov 11 2024 00:58:50 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.c diff
    Revert the lock() change in commit 043feff8 So this change is needed or else fcntl() will fail with errno=BADF if trying to write-lock a file that was opened read-only. Oh well. Added a comment explaining the rationale.

  123. Rob Swindell (on Debian Linux)
    Mon Nov 11 2024 01:00:58 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/lockfile.c diff
    Add -r option for opening the file to lock read-only It makes a difference on *nix.

  124. Rob Swindell (on Debian Linux)
    Mon Nov 11 2024 01:06:49 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/showlocks.c diff
    Add support for -r (read-only) open before locking And only supports a single file per invocation now.

  125. Rob Swindell (on Debian Linux)
    Sun Nov 10 2024 23:56:34 GMT-0800 (PST)
    Added Files:
    

    src/xpdev/lockfile.c diff
    src/xpdev/showlocks.c diff
    Some helpful test programs for testing file record locking.

  126. Rob Swindell (on Debian Linux)
    Sun Nov 10 2024 22:41:48 GMT-0800 (PST)
    Added Files:
    

    src/xpdev/sopenfile.c diff
    A useful little program for testing sopen() from filewrap.c This is the program I used (along with flock) to reach the root cause of the SH_COMPAT == SH_DENYRW (no locking) bug in sopen() as well as other interactions between Linux and Windows clients opening the same files across a Samba share.

  127. Rob Swindell (on Debian Linux)
    Sun Nov 10 2024 23:46:33 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.c diff
    Log a build warning if building for Linux without OFD lock support OFD locks are needed on Linux for appropriate multi-threaded shared file access (using fcntl record locks to prevent corruption), so log a warning if building for Linux without that support. lock() now mimics DOS/Windows again: the result lock is an "all access" lock regardless of what mode the file was open in. I'm not sure why this change was made (commit 11b73134563ce26), but I don't think it was necessary or appropriate (though I can't think of any immediate negative effects). At minimum it makes the code a little more understandable and eliminates an extra call to fcntl().

  128. Rob Swindell (on Debian Linux)
    Sun Nov 10 2024 22:09:35 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.c diff
    Get rid of the fcntl() usage in sopen() You can't lock a file on a Samba share via both fcntl() and flock() (the interact/collide). This code was in a !BSD block which means they guy that wrote/committed it wasn't using it either.

  129. Rob Swindell (on Debian Linux)
    Sun Nov 10 2024 20:15:57 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.c diff
    src/xpdev/filewrap.h diff
    Remove the F_SANE*LCKNO stuff It appears Deuce's FreeBSD patch isn't going to be accepted/merged (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=50827), so I'm making this code a little more readable/manageable by removing this unused feature... for now, with Deuce's approval.

  130. Rob Swindell (on Windows 11)
    Sun Nov 10 2024 17:14:22 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Log a notice-level message when renaming a bad bundle file to *.?_? or *.?-?

  131. Rob Swindell (on Debian Linux)
    Sun Nov 10 2024 14:48:23 GMT-0800 (PST)
    Modified Files:
    

    exec/load/newsutil.js diff
    exec/nntpservice.js diff
    Use original RFC822-formatted subject, if available (e.g. recv'd via SMTP) This solves issue #817 for TLDR messages imported into DOVE-Net Tech Talk, because those messages are imported via SMTP originally and thus have the original (MIME/Q-encoded subject) in the message header (as RFC822SUBJECT). For other messages with UTF-8 characters in their header fields (e.g. subject), we'll need a different solution (Q-encode header fields that contain non-ASCII chars on the fly), and then this solution could maybe be reverted.

  132. Rob Swindell (on Debian Linux)
    Sun Nov 10 2024 13:40:12 GMT-0800 (PST)
    Modified Files:
    

    src/smblib/smblib.c diff
    Fix printf formatting issue in error message GCC and Coverity (x 2) both flagged this one.

  133. Deucе
    Sun Nov 10 2024 11:19:27 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Fix bug introduced in aecde4068 (2018) Properly read the index of the base, not of the base_code. Fixes badly broken STATUS command.

  134. Rob Swindell (on Debian Linux)
    Sun Nov 10 2024 14:48:23 GMT-0800 (PST)
    Modified Files:
    

    exec/load/newsutil.js diff
    exec/nntpservice.js diff
    Use original RFC822-formatted subject, if available (e.g. recv'd via SMTP) This solves issue #817 for TLDR messages imported into DOVE-Net Tech Talk, because those messages are imported via SMTP originally and thus have the original (MIME/Q-encoded subject) in the message header (as RFC822SUBJECT). For other messages with UTF-8 characters in their header fields (e.g. subject), we'll need a different solution (Q-encode header fields that contain non-ASCII chars on the fly), and then this solution could maybe be reverted.

  135. Rob Swindell (on Debian Linux)
    Sun Nov 10 2024 13:40:12 GMT-0800 (PST)
    Modified Files:
    

    src/smblib/smblib.c diff
    Fix printf formatting issue in error message GCC and Coverity (x 2) both flagged this one.

  136. Deucе
    Sun Nov 10 2024 11:19:27 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Fix bug introduced in aecde4068 (2018) Properly read the index of the base, not of the base_code. Fixes badly broken STATUS command.

  137. Deucе
    Sat Nov 09 2024 21:31:33 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/GNUmakefile diff
    Don't require copying the SDL.framework into the bundle When using MacPorts (and likely Homebrew), this isn't how this works.

  138. Deucе
    Sat Nov 09 2024 21:01:57 GMT-0800 (PST)
    Modified Files:
    

    src/build/Common.gmake diff
    Old sw_vers on macOS uses a single dash. New versions still support that.

  139. Deucе
    Sat Nov 09 2024 20:57:48 GMT-0800 (PST)
    Modified Files:
    

    .gitlab-ci.yml diff
    Make darwin-x86 builds verbose for now...

  140. Rob Swindell (on Windows 11)
    Sat Nov 09 2024 20:30:33 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    Fix logic in bbs.xfer_prot_menu() This was just a typo which didn't allow the single-file upload xfer prot menu to be shown. Actual fix for CID 11447 (previous attempt, commit f50c866fd was insufficient). Thank you Coverity!

  141. Rob Swindell (on Windows 11)
    Sat Nov 09 2024 20:30:33 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_socket.c diff
    Don't check recvline() timeout *before* checking if there's data to receive This was a regression: Socket.recvline() used to not care what the timeout duration was so long as there were bytes to receive. Also, remove the ".0" from timeout values in documented mehtods that don't (any longer) accept floating point timeout durations. We used to support fractional seconds for some of these methods, and that was implied by using the floating point default values, but that's no longer the case. poll() still accepts a floating point timeout.

  142. Deucе
    Sat Nov 09 2024 19:21:56 GMT-0800 (PST)
    Modified Files:
    

    .gitlab-ci.yml diff
    Reconnect with High Sierra

  143. Deucе
    Sat Nov 09 2024 11:27:43 GMT-0800 (PST)
    Modified Files:
    

    .gitlab-ci.yml diff
    Disconnect the x86 mini from the pipes. It's slow and crufty, and there's a new mini on the block now.

  144. Deucе
    Sat Nov 09 2024 01:15:06 GMT-0800 (PST)
    Modified Files:
    

    3rdp/build/GNUmakefile diff
    Set MAKE=$(MAKE) for libffi make is gmake. Should fix OpenBSD builds.

  145. Deucе
    Fri Nov 08 2024 23:42:24 GMT-0800 (PST)
    Modified Files:
    

    3rdp/build/GNUmakefile diff
    Add -z for OpenBSD It's super-picky.

  146. Deucе
    Fri Nov 08 2024 23:40:11 GMT-0800 (PST)
    Added Files:
    

    3rdp/build/js-isfinite.patch diff
    3rdp/build/js-macos-configure.patch diff
    Modified Files:

    3rdp/build/GNUmakefile diff
    A couple patches to build on macOS M2 Use standard isfinite() instead of never-standard finite() Don't use -rpath-link on darwin (since it won't work anyway)

  147. Deucе
    Fri Nov 08 2024 22:49:03 GMT-0800 (PST)
    Modified Files:
    

    src/conio/CMakeLists.txt diff
    USE_CURSES_ANYWAY on Darwin as well.

  148. Deucе
    Fri Nov 08 2024 22:41:55 GMT-0800 (PST)
    Added Files:
    

    3rdp/dist/libffi.tgz diff
    Modified Files:

    3rdp/build/GNUmakefile diff
    Update libffi in SpiderMonkey Rather than trying to back-port platform support, just grab the latest libffi release and jelly it in. Let's wee what the pipes tell us.

  149. Deucе
    Fri Nov 08 2024 22:10:05 GMT-0800 (PST)
    Modified Files:
    

    .gitlab-ci.yml diff
    They need to be different OSs! That's the key!

  150. Deucе
    Fri Nov 08 2024 21:59:21 GMT-0800 (PST)
    Modified Files:
    

    .gitlab-ci.yml diff
    Try tags without hyphens? Ugh.

  151. Deucе
    Fri Nov 08 2024 21:50:08 GMT-0800 (PST)
    Modified Files:
    

    .gitlab-ci.yml diff
    Apparently tags are a substring match?

  152. Deucе
    Fri Nov 08 2024 21:29:54 GMT-0800 (PST)
    Modified Files:
    

    .gitlab-ci.yml diff
    Ok, we need RELEASE=1 or things break.

  153. Deucе
    Fri Nov 08 2024 21:22:54 GMT-0800 (PST)
    Modified Files:
    

    .gitlab-ci.yml diff
    Don't use buildflags on M2 yet.

  154. Deucе
    Fri Nov 08 2024 21:20:13 GMT-0800 (PST)
    Modified Files:
    

    src/comio/comio_nix.c diff
    Fix stupid

  155. Deucе
    Fri Nov 08 2024 21:18:19 GMT-0800 (PST)
    Modified Files:
    

    src/comio/comio_nix.c diff
    If CBAUD is defined, retain the CBAUD bits in c_cflags Otherwise, zero it out. Most termios implementations don't put the speed in here, but this *is* where dragons be.

  156. Deucе
    Fri Nov 08 2024 21:03:14 GMT-0800 (PST)
    Modified Files:
    

    .gitlab-ci.yml diff
    Add the M2 mini This will likely fail though.

  157. Rob Swindell (on Debian Linux)
    Fri Nov 08 2024 17:52:11 GMT-0800 (PST)
    Modified Files:
    

    src/sexpots/sexpots.c diff
    Enable signal (e.g. Ctrl-C) handling / ignoring Gracefully terminate with SIGQUIT, SIGINT, and SIGTERM Ignore SIGHUP and SIGPIPE.

  158. Rob Swindell (on Debian Linux)
    Fri Nov 08 2024 20:27:36 GMT-0800 (PST)
    Modified Files:
    

    src/comio/comio_nix.c diff
    Don't reset the port baud rate to 0 in comOpen() As noticed while trouble-shooting issue #813, calling comOpen() would (on Linux, at least) set the port baud rate to 0 bps (B0) which in most or all Linux serial drivers triggers special logic to deassert DTR and RTS signals (to the modem, to attempt to "hangup" any connection). If the app (e.g. sexpots) did not explictily set the port baud rate after calling comOpen(), the port would be unusable. This is not how comOpen() works on Windows. So rather than just overwrite all the bits in termios.c_cflag, we clear the fields we know we want to, set the bits we want, and leave the rest (which usually includes the current baud rate, if CBAUD is defined) as-is.

  159. Eric Oulashin
    Fri Nov 08 2024 17:47:45 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    DDFileLister: When showing file info, check more of the properties to see if they exist first

  160. Rob Swindell
    Fri Nov 08 2024 17:47:45 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    Merge branch 'ddfilelister_show_info_check_more_properties_exist' into 'master' DDFileLister: When showing file info, check more of the properties to see if they exist first See merge request main/sbbs!471

  161. Deucе
    Thu Nov 07 2024 10:26:00 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/bbslist.c diff
    Allow clicking in the comment line to edit.

  162. Deucе
    Thu Nov 07 2024 10:26:23 GMT-0800 (PST)
    Modified Files:
    

    src/conio/sdl_con.c diff
    src/syncterm/CHANGES diff
    Fix window scaling on macOS with retina displays SDL_SetWindowSize() takes dimensions in imaginary units it makes up so it can call something "Retina™". SyncTERM however lovingly crafts everything pixel by pixel for an atisanal ode to BBSing. This change converts pixel sizes to Retina™ sizes before resizing the window. Should fix ticket 164.

  163. Rob Swindell (on Debian Linux)
    Wed Nov 06 2024 00:24:26 GMT-0800 (PST)
    Modified Files:
    

    src/sexpots/file_id.diz diff
    src/sexpots/sexpots.c diff
    When not in Telnet Binary TX mode, expand bare CR received from COM to CRLF I can't believe I missed this - this would've caused definite issues with file transfers. I saw a discussion in FSX MYS (between apam and GEARBOX) which clued me into their being an issue here. I do wish users of SexPOTS would report issues to me. :-( Incremented version to v2.1

  164. Rob Swindell (on Debian Linux)
    Tue Nov 05 2024 19:27:32 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgxfr2.c diff
    If fail to create dirs.raw in lib parent dir, create in ctrl_dir instead Fix for issue #809

  165. Deucе
    Tue Nov 05 2024 14:48:00 GMT-0800 (PST)
    Modified Files:
    

    src/sftp/sftp_client.c diff
    Don't retypedef sftpc_state_t for ancient compilers (ie: gcc 4.4)

  166. Deucе
    Tue Nov 05 2024 10:49:30 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Update changes

  167. Deucе
    Tue Nov 05 2024 09:10:44 GMT-0800 (PST)
    Modified Files:
    

    src/conio/scale.c diff
    Use uint64_t instead of double for interpolation. More effort to fix the macOS issue. This could potentially result in slight problens with the rightmost pixel, but will protect against any weird FP issues and -ffast-math concerns.

  168. Rob Swindell (on Windows 11)
    Mon Nov 04 2024 21:43:16 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/logon.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/scfg/scfgxtrn.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    Add Monthly fixed (system-wide) event True, a sysop could add/configure a monthly timed event instead, but that requires more configuration. Fixed events are nice in their simplicity. This is intended for running the new Synchronet trashman utility, but could be used for anything that's simple to execute and the sysop: - doesn't care which node/instance of sbbs it runs from - doesn't care exactly what time the event runs - doesn't need the assorted options available for timed events

  169. Rob Swindell (on Windows 11)
    Mon Nov 04 2024 21:43:20 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfgsave.c diff
    Use an .ini style that indents keys and puts blank line after the root section A few extra bytes really helps with human readability.

  170. Deucе
    Mon Nov 04 2024 21:18:13 GMT-0800 (PST)
    Modified Files:
    

    src/conio/scale.c diff
    src/conio/xbr.c diff
    More scaling cleanup... no undefined behaviour Remove undefined behaviour (right-shifting a negative integer) from the scaler... replace with divide-by-2. Any modern compiler should be able to optimize that. On the enabling the compiler front, const-ify more variables and use types that allow removing some casts. I have a bit more hope this will fix the macOS issue than the previous efforts.

  171. Deucе
    Mon Nov 04 2024 19:44:09 GMT-0800 (PST)
    Modified Files:
    

    src/conio/scale.c diff
    Add most const decorations. Not sure what macOS is doing, but it looks like something weird is happening in interpolate_width... maybe some unexpected integer promotion?

  172. Rob Swindell (on Windows 11)
    Mon Nov 04 2024 17:37:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/getstr.cpp diff
    src/sbbs3/sbbsdefs.h diff
    Add/use K_RIGHTEXIT and CON_RIGHTARROW for getstr() to be able to return when user right-arrows off end of string (for use in msgeditor).

  173. Rob Swindell (on Windows 11)
    Mon Nov 04 2024 17:37:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Add missing argument to new error log message upone putuserdat() failure Fixes a couple CIDs and a GCC warning

  174. Rob Swindell (on Windows 11)
    Mon Nov 04 2024 17:37:12 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/writemsg.cpp diff
    Internal message/line editor improvements * Allow left and right arrow keys to move between lines (within reason) * Use the K_USEOFFSET getstr() mode flag to keep cursor position when moving between lines with arrow keys * Be smart about integer padding when /Listing lines with numbers * Add range checking (!) and better error reporting for /Lx argument value

  175. Rob Swindell (on Debian Linux)
    Mon Nov 04 2024 15:24:44 GMT-0800 (PST)
    Modified Files:
    

    exec/init-fidonet.js diff
    Address sysops sending emails to net-coordinators w/invalid reply-to address Issue raised by Dumas Walker (CAPCITY2) on DOVE-Net: apparently some new sysops run this script before their configured hostname (e.g. mybbs.synchro.net) is valid or their mail server has been tested (can successfully receive Internet e-mail). This attempts to address this concern by: 1. displaying a warning that it's important that the address given is valid 2. attempt to validate that the host portion of the provided address is valid (has a DNS address record or MX record) Uses dns.js for MX-record lookup - thanks Deuce! This script does not validate that the email host can actually receive mail or that the name portion of the mail address is valid: that would require an outbound connection to the host's TCP port 25, which may be blocked by ISPs (if remote) or if its a local server (e.g. the same machine as the BBS), that wouldn't confirm that its reachable by Internet hosts. And not all mail servers support the necessary SMTP commands to validate recipient addresses.

  176. Eric Oulashin
    Mon Nov 04 2024 11:37:33 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/ddmr_cfg.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: For ANSI terminals, refresh the area change header ANSI and header lines when exiting from the new scrollable area change help window

  177. Rob Swindell
    Mon Nov 04 2024 11:37:34 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/ddmr_cfg.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_scrollable_area_chg_help_window_refresh_header_ansi _and_header_lines' into 'master' DDMsgReader: For ANSI terminals, refresh the area change header ANSI and header lines when exiting from the new scrollable area change help window See merge request main/sbbs!470

  178. Deucе
    Sun Nov 03 2024 22:43:23 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Add to changes.

  179. Deucе
    Sun Nov 03 2024 22:40:47 GMT-0800 (PST)
    Modified Files:
    

    src/conio/cterm.c diff
    Make the default Prestel ID 0 bytes long. CCl4 sends an ENQ character in the login screen, and sends an ENQ which will auto-fill your username. Also, if you enter six zeros into the username, it will take you to the password field. With ten zeros, this means it's impossible to log in to CCl4.

  180. Deucе
    Sun Nov 03 2024 21:50:06 GMT-0800 (PST)
    Modified Files:
    

    src/conio/cterm.c diff
    src/syncterm/CHANGES diff
    Fix Steady and Concealed Prestel modes Fixes Night Owl

  181. Rob Swindell (on Windows 11)
    Sun Nov 03 2024 19:23:53 GMT-0800 (PST)
    Added Files:
    

    src/sbbs3/trashman.vcxproj diff
    Modified Files:

    src/sbbs3/trashman.c diff
    Ported to Windows Beautified the output a bit.

  182. Rob Swindell (on Windows 11)
    Sun Nov 03 2024 19:29:09 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/findstr.c diff
    src/sbbs3/trashman.c diff
    Remove trailing newlines from strings in list returned from findstr_list()

  183. Rob Swindell (on Windows 11)
    Sun Nov 03 2024 19:30:27 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/data_ovl.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/useredit.cpp diff
    Move putuserdat() wrapper to data_ovl.cpp where the other userdat wrappers are And have it return bool, like the others. The error logging is different (not using errormsg), but I think that's okay.

  184. Rob Swindell (on Windows 11)
    Sun Nov 03 2024 19:31:20 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    putuserdat() no longer calls dirtyuserdat() if the write/update failed

  185. Rob Swindell (on Windows 11)
    Sun Nov 03 2024 19:32:37 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbs3.sln diff
    Add trashman project

  186. Rob Swindell (on Debian Linux)
    Sun Nov 03 2024 17:11:45 GMT-0800 (PST)
    Modified Files:
    

    exec/addfiles.js diff
    Actually, const is better for libs, prevent overwriting (mostly) If this were const to begin with, would have caught the previously fixed bug with the -lib option clobbering it.

  187. Rob Swindell (on Debian Linux)
    Sun Nov 03 2024 17:11:45 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/trashman.c diff
    Add a -t (test mode) option, to run in read-only mode

  188. Rob Swindell (on Windows 11)
    Sun Nov 03 2024 17:06:27 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/answer.cpp diff
    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/logon.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/services.c diff
    src/sbbs3/useredit.cpp diff
    src/sbbs3/websrvr.c diff
    Check return value of putuserdat() and log any errors Trying to get to the bottom of user.tab corruption (issue #797).

  189. Rob Swindell (on Windows 11)
    Sun Nov 03 2024 17:08:29 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    Check return value of seekuserdat() in putuserdat() and return failure ... trying to get to bottom of user.tab corruption reported in issue #797. Also, don't need to seek in lockuserdat() since we always call seekuserdat() first.

  190. Rob Swindell (on Debian Linux)
    Sun Nov 03 2024 14:17:57 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/GNUmakefile diff
    Use XPDEV_LIBS to solve the trashman-mingw64 link issue (I think)

  191. Rob Swindell (on Debian Linux)
    Sun Nov 03 2024 13:48:34 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/getstats.c diff
    Don't indent the Date key in the root section

  192. Rob Swindell (on Debian Linux)
    Sun Nov 03 2024 13:52:40 GMT-0800 (PST)
    Added Files:
    

    src/sbbs3/trashman.c diff
    Modified Files:

    src/sbbs3/GNUmakefile diff
    src/sbbs3/objects.mk diff
    src/sbbs3/scfglib.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/targets.mk diff
    src/sbbs3/trash.c diff
    src/sbbs3/trash.h diff
    New utility: 'trashman' to manage/maintain text/*.can (filter) files Though we've had the auto-filtering feature for about a year now, with expiration dates supported/added to every trash record, nothing was removing the expired trash/filter items. Until now. Check the size of your text/*.can files: if they're really big, this is the solution. Not yet building for Windows Sysops will want to run this periodically (monthly?), e.g. trashman /sbbs/text/*.can

  193. Deucе
    Sun Nov 03 2024 10:56:09 GMT-0800 (PST)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Fix LOR

  194. Deucе
    Sun Nov 03 2024 11:00:07 GMT-0800 (PST)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Add locking around win access

  195. Deucе
    Sun Nov 03 2024 11:07:48 GMT-0800 (PST)
    Modified Files:
    

    src/uifc/uifc32.c diff
    More malloc() return checks

  196. Deucе
    Sun Nov 03 2024 10:44:57 GMT-0800 (PST)
    Modified Files:
    

    src/conio/cterm.c diff
    "Handle" malloc() failures Just scream on stderr, and screw things up in the window.

  197. Deucе
    Sun Nov 03 2024 10:40:07 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/uifcinit.c diff
    We need to set the palette before calling uifcini32() The palette is used to construct the blank screen buffer using vmem cells, so the background would be in screwy colours when connecting for modes that don't use the CGA 16-colour palette.

  198. Rob Swindell (on Debian Linux)
    Sun Nov 03 2024 05:20:02 GMT-0800 (PST)
    Modified Files:
    

    exec/addfiles.js diff
    Use var keyword for good form (no functional change)

  199. Rob Swindell (on Debian Linux)
    Sun Nov 03 2024 05:16:52 GMT-0800 (PST)
    Modified Files:
    

    exec/addfiles.js diff
    Use a different variable name (libname) to not clobber the lib variable Fix to Nelgin's reported error: line 199: TypeError: lib.parse is not a function

  200. Rob Swindell (on Debian Linux)
    Sun Nov 03 2024 03:54:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/getstats.c diff
    Don't backup the dsts.ini file when saving changes, not needed any more Root-caused this problem to read() failures which are now caught and logged rather than zeroing out the statistics fields.

  201. Rob Swindell (on Windows 11)
    Sun Nov 03 2024 03:19:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/mailsrvr.c diff
    Allow email.can to contain email sender/recipient *names* as well as addresses Allow filtering/blocking email based on the name portion of email header fields.

  202. Deucе
    Sun Nov 03 2024 01:48:08 GMT-0700 (PST)
    Modified Files:
    

    src/syncterm/term.c diff
    Map underscore to pound I think this map may be the final one.

  203. Deucе
    Sun Nov 03 2024 01:39:51 GMT-0700 (PST)
    Modified Files:
    

    src/syncterm/term.c diff
    Make Return send #, use CTRL-Return for return Not tested on Windows.

  204. Deucе
    Sun Nov 03 2024 01:17:27 GMT-0700 (PST)
    Modified Files:
    

    src/conio/cterm.c diff
    src/conio/cterm.h diff
    Implement the remote programming protocol. I don't expect anything actually uses this...

  205. Deucе
    Sat Nov 02 2024 23:45:06 GMT-0700 (PST)
    Modified Files:
    

    src/conio/bitmap_con.c diff
    src/conio/ciolib.h diff
    src/conio/cterm.c diff
    src/syncterm/term.c diff
    src/syncterm/uifcinit.c diff
    Add support for conceal (toggle with tab)

  206. Deucе
    Sat Nov 02 2024 21:35:49 GMT-0700 (PST)
    Modified Files:
    

    src/conio/utf8_codepages.c diff
    Fix some unicode mappings

  207. Eric Oulashin
    Sat Nov 02 2024 21:32:51 GMT-0700 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/DefaultTheme.cfg diff
    xtrn/DDMsgReader/ddmr_cfg.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: When changing sub-boards, now supports cycling through sort options via [ and ] (for nelgin). Also, new scrolling window for help text for changing sub-boards.

  208. Rob Swindell
    Sat Nov 02 2024 21:32:51 GMT-0700 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/DefaultTheme.cfg diff
    xtrn/DDMsgReader/ddmr_cfg.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_sub_board_sort_cycling_and_sub_board_scrolling_help_windows' into 'master' DDMsgReader: When changing sub-boards, now supports cycling through sort options via [ and ] (for nelgin). Also, new scrolling window for help text for changing sub-boards. See merge request main/sbbs!469

  209. Deucе
    Sat Nov 02 2024 21:19:04 GMT-0700 (PST)
    Modified Files:
    

    src/conio/bitmap_con.c diff
    src/conio/cterm.c diff
    Implement double-height. This is so gross... outputting any character depends on every character above it, so it must be checked every time. If the state was ste up differently, this could be avoided, but it's not, so it can't. For v2, I'm going to want to store some per-line data in a separate struct so I can track this.

  210. Rob Swindell (on Windows 11)
    Sat Nov 02 2024 20:25:31 GMT-0700 (PST)
    Modified Files:
    

    exec/areamgr.hlp diff
    src/sbbs3/sbbsecho.c diff
    src/sbbs3/sbbsecho.h diff
    Add support for AreaFix -R, -L, and -Q options in subject of AreaMgr requests (these options follow the password by one or more spaces) I implemented these based on AreaFix v1.10 User's Guide, at Ragnarok's suggestion/request. I didn't test them, so looking forward to getting some test results. The -L and -Q options are functionally identically to the %LIST and %QUERY AreaManager commands, while -R ads a little efficiency by combining +areatag (add) and %RESCAN <areatag> requests in a single command.

  211. Rob Swindell (on Windows 11)
    Sat Nov 02 2024 19:31:30 GMT-0700 (PST)
    Modified Files:
    

    src/sbbs3/echocfg.c diff
    src/sbbs3/sbbsecho.c diff
    Support additional arguments in AreaFix request message subject, beyond pass Apparently AreaFix and other area managers assume password never have spaces in them, so they can support additional arguments following the password in the AreaFix request. This change also now disallows setting AreaManager passwords with spaces in them. I don't yet support any of the additional AreaFix request options (e.g. -L, -R, -Q), but am considering it. A bunch of sprintf() -> snprintf() conversions are included in this commit (better string buffer security, probably eliminate a Coverity issue or two).

  212. Rob Swindell (on Debian Linux)
    Sat Nov 02 2024 16:28:44 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/minesweeper/graphics.ppm diff
    The squares with numbers and bombs are now flat and updated colors Lowered the intensity of the green '3' (happier on my red-green colorblindness). Result looks more like the original Windows versions of this game.

  213. Eric Oulashin
    Sat Nov 02 2024 15:43:00 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    ddfilelister: Clear the console line counter before any searching, etc., to prevent screen pauses. This should help with issue #806

  214. Rob Swindell
    Sat Nov 02 2024 16:22:43 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    Merge branch 'ddfilelister_console_clear_line_counter' into 'master' ddfilelister: Clear the console line counter before any searching, etc., to prevent screen pauses. This should help with issue #806 See merge request main/sbbs!468

  215. Rob Swindell (on Windows 11)
    Sat Nov 02 2024 15:21:29 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/GNUmakefile diff
    src/sbbs3/targets.mk diff
    Fix textgen build (when SBBS_OFFICIAL is defined) This build rule needed to be defined *after* objects.mk and rules.mk are included.

  216. Rob Swindell (on Debian Linux)
    Sat Nov 02 2024 15:02:30 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/minesweeper/minesweeper.hlp diff
    xtrn/minesweeper/minesweeper.js diff
    Add support for Ctrl-G to toggle/re-direct graphics mode Also if the help screen is exactly the right number of lines where auto-pause didn't leave any unviewed lines, don't pause twice.

  217. Deucе
    Sat Nov 02 2024 14:00:56 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/cterm.c diff
    Implement line editing support. Changing "stuff" on a line will now propogate to the right appropriately. Next up is double-height characters... hopefully.

  218. Deucе
    Sat Nov 02 2024 11:38:35 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/allfonts.c diff
    src/syncterm/CHANGES diff
    Fix typo for NO_FONTS support

  219. Deucе
    Sat Nov 02 2024 11:13:40 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/allfonts.c diff
    src/conio/ciolib.adoc diff
    src/conio/ciolib.h diff
    src/conio/cterm.c diff
    src/conio/cterm.h diff
    src/conio/utf8_codepages.c diff
    src/conio/utf8_codepages.h diff
    src/conio/vidmodes.c diff
    src/conio/vidmodes.h diff
    src/syncterm/bbslist.c diff
    src/syncterm/bbslist.h diff
    src/syncterm/syncterm.c diff
    src/syncterm/term.c diff
    Initial Prestel support. Basic Prestel support based on the "Prestel Terminal Specification" Issue 2 by the Post Office. Known issues: Modifying an existing line does not update the row after it. Double height is not supported. Keyboard mapping kinda sucks (looking at you #/Return). Concealed is always shown. Remote programming sequences aren't supported. There appears to be something wrong with the End of the Line title and menu screens, but maybe nelgin did them wrong.

  220. Rob Swindell (on Windows 11)
    Fri Nov 01 2024 23:38:39 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    src/xpdev/str_list.c diff
    src/xpdev/str_list.h diff
    strListFastRemove() and strListFastDelete() now take a count argument ... if you're deleting more than one string, this is much more efficient. Note we do some pointer compares (in strListFastRemove) *after* we've freed them in strListFastDelete(). I don't suspect this to be an issue, but it does seem suspect.

  221. Rob Swindell (on Windows 11)
    Fri Nov 01 2024 23:41:28 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    strListFastDelete() now takes a count argument

  222. Rob Swindell (on Windows 11)
    Fri Nov 01 2024 23:42:27 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/writemsg.cpp diff
    text/menu/editor.asc diff
    Refactor the internal message editor /D command to support deletion of ranges Supporting the deletion of ranges of lines (e.g. 10-20 rather than one line at a time) was a big ommission for a long time.

  223. Rob Swindell (on Windows 11)
    Fri Nov 01 2024 23:45:40 GMT-0700 (PDT)
    Modified Files:
    

    docs/v320_new.txt diff
    More new v3.20 stuffs

  224. Rob Swindell (on Windows 11)
    Fri Nov 01 2024 23:46:00 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/text.js diff
    New weekday and month name abbreviations

  225. Rob Swindell (on Windows 11)
    Fri Nov 01 2024 16:26:28 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfg.c diff
    The wizard progress bar is wider now (more pages), so need to adjust position to not overwrite help "screen" borders

  226. Rob Swindell (on Windows 11)
    Fri Nov 01 2024 16:27:49 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_system.c diff
    Update docs for datestr() method

  227. Rob Swindell (on Windows 11)
    Fri Nov 01 2024 16:28:11 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/date_str.c diff
    src/sbbs3/date_str.h diff
    Add verbal_datestr() For cases where we want to the verbal short date output, regardless of sysop preference/configuration.

  228. Rob Swindell (on Windows 11)
    Fri Nov 01 2024 16:29:51 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfgsys.c diff
    Fix U.S. system timezone reverting to Atlantic when the DAYLIGHT flag was set ... integer sign extension at fault here. Also, add examples to Numeric vs. Verbal short date selection dialog. Update some related help text.

  229. Eric Oulashin
    Fri Nov 01 2024 10:31:07 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.cfg diff
    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    DDFileLister: Made 'view file' from the xfer menu actually work when used as a loadable module (FL_VIEW). Updated extended information view for files.

  230. Rob Swindell
    Fri Nov 01 2024 10:31:07 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.cfg diff
    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    Merge branch 'ddfilelister_file_view_and_extended_info_update' into 'master' DDFileLister: Made 'view file' from the xfer menu actually work when used as a loadable module (FL_VIEW). Updated extended information view for files. See merge request main/sbbs!467

  231. Rob Swindell (on ChromeOS)
    Wed Oct 30 2024 22:25:09 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/uedit/uedit.c diff
    Fix dstrtounix() usage

  232. Rob Swindell (on Windows 11)
    Wed Oct 30 2024 22:19:42 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/useredit/MainFormUnit.cpp diff
    Fix dstrtounix() usage

  233. Rob Swindell (on Debian Linux)
    Wed Oct 30 2024 21:56:16 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/text.dat diff
    src/sbbs3/date_str.c diff
    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/text.h diff
    src/sbbs3/text_defaults.c diff
    src/sbbs3/text_id.c diff
    Make the Weekday and Month name abbreviations localizable via text.dat/ini

  234. Rob Swindell (on Windows 11)
    Wed Oct 30 2024 17:38:15 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ctrl/MainFormUnit.cpp diff
    src/sbbs3/ctrl/UserListFormUnit.cpp diff
    src/sbbs3/date_str.c diff
    src/sbbs3/date_str.h diff
    src/sbbs3/execmisc.cpp diff
    src/sbbs3/js_system.c diff
    src/sbbs3/qwk.cpp diff
    src/sbbs3/str.cpp diff
    src/sbbs3/useredit.cpp diff
    src/sbbs3/xtrn_sec.cpp diff
    dstrtounix() now takes the format (enum date_fmt) directly This allows us to use dstrtounix() for MM/DD/YY dates regardless of the system configuration (sysop/locale preference). This fixes issue with QWK route.dat file and door.sys (expiration date) parsing where the date is/has-to-be in MM/DD/YY format, always.

  235. Rob Swindell (on Debian Linux)
    Wed Oct 30 2024 17:22:21 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/text.dat diff
    Include numeric date format hint when editing dates in useredit ... using @-code

  236. Eric Oulashin
    Wed Oct 30 2024 17:21:21 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    ddfilelister: Fix for issue #806 - When scanning files, don't pause for user input between directories.

  237. Rob Swindell
    Wed Oct 30 2024 17:21:21 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    Merge branch 'ddfilelister_issue806' into 'master' ddfilelister: Fix for issue #806 - When scanning files, don't pause for user input between directories. See merge request main/sbbs!466

  238. Deucе
    Wed Oct 30 2024 09:53:15 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/ripper.c diff
    Fix up previous commit RIPtel reset to the font configured by the user, not the current font. Do the same here.

  239. Deucе
    Wed Oct 30 2024 09:36:24 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/ripper.c diff
    Don't reset font in RIPv3 mode It appears v3 kept the font through a RIP_RESET_WINDOWS command

  240. Rob Swindell (on Debian Linux)
    Tue Oct 29 2024 20:15:26 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/date_str.c diff
    unixtodstr() will output "00/00/00" on invalid dates instead of "01/00/00" "01/00/00" would get parsed/converted back to Jan-1-2000 (usually), which is usually not what we want.

  241. Rob Swindell (on Debian Linux)
    Tue Oct 29 2024 20:18:13 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbs.h diff
    src/sbbs3/str.cpp diff
    Create a C++ wrapper for unixtodstr() No need to use time32_t for this.

  242. Rob Swindell (on Debian Linux)
    Tue Oct 29 2024 20:19:11 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getnode.cpp diff
    src/sbbs3/qwk.cpp diff
    src/sbbs3/useredit.cpp diff
    Use new C++ wrapper for unixtodstr() Fix new date editing bug in user editor: we must use the numeric format for dates when creating strings to be edited.

  243. Rob Swindell (on Debian Linux)
    Tue Oct 29 2024 19:58:53 GMT-0700 (PDT)
    Modified Files:
    

    exec/str_cmds.js diff
    Expand command-line specifiers (e.g. %a) in command-lines passed to ;EXEC ... and friends For Gamgee

  244. Rob Swindell (on Debian Linux)
    Tue Oct 29 2024 19:58:53 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/minesweeper/minesweeper.js diff
    Revert back to using system.datestr() for preferred short date display output Stripped trailing whitespace

  245. Deucе
    Tue Oct 29 2024 15:24:01 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    More changelog goodness... let's rebuild everything!

  246. Rob Swindell (on Debian Linux)
    Tue Oct 29 2024 13:44:57 GMT-0700 (PDT)
    Modified Files:
    

    exec/rlogin.js diff
    Allow multiple uses of -c and -s options to built-up an auth string To solve problem of adding some kind of prefix/tag to a user alias when connecting to a door server. e.g. ?rlogin server -s [TAG] -s %a Hopefully you don't need/want a space separating the string elements, as that's not really doable with this solution.

  247. Deucе
    Tue Oct 29 2024 12:11:11 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/ripper.c diff
    Fix handling of broken CRLF pairs in RIP mode If telnet binary mode is enabled (the new default), and a CR and LF come in on separate recv() calls, the RIP parser would stop at the CR, and pass the LF back to the ANSI parser. Ah, dura-bbs.net, always pushing the limits.

  248. Rob Swindell (on Debian Linux)
    Tue Oct 29 2024 11:17:38 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getkey.cpp diff
    src/sbbs3/str_util.c diff
    src/sbbs3/str_util.h diff
    Fix mnemonics bug introduced in commit b84c583a26e6f We want to not expand tilde to attributes when there are any attribute codes in the mnemonics string. The existene of a non-attribute ctrl-a code should not have prevented the tilde expansion. Fix for issue #805 reported by Nelgin (thank you)

  249. Rob Swindell (on Debian Linux)
    Mon Oct 28 2024 21:55:13 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/date_str.c diff
    This isn't C++ and some C compilers don't support the {} initializer syntax

  250. Rob Swindell (on Debian Linux)
    Mon Oct 28 2024 21:55:13 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfgsys.c diff
    Less ambiguous, not unambiguous

  251. Deucе
    Mon Oct 28 2024 21:48:04 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/ripper.c diff
    More RIP fixes for dura-bbs.net RIP XOR operation had issues with polylines, boxes, etc. where the same pixel could be written more than once, resulting in it being toggled back to the original state. Also, there were some memory leaks of temporary struct ciolib_pixel variables. This is now fixed as well.

  252. Rob Swindell (on Debian Linux)
    Mon Oct 28 2024 21:24:21 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/atcodes.cpp diff
    src/sbbs3/con_out.cpp diff
    src/sbbs3/date_str.c diff
    src/sbbs3/date_str.h diff
    src/sbbs3/execmisc.cpp diff
    src/sbbs3/js_global.c diff
    src/sbbs3/js_system.c diff
    src/sbbs3/putnode.cpp diff
    src/sbbs3/readmsgs.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/scfg/scfg.c diff
    src/sbbs3/scfg/scfg.h diff
    src/sbbs3/scfg/scfgsys.c diff
    src/sbbs3/scfgdefs.h diff
    src/sbbs3/scfglib1.c diff
    src/sbbs3/scfgsave.c diff
    src/sbbs3/str.cpp diff
    src/sbbs3/upload.cpp diff
    src/sbbs3/useredit.cpp diff
    Add option to display short dates in verbal/unambiguous formats Although we've added (in SBBS v3.20) configurable numeric date input/display formats for the system, the output was still ambiguous for users (e.g. NN/NN/NN which could be interpretted a number of ways), so I've added an option to choose "verbal" short date formats to be displayed where possible instead. The same value separate from the numeric format (whatever the sysop chose) is used in the verbal date output, but since month name abbreviations are 3 characters, only one separator is used (to keep the output length fixed at 8 characters). The new "Verbal" short date display format is choosable in the SCFG wizard and via SCFG->System->Short Date Format.

  253. Deucе
    Mon Oct 28 2024 19:16:20 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/bbslist.c diff
    src/syncterm/menu.c diff
    Fix mouse select in scrollback Both selecting scrollback from the online menu, and viewing the last scrollback from the main menu were impacted.

  254. Rob Swindell (on ChromeOS)
    Mon Oct 28 2024 18:52:09 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/shell_lib.js diff
    Fix typo: js.terminated, not js.terminate

  255. Rob Swindell (on Windows 11)
    Mon Oct 28 2024 16:39:44 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    Fix CID 511447 with extra parens

  256. Rob Swindell (on Windows 11)
    Mon Oct 28 2024 17:47:30 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfgnode.c diff
    Logon Requirements renamed to Login Requirements, for consistency ... with Servers->Terminal Server->Login Requirements Updated help text: F5->Ctrl-C, no need to hand-update sbbs.ini when adding or removing nodes (any more).

  257. Rob Swindell (on Windows 11)
    Mon Oct 28 2024 17:49:44 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/js_system.c diff
    Support string (text.dat string ID) arguments to bbs.text() and system.text() Currently, this is a slower way to look-up a text.dat string, but requires no load/require of text.js and allows for a shorter syntax to get a text.dat string, i.e. bbs.text("Quit") instead of bbs.text(bbs.text.Quit); Although the bbs.text() ID lookup is cached, it's only marginally faster than system.text() ID lookup, which is not cached and about 1/3 the speed of the other methods of index to string lookup (in the MSVC-Windows build).

  258. Deucе
    Mon Oct 28 2024 16:02:35 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Add change log

  259. Eric Oulashin
    Mon Oct 28 2024 15:47:36 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.cfg diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/ddmr_cfg.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: Sorting of sub-boards when changing to another sub-board (for nelgin). Toggleable behavior to only show sub-boards with new messages in the indexed-mode newscan (for kdi4hw). Internal: Updated for bbs.msg_number and bbs.smb_curmsg being write

  260. Rob Swindell
    Mon Oct 28 2024 15:47:36 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.cfg diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/ddmr_cfg.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_v1_96' into 'master' DDMsgReader: Sorting of sub-boards when changing to another sub-board (for nelgin). Toggleable behavior to only show sub-boards with new messages in the indexed-mode newscan (for kdi4hw). Internal: Updated for bbs.msg_number and bbs.smb_curmsg being write See merge request main/sbbs!465

  261. Deucе
    Mon Oct 28 2024 15:44:07 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/conn_telnet.c diff
    Ok, I'm convinced... initiate some telnet negotation - Attempt to suppress go aheads in both directions. - Attempt to set binary mode in both directions - Request the remote echos These express the assumptions that SyncTERM always makes, so it's a good idea to tell the remote this. For systems that don't like this, there is the Raw "protocol".

  262. Deucе
    Mon Oct 28 2024 10:33:43 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/relcheck.txt diff
    Add item to avoid the macOS fiasco of rc4

  263. Deucе
    Mon Oct 28 2024 10:08:39 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/ripper.c diff
    src/syncterm/term.c diff
    src/syncterm/term.h diff
    Make ALT-O mouse control toggle work in RIP mode

  264. Deucе
    Mon Oct 28 2024 09:47:41 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/ripper.c diff
    When RIP changes the vstat mode, also change the cursor When changing between 8 and 16 row fonts in RIP mode, the cursor start and end was left for the old font size... 16 -> 8 would leave the cursor one line below the current position, and 8 -> 16 would leave the cursor in the middle of the cell. This hacks the vstat deeper to fix up the cursor as well. Reported by skipperdoodle1947.

  265. Rob Swindell (on Windows 11)
    Mon Oct 28 2024 01:37:59 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbs.h diff
    src/sbbs3/str.cpp diff
    sbbs_t::protnum() and protname() now accept the transfer type as argument It's possible to have multiple transfer protocols with the same mmemonic, but with different transfer types supports (which would be weird, but possible). This allows us to use protnum() to replace a lot of copy/pasted prot looping and comparing logic throughout sbbs. Also added a variant of sbbs_t::quit_key() that takes and returns a string (for easy concatenation to strings of key chars).

  266. Rob Swindell (on Windows 11)
    Mon Oct 28 2024 01:37:59 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/bat_xfer.cpp diff
    src/sbbs3/download.cpp diff
    src/sbbs3/email.cpp diff
    src/sbbs3/execmisc.cpp diff
    src/sbbs3/getmsg.cpp diff
    src/sbbs3/listfile.cpp diff
    src/sbbs3/netmail.cpp diff
    src/sbbs3/qwk.cpp diff
    src/sbbs3/upload.cpp diff
    src/sbbs3/useredit.cpp diff
    Use sbbs_t::xfer_prot_menu() and protnum() to replace copy/pasted logic This is a code clean-up, no change in functionality

  267. Deucе
    Sun Oct 27 2024 22:55:17 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/ripper.c diff
    Fix issue with RIP and fragmented ANSI If an ANSI sequence spanned multiple recv() calls, it would get silently dropped if RIP was enabled. Reported by skipperdoodle1947 (who does awesome stuff)

  268. Rob Swindell (on Windows 11)
    Sun Oct 27 2024 22:53:48 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbs.h diff
    src/sbbs3/str.cpp diff
    sbbs_t::xfer_prot_menu() can now return the list of command keys for use by JS bbs.xtrn_prot_menu() immediately, elsewhere soon.

  269. Rob Swindell (on Debian Linux)
    Sun Oct 27 2024 22:43:39 GMT-0700 (PDT)
    Modified Files:
    

    exec/user_settings.js diff
    Use the new bbs.xfer_prot_menu() method In place of the copy/pasted/ported from C++ version of the same logic

  270. Rob Swindell (on Debian Linux)
    Sun Oct 27 2024 22:43:39 GMT-0700 (PDT)
    Modified Files:
    

    exec/user_settings.js diff
    Use the return value of bbs.xfer_prot_menu() Also use console.quit_key for localization support

  271. Rob Swindell (on Debian Linux)
    Sun Oct 27 2024 22:44:17 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/mrc/mrc-theme-aqua.ini diff
    xtrn/mrc/mrc-theme-default.ini diff
    xtrn/mrc/mrc-theme-garden.ini diff
    xtrn/mrc/mrc-theme-hot.ini diff
    xtrn/mrc/mrc-theme-lilac.ini diff
    xtrn/mrc/mrc-theme-midnight.ini diff
    xtrn/mrc/mrc-theme-neon.ini diff
    xtrn/mrc/mrc-theme-rustic.ini diff
    xtrn/mrc/mrc-theme-stone.ini diff
    Replace CRLF with LF

  272. Rob Swindell (on Windows 11)
    Sun Oct 27 2024 22:35:39 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    bbs.xfer_prot_menu() now returns the list of protocol keys (mnemonics) ... that the user has access to

  273. Rob Swindell (on Windows 11)
    Sun Oct 27 2024 21:58:48 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/text_defaults.c diff
    Latest default text from ctrl/text.dat

  274. Rob Swindell (on Windows 11)
    Sun Oct 27 2024 21:59:08 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    New method: bbs.xtrn_prot_menu() So we don't have to reimplement this logic in user_settings.js (or equivalent) any longer.

  275. Deucе
    Sun Oct 27 2024 10:24:00 GMT-0700 (PDT)
    Added Files:
    

    src/syncterm/icons/generate-unix.sh diff
    src/syncterm/syncterm16.png diff
    src/syncterm/syncterm22.png diff
    src/syncterm/syncterm24.png diff
    src/syncterm/syncterm256.png diff
    src/syncterm/syncterm32.png diff
    src/syncterm/syncterm36.png diff
    src/syncterm/syncterm48.png diff
    src/syncterm/syncterm64.png diff
    Modified Files:

    src/syncterm/CMakeLists.txt diff
    src/syncterm/GNUmakefile diff
    Removed Files:

    src/syncterm/syncterm.png diff
    Update to new icon files for UNIX style installs Also, fix manpage generation for CMake.

  276. Deucе
    Sun Oct 27 2024 08:51:45 GMT-0700 (PDT)
    Added Files:
    

    src/syncterm/relcheck.txt diff
    Add a release checklist. I've forgotten one of these for every RC except the first one for v1.2. :(

  277. Deucе
    Sat Oct 26 2024 23:39:31 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/ansi_cio.c diff
    Fix warnings. Thanks nelgin.

  278. Deucе
    Sat Oct 26 2024 23:37:59 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Mention new icons in changes.

  279. Deucе
    Sat Oct 26 2024 23:37:59 GMT-0700 (PDT)
    Added Files:
    

    src/syncterm/syncterm.ico diff
    Add missing icon

  280. Deucе
    Sat Oct 26 2024 22:56:48 GMT-0700 (PDT)
    Added Files:
    

    src/syncterm/icons/README.md diff
    src/syncterm/icons/generate-win.sh diff
    src/syncterm/icons/generate.sh diff
    src/syncterm/icons/syncterm-Haiku.iom diff
    src/syncterm/icons/syncterm-Haiku.rdef diff
    src/syncterm/icons/syncterm-Haiku.svg diff
    src/syncterm/icons/syncterm-mini.svg diff
    src/syncterm/icons/syncterm.iom diff
    src/syncterm/icons/syncterm.rdef diff
    src/syncterm/icons/syncterm.svg diff
    Modified Files:

    src/conio/ciolib.rc diff
    src/syncterm/LICENCE diff
    src/syncterm/SyncTERM.icns diff
    src/syncterm/haiku.rdef diff
    src/syncterm/syncterm.c diff
    src/syncterm/syncterm.rc diff
    Change to new icons contributed by zuMi. The amazing Haiku community has redesigned the SyncTERM icons for me! Unfortunately, I had to remove the default "Synch" icon from ciolib so that SyncTERM could have its own separate icon. :( I'm not sure if the msvc builds are using the ciolib.rc file or not, and I'm not sure how they can add an icon... I'll net DigitalMan sort that out (sorryish).

  281. Deucе
    Sat Oct 26 2024 19:49:18 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Whoops, need separate commit for master for this now.

  282. Craig Hendricks
    Sat Oct 26 2024 15:15:39 GMT-0700 (PDT)
    Added Files:
    

    xtrn/mrc/mrc-theme-aqua.ini diff
    xtrn/mrc/mrc-theme-default.ini diff
    xtrn/mrc/mrc-theme-garden.ini diff
    xtrn/mrc/mrc-theme-hot.ini diff
    xtrn/mrc/mrc-theme-lilac.ini diff
    xtrn/mrc/mrc-theme-midnight.ini diff
    xtrn/mrc/mrc-theme-neon.ini diff
    xtrn/mrc/mrc-theme-rustic.ini diff
    xtrn/mrc/mrc-theme-stone.ini diff
    Modified Files:

    xtrn/mrc/mrc-client.js diff
    xtrn/mrc/mrc-connector.js diff
    xtrn/mrc/mrc-session.js diff
    xtrn/mrc/readme.txt diff
    MRC: Session stats, mentions, themes, indenting, buffer display, and more

  283. Rob Swindell
    Sat Oct 26 2024 15:15:39 GMT-0700 (PDT)
    Added Files:
    

    xtrn/mrc/mrc-theme-aqua.ini diff
    xtrn/mrc/mrc-theme-default.ini diff
    xtrn/mrc/mrc-theme-garden.ini diff
    xtrn/mrc/mrc-theme-hot.ini diff
    xtrn/mrc/mrc-theme-lilac.ini diff
    xtrn/mrc/mrc-theme-midnight.ini diff
    xtrn/mrc/mrc-theme-neon.ini diff
    xtrn/mrc/mrc-theme-rustic.ini diff
    xtrn/mrc/mrc-theme-stone.ini diff
    Modified Files:

    xtrn/mrc/mrc-client.js diff
    xtrn/mrc/mrc-connector.js diff
    xtrn/mrc/mrc-session.js diff
    xtrn/mrc/readme.txt diff
    Merge branch 'mrc-mods-by-codefenix-20241020' into 'master' MRC: Session stats, mentions, themes, indenting, buffer display, and more See merge request main/sbbs!464

  284. Deucе
    Sat Oct 26 2024 14:08:32 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/bitmap_con.c diff
    src/conio/sdl_con.c diff
    src/conio/x_events.c diff
    Fix an off-by-less-than-one issue in bitmap_double_mult_inside() This was sometimes causing an integer scaled mode (ie: 4×) to be reduced to very slightly less than that (ie: 3.996255×), making the window one pixel smaller than it was supposed to be due to integer truncation. This could result in being unable to increase the window size using the Alt+Right-Arrow shortcut and could make new windows one full size smaller than they needed to be (such as C64 windows). While we're here, fix the SDL and X11 outputs to trust what bitmap_drv_init_mode() does. It was fixed when GDI mode was being written, but the other drivers weren't updated to take advantage of that. Should resolve issue 156 reported by DigitalMan

  285. Rob Swindell (on Debian Linux)
    Sat Oct 26 2024 14:02:30 GMT-0700 (PDT)
    Removed Files:
    

    exec/batxfer.js diff
    File was renamed to batchxfer.js

  286. Rob Swindell (on Debian Linux)
    Sat Oct 26 2024 13:02:55 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/main.ini diff
    Renamed batxfer.js to batchxfer.js The ini key value name remains the same: batxfer

  287. Rob Swindell (on Debian Linux)
    Sat Oct 26 2024 13:00:46 GMT-0700 (PDT)
    Added Files:
    

    exec/batchxfer.js diff
    Renamed batxfer to batchxfer <nelgin> batxfer? Why not called it batchxfer ? The extra 2 characters help :) [shrug]

  288. Deucе
    Fri Oct 25 2024 22:34:39 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/ansi_cio.c diff
    ANSI mode isn't just for Windows

  289. Rob Swindell (on Debian Linux)
    Fri Oct 25 2024 22:08:39 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/main.ini diff
    Make batxfer.js to the default Batch Transfer loadable module (for new installs)

  290. Rob Swindell (on Debian Linux)
    Fri Oct 25 2024 22:06:02 GMT-0700 (PDT)
    Added Files:
    

    exec/batxfer.js diff
    A new "Batch Transfer" loadable module Replaces hard-coded batch transfer menu, same functionality

  291. Deucе
    Fri Oct 25 2024 22:01:31 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/ansi_cio.c diff
    src/conio/win32cio.c diff
    Change cursor to blinking unline using ANSI sequences. Whee.

  292. Deucе
    Fri Oct 25 2024 21:46:22 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/ansi_cio.c diff
    src/conio/win32cio.c diff
    More bugs like Microsoft

  293. Rob Swindell (on Debian Linux)
    Fri Oct 25 2024 21:39:11 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/listfile.cpp diff
    If file already in download queue, don't display protocol selection Use localizable [Q]uit key Removed trailing whitespace

  294. Deucе
    Fri Oct 25 2024 21:36:21 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/ansi_cio.c diff
    src/conio/win32cio.c diff
    Save and restore the console state for ANSI and Win32Console Now it doesn't leave the console all messed up.

  295. Rob Swindell (on Debian Linux)
    Fri Oct 25 2024 21:11:05 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/text.dat diff
    Better support for long filenames in batch queue strings

  296. Rob Swindell (on Debian Linux)
    Fri Oct 25 2024 21:05:21 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/filedat.c diff
    src/sbbs3/filedat.h diff
    batch_file_remove() can now remove multiple files matching pattern Returns count of files removed now (not bool).

  297. Rob Swindell (on Debian Linux)
    Fri Oct 25 2024 21:06:05 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    Add bbs.download_cps, batch_sort(), and batch_remove() Helpful for a JS batch file transfer menu

  298. Rob Swindell (on Windows 11)
    Fri Oct 25 2024 16:52:51 GMT-0700 (PDT)
    Modified Files:
    

    docs/v320_new.txt diff
    More new things in v3.20

  299. Deucе
    Fri Oct 25 2024 14:55:27 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/ansi_cio.c diff
    src/conio/ciolib.c diff
    src/conio/win32cio.c diff
    Set the size of the CONSOLE_SCREEN_BUFFER_INFOEX first This allows GetConsoleScreenBufferInfoEx() to work for palette changes, allowing Console to not suck. However, we now prefer ANSI mode over Win32 Console, so make that so it can actually fail on Windows of stdout is a TTY and we can't set the ENABLE_VIRTUAL_TERMINAL_PROCESSING flag. With this, ANSI mode is used in Windows Terminal, and Win32 Console is used in Legacy Console, and all should be good with the world.

  300. Rob Swindell (on Debian Linux)
    Fri Oct 25 2024 13:21:24 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/shell_lib.js diff
    Display menu/tmessage.* when entering file transfer section, if it exists This appears to be have been missed in the conversion from Baja Reported by vela025

  301. Rob Swindell (on Debian Linux)
    Fri Oct 25 2024 14:49:42 GMT-0700 (PDT)
    Modified Files:
    

    exec/user_settings.js diff
    Update the node*/terminal.ini for every iteration of this menu (as is/was done in useredit.cpp) Fix the default download protocol columning display (missing final newline in many cases).

  302. Deucе
    Fri Oct 25 2024 13:15:36 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/ansi_cio.c diff
    Don't use ANSI.SYS extensions CSI s and CSI u are ANSI.SYS extensions, and aren't needed here. We're clearing the screen and moveing the cursor anyway.

  303. Deucе
    Fri Oct 25 2024 13:02:30 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/ansi_cio.c diff
    Disable the clear to end-of-line optimization Not only was it broken when window() is set, it's also broken when the width is not the full screen width. We've now disabled pretty much all the optimizations... but it works.

  304. Deucе
    Fri Oct 25 2024 11:24:49 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/ansi_cio.c diff
    src/conio/win32cio.c diff
    Clean up ANSI output a bit Specifically, make Win32 Terminal output not suck. If stdout is a tty, set the palette appropriately, avoid using \n since Windows can't seem to be stopped from expanding it to \r\n nd brob the Console modes a bit harder.

  305. Deucе
    Thu Oct 24 2024 22:20:05 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32cio.c diff
    Deal with more windows console braindeadedness. The window and the screen buffer are two different things... the screen buffer must always be the same size as or larger than the window. Further, there are times where it's not possible to resize the windown programatically (new terminal for example). There still appears to be a stupid bug in what I assume is the Windows Terminal LCF flag implementation which causes writes to the beginning of a line that occur after a write to the end of the previous line to be in the wrong position. If it's not the LCF flag (which isn't turned on), it's in their wrapping thing which is extra irritating since I explocitly turn that off.

  306. Deucе
    Thu Oct 24 2024 20:34:01 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/ansi_cio.c diff
    Fix ANSI_KEY_PGDN definition. Likely still not right though.

  307. Deucе
    Thu Oct 24 2024 20:34:38 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32cio.c diff
    Some more Win32 Terminal fixes Almost there, the main issue remaining is when running from a command-line, it sometimes "unwraps" lines.

  308. Deucе
    Thu Oct 24 2024 18:41:12 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32cio.c diff
    Keep a local copy of the screen for windows Because it screws up the display when you resize the window.

  309. Rob Swindell (on Debian Linux)
    Thu Oct 24 2024 14:02:27 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_file_area.c diff
    src/sbbs3/js_msg_area.c diff
    Clarify in docs that grp/sub/lib/dir numbering is zero-based

  310. Rob Swindell (on Debian Linux)
    Thu Oct 24 2024 14:00:01 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/shell_lib.js diff
    Add misisng parens from previous commit

  311. Rob Swindell (on Debian Linux)
    Thu Oct 24 2024 13:57:28 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/shell_lib.js diff
    Use 1-based group and lib numbers for optional subs* and dirs* menu files This was a bug in the conversion from Baja and C++ to JS. Discovered/reported by vela025

  312. Rob Swindell (on Debian Linux)
    Thu Oct 24 2024 12:14:04 GMT-0700 (PDT)
    Added Files:
    

    src/sexpots/.gitignore diff
    Git-ignore auto-generated files: git_branch.h and git_hash.h

  313. Rob Swindell (on Debian Linux)
    Thu Oct 24 2024 12:14:04 GMT-0700 (PDT)
    Modified Files:
    

    exec/init-fidonet.ini diff
    Fix the 404 error retrying Micronet info packet (MININFO.ZIP not mininfo.zip) I'm not sure if the file was renamed at some point or what, but apparently it's currently named in ALL CAPS.

  314. Rob Swindell (on Debian Linux)
    Thu Oct 24 2024 12:14:04 GMT-0700 (PDT)
    Modified Files:
    

    exec/init-fidonet.js diff
    Pass the ctrl directory on the SCFG command-line Fixes issue were jsexec was used to invoke this script and a ctrl dir (different than the contents of the SBBSCTRL env var) was passed on the command-line (i.e. testing purpose). Use the correct ctrl directory. Create the data/text directory if it doesn't already exist. This dir is normally created whenever SBBS is run, so it should normally already exist, but if someone runs this script via jsexec before (ever) running sbbs, then it's possible the data/text directory does not yet exist.

  315. Deucе
    Thu Oct 24 2024 11:59:11 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/telnets.c diff
    src/syncterm/telnets.h diff
    Fix telnets This was broken when SFTP support was added and wasn't noticed. Big thanks to Scott Labrecque of ems-bbs.com for noticing!

  316. Deucе
    Thu Oct 24 2024 10:07:28 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/conn.c diff
    Fix telnets port.

  317. Deucе
    Thu Oct 24 2024 08:18:57 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32cio.c diff
    Deal with consile resizing This doesn't fix the terrible crap Windows does to the contents of the console yet though (sigh).

  318. Deucе
    Thu Oct 24 2024 07:10:39 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32cio.c diff
    <nelgin> Wont crash if it wont build.

  319. Rob Swindell (on Debian Linux)
    Wed Oct 23 2024 19:36:17 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/sbbs.h diff
    Make JS bbs.msg_number and smb_curmsg writable These 2 properties, specifically, could be made writable since 1. smb_t.curmsg is a special element owned by the application, not smblib 2. a special sbbs_t.current_msg_number property could be created/used to underlie the bbs.msg_number when there's no open message base (by sbbs). This might be all that's needed to resolve issue #793 The other bbs.msg_* and bbs.smb_* properties are not so easily made writable, so hopefully that's not desired.

  320. Deucе
    Wed Oct 23 2024 17:50:35 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32cio.c diff
    Some fixups to not crash and stuff.

  321. Deucе
    Wed Oct 23 2024 14:01:42 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32cio.c diff
    The MSVC builds apparently target some ancient API So we need to define the Windows API ourselves. :(

  322. Deucе
    Wed Oct 23 2024 13:20:47 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32cio.c diff
    src/syncterm/CHANGES diff
    Fix -iW colors in conio. SetConsoleScreenBufferInfoEx() can no longer set colors in the console palette. Switch to virtual terminal parsing stuff and send some ANSI to adjust the palette instead.

  323. Rob Swindell (on Debian Linux)
    Wed Oct 23 2024 12:00:59 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/chksmb.c diff
    Update chksmb usage (msg/file bases have .shd files, not .SHD) And try to make it clear that multiple bases can be passed on the command-line.

  324. Deucе
    Wed Oct 23 2024 11:13:59 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Log the changes.

  325. Deucе
    Wed Oct 23 2024 11:23:58 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32cio.c diff
    Attempt to re-enable palette setting on Win32 This was disabled due to mingw32 limitations, and we use mingw64 now

  326. Rob Swindell (on Debian Linux)
    Wed Oct 23 2024 10:57:25 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getmsg.cpp diff
    src/sbbs3/sbbs.h diff
    Don't use user's default download protocol for msg attachments Fix issue #801

  327. Deucе
    Wed Oct 23 2024 09:35:30 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/term.c diff
    Fix some remains of input weirdness... Now that the conio layer is handling translation of character sets, the key handler in term.c should only handle terminal related translations (such as backspace to delete). This fixes bug 159, but there's still some inconsistency across the various backends on how they handle C0 control characters and input characters outside of US-ASCII.

  328. Rob Swindell (on Debian Linux)
    Tue Oct 22 2024 22:13:02 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/str_util.c diff
    src/sbbs3/str_util.h diff
    Add contains_invalid_attr() - checks string for invalid attr Ctrl-A codes Other Ctrl-A codes (e.g. ^A\) might be valid, but they're not attribute control codes, so their existence would cause this function to return true.

  329. Rob Swindell (on Debian Linux)
    Tue Oct 22 2024 22:13:02 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getkey.cpp diff
    Expand tildes in mnemonics strings that conain non-attr Ctrl-A codes Fix for issue #800

  330. Deucе
    Tue Oct 22 2024 21:42:42 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/scale.c diff
    src/conio/xbr.c diff
    src/syncterm/syncterm.c diff
    Rejigger width iterpolation. The old code expected the L1 cache to be fairly large, and the prefetcher to be fairly smart, and did updates by columns to save some math. This change performs width interpolation row-by-row so even the dumbest prefetcher can get it right, and there's no need to keep the whole source and destination images in the cache. This may help out older processors when scaling with interpolation (most commonly used in fullscreen). It's entirely possible though that this won't be enough and they'll still need to use "External" scaling.

  331. Rob Swindell (on Debian Linux)
    Tue Oct 22 2024 17:19:21 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    IP addresses are logged (most) everywhere else in square brackets There are still places where it could be logged in <> (if username is not yet known).

  332. Rob Swindell (on Windows 11)
    Tue Oct 22 2024 17:13:00 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ansiterm.cpp diff
    src/sbbs3/atcodes.cpp diff
    src/sbbs3/con_out.cpp diff
    src/sbbs3/exec.cpp diff
    src/sbbs3/js_console.cpp diff
    src/sbbs3/prntfile.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/useredit.cpp diff
    Rename sbbs_t::ansi_getlines() to ansi_getdims(), add sbbs_t::getdimensions() Add JS console.ansi_getdims() Use sbbs_t::getdimensions() or JS console.getdimensions() to move user cols/rows values to run-time console values (querying ANSI terminal if appropriate/supported). JS console.pushxy(), popxy(), and gotoxy() all return Boolean now. sbbs_t::getdimensions() and its JS wrapper is now the proper way to propagate user's cols/rows settings to the run-time console values. This was done (post-login) only via use of the TERMROWS and TERMCOLS @-codes in user_settings.js. Weird.

  333. Deucе
    Tue Oct 22 2024 16:00:23 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/scale.c diff
    src/conio/xbr.c diff
    src/conio/xbr.h diff
    src/syncterm/CHANGES diff
    Remove cases where pointy falls back to blocky.

  334. Deucе
    Tue Oct 22 2024 14:34:10 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/scale.c diff
    Don't use the C99 restrict keyword because MSVC is apparently still more than 25 years behind the C standard.

  335. Deucе
    Tue Oct 22 2024 14:14:55 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    Attempt to fix issue #799 receive_thread() needs to use the control session correctly for TLS connections.

  336. Deucе
    Tue Oct 22 2024 13:51:24 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/scale.c diff
    Decorate some arguments to allow compiler to optimize harder

  337. Rob Swindell (on Debian Linux)
    Mon Oct 21 2024 22:01:29 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/ftpsrvr.h diff
    Add NO_FTPS [FTP] Option to disable FTPS support when necessary Ideally, a sysop would never need to disable FTPS support, but as a trouble shooting measure, it can be helpful.

  338. Rob Swindell (on Debian Linux)
    Mon Oct 21 2024 16:10:05 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/text.dat diff
    Add a bunch of conditional line continuations for 40 column terminals Using Ctrl-A\ (\1\\) in a bunch of text strings (especially prompts) to better accommodate 40 column terminals. Fixes email/netmail address prompt issue reported by phigan (TACOPRON) along with a bunch of other cosmetic and input issues with 40col terminals.

  339. Rob Swindell (on Debian Linux)
    Mon Oct 21 2024 11:32:04 GMT-0700 (PDT)
    Modified Files:
    

    exec/rlogin.js diff
    The P, C, and v options would report 'unrecognized option' Fix for issue #798

  340. Deucе
    Mon Oct 21 2024 09:13:41 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/updvers.sh diff
    Fix script to update Info.plist properly. We need -g to do multi-line matching with -p.

  341. Deucе
    Sun Oct 20 2024 17:59:48 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/sdl_con.c diff
    src/syncterm/CHANGES diff
    Fix macOS mouse position reporting Under SDL2, with HighDPI enabled, we end up with two coordinate systems for our window... there's the pixel coordinates which we draw in, and are available via SDL_GetWindowSizeInPixels(), and there's the "screen" coordinates, which is an underlying source size that is scaled from, and is available via SDL_GetWindowSize(). Mouse events are in the screen coordinates, drawing is in pixel coordinates. This commit converts mouse event positions to pixel coordinates before converting further to text coordinates. :( A specual thanks to u/ten-oh-four for working to track this down with me, they ran multiple experimental builds and collected logs which allowed to to be tracked down. Fixes issue 155

  342. Deucе
    Sun Oct 20 2024 14:51:35 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_cryptcon.c diff
    Seriously, Poly1305 is not HMAC.

  343. Deucе
    Sun Oct 20 2024 14:31:27 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_cryptcon.c diff
    Add a couple commas for the docs.

  344. Deucе
    Sun Oct 20 2024 14:25:17 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_cryptcon.c diff
    Poly1305 isn't HMAC.

  345. Deucе
    Sun Oct 20 2024 14:15:32 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_cryptcon.c diff
    Add new algorithms.

  346. Eric Oulashin
    Sat Oct 19 2024 16:23:26 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit.js diff
    SlyEdit: Open the quote file in "binary" mode (only applicable on Windows; same as the fseditor change)

  347. Rob Swindell
    Sat Oct 19 2024 16:23:26 GMT-0700 (PDT)
    Modified Files:
    

    exec/SlyEdit.js diff
    Merge branch 'slyedit_open_quote_file_in_binary_mode' into 'master' SlyEdit: Open the quote file in "binary" mode (only applicable on Windows; same as the fseditor change) See merge request main/sbbs!462

  348. Deucе
    Sat Oct 19 2024 10:56:14 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/sdl_con.c diff
    src/conio/sdlfuncs.c diff
    src/conio/sdlfuncs.h diff
    More hacking to make macOS happy... Allow ALT+Arrow to resize from maximized by calling SDL_RestoreWindow() first. This should allow macOS users to escape the weird window size mess it can start in. Still no idea what is actually happening there, but this should at least provide an "out" now. :(

  349. Deucе
    Sat Oct 19 2024 11:10:41 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Add call to update_cvstat() in setup_surfaces() This should ensure that cvstat has the right window size at the start. I hope.

  350. Deucе
    Sat Oct 19 2024 07:28:58 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/sdl_con.c diff
    src/conio/sdlfuncs.c diff
    src/conio/sdlfuncs.h diff
    src/syncterm/CHANGES diff
    src/syncterm/bbslist.c diff
    src/syncterm/uifcinit.c diff
    src/syncterm/uifcinit.h diff
    More changes around fullscreen/maximized/etc for SDL On macOS, fullscreen and maximized are very slightly different, so don't force one to mean the other. However, when entering or leaving fullscreen mode, we need to explicitly make the window resizable or not. Also, update the uifc screen title when the mode changes and we're at one of the main menus... still a bit icky, but likely the best that can be done (won't update if you toggle fullscreen from a sub-menu for example).

  351. Deucе
    Sat Oct 19 2024 07:35:32 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/conn.c diff
    src/syncterm/conn.h diff
    Fix warning on 64-bit Windows where a socket isn't an int. Le sigh for the socket API.

  352. Deucе
    Sat Oct 19 2024 07:45:10 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Query current fullscreen state on ALT-Enter Because things get weird sometimes.

  353. Deucе
    Sat Oct 19 2024 07:51:32 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/sdlfuncs.h diff
    SDL_SetWindowResizable() returns void.

  354. Deucе
    Sat Oct 19 2024 08:02:25 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Spell SDL_WINDOW_FULLSCREEN correctly. Also, there's SDL_WINDOW_FULLSCREEN_DESKTOP, so or that in even though we don't need to due to how it's defined.

  355. Deucе
    Fri Oct 18 2024 18:59:43 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Basically a revert of 02dce657 This appears to break the mouse position stuff. :(

  356. Deucе
    Fri Oct 18 2024 18:28:40 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/cterm_lib.js diff
    Make scale_rgb_channel_value() a bit smoother and avoid divide by zero.

  357. Deucе
    Fri Oct 18 2024 18:18:35 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/bbslist.c diff
    Increase the width of File Locations window Decrease height by one to avoid the memo line.

  358. Rob Swindell (on Debian Linux)
    Fri Oct 18 2024 17:07:21 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/cterm_lib.js diff
    Define cterm_version_supports_copy_buffers (1316)

  359. Rob Swindell (on Debian Linux)
    Fri Oct 18 2024 17:08:27 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/minesweeper/minesweeper.js diff
    Use cterm_lib.js for cterm-specific constants/operations Update date display format to be less ambiguous (more international). js.exec_dir is guaranteed to end in a slash, so no need to add one. Bump version to 3.00.

  360. Rob Swindell (on Debian Linux)
    Fri Oct 18 2024 13:10:28 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/ansiterm_lib.js diff
    Add mouse reporting modes not supported by SyncTERM 1001, 1004, 1005, 1007, and 1015 Add ability for the set/clear mouse reporting calls to set/clear 'all' modes with a single function call.

  361. Rob Swindell (on Debian Linux)
    Fri Oct 18 2024 13:16:59 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/ansiterm_lib.js diff
    Allow multiple mouse reporting modes to be set/clear by passing array This (ever so slightly) optimizes the transmtited ANSI sequences

  362. Rob Swindell (on Debian Linux)
    Fri Oct 18 2024 13:41:54 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/ansiterm_lib.js diff
    Fix array support in mouse_reporting_modes() typeof [] returns 'object', not 'array'

  363. Rob Swindell (on Debian Linux)
    Fri Oct 18 2024 13:43:23 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/minesweeper/minesweeper.js diff
    Use ansiterm_lib.js for constructing ANSI mouse reporting set/clear sequences Code beautification, no functional change other than we're not clearing mouse mode 1016 since I don't have a definiton for that mode yet.

  364. Deucе
    Fri Oct 18 2024 12:01:11 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/minesweeper/minesweeper.js diff
    Be more aggressive about setting mouse modes. When starting, turn off all mouse modes, then turn on the ones we need instead of relying on the console object to do anything in particular. On exit, explicitly turn off the two modes we had enabled before changing the console setting. Maybe this will fix the SyncTERM bug 153

  365. Deucе
    Fri Oct 18 2024 11:38:31 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/term.c diff
    Fix cache subdirectories on Windows. Windows appears to treat backslashes and slashes the same when using the API, but Windows always returns backslashes. Convert backslashes to slashes in clean_path() to ensure paths compare the same regardless of them being specified with backslashes or slashes. There's still an open question of what to do about paths received from the remote with backslashes in them, but I suspect that doing that would actually work on *nix systems and break on Windows systems, so hopefully whoever does that can fogure out what's going on.

  366. Deucе
    Fri Oct 18 2024 10:46:39 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/minesweeper/minesweeper.js diff
    Ensure graphics are cached successfully. It appears that cache operations in SyncTERM on Windows does not currently work with subdirectories for some reason (likely backslashes). Ensure that after sending a file to be cached, it correctly appears in the cache, and fall back to not using graphics. This will fix the blank board issue in minesweeper with a Windows SyncTERM and fallback to text mode. Once SyncTERM is fixed, it should work in graphics mode too.

  367. Deucе
    Fri Oct 18 2024 08:09:18 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    Don't copy the name to the address. The DNS lookup can cause delays on some systems. Fixes bug 154

  368. Rob Swindell (on Windows 11)
    Thu Oct 17 2024 21:55:43 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/answer.cpp diff
    Fix indentation of one line.

  369. Rob Swindell (on Windows 11)
    Thu Oct 17 2024 21:56:05 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/logfile.cpp diff
    Fix extra line feed (and blank line) when long (> 78 char) strings were logged to node.log via sbbs_t::log()

  370. Rob Swindell (on Debian Linux)
    Thu Oct 17 2024 16:45:39 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/mime_types.ini diff
    Add mp4 MIME type mapping

  371. Rob Swindell (on Debian Linux)
    Thu Oct 17 2024 16:46:23 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/attr.ini diff
    Add line-feed to last line (not strictly required)

  372. Rob Swindell (on Debian Linux)
    Wed Oct 16 2024 21:37:55 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfgxtrn.c diff
    src/sbbs3/xtrn_sec.cpp diff
    Add 21 extra blank lines to the end of the 31-line DOOR.SYS file Some doors/door kits actually require all 52 lines, but since they (may) have problems with the values we populate on those additional 21 lines, just write them as blank when a program is configured for the GAP (original) 31 line DOOR.SYS drop file. I doubt (and hope) that no programs will care if their are more lines than they expect.

  373. Rob Swindell (on Debian Linux)
    Wed Oct 16 2024 00:06:26 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/bat_xfer.cpp diff
    Fix silliness discovered in conversion to JavaScript So apparently 23 years ago (almost 24), I made a typo in commit 7731d16dbbcb7 that broke the batch transfer menu for RIP users. Also elminated silly/unnecessary loop-control variable ('done'). I'm working on a port to JS and noticed these oddities (so far).

  374. Rob Swindell (on Debian Linux)
    Tue Oct 15 2024 23:29:43 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    Fix GCC warning (unused variable) introduced in last commit

  375. Rob Swindell (on Windows 11)
    Tue Oct 15 2024 13:50:56 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/services.ini diff
    src/sbbs3/services.c diff
    Add configurable "LoginRequirements" (ARS format) per-service in services.ini In response to Reddit inquiry in /r/bbs by wts42: "is there a possibility in sbbs to restrict access to services like IMAP by level or flag?" ... now there is. This only works for services that use the JS login() method to authenticate the user. If the services server's LoginRequirements are set in the sbbs.ini file, then *both* sets of requirements must be met to successfully login to a service.

  376. Rob Swindell (on Windows 11)
    Tue Oct 15 2024 13:54:40 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    Add missing file to commit 095368c0d7 Not sure how I missed this one, but this file was needed to complete the 'bbs' object changes mentioned in that commit message.

  377. Rob Swindell (on Windows 11)
    Tue Oct 15 2024 13:56:43 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/scfg/scfgxtrn.c diff
    src/sbbs3/xtrn_sec.cpp diff
    Add support for 31-line DOOR.SYS file format (alternative to 52-line version) Removed UTIDOOR.TXT file format: nobody uses this drop file format and we removed the UTI driver long ago, so this was just an artifact. If you previously had an external program (door) configured in SCFG to use the "GAP DOOR.SYS" file format, SBBS will create the same (52 line) format as before (no change). But for doors that have compatibilty issues with the 52-line DOOR.SYS file created by Synchronet (e.g. Thunder cat V3.30), a sysop can now choose "GAP (original)" for the drop file type and Synchronet will create a 31-line DOOR.SYS file instead.

  378. Deucе
    Tue Oct 15 2024 13:33:18 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/GNUmakefile diff
    Put the manpage in ${PREFIX}/share regardless of what PREFIX is.

  379. Deucе
    Tue Oct 15 2024 11:33:45 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/PackageInfo.in diff
    Use the pre-installed GPL license

  380. Deucе
    Tue Oct 15 2024 11:33:45 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/DarwinWrappers.m diff
    src/syncterm/syncterm.c diff
    Fix macOS bug where the *first* entry on a new system could not be added When the code to use URLForDirectory to get paths was written, it didn't create the paths, so the files in them could not be created either. If SyncTERM had ever ran using the old FSFindFolder() method, the path would already exist, so things would work. Also, since we're here, use mkpath() instead of MKDIR().

  381. Rob Swindell (on Debian Linux)
    Tue Oct 15 2024 00:45:07 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_user.c diff
    New user properties: batch_upload_list and batch_download_list For exposing the list path/file for a user's batch up/download lists

  382. Deucе
    Mon Oct 14 2024 23:43:13 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CMakeLists.txt diff
    src/syncterm/haiku.rdef diff
    Add the icon art created years ago (in 2012)

  383. Deucе
    Mon Oct 14 2024 23:30:14 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/haiku.rdef diff
    rdef resources need to end in a ;

  384. Deucе
    Mon Oct 14 2024 23:05:40 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/haiku.rdef diff
    src/syncterm/updvers.sh diff
    Whoopse, this was master. Master is 1.2b

  385. Deucе
    Mon Oct 14 2024 22:46:28 GMT-0700 (PDT)
    Added Files:
    

    src/syncterm/haiku.rdef diff
    Modified Files:

    src/syncterm/CMakeLists.txt diff
    src/syncterm/updvers.sh diff
    And generate/use the Haiku rdef file

  386. Deucе
    Mon Oct 14 2024 21:58:34 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/PackageInfo.in diff
    src/syncterm/updvers.sh diff
    More Haiku stuff

  387. Deucе
    Mon Oct 14 2024 21:33:57 GMT-0700 (PDT)
    Added Files:
    

    src/syncterm/PackageInfo.in diff
    Modified Files:

    src/syncterm/CMakeLists.txt diff
    Create a .PackageInfo file for Haiku

  388. Rob Swindell (on Debian Linux)
    Mon Oct 14 2024 19:06:50 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/gettext.js diff
    Add optional friendly-key name argument, pull text from [scriptname.js] Not all strings make good key names (e.g. those with control characters), so allow an additional, optional argument to gettext() that allows for more friendly key names to be used to specify/look-up (some) text strings. Also, in addition to the global [js] section for these text values, look (first) in [scriptfilename.js] - this allows more customization on a per-script basis (e.g. [default.js] can be used to override strings used in the Synchronet Classic command shell (default.js) but would not effect if/when those same strings are used in other scripts/shells.

  389. Rob Swindell (on Debian Linux)
    Mon Oct 14 2024 19:11:54 GMT-0700 (PDT)
    Modified Files:
    

    exec/default.js diff
    Allow more shell prmopt text to be configured vi ctrl/text[.lang].ini file Using the new load/gettext.js: A sysop can override these additional strings (that contain Ctrl-A sequences) now by assigning to the following keys: - shell_prompt_begin - shell_prompt_middle - shell_main_prompt_end - shell_file_prompt_end Also, a sysop can now put these keys in the [default.js] section of the file (rather than [js]) if desired, to avoid conflict with other scripts/shells. Added for vela025 and their BBC Micro Acron mode 7 language support mod. There are other strings still hard-coded in default.js and notably, in load/shell_lib.js that are not (yet) customizable. Let's try this change first.

  390. Deucе
    Sun Oct 13 2024 22:48:23 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/syncterm.c diff
    Get correct Haiku file paths. It appears the "right" place to put downloads is on the Desktop... and the OS won't tell you that.

  391. Rob Swindell (on Debian Linux)
    Sun Oct 13 2024 13:36:38 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Reset sbbs_t menu path vars (menu_dir and menu_file) before execing cmd shell I obvserved an issue with Amessyroom's bbs where his custom (JS) shell is setting bbs.menu_dir but when switching to another stock shell, his menu files were still being displayed (with mismatching command keys as a result). bbs.menu_dir (and implicitly, the set_menu_dir Baja function) apparently have not been used in this way (much) before.

  392. Deucе
    Sun Oct 13 2024 09:58:53 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/CMakeLists.txt diff
    Set PREFER_POLL in CMake as well. Not just for GMUmakefile anymore!

  393. Deucе
    Sun Oct 13 2024 10:00:01 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/sdl_con.c diff
    src/syncterm/CHANGES diff
    Quit video subsystem from video thread. Some SDL targets (like Haiku) have issues doing video calls from threads other than the video thread.

  394. Deucе
    Sun Oct 13 2024 08:36:49 GMT-0700 (PDT)
    Added Files:
    

    3rdp/build/cl-haiku-build.patch diff
    Modified Files:

    3rdp/build/CMakeLists-cl.txt diff
    3rdp/build/CMakeLists.txt diff
    src/conio/CMakeLists.txt diff
    src/syncterm/CHANGES diff
    src/syncterm/CMakeLists.txt diff
    src/syncterm/conn_pty.c diff
    src/xpdev/CMakeLists.txt diff
    src/xpdev/multisock.c diff
    Initial Haiku support. CMake only, has issues.

  395. Rob Swindell (on Debian Linux)
    Sun Oct 13 2024 02:13:50 GMT-0700 (PDT)
    Modified Files:
    

    exec/bullseye.js diff
    Pass P_NOERROR to bbs.menu() ... to not log an error when the bullseye.asc file doesn't exist.

  396. Rob Swindell (on Debian Linux)
    Sun Oct 13 2024 02:23:48 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/prntfile.cpp diff
    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.

  397. Deucе
    Sat Oct 12 2024 21:17:27 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/updvers.sh diff
    Fix Info.plist command-lines

  398. Deucе
    Sat Oct 12 2024 14:43:49 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Remove duplicated item

  399. Deucе
    Sat Oct 12 2024 14:38:53 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Mention GDI AltGr fix

  400. Deucе
    Sat Oct 12 2024 12:52:08 GMT-0700 (PDT)
    Modified Files:
    

    3rdp/build/CMakeLists-cl.txt diff
    Only Win32 needs dbghelp.dll

  401. Rob Swindell (on Debian Linux)
    Sat Oct 12 2024 12:48:59 GMT-0700 (PDT)
    Modified Files:
    

    BUILDING.md diff
    install/GNUmakefile has been renamed to install-sbbs.mk

  402. Deucе
    Sat Oct 12 2024 12:47:27 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32gdi.c diff
    Whoops.

  403. Deucе
    Sat Oct 12 2024 12:41:38 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32gdi.c diff
    src/xpdev/dirwrap.c diff
    Fix a couple interesting-looking MSVC warnings.

  404. Deucе
    Sat Oct 12 2024 12:09:13 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CMakeLists.txt diff
    Do a Windows build if GDI or SDL is enabled. Kinda hacky to do it here.

  405. Deucе
    Sat Oct 12 2024 11:10:53 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32gdi.c diff
    Improve input in GDI mode This may be a fix for bug 150 (which was reported against SDL mode). Basically, Windows will report AltGr as Alt + Ctrl, so we need to be able to parse that. Since we're here, support WM_UNICHAR to avoid the need to have Windows convert to "ANSI" for us, and allow direct unicode input (even in "ANSI" mode).

  406. Deucе
    Sat Oct 12 2024 01:49:57 GMT-0700 (PDT)
    Modified Files:
    

    3rdp/build/CMakeLists-cl.txt diff
    A bit more fixups for Windows.

  407. Deucе
    Sat Oct 12 2024 00:51:18 GMT-0700 (PDT)
    Modified Files:
    

    3rdp/build/CMakeLists-cl.txt diff
    src/syncterm/CMakeLists.txt diff
    Fix debug builds, and default to debug. CMake does weird things if CMAKE_BUILD_TYPE isn't defined and a multi-whatzit generator is used.

  408. Deucе
    Sat Oct 12 2024 00:35:03 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/CMakeLists.txt diff
    src/syncterm/FBSD-mingw64.cmake diff
    Use the detected thread library, don't -pthread anything.

  409. Deucе
    Sat Oct 12 2024 00:17:40 GMT-0700 (PDT)
    Modified Files:
    

    3rdp/build/CMakeLists-cl.txt diff
    src/syncterm/CMakeLists.txt diff
    The last few bits to make SyncTERM build for Windows on Windows. The resulting binary crashes, but at least it builds!

  410. Deucе
    Fri Oct 11 2024 23:45:35 GMT-0700 (PDT)
    Added Files:
    

    3rdp/build/cl-mingw64-unicode-gibble.patch diff
    Modified Files:

    3rdp/build/CMakeLists-cl.txt diff
    3rdp/build/CMakeLists.txt diff
    3rdp/build/GNUmakefile diff
    Work around bug in mingw64 headers NetStatisticsGet() always takes a unicode string, but the header uses the TEXT() macro to declare the standard types.

  411. Deucе
    Fri Oct 11 2024 23:30:52 GMT-0700 (PDT)
    Modified Files:
    

    3rdp/build/cl-fix-cpuid-order.patch diff
    Þe olde bug in last commit.

  412. Deucе
    Fri Oct 11 2024 23:26:37 GMT-0700 (PDT)
    Added Files:
    

    3rdp/build/cl-fix-cbli-incompatible.patch diff
    3rdp/build/cl-fix-cpuid-order.patch diff
    Modified Files:

    3rdp/build/CMakeLists-cl.txt diff
    3rdp/build/CMakeLists.txt diff
    3rdp/build/GNUmakefile diff
    More patches and fixes and stuff.

  413. Deucе
    Fri Oct 11 2024 22:59:50 GMT-0700 (PDT)
    Added Files:
    

    3rdp/build/cl-lowercase-versionhelpers.patch diff
    3rdp/build/cl-mingw64-is-really-new.patch diff
    3rdp/build/cl-mingw64-thread-handles.patch diff
    Modified Files:

    3rdp/build/CMakeLists-cl.txt diff
    3rdp/build/CMakeLists.txt diff
    3rdp/build/GNUmakefile diff
    Some more patches for mingw64

  414. Deucе
    Fri Oct 11 2024 22:27:54 GMT-0700 (PDT)
    Modified Files:
    

    3rdp/build/CMakeLists-cl.txt diff
    Don't enable crypto devices, even if we're in Windows.

  415. Rob Swindell (on Debian Linux)
    Fri Oct 11 2024 22:08:44 GMT-0700 (PDT)
    Removed Files:
    

    install/GNUmakefile diff
    Renamed to install-sbbs.mk

  416. Rob Swindell (on Debian Linux)
    Fri Oct 11 2024 22:04:56 GMT-0700 (PDT)
    Added Files:
    

    install/install-sbbs.mk diff
    Renamed install/GNUmakefile to install-sbbs.mk Made 'install' the default target (no longer need to include "target" on installation command-line). Specify "build" if you want to perform global build, only (no installation). This will help resolve confusion and mistake when running 'make install' in the wrong directory. Also, the installation command-lines and the re-build command-lines will no be more different and less error-prone. All documentation that references [install/]GNUmakefile now needs updating <sigh>.

  417. Rob Swindell (on Debian Linux)
    Fri Oct 11 2024 19:40:03 GMT-0700 (PDT)
    Modified Files:
    

    exec/default.js diff
    exec/load/shell_lib.js diff
    Replace console.crlf() calls with console.newline()

  418. Rob Swindell (on Debian Linux)
    Fri Oct 11 2024 19:38:31 GMT-0700 (PDT)
    Modified Files:
    

    exec/user_settings.js diff
    Clean up the default transfer protocol selection was printing "None (auto-hangup)" in some cases. Wasn't very pretty or clear to the user what was being asked (e.g. if they accidentically entered this selection/prompt). Setup for localization using gettext.js. Using console.newline() in place of (now deprecate) console.crlf().

  419. Rob Swindell (on Windows 11)
    Fri Oct 11 2024 18:06:50 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/bat_xfer.cpp diff
    src/sbbs3/sbbs.h diff
    Rename sbbs_t::batch_upload() to process_batch_upload_queue() That was a badly named function.

  420. Rob Swindell (on Windows 11)
    Fri Oct 11 2024 18:06:58 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfgxfr2.c diff
    Update online help (F1 key displayed help text) for directory "Short name" This text/terminology was pretty out of date.

  421. Rob Swindell (on Windows 11)
    Fri Oct 11 2024 18:37:59 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/bat_xfer.cpp diff
    src/sbbs3/con_out.cpp diff
    src/sbbs3/js_file_area.c diff
    src/sbbs3/logon.cpp diff
    src/sbbs3/newuser.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/str.cpp diff
    src/sbbs3/str_util.c diff
    src/sbbs3/upload.cpp diff
    src/sbbs3/useredit.cpp diff
    File/batch upload decomp for scripting, unique-password-check fix, Ctrl-AX fix Created sbbs_t::batch_upload() and JS bbs.batch_upload() returns true if one or more blind-uploads were received and all files in the batch upload queue (if any) were received The Rainbow Ctrl-A codes (x|X) are not valid for message (there's no universal ANSI equivalent) - so treat as "invalid Ctrl-A codes" for most (message) uses. e.g. they're stripped when entered into text with the internal message editor. sbbs_t::chkpass() and JS bbs.good_password() now default to *not* requiring the password to be substantially different from the user's current password. This fixes weird issues where a user that just wanted to add more characters to their current password woudl not be allowed by cause the new password was "too obvious" JS bbs.good_password() now accepts an optional second argumnet: forced_unique which defaults to false. sbbs_t::chkpass() (JS bbs.good_password()) would always return false if the provided password was the same as the user's current password, regardless of the 'unique' parameter value. Now, only reject unchanged password when unique is true. sbbs_t::upload() and JS bbs.upload_file() now accept an optional second argument: 'filename' which when specified, the function won't prmopt for the user-supplied filename. New JS property: file_area.max_filename_length file_area.min_diskspace, settings, and web_vpath_prefix are now read-only. These properties should not have been writable.

  422. Rob Swindell (on Windows 11)
    Fri Oct 11 2024 18:38:55 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/shell_lib.js diff
    upload_file() will now fall-back to blind/batch upload if no filename provided If the user doesn't type a filename (just hits enter) and there are either files in the batch upload queue and/or there's an 'Uploads' directory configured by the sysop, then prompt if they want to start a batch upload now and do that (using the new bbs.batch_upload() method). This change requires the latest SBBS v3.20a changes committed in this same push. Change made to accomodate users/sysops like Chris Mifsud from Facebook: "For decades using other bbs software I always just pressed enter without entering a file name and it goes straight to the zmodem upload and then I select the file and hit upload no problem." Since only the default ("Synchronet Classic") command shell currently uses this library, this change only works when using that command shell. When we port other shells from Baja to JS (and this lib), they'll get this feature automatically.

  423. Deucе
    Fri Oct 11 2024 11:54:14 GMT-0700 (PDT)
    Modified Files:
    

    .gitlab-ci-unix.yml diff
    The syncterm-cmake targets don't need cryptlib to be built first anymore.

  424. Deucе
    Fri Oct 11 2024 11:35:12 GMT-0700 (PDT)
    Modified Files:
    

    .gitlab-ci-unix.yml diff
    3rdp/build/CMakeLists-cl.txt diff
    3rdp/build/CMakeLists.txt diff
    3rdp/build/hashpatch.pl diff
    src/syncterm/CMakeLists.txt diff
    Tie cryptlib cmake into syncterm cmake build There's still some dependency weirdness on Linux, and cryptlib won't automagically rebuild if the patches change, but it at least works for an initial build, which is the primary use-case. None of this has been tested on Windows yet.

  425. Deucе
    Fri Oct 11 2024 00:20:09 GMT-0700 (PDT)
    Added Files:
    

    3rdp/build/CMakeLists-cl.txt diff
    3rdp/build/CMakeLists.txt diff
    3rdp/build/hashpatch.pl diff
    Start working out how to build cryptlib using cmake. The tricky part is really extracting the source and applying the patches THEN configuring cryptlib. I can do this with ExternalProject, but I'm not sure exactly how to hook this up yet. This also requires patch and perl and a supported md5 thing to be installed in a place CMake will find them, which sill be challenging for Windows. If Windows (or compilers for Windows) have started shipping with git, I can use git apply instead of patch, but the rest is still kinda fuzzy. This does at least fix up the terrible serialized build though, so once I get this working, it will work well with values other than -j1.

  426. Deucе
    Fri Oct 11 2024 00:25:44 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CMakeLists.txt diff
    Linux needs libutil for forkpty() too. Except when it doesn't... it's harmless to link with it then though.

  427. Rob Swindell (on Debian Linux)
    Thu Oct 10 2024 22:23:34 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/shell_lib.js diff
    Don't display/log an error if text/menu/upload.* doesn't exist "upload.*" is an optional menu file, so this should've always used the P_NOERROR flag, but the bug just fixed (in commit b656e19ff) masked this issue.

  428. Rob Swindell (on Windows 11)
    Thu Oct 10 2024 22:18:49 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/prntfile.cpp diff
    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.

  429. Deucе
    Thu Oct 10 2024 20:53:39 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Ring the changes

  430. Deucе
    Thu Oct 10 2024 20:50:54 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/CMakeLists.txt diff
    Remove spurious brace

  431. Deucе
    Thu Oct 10 2024 20:38:16 GMT-0700 (PDT)
    Modified Files:
    

    .gitlab-ci-unix.yml diff
    Don't do cross-platform CMake builds. They're tricky tricky tricky tricky.

  432. Deucе
    Thu Oct 10 2024 20:34:07 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/CMakeLists.txt diff
    src/xpdev/CMakeLists.txt diff
    Fix SDL2 linkage for Darwin.

  433. Deucе
    Thu Oct 10 2024 20:34:07 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Store window size on size change event. Allows arbitrary sized windows on Darwin... the OS is still scaling the window contents though rather than allowing us to dynamically update them.

  434. Deucе
    Thu Oct 10 2024 20:34:07 GMT-0700 (PDT)
    Modified Files:
    

    .gitlab-ci-unix.yml diff
    Add SyncTERM CMake test build. So we can be sure it keeps working.

  435. Rob Swindell (on Debian Linux)
    Thu Oct 10 2024 12:33:02 GMT-0700 (PDT)
    Modified Files:
    

    text/feedback.msg diff
    Update the language to reflect modern times

  436. Rob Swindell (on Windows 11)
    Thu Oct 10 2024 12:28:36 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/useredit.cpp diff
    Always reload the edited user record from disk after executing a "usercfg_mod" Normally, when modifying user fields via JS, the "user modified" node.dab flag would be set for that user (on all node's that user is logged-into) and the user record automatically re-read (soon after). But this doesn't work during newuser registration because the user is not yet "logged-into" a node. This fixes the issue reported by Nelgin (and observed on amessyroom's BBS) whereby if a new user resets/changes their external message editor, it would not take effect for their new user validation email to the sysop (they would still be using the default new user message editor as configured by the sysop). It's possible other new user default changes made (e.g. language) would also not have taken immediate effect as a result of this bug (now fixed).

  437. Deucе
    Thu Oct 10 2024 10:21:09 GMT-0700 (PDT)
    Added Files:
    

    src/syncterm/FBSD-mingw64.cmake diff
    Modified Files:

    src/conio/CMakeLists.txt diff
    src/syncterm/CMakeLists.txt diff
    src/syncterm/COMPILING diff
    src/xpdev/CMakeLists.txt diff
    src/xpdev/genwrap.h diff
    Make CMake able to cross-build Win32 binaries on FreeBSD

  438. mcmlxxix
    Sat Oct 05 2024 13:24:44 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/bublbogl/game.js diff
    remove debug logging bits :|

  439. mcmlxxix
    Sat Oct 05 2024 13:21:28 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/bublbogl/game.js diff
    show month name in high score list

  440. mcmlxxix
    Sat Oct 05 2024 13:09:51 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/bublbogl/game.js diff
    xtrn/bublbogl/lobby.bin diff
    added "talk shit" feature

  441. Deucе
    Thu Oct 03 2024 14:18:19 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_global.c diff
    Fix multi-array version of socket_select() when using poll() Previously, when multiple lists were passed, the "write" parameter (which can't be changed) was applied to all sockets. This means they would always all be poll()ed for read, then checked for the appropriate flag (read/write/priority)... which effectively meant that only the first (read) array would work.

  442. Deucе
    Thu Oct 03 2024 09:33:57 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_socket.c diff
    Document the connect() callback thing.

  443. Deucе
    Wed Oct 02 2024 23:34:56 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/minesweeper/graphics.ppm diff
    xtrn/minesweeper/minesweeper.js diff
    xtrn/minesweeper/selmask.pbm diff
    Play with selection-follows-mouse a bit. Can't seem to get it reliable using the SBBS mouse parsing... doing it all myself for now until I decide if it's neat enough. I'll need to try it from a remote location to see how the latenct impacts playability.

  444. Deucе
    Wed Oct 02 2024 21:12:52 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/ooii.c diff
    Replace non-ASCII characters with \xXX escaped ones. Too many tools are gungo-ho over UTF-8 these days.

  445. Deucе
    Wed Oct 02 2024 21:13:41 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/CMakeLists.txt diff
    src/xpdev/CMakeLists.txt diff
    Some CMakeLists.txt cleanup Remove more of the obsolete stuff.

  446. Deucе
    Wed Oct 02 2024 21:15:09 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Mention CMake changes

  447. Deucе
    Wed Oct 02 2024 15:30:01 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/CMakeLists.txt diff
    src/conio/ciolib.c diff
    src/encode/CMakeLists.txt diff
    src/sftp/CMakeLists.txt diff
    src/syncterm/CMakeLists.txt diff
    src/xpdev/CMakeLists.txt diff
    Initial stab at making the macOS cmake build work

  448. Deucе
    Wed Oct 02 2024 11:56:58 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Add NetBSD fix note

  449. Deucе
    Wed Oct 02 2024 11:55:56 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/CMakeLists.txt diff
    src/conio/curs_cio.c diff
    src/xpdev/CMakeLists.txt diff
    Fixup NetBSD and OpenBSD builds CMake is now fixed, and a NetBSD extra wait for key on exit with the system curses is also fixed.

  450. Deucе
    Wed Oct 02 2024 03:53:31 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/CMakeLists.txt diff
    src/syncterm/CMakeLists.txt diff
    src/syncterm/bbslist.c diff
    src/xpdev/CMakeLists.txt diff
    Make all listed build options optional in CMake builds PC Speaker can't actually be disabled, so remove it from build options listing.

  451. Deucе
    Wed Oct 02 2024 00:08:01 GMT-0700 (PDT)
    Modified Files:
    

    src/build/SynchronetMacros.cmake diff
    Compare project names instead of dirs. Allows top-level wrapper CMakeLists.txt files to work (as long as their project name is right).

  452. Deucе
    Wed Oct 02 2024 00:11:13 GMT-0700 (PDT)
    Added Files:
    

    src/syncterm/CMakeLists.txt.top diff
    Add top-level CMakeLists.txt for SyncTERM

  453. Deucе
    Tue Oct 01 2024 23:27:46 GMT-0700 (PDT)
    Added Files:
    

    src/sftp/CMakeLists.txt diff
    Add CMakeLists.txt for sftp

  454. Deucе
    Tue Oct 01 2024 23:25:07 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/CMakeLists.txt diff
    src/syncterm/CMakeLists.txt diff
    src/xpdev/CMakeLists.txt diff
    Fix CMake system for SyncTERM

  455. Deucе
    Tue Oct 01 2024 20:39:08 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/cterm.adoc diff
    Clarify that you can still set a macro with p2=0 (and p2=1).

  456. Deucе
    Tue Oct 01 2024 16:08:34 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/bitmap_con.c diff
    src/conio/vidmodes.c diff
    src/syncterm/CHANGES diff
    Fix memory leak in initializing vmem. Much easier to fix it this way than to figure out why X11 needs to init it before bitmap_con does.

  457. Deucе
    Tue Oct 01 2024 15:19:38 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/x_events.c diff
    src/syncterm/CHANGES diff
    Undo part of the previous commit. All of this code runs in the same thread, races aren't possible.

  458. Deucе
    Tue Oct 01 2024 13:51:37 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/x_events.c diff
    src/syncterm/CHANGES diff
    Fix a potential race between drawing and discarding last buffer. If the last is freed while the screen is being updated, and the use after free bug is not detected, corruption could occur resulting in bad areas of the screen that persists until the window gets an expose event again, or the impacted pixels are updated again. Possibly fixes an issue reported by nelgin via IRC.

  459. Deucе
    Tue Oct 01 2024 11:28:21 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32gdi.c diff
    src/syncterm/CHANGES diff
    Remove cast-to-int in gdi_getscaling This fixes bug 141, which is currently the last blocker for rc2.

  460. Deucе
    Tue Oct 01 2024 11:20:04 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Document more changes.

  461. Deucе
    Tue Oct 01 2024 11:09:08 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/minesweeper/minesweeper.js diff
    More graphical fixes... Force mouse support in graphics mode even if user disabled it for the BBS. It would be nice if mouse support in the menus was a separate option than "terminal doesn't support mouse", and we know the terminal supports the mouse when we detect graphics mode. Move top/margin/width calculations into separate functions. For level 1, center the playboard. Fix an apparent off-by-one drawing the title bar.

  462. Deucе
    Tue Oct 01 2024 00:08:37 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_file.c diff
    File.read() encodes base64, it doesn't decode.

  463. Deucе
    Tue Oct 01 2024 00:09:18 GMT-0700 (PDT)
    Added Files:
    

    xtrn/minesweeper/graphics.ppm diff
    xtrn/minesweeper/selmask.pbm diff
    Modified Files:

    xtrn/minesweeper/minesweeper.js diff
    Initial support for SyncTERM PPM/PBM graphics. Hidden behind the graphics option for now since there's still issues... the board is offset in the window, the level 1 board is framed wrong (since the graphics are always 2 cols), and it doesn't check the graphical resolution, so if you're in a weird mode, it can break. Also, the graphics are uninspired at best... just hacked them up in Gimp.

  464. Deucе
    Mon Sep 30 2024 20:14:38 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/xpbeep.c diff
    Since we can check at the menu now, we don't need this warning.

  465. Deucе
    Mon Sep 30 2024 19:52:08 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/term.c diff
    Fix SAUCE date properly... avoid writing past the end of the buffer

  466. Deucе
    Mon Sep 30 2024 17:53:00 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/Common.gmake diff
    src/xpdev/GNUmakefile diff
    Fixups for build changes. Sneaky hiding extra interesting bits at the end like that. :(

  467. Deucе
    Mon Sep 30 2024 17:47:40 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    Fix the macro used to detect X11. NO_X is defined in the ciolib GNUmakefile. DISABLE_X11 is defined on Common.gmake.

  468. Deucе
    Mon Sep 30 2024 17:39:03 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/Manual.txt diff
    src/syncterm/bbslist.c diff
    src/xpdev/Common.gmake diff
    src/xpdev/GNUmakefile diff
    src/xpdev/xpbeep.c diff
    Add a "Build Options" menu item. Useful to check if SyncTERM was built with or without specific features.

  469. mcmlxxix
    Mon Sep 30 2024 17:09:41 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/bublbogl/boggle.bin diff
    xtrn/bublbogl/lobby.bin diff
    xtrn/dicewarz/dicewarz.bin diff
    xtrn/dicewarz2/lobby.bin diff
    xtrn/maze/fog.bin diff
    xtrn/maze/lobby.bin diff
    xtrn/synchronetris/lobby.bin diff
    xtrn/uberblox/game.js diff
    xtrn/uberblox/gameend.bin diff
    xtrn/uberblox/lobby.bin diff
    update more ansi (links, names, some column widths, etc) increase player name width in uberblox lobby

  470. Deucе
    Mon Sep 30 2024 16:03:11 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/x_events.c diff
    Fix some more warnings when not using optional features.

  471. Deucе
    Mon Sep 30 2024 15:05:42 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Add note about WM_SETCUSOR fix

  472. Deucе
    Mon Sep 30 2024 13:55:17 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/OverhaulNotes.txt diff
    src/conio/win32gdi.c diff
    Fix issue 146 Fix return value when handling WM_SETCURSOR. Returning FALSE indicating we didn't handle it stopped the cursor from being set to the size arrow cursors. Instead, pass it to DefWindowProc(). While we're here, handle WM_SIZING to make it more clear that you can't change the aspect ratio by dragging.

  473. mcmlxxix
    Mon Sep 30 2024 09:02:38 GMT-0700 (PDT)
    Added Files:
    

    xtrn/dicewarz/exit.bin diff
    Modified Files:

    xtrn/bublbogl/exit.bin diff
    xtrn/dicewarz2/exit.bin diff
    xtrn/maze/exit.bin diff
    xtrn/starstocks/exit.bin diff
    xtrn/synchronetris/exit.bin diff
    xtrn/uberblox/exit.bin diff
    updated exit splash screens with new repository url

  474. Deucе
    Sun Sep 29 2024 19:23:45 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/x_events.c diff
    Fix warnings in last commit.

  475. Deucе
    Sun Sep 29 2024 19:15:10 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/x_events.c diff
    Refine last commit... Add a comment explaining why we do what we do, and verify the aspect is unchanged as well since we could change only the aspect and need to set new hints in some cases.

  476. Deucе
    Sun Sep 29 2024 19:02:57 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/x_events.c diff
    If we're not mapping, only XSetWMNormalHints() if it's different.

  477. Deucе
    Sun Sep 29 2024 18:44:04 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/x_events.c diff
    Never call XMapWindow() in response to a _NET_FRAME_EXTENTS change This breaks at least herbstluftwm's focus-follows-mouse, and rustles Cyan's jimmies. It's also a terrible idea.

  478. Deucе
    Sun Sep 29 2024 18:09:50 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/term.c diff
    Fix last commit.

  479. Deucе
    Sun Sep 29 2024 18:09:50 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/syncterm.c diff
    Fix bool inversion introduced by 8f7cfadf44 quitting needs to be set to true, not false when quitting. :(

  480. Deucе
    Sun Sep 29 2024 17:45:20 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/term.c diff
    Fix bug generating SAUCE date introduced by commit dcf8c35f9b Using snprintf() prevents the last character of the date from being put into the string.

  481. Deucе
    Sun Sep 29 2024 14:39:28 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/x_events.c diff
    Actually don't call XSetICFocus() at start. :(

  482. Deucе
    Sun Sep 29 2024 14:37:18 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Update CHANGES for rc2

  483. Deucе
    Sun Sep 29 2024 14:28:24 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/x_cio.c diff
    src/conio/x_events.c diff
    src/conio/x_events.h diff
    Have the IC focus follow the X11 focus Basically, If we get a FocusOut, call XUnsetICFocus(), and if we get a FocusIn, call XSetICFocus(). Since we're doing this, don't call XSetICFocus() unconditionally at start, wait for the server to send us the initial FocusIn instead. The only bit I'm not sure of is if I got the times to ignor messages right... see here: https://tronche.com/gui/x/xlib/events/input-focus/normal-and-grabbed.html If you want to check my work. May fix the focus follows mouse issue reported by Cyan.

  484. Rob Swindell (on ChromeOS)
    Sat Sep 28 2024 18:00:41 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/syncterm.c diff
    Add missing period in "Upgrade detected" help text.

  485. Deucе
    Sat Sep 28 2024 15:27:40 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/win32gdi.c diff
    Fix reversed mouse wheel on Win32GDI... From MSDN: A positive value indicates that the wheel was rotated forward away from the user; a negative value indicates that the wheel was rotated backward, toward the user. Fixes bug 143. However, this re-opens the confusion around request 75... nigel and DigitalMan should take a look at this more closely in rc2 (or an updated nightly).

  486. Deucе
    Sat Sep 28 2024 11:06:47 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/OverhaulNotes.txt diff
    src/syncterm/Manual.txt diff
    Add "Persistant State" section to manual. This describes in more detail how the window size is saved and restored when starting/exiting SyncTERM.

  487. Rob Swindell (on Windows 11)
    Sat Sep 28 2024 01:21:48 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/mailsrvr.c diff
    MIME-encode words that contain non-ASCII values in text header fields (e.g. to, from, subject) ... when transmitting to other hosts (e.g. POP3 clients or other SMTP hosts). For messages that contain CP437 or UTF-8 chars in these fields and were *not* imported into the BBS via SMTP or POP3, these header fields would be transmitted to other hosts with the raw CP437 or UTF-8 chars, thus violating POP3 and SMTP protocols and likely resulting in garbage displayed in message readers. The fix is to encode (using MIME "encoded words", per RFC 2407) where necessary. Since moderm mail clients (e.g. Thunderbird) don't see to support CP437 charset in MIME encoded header fields, always translate to UTF-8 first. We probably should be translating message body text to UTF-8 as well, for maximum compatibilty with modern mail readers, but this commit doesn't address body text issues with CP437-encoded content. That'll come later.

  488. Deucе
    Fri Sep 27 2024 23:39:56 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/ripper.c diff
    Fix builds that don't support any graphics.

  489. Deucе
    Fri Sep 27 2024 23:24:12 GMT-0700 (PDT)
    Modified Files:
    

    src/encode/GNUmakefile diff
    src/hash/GNUmakefile diff
    src/sftp/GNUmakefile diff
    src/smblib/GNUmakefile diff
    src/uifc/GNUmakefile diff
    src/xpdev/GNUmakefile diff
    As it turns out, ciolib isn't special. We can't update a fat static library using ar on macOS. :(

  490. Deucе
    Fri Sep 27 2024 23:13:12 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/ripper.c diff
    Fix a couple use-after-free bugs in RIP This likely is the cause of bug 140. The first one, the LCF flag is copied out of the cterm struct after cterm_end() is called (which frees the struct). Copy moved to before cterm_end(). The second one is trickier... it's executing the commands in a mouse button, and one of the commands is to delete all the mouse button commands. This ends up free()ing the string that's currently being parsed while it's being parsed. We now use a strdup() of the string which we free at the end of the function.

  491. Deucе
    Fri Sep 27 2024 23:01:58 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/ripper.c diff
    src/syncterm/ripper.h diff
    src/syncterm/term.c diff
    src/syncterm/window.c diff
    Fix status bar issue when RIP changes the number of lines. RIP is currently the only thing that can change the number of lines in the terminal while connected. This can actually result in there being more lines on the screen than the last set video mode supports. There's a "feature" in SyncTERM text modes (curses, ANSI, and Win32 Console) where if the screen mode is "current", it uses the number of lines in the terminal, but if it's anything else, it forces the number of lines to the lines in the mode. This works great until RIP increases the number of lines beyond the number in the mode... when this happened, RIP would draw the status bar at the incorrect location on the screen. This change no longer sets the max rows in the terminal if the backend can set individual pixels (required for RIP). Further, to avoid a delay before redrawing the status bar after RIP changes the number of rows, the reinit_screen() function now sets a global to indicate it was called, and the status bar will always redraw when it's enabled and the flag is true. This *may* be related to bug 140, but may not be.

  492. Deucе
    Fri Sep 27 2024 21:35:32 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/OverhaulNotes.txt diff
    src/conio/win32gdi.c diff
    Fix issue 138 Weird stuff happened when dragging a GDI window between monitors with different zoom (DPI) settings. The following changes were all done to clean up this stuff: Window position is signed Do some type casting for warnings Fix return times of GetDpiFor*() pointers Fix fallback to GetDpiForSystem() (could never be used) Handle WM_DPICHANGED correctly Move some copy/pasted code into a function Fix return value for WM_GETDPISCALEDSIZE Fix return value for WM_USER_SETCURSOR

  493. Deucе
    Thu Sep 26 2024 15:00:30 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/syncterm.c diff
    Enable new reverse_cursor UIFC option for SyncTERM Thanks DigitalMan!

  494. Rob Swindell (on Debian Linux)
    Thu Sep 26 2024 14:47:51 GMT-0700 (PDT)
    Modified Files:
    

    src/uifc/uifc.h diff
    src/uifc/uifc32.c diff
    Add uifcapi_t.reverse_cursor (BOOL), default is FALSE Setting this to TRUE reverses the type of cursor used to indicate insert versus overwrite mode (solid/block cursor veruss underline/normal cursor). Deuce probably wants to set this to TRUE for SyncTERM.

  495. Deucе
    Thu Sep 26 2024 09:33:23 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Mention insert mode change

  496. Deucе
    Wed Sep 25 2024 23:21:27 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/cterm.txt diff
    cterm.txt is no longer the normative reference for cterm. Add a link to the new generated HTML document, and mention the .adoc file so people can find it in the future.

  497. Deucе
    Wed Sep 25 2024 21:45:32 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/syncterm.c diff
    Start UIFC in insert mode. Per comment on reddit by dialsoft, the lack of an insert key on laptops can make manipulating the phonebook more difficult. Since all the other UIFC functions have an insert alternate, they don't need any changes now that there's a manual, but for editing a string, the insert key is the only way to toggle overstrike. Since the insert mode toggle persists, simply starting in overstrike mode should be fine. Maybe some weird control key of function key can be used (though I guess laptops don't have function keys either anymore).

  498. Deucе
    Wed Sep 25 2024 20:10:48 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/Manual.txt diff
    Manual updates.

  499. Deucе
    Wed Sep 25 2024 15:51:24 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CMakeLists.txt diff
    src/syncterm/Info.plist diff
    src/syncterm/Manual.txt diff
    src/syncterm/dpkg-control.in diff
    src/syncterm/syncterm.c diff
    src/syncterm/syncterm.rc diff
    And this isn't.

  500. Deucе
    Wed Sep 25 2024 15:50:42 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CMakeLists.txt diff
    src/syncterm/Info.plist diff
    src/syncterm/Manual.txt diff
    src/syncterm/dpkg-control.in diff
    src/syncterm/syncterm.c diff
    src/syncterm/syncterm.rc diff
    And this is RC1

  501. Deucе
    Wed Sep 25 2024 15:38:24 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/Manual.txt diff
    src/syncterm/updvers.sh diff
    Put the full version number into Manual.txt I'll want to generate a version-specific one on release, and want to ensure it's consistent.

  502. Deucе
    Wed Sep 25 2024 15:40:37 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/cterm.c diff
    Bump revision. I need to document when I should do this better.

  503. Deucе
    Wed Sep 25 2024 15:41:33 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/updvers.sh diff
    Add reminder to bump cterm revision on version update. I guess that could be mostly good enoughish.

  504. Deucе
    Wed Sep 25 2024 15:34:16 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/cterm.adoc diff
    Add reference to STD-070.

  505. Rob Swindell (on Debian Linux)
    Wed Sep 25 2024 15:25:11 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/atcodes.cpp diff
    include petdefs.h (needed for PETSCII_UPPERGRFX definiton)

  506. Deucе
    Wed Sep 25 2024 15:12:42 GMT-0700 (PDT)
    Added Files:
    

    src/conio/ciolib.adoc diff
    Modified Files:

    src/syncterm/Manual.txt diff
    Add a user document for ciolib, and add it to SyncTERM manual.

  507. Deucе
    Wed Sep 25 2024 13:49:44 GMT-0700 (PDT)
    Added Files:
    

    src/conio/cterm.adoc diff
    Modified Files:

    src/syncterm/Manual.txt diff
    Include CTerm doc in SyncTERM doc

  508. Deucе
    Wed Sep 25 2024 13:39:48 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/cterm.c diff
    src/syncterm/CHANGES diff
    src/syncterm/Manual.txt diff
    More doc updates.

  509. Rob Swindell (on Debian Linux)
    Wed Sep 25 2024 11:59:47 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/atcodes.cpp diff
    Add PETGRFX @-code to send char 142 (enter PETSCII upper/graphics char set) ... when PETSCII terminal in use. For those sysops using editors that don't automatically or easily add this character to their SEQ art files when needed.

  510. Deucе
    Tue Sep 24 2024 23:35:26 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/Common.gmake diff
    src/xpdev/Common.gmake diff
    Add SDL_FRAMEWORK_PATH to rpath. Apparently, /Library/Frameworks isn't searched by default anymore?

  511. Deucе
    Tue Sep 24 2024 19:55:13 GMT-0700 (PDT)
    Added Files:
    

    3rdp/build/js-include-headers.patch diff
    Modified Files:

    .gitlab-ci.yml diff
    3rdp/build/GNUmakefile diff
    Fix config test for va_copy() on darwin. Because the appropriate header wasn't included, there was no prototype. Not having a prototype is an error in C99, which caused the test to indicate that there was no va_copy() on darwin. This in turn caused jsprf.cpp to try to copy a va_list using assignment. This is invalid, so the compiler would normally return an error. Somwhere in here, that error became a clang crash (not trivially reproducable). At the end of the day, ancient broken tests in config caused the darwin Spidermonkey builds to fail. The new patch fixes up the configure tests, and darwin Synchronet builds are re-enabled.

  512. Deucе
    Tue Sep 24 2024 16:33:36 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/cterm.txt diff
    Oh, cterm.txt was wrong w.r.t. APC vs. APS too

  513. Deucе
    Tue Sep 24 2024 16:09:38 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/termtest/termtest.js diff
    Fix APC/SOS naming. Thanks Ree!

  514. Deucе
    Tue Sep 24 2024 15:15:00 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/Manual.txt diff
    More manual fiddling.

  515. Deucе
    Tue Sep 24 2024 15:00:33 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/Manual.txt diff
    Remove incorrect escaping.

  516. Deucе
    Tue Sep 24 2024 14:44:45 GMT-0700 (PDT)
    Modified Files:
    

    .gitlab-ci.yml diff
    clang 16.0.0 crashes when building JS... unhook from builds.

  517. Deucе
    Tue Sep 24 2024 14:02:21 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/Manual.txt diff
    Convert to asciidoc

  518. Deucе
    Mon Sep 23 2024 22:06:07 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/syncterm.man.in diff
    Update manpage

  519. Deucе
    Mon Sep 23 2024 15:42:08 GMT-0700 (PDT)
    Added Files:
    

    3rdp/build/js-int-main-conf.patch diff
    Modified Files:

    3rdp/build/GNUmakefile diff
    Fix up configure for platforms that don't use configure.in Give simple test code a return type (default int isn't valid in C99) and make some fallback tools executable.

  520. Deucе
    Mon Sep 23 2024 11:02:23 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/x_events.c diff
    Fix build when XRandR is available, but Xinerama isn't.

  521. Deucе
    Mon Sep 23 2024 10:56:05 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/GNUmakefile diff
    Remove elfctl calls... they don't help.

  522. Deucе
    Mon Sep 23 2024 09:08:17 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Fix build. Whoops.

  523. Deucе
    Mon Sep 23 2024 01:30:11 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Update fullscreen and mode on Darwin to match window This should normalize everything, with the possible exception of "zoom" (the thing other OSs call maximized). Ideally, we wouldn't allow window size changes when "zoomed" if we could detect the state, but it doesn't look like we can.

  524. Deucе
    Sun Sep 22 2024 22:43:34 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/GNUmakefile diff
    Apparently ar can't update this when it's fat. Hopefully this is the only lib like this (maybe the resources?)

  525. Deucе
    Sun Sep 22 2024 22:44:34 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/sdl_con.c diff
    src/conio/sdlfuncs.c diff
    src/conio/sdlfuncs.h diff
    Use SDL_GetWindowSizeInPixels, and don't resize when maximized Fixes sourceforge issue 126 (finally!) Apparently, macOS "maximized" is the same as "fullscreen" in SDL.

  526. Deucе
    Sun Sep 22 2024 16:58:52 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/ssh.c diff
    Destroy ssh_tx_mutex

  527. Deucе
    Sun Sep 22 2024 16:58:52 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/ssh.c diff
    No no, *DESTROY* sftp_tx_mutex

  528. Rob Swindell (on Windows 11)
    Sun Sep 22 2024 16:56:53 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/logon.cpp diff
    Always close csts.ini file, even in error path (failure to open dsts.ini) Fix for CID 509720

  529. Rob Swindell (on Windows 11)
    Sun Sep 22 2024 16:56:53 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/scfg/scfgmsg.c diff
    Free ini string list in error path (no sectinos exist) Fix CID 509721

  530. Rob Swindell (on Windows 11)
    Sun Sep 22 2024 16:56:53 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Fix potential null pointer dereference strListReadFile() can return NULL upon error

  531. Deucе
    Sun Sep 22 2024 16:56:15 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/ssh.c diff
    Be sure to close ssh_sock regardless of ssh_active

  532. Deucе
    Sun Sep 22 2024 16:45:15 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/ssh.c diff
    Some more ssh_close() cleanup Make ssh_active only true when ssh_session was set. Only do ssh cleanup if ssh_active is true. Initialize channel values to -1 (already done in ssh_connect(), but doesn't hurt anything).

  533. Deucе
    Sun Sep 22 2024 16:21:13 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/ssh.c diff
    Fix sourceforge issue 136 With ssh_sock initialized to zero, if the connect fails, stdin was closed, preventing ANSI and curses modes from functioning.

  534. Deucе
    Sun Sep 22 2024 16:03:13 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    src/syncterm/syncterm.c diff
    src/syncterm/syncterm.h diff
    Fix up handling of -b option First, we need to parse it before load_settings() so we can deal with it there. Next, we need to keep the one from the config file available so it is edited from the program settings, and not the command line version

  535. Deucе
    Sun Sep 22 2024 15:40:08 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/syncterm.c diff
    src/xpdev/netwrap.c diff
    Fix some warnings, return false for zero-length strings.

  536. Deucе
    Sun Sep 22 2024 15:17:29 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/termtest/termtest.js diff
    Send a backspace space backspace after shift in Keeps the display cleaner when things work and the shift in byte is displayed. Should be harmless in cases where shift in is interpreted per the standards.

  537. Deucе
    Sun Sep 22 2024 14:01:57 GMT-0700 (PDT)
    Added Files:
    

    src/syncterm/updvers.sh diff
    Add script to update version numbers in various files Hopefully I'll be able to keep them all wrangled now.

  538. Deucе
    Sun Sep 22 2024 13:45:10 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/syncterm.c diff
    src/syncterm/syncterm.h diff
    Make syncterm_version const

  539. Deucе
    Sat Sep 21 2024 22:41:11 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/Manual.txt diff
    src/syncterm/term.c diff
    More docs. It's likely time to find a nice format that can be used to generate HTML and PDFs and such now.

  540. Deucе
    Sat Sep 21 2024 20:34:39 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/GNUmakefile diff
    Fix copy/paste error.

  541. Deucе
    Sat Sep 21 2024 20:27:09 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/GNUmakefile diff
    elfctl doesn't work on shared objects.

  542. Deucе
    Sat Sep 21 2024 17:14:30 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/GNUmakefile diff
    Looks like we do need both.

  543. Deucе
    Sat Sep 21 2024 17:07:54 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/GNUmakefile diff
    Call elfctl -e +noprotmax in binaries that do JS Prevents crashes on modern FreeBSD systems that default to implicit PROT_MAX in the JS code. (It's possible that +wxneeded will be needed too.. still experimenting)

  544. Deucе
    Sat Sep 21 2024 17:02:48 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/netwrap.c diff
    Fix Borland build.

  545. Deucе
    Sat Sep 21 2024 17:00:31 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/Manual.txt diff
    src/syncterm/bbslist.c diff
    src/syncterm/conn.h diff
    src/xpdev/netwrap.c diff
    src/xpdev/netwrap.h diff
    Clean up and improve 6e516ae The first entry I tried adding was "Example..." which was not a valid hostname, but was copied into the address and looked silly. Now only copies into address if it's a valid, usable hostname. Also, add a convenience macro to check if a connection type uses the network or not. New functions in netwrap: bool isValidHostname(const char *str); bool isValidAddressString(const char *str); bool isResolvableHostname(const char *str); We ust the last one (which calls the other two) for this feature now.

  546. Rob Swindell (on Windows 11)
    Sat Sep 21 2024 13:08:26 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/str_list.c diff
    strListReadFile() now returns NULL on any file read failure Previously, the partially-read lines would be returned in an allocated string list. This is a suspected cause of issue #791: even though the file was successfully opened exclusively (using sopen... SH_DENYRW), it's possible that Samba had already allowed another client or local process to open the same file, but is now a denying read (most likely, the first read). As Deuce pointed out, the xpdev *nix implementation of sopen() locks the region/record of the entire file. So before this change, strListReadFile() might fail on the first read, and a function that uses iniFileRead() to modify the contents of an ini file, might end up writing back the empty list (with added keys), thus deleting all the existing content of the file. Also in this change: - Eliminated the unnecessary local/wrapped str_list_read_file() function. - Elminate unecessary null-before-free check - Fixed potential memory leak upon malloc failure (the potentially-allocated list wasn't freed).

  547. Rob Swindell (on Windows 11)
    Sat Sep 21 2024 13:08:26 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getstats.c diff
    fread_dstats() will now return false upon file read failure The file position should always be at the EOF after reading the contents. This should help detect (log errors) upon potential cause of issue #791. - use a little easier to read .ini style - add a NULL argument check to local function write_dstats() return false rather than deref the NULL pointer

  548. Rob Swindell (on Windows 11)
    Sat Sep 21 2024 13:08:26 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/logon.cpp diff
    src/sbbs3/main.cpp diff
    Log an error upon read failure of dsts.ini and don't write changes back Part of potential fix (or work-around) for issue #791

  549. Rob Swindell (on Windows 11)
    Sat Sep 21 2024 13:08:26 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/logon.cpp diff
    src/sbbs3/main.cpp diff
    Log errors upon any dsts.ini write failures.

  550. Rob Swindell (on Windows 11)
    Sat Sep 21 2024 13:08:26 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    user_downloaded_file() now return false upon statistics update failure

  551. Rob Swindell (on Windows 11)
    Sat Sep 21 2024 13:08:26 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getstats.c diff
    Don't update/rewrite dsts.ini when iniReadFile returns NULL Even if the empty, iniReadFile() should return an empty list (not NULL), NULL indicates a file read (or unlikely malloc failure) - so don't write back what we read and return false (result) instead. Part of likely work-around of issue #791: it's better to not increment stats upon a file read error than to reset them all to zero.

  552. Rob Swindell (on Windows 11)
    Sat Sep 21 2024 13:08:26 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_file.c diff
    Add missing NULL pointer check to js_iniReadAll() iniReadFile() can return NULL upon file read error or malloc error. Let's not crash if that happens.

  553. Rob Swindell (on Windows 11)
    Sat Sep 21 2024 13:08:26 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/writemsg.cpp diff
    Log a file "create" error if process_edited_file() returns a negative value I discovered that sbbs_t::editfile() (exposed as JS console.editfile) just silently failed if it couldn't write to the destination file (e.g. permission denied by OS).

  554. Rob Swindell (on Windows 11)
    Sat Sep 21 2024 13:08:26 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ctrl/MainFormUnit.cpp diff
    Don't update displayed stats values if getstats() returns false (failure) Use byte_estimate_to_str() to display upload/download byte totals (better support for totals in gibibytes, tebibytes, etc.).

  555. Deucе
    Sat Sep 21 2024 00:26:41 GMT-0700 (PDT)
    Modified Files:
    

    3rdp/build/GNUmakefile diff
    src/build/Common.gmake diff
    Add support for fat Darwin builds... Using FAT=1 one the make command-line

  556. Rob Swindell (on Debian Linux)
    Fri Sep 20 2024 21:19:02 GMT-0700 (PDT)
    Modified Files:
    

    exec/text_sec.js diff
    Add edit option when adding text files that don't already exist Revisiting this script due to usability issues reported by W5jsn (TUCUMCAR). Dynamically figure out the file path rather than storing another property ('path') in the list objects (which ends up in the .ini file). The absence of the path property (when the file didn't exist) could result in script-ending exceptions. .ini files are supposed to be open for read/write access (even when just writing), so open the file in "w+t" mode in write_list(). Clear console.aborted flag before menu listings: hitting Ctrl-C in some point could display just header and prompt of lists with no contents.

  557. Rob Swindell (on Windows 11)
    Fri Sep 20 2024 00:00:07 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/logon.cpp diff
    Clear the Guest user's language (lang) field during logon - revert to default

  558. Rob Swindell (on Windows 11)
    Fri Sep 20 2024 00:01:22 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getstats.c diff
    src/sbbs3/getstats.h diff
    src/sbbs3/logon.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/userdat.c diff
    Store debug information in dsts.ini to help solve cause of issue #791 This should help identify the function(s) used when the corruption occurs.

  559. Rob Swindell (on Debian Linux)
    Thu Sep 19 2024 23:05:43 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getstats.c diff
    In debug builds only, backup dsts.ini file when opening for write Hopefully help to determine cause of issue #791 (when is the apparent corruption of this file occurring?)

  560. Rob Swindell (on Debian Linux)
    Thu Sep 19 2024 23:09:00 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getstats.c diff
    Non-functional changes iniWriteFile() returns bool, not int. Removed inapplicable function comment.

  561. Rob Swindell (on Debian Linux)
    Wed Sep 18 2024 22:26:15 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/uedit/uedit.c diff
    Cosmetic improvements to indication of user status (deleted/inactive) This should address issue #787

  562. Rob Swindell (on Debian Linux)
    Wed Sep 18 2024 13:28:12 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getstats.c diff
    Fix return value of fclose_dstats - not currently checked anywhere fclose() returns 0 on success.

  563. Rob Swindell (on Debian Linux)
    Wed Sep 18 2024 13:49:24 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getstats.c diff
    Fix comment header for putstats() - copy/pasted from getstats()

  564. Rob Swindell (on Debian Linux)
    Wed Sep 18 2024 14:18:17 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_msg_area.c diff
    Use JS_ValueToECMAUint32() instead of JS_ValueToInt32() for scan_ptr prop set scan_cfg and last_read props too. This gives us use of the entire 32-bit range of an unsigned int. But does someone actually have a message base with message numbers in the billions? This is an attempt to fix isssue #792, but I suspect scan_ptr might instead be trying to be set to NaN or ... ?

  565. Eric Oulashin
    Tue Sep 17 2024 13:08:49 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    DDFileLister: Fix for replacing cursor-right codes to allow finding & replacing all of them in a string

  566. Rob Swindell
    Tue Sep 17 2024 13:31:22 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    Merge branch 'dd_file_lister_replace_cursor_right_improvement' into 'master' DDFileLister: Fix for replacing cursor-right codes to allow finding & replacing all of them in a string See merge request main/sbbs!461

  567. Rob Swindell (on Windows 11)
    Tue Sep 17 2024 11:57:31 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/smbutil.c diff
    NUL-terminate the SMB fileidxrec_t.name field, just in case The terminating NUL is actually part of the index record, but with file corruption, it's technically possible the NUL could be missing. Fixes CID 509554

  568. Rob Swindell (on Windows 11)
    Tue Sep 17 2024 12:00:06 GMT-0700 (PDT)
    Modified Files:
    

    src/smblib/smbfile.c diff
    NUL-terminate the SMB fileidxrec_t.name field, just in case The terminating NUL is actually part of the index record, but with file corruption, it's technically possible the NUL could be missing. Fixes CID 509552 Use strnicmp() insted of stricmp() in smb_removefile() Fixes CID 509551

  569. Rob Swindell (on Windows 11)
    Tue Sep 17 2024 12:05:37 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/text_defaults.c diff
    Update default CantPostMsg to match text.dat

  570. Rob Swindell (on Debian Linux)
    Mon Sep 16 2024 18:52:51 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/shell_lib.js diff
    Check for console abort (Ctrl-C) in directory searching for loops Multiple directory searching functions wouldn't terminate on Ctrl-C

  571. Rob Swindell (on Windows 11)
    Mon Sep 16 2024 18:07:25 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_filebase.c diff
    Update JSDOC description of update() method Clarify that this is the method to use to rename a file.

  572. Rob Swindell (on Windows 11)
    Mon Sep 16 2024 18:09:00 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/filedat.c diff
    src/sbbs3/filedat.h diff
    src/sbbs3/listfile.cpp diff
    Only use liberal file pattern matching in the terminal server listfile funcs Commit 3a3c889b (2 years ago now) changed loadfiles() to use liberal file matching (e.g. "syncterm.exe" matched both "syncterm.exe" and "syncterm_v1.2b.exe"). This could produce surprising results when doing file list querieis/operations with the FileBase methods via JS (e.g. jsexec utils) and (now that I look at it), the FTP server too. So we should not have been doing liberal file matching *everywhere* loadfiles is used, just where it was a usability issue (due to displayed filenames being truncated to 12 chars for <=80 column terminals). Now solved by add/use of new liberal_filepattern() function only in the built-in file listing methods: sbbs_t::listfiles() and sbbs_t::listfileinfo(). Note: Custom JS file searching/listing scripts may now need their own work-arounds for this usability issue, if they have it.

  573. Rob Swindell (on Windows 11)
    Mon Sep 16 2024 18:50:23 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/listfile.cpp diff
    Use the liberal file matching to continue file listing/searches If the user didn't supply a wildcard, only a single file (the first file matching the liberal file pattern) would ever be listed in the file listing/searches, even when multiple files in the directory matched the liberal file matching pattern. This is not a new bug.

  574. Rob Swindell (on Debian Linux)
    Mon Sep 16 2024 13:54:07 GMT-0700 (PDT)
    Modified Files:
    

    exec/updatefiles.js diff
    Remove the always-on force option, replaced with new readdfiles.js

  575. Rob Swindell (on Debian Linux)
    Mon Sep 16 2024 13:54:42 GMT-0700 (PDT)
    Added Files:
    

    exec/readdfiles.js diff
    New script that just re-adds (updates index position/date-time) files If you want to "touch" a file in the filebase (so it appears a new again) this is the script to use to do that.

  576. Rob Swindell (on Debian Linux)
    Mon Sep 16 2024 13:55:30 GMT-0700 (PDT)
    Modified Files:
    

    exec/nntpservice.js diff
    Re-open closed message base for commands to use selected/open base Should fix issue #790

  577. Rob Swindell (on Debian Linux)
    Mon Sep 16 2024 13:56:26 GMT-0700 (PDT)
    Modified Files:
    

    exec/webfileindex.ssjs diff
    Display the file index date-time instead of the file's date-time Since sorting works on the file index record date-time (date/time added) it was confusing to display dates that didn't always match the sort order.

  578. Eric Oulashin
    Mon Sep 16 2024 12:17:55 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    DDFileLister: When displaying a file description, remove/replace cursor movement characters, which can corrupt the display

  579. Rob Swindell
    Mon Sep 16 2024 12:17:55 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    Merge branch 'dd_file_lister_description_remove_or_replace_cursor_movement_attrs' into 'master' DDFileLister: When displaying a file description, remove/replace cursor movement characters, which can corrupt the display See merge request main/sbbs!460

  580. Rob Swindell (on ChromeOS)
    Sat Sep 14 2024 18:46:43 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    Delete data/file/*.out directory for new user (if exists) emailfiles.js puts files here that the user requested to download "via email" and might not have been successfully delivered and deleted. So clean-up.

  581. Rob Swindell (on Debian Linux)
    Sat Sep 14 2024 17:16:04 GMT-0700 (PDT)
    Modified Files:
    

    exec/postmsg.js diff
    Add -F option to set file request attribute flag to force SBBSecho to create a .req file (in FLO-mode), rather than send as netmail. For Keyop

  582. Rob Swindell (on Debian Linux)
    Sat Sep 14 2024 14:12:43 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_filebase.c diff
    src/sbbs3/js_msgbase.c diff
    Don't heap allocate argument to MsgBase and FileBase constructors Nelgin reported a weird error with a failed very large allocation for the base/code argument to the FileBase constructor. There's no good reason these strings were heap-allocated in the first place, so just change to use a stack allocated variable instead. I don't know why this would fix anything, but at least there's one less heap allocation and potential for memory leak here. Fix 2 bugs in js_update_file(): 1. missing parenthesis (really?!? Caught by Coverity - sigh) in last commmit caused attempt/failure/error to remove file after making any updates. The removing is only supposed to happen when its necessary to remove and re-add the file to the filebase (e.g. updating extended description or auxdata). 2. Wrong filename used in 'removing' exception string.

  583. Rob Swindell (on Debian Linux)
    Sat Sep 14 2024 14:18:29 GMT-0700 (PDT)
    Modified Files:
    

    exec/fileman.js diff
    When renaming a file (using F2 key), need to get all metadata before update ... otherwise, we'll erase the file's extended description or auxdata, if it has any.

  584. Rob Swindell (on Windows 11)
    Fri Sep 13 2024 21:28:06 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/filedat.c diff
    src/sbbs3/js_filebase.c diff
    src/smblib/smbfile.c diff
    src/smblib/smblib.h diff
    Add/use smb_removefile_by_name() This fixes a filebase corruption issue that could be triggered by using FileBase.update() to rename a file while also changing the file's auxdata or extended description: you can't remove a file header that has the new filename (in the file_t.name field), cause it doesn't exist yet. So we needed an SMBLIB API function to pass the (original) filename instead. Much like the filedat.c removefile() function, but without the SMB opening/closing feature.

  585. Rob Swindell (on Debian Linux)
    Fri Sep 13 2024 20:45:18 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_filebase.c diff
    Don't allow FileBase.update() to create a duplicate file FileBase.update() will now throw an exception if attempting to rename a file to a filename that already exists in the filebase index. Prior to this change, one could (via JS methods) rename a file in the base to create a duplicate filename which would corrupt the base (one index entry and two header records for the same filename).

  586. Rob Swindell (on Windows 11)
    Fri Sep 13 2024 20:29:27 GMT-0700 (PDT)
    Modified Files:
    

    src/smblib/smblib.c diff
    MSVC requires a 0 in the struct initializer

  587. Rob Swindell (on Debian Linux)
    Fri Sep 13 2024 19:57:58 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_file.c diff
    Eliminte weird gcc (12.2) warning in release build (only) Increasing size of mode[] element by 2 bytes eliminated these GCC warnings that seem like false-positives to me: sbbs.h:194:48: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] 194 | (ret)[JSSTSpos]=(char)JSSTSstrval[JSSTSpos]; \ | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ js_file.c:225:25: note: in expansion of macro ‘JSSTRING_TO_STRBUF’ 225 | JSSTRING_TO_STRBUF(cx, str, p->mode, sizeof(p->mode), NULL); | ^~~~~~~~~~~~~~~~~~ js_file.c:42:17: note: at offset 5 into destination object ‘mode’ of size 5 42 | char mode[5]; | ^~~~ Similar use of JSSTRING_TO_STRBUF in other files (js_console.cpp, js_archive.c) (with larger target buffers) does not trigger the same warnings.

  588. Rob Swindell (on Debian Linux)
    Fri Sep 13 2024 19:57:58 GMT-0700 (PDT)
    Modified Files:
    

    src/smblib/smbdefs.h diff
    fileidexrec_t doesn't need to contain union This served exactly no purpose (since the idxrec_t existed at the same offset in both parts of the union). So this was just some weird artifact from the new filebase development.

  589. Rob Swindell (on Debian Linux)
    Fri Sep 13 2024 20:02:21 GMT-0700 (PDT)
    Modified Files:
    

    src/smblib/smblib.c diff
    smb_getmsgidx() now reads entire index records from file bases too chksmb needed this to perform filename checks (index against headers).

  590. Rob Swindell (on Debian Linux)
    Fri Sep 13 2024 20:05:05 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/chksmb.c diff
    Perform filename checks (index versus header fields) on filebases I was able to corrupt a filebase using fileman.js, renaming a file (the filename in the index as viewed with 'smbutil x' did not match the filename listed with 'smbutil l') - yet, chksmb reported no errors with the filebase. Now chksmb will detect that type of corruption.

  591. Rob Swindell (on Debian Linux)
    Fri Sep 13 2024 20:07:09 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_filebase.c diff
    FileBase.update() method throws more exceptions upon error This will help to determine cause of any file update (e.g. rename) failures, as reported by Nelgin.

  592. Eric Oulashin
    Fri Sep 13 2024 18:30:49 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    DD file lister: Check for null when getting extended metadata from the DB (possibly caused by corruption). Also, allow changing the filename when editing file info/metadata.

  593. Rob Swindell
    Fri Sep 13 2024 18:30:49 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    Merge branch 'dd_file_lister_get_extd_info_null_check_and_allow_edit_filename' into 'master' DD file lister: Check for null when getting extended metadata from the DB (possibly caused by corruption). Also, allow changing the filename when editing file info/metadata. See merge request main/sbbs!459

  594. Rob Swindell (on Windows 11)
    Thu Sep 12 2024 23:37:49 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ctrl/ClientFormUnit.cpp diff
    src/sbbs3/ctrl/ClientFormUnit.dfm diff
    src/sbbs3/ctrl/ClientFormUnit.h diff
    Add keyboard shortcuts to Clients list view: Ctrl-A, Ctrl-F and Del Ctrl-A - Select All Ctrl-F - Filter IP address DEL - Close Socket Also, use Begin/EndUpdate() calls to batch updates to the ListView in Timer tick (no visible difference, but it's the right thing to do). I don't know why C++Builder increased the TextHeight value of this form from 13 to 15, but doesn't seem to really matter (or at least, I couldn't tell).

  595. Rob Swindell (on Windows 11)
    Thu Sep 12 2024 22:56:48 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ctrl/MainFormUnit.cpp diff
    Display horizontal splitter in the correct spot. For who knows how long now, the horizontal splitter that allows the sysop to control the size of the top 2 panels (server forms), was displayed above the top panel, not between the top and bottom panel, thus making the panel heights not controllable. Weird. Change the order of making the controls visible to insure that the splitter is displayed below the top panel and on top of the bottom panel. Also (non-functional changes): Remove redunant mutex from client_on() - makes no difference. Use try/catch in client_on() to try to catch VCL exceptions - doesn't catch the "invalid index" error popups that we see on occasion. <shrug>

  596. Rob Swindell (on Windows 11)
    Thu Sep 12 2024 22:57:14 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ctrl/MainFormUnit.dfm diff
    Change the height of the horizontal splitter to the minimum (1 pixel) I don't know why this was set so wide (10 pixels), but that did help to easily see that it was being placed in the wrong spot in the form (between the tool button bar and the top panel). But we don't need it to be that thick. 1 pixel is still enough to be able to grab it with the mouse and resize the top/bottom panels.

  597. Rob Swindell (on Debian Linux)
    Thu Sep 12 2024 21:35:16 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/un_qwk.cpp diff
    src/sbbs3/un_rep.cpp diff
    Fix crash due to use after free or double-free ... bug introduced in commit 29a35642160a7f4. strListMerge() doesn't realloc the strings in the list, so we don't want to free the strings in this list here. This is likely the cause of the crash Keyop eluded to in #synchronet.

  598. Rob Swindell (on Debian Linux)
    Thu Sep 12 2024 16:40:41 GMT-0700 (PDT)
    Modified Files:
    

    exec/nntpservice.js diff
    Close any open message base after input timeout (5 minutes) As Nelgin pointed out, the nntpservice can leave a message bases open while a client is idle. Normally, an inactive client would be disconnected after 5 minutes of inactivity, so that wouldn't be much of an issue. However, if authenticated as a user with the H-exemption, no auto-disconnection after input timeout would happen. So let's close any open message base for good measure. The input/receive timeout probably should be configurable and lowered to a smaller duration (one minute?). I'll leave that for another commit.

  599. Rob Swindell (on Debian Linux)
    Thu Sep 12 2024 16:50:21 GMT-0700 (PDT)
    Modified Files:
    

    exec/nntpservice.js diff
    Close an open message base after just 10 seconds of client inactivity ... and log a debug-level log message when doing so. The current input/receive timeout duration (5 minutes) might be a bit long to leave a message base open (though, there's no known issue with doing so). For example, when users read message bases using the terminal server, they can sit for much longer than 5 minutes reading an open message base.

  600. Rob Swindell (on Windows 11)
    Thu Sep 12 2024 13:58:32 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/data_ovl.cpp diff
    src/sbbs3/userdat.c diff
    src/sbbs3/userdat.h diff
    Split-up the opening and writing of msg pointer files, to help debug issue Reported by Keyop (upon being auto-disconnected overnight): !ERROR 9 (Bad file descriptor) in data_ovl.cpp line 47 (putmsgptrs) writing "message pointers" access=0 Unfortunately, the way putmsgptrs() was written, we couldn't tell if this was an open (data/user/*.subs file) issue or a writing issue. So create putmsgptrs_fp() and use that from sbbs_t::putmsgptrs(), so we can log a different error (with more accurate details) if it's a file-open failure versues a file-write failure.

  601. Rick Parrish
    Thu Sep 12 2024 13:58:21 GMT-0700 (PDT)
    Modified Files:
    

    exec/websocketservice.js diff
    Fix #782 - websocketservice.js garbles input on Banana Pi running Armbian

  602. Rob Swindell
    Thu Sep 12 2024 13:58:21 GMT-0700 (PDT)
    Modified Files:
    

    exec/websocketservice.js diff
    Merge branch 'ree/websocketservice-debug' into 'master' Fix #782 - websocketservice.js garbles input on Banana Pi running Armbian Closes #782 See merge request main/sbbs!458

  603. Rob Swindell (on Windows 11)
    Wed Sep 11 2024 20:23:26 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/un_qwk.cpp diff
    src/sbbs3/un_rep.cpp diff
    Blocked IP addresses in ip-silent.can weren't filtered from QWK and REP pkts The "from_ip" header field of QWK messages is checked against blocked IP addresses, but was only checking against IP addresses from ip.can, not any addresses listed in ip-silent.can. These 2 list files are now merged together for the purposes of filtering during QWK/REP packet import.

  604. Rob Swindell (on Windows 11)
    Mon Sep 09 2024 18:29:07 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Refactor the function: unpack_bundle() 1. When a 0-length bundle file was encountered or an unpacking error occurred, any remaining bundles for the current search day-of-week (e.g. *.SU*) would be skipped/ignored. This bug (issue #764, regarding the 0-length file part), is fixed by not incrementing the day-of-week index in the main loop, but rather only incremeting the index when all bundles for the current day-of-week have been processed. 2. The age calculation for 0-byte/length bundle files was incorrect, so all 0-length bundle files would always be considered "less than 24-hours old" (and thus, never auto-deleted). This exacerbated the problem of issue #764 since it would persist until the 0-length files were manually deleted. Fixed the file age calculation and now logging the date/timestamp of the 0-length file as well. 3. Don't do the switch/case/sprintf dance when we're not re-running a glob() search. 4. Replace the switch/case statement with an array of week day names/patterns. 5. Ignore (with a warning log message) any sub-directories of the inbound directory that happen to match the bundle file search pattern. 6. Use better variable naming. 7. Refer to files with a length of 0 as "0-length" instead of "0-byte" in log messages.

  605. Rob Swindell (on Windows 11)
    Mon Sep 09 2024 18:29:07 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/chksmb.c diff
    Don't check header fields of deleted messages for control characters ... related to issue #786. Also, don't check for a message-ID if the message-type does not match the expected message type ("type mismatch").

  606. Rob Swindell (on Windows 11)
    Mon Sep 09 2024 18:29:07 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/smbutil.c diff
    Indicate vote/poll messages and files (with details) when listing msgs/files Add '-v' (increase verbosity) option, used to display msg dates and timezones ... when using the the 'l' (list messages) command (to view post date/time). Use '-vv' or '-v -v' to see timezones of messages. The -v option is now also applicable to the 'v' (view) messages command (now redundant with the 'V' command). Features as requested by Nelgin as part of issue #786. Removed day-of-week from date/times displayed. We don't need that level of user-friendliness with this tool. However, we are also displaying 12h/am/pm times. Some sysops probably would prefer 24hour time, so that should be considered at some point.

  607. Rob Swindell (on ChromeOS)
    Sun Sep 08 2024 18:36:58 GMT-0700 (PDT)
    Modified Files:
    

    docs/v320_new.txt diff
    More v3.20 changes documented

  608. Rob Swindell (on Windows 11)
    Sat Sep 07 2024 14:42:55 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/con_out.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/mqtt.c diff
    src/sbbs3/mqtt.h diff
    src/sbbs3/putnode.cpp diff
    Don't attempt to publish MQTT messages unless/until connected to broker For cases where an mqtt struct is shared between threads without concurrency control. I'm making this improvement in light of research into issue #781, though I don't expect this change to fix the reported issue. The reported error seems to come from the event thread (publishing node status upon starting to run the "DAILY" event) when a broker connection was not successful, however the reporter (Nelgin) may not have had debug-level logging turned on, so didn't capture the successful broker-connect log message. I think the broker connection *was* successful and perhaps then terminated by the broker ("due to protocol error"?).

  609. Rob Swindell (on Windows 11)
    Sat Sep 07 2024 15:27:38 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/mqtt.c diff
    src/sbbs3/mqtt.h diff
    Track broker-connected status via Mosquitto connect/disconnect callbacks I think this might fix issue #781. I suspect that SBBS (the MQTT client) is being disconnected by the server ("due to protocol error") *after* the call to mosquitto_connect_bind() is successful. We don't have any correponding log output for this case, but at least we can track the connection status accurately using the Mosquitto client callbacks and not try to publish when we're not connected.

  610. Rob Swindell (on Debian Linux)
    Sat Sep 07 2024 13:19:15 GMT-0700 (PDT)
    Modified Files:
    

    exec/tickit.js diff
    Strip trailing whitespace off end of values read from .tic files Fix issue #785

  611. Rob Swindell (on Windows 11)
    Sat Sep 07 2024 13:08:29 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/logfile.cpp diff
    src/sbbs3/sbbs.h diff
    Add llprintf() to log a formatted line to the node.log and term server log There's a whole lotta calls to sprintf() then logline() that could be reduced with this function.

  612. Rob Swindell (on Windows 11)
    Sat Sep 07 2024 13:13:11 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/text.dat diff
    src/sbbs3/email.cpp diff
    src/sbbs3/postmsg.cpp diff
    Log more/better messages when message fails to post (e.g. duplicate detected) It appears I had the idea to make the CantPost text.dat string a format string before, but never quite finished that change (e.g. made the change to email.cpp and text.dat too).

  613. Rob Swindell (on Windows 11)
    Fri Sep 06 2024 20:48:08 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/qwktomsg.cpp diff
    Don't use QWK reply message date unless time zone is also specified For regular user QWK Relpy packet uploads only, if no timezone is specified (e.g. via @TZ kludge or HEADERS.DAT), then over-ride the message's "posted" date/time with the current date/time since we're going to set the message's timezone to the BBS's local timezone as well. This is a fix for issue #783 reported by Chris Jacobs. If/when we support user-specified timezones, then this likely would be a place where we'd want to use the user's timezone.

  614. Rob Swindell (on Windows 11)
    Thu Sep 05 2024 19:52:07 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_system.c diff
    Create system.tz_offset property; minutes east (+) or west (-) of UTC From todo list on Vertrauen, not in GitLab (shrug)

  615. Eric Oulashin
    Wed Sep 04 2024 23:27:17 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/dd_lightbar_menu.js diff
    dd_lightbar_menu.js: Fix for out-of-bounds row updates when updating the scrollbar in DDLightbarMenu_UpdateScrollbar()

  616. Rob Swindell
    Wed Sep 04 2024 23:27:17 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/dd_lightbar_menu.js diff
    Merge branch 'dd_lightbar_menu_UpdateScrollbar_RowOutOfRange_Fix' into 'master' dd_lightbar_menu.js: Fix for out-of-bounds row updates when updating the scrollbar in DDLightbarMenu_UpdateScrollbar() See merge request main/sbbs!457

  617. Eric Oulashin
    Tue Sep 03 2024 21:58:02 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/ddmr_cfg.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: Fix for saving an ANSI message to the local BBS PC (undeclared variable error). Found by Amessyroom

  618. Rob Swindell
    Tue Sep 03 2024 21:58:02 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/ddmr_cfg.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_save_ansi_message_fix' into 'master' DDMsgReader: Fix for saving an ANSI message to the local BBS PC (undeclared variable error). Found by Amessyroom See merge request main/sbbs!456

  619. Eric Oulashin
    Wed Aug 28 2024 15:46:22 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    ddfilelister: "Edit" item text on the bottom horizontal menu for traditional/non-lightbar interface

  620. Rob Swindell
    Wed Aug 28 2024 15:46:22 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    Merge branch 'ddfilelister_bottom_menu_edit_item_text_len' into 'master' ddfilelister: "Edit" item text on the bottom horizontal menu for traditional/non-lightbar interface See merge request main/sbbs!454

  621. Rob Swindell (on Windows 11)
    Mon Aug 26 2024 17:07:32 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/prntfile.cpp diff
    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

  622. Rob Swindell (on Windows 11)
    Thu Aug 22 2024 21:19:54 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/getnode.cpp diff
    Don't call utime() on the node.dab file for every read ... this was the cause of some observed unnecessarily high disk/file server (Samba) utilization, as we call getnodedat() a lot. utime() opens and closes the file, which was already open - and we're not modifying the file, so updating the 'modification time' here is wrong anyway. Disabling this 21-year old bit of logic resulted in a pretty dramatic reduction in Samba (smbd) CPU utilization on Vertrauen. If a BBS actually needes this hack (e.g. for NFS compatibility, as Deuce eluded in the comment), they'd be better off just setting the "Keep Node File Open" node setting (in SCFG->Nodes) to "No".

  623. Rob Swindell (on Debian Linux)
    Thu Aug 22 2024 19:49:29 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    Extend (and back-off) the user.tab record lock attempts I'v been getting errors locking user.tab (for read) for a while (over samba), so hopefully this helps. The lockuserdat() total timeout duration extends from about 5 seconds to about 45 seconds (with an incremental back-off). Implement the same lock-retry logic/limit in putuserdat().

  624. Rob Swindell (on Debian Linux)
    Mon Aug 19 2024 19:01:42 GMT-0700 (PDT)
    Modified Files:
    

    exec/telgate.js diff
    Add -N option to send blank line after connect ... requested by someone in #synchronet

  625. Rob Swindell (on Debian Linux)
    Mon Aug 19 2024 15:32:37 GMT-0700 (PDT)
    Modified Files:
    

    exec/init-fidonet.ini diff
    Fix the HobbyNet entry: Zone 954 is not a FidoNet (proper) address Apparently, Mike Dippel's actual FidoNet address is 3:712/1321.5

  626. Rob Swindell (on Debian Linux)
    Sun Aug 18 2024 18:44:47 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/diskusage.js diff
    exec/load/filelist_lib.js diff
    exec/load/gettext.js diff
    exec/load/install-3rdp-xtrn.js diff
    exec/load/nodedefs.js diff
    exec/load/presence_lib.js diff
    exec/load/shell_lib.js diff
    exec/load/termdesc.js diff
    exec/load/uifcdefs.js diff
    Remove executable attribute

  627. Rob Swindell (on Debian Linux)
    Sun Aug 18 2024 18:42:47 GMT-0700 (PDT)
    Modified Files:
    

    exec/addfiles.js diff
    exec/archive.js diff
    exec/badpasswords.js diff
    exec/default.js diff
    exec/delfiles.js diff
    exec/dupefind.js diff
    exec/emailfiles.js diff
    exec/examples/uifc.js diff
    exec/fido-nodelist-syncterm.js diff
    exec/filelist.js diff
    exec/fileman.js diff
    exec/filescancfg.js diff
    exec/hashfile.js diff
    exec/importcfg.js diff
    exec/inventory_archives.js diff
    exec/logon.js diff
    exec/mqtt_spy.js diff
    exec/noyesbar.js diff
    exec/postfile.js diff
    exec/rehashfiles.js diff
    exec/replace_text.js diff
    exec/simple.src diff
    exec/sysavail.js diff
    exec/tempxfer.js diff
    exec/testbuild.js diff
    exec/updatefiles.js diff
    exec/upgrade_to_v320.js diff
    exec/viewimsgs.js diff
    exec/webfileindex.ssjs diff
    exec/yesnobar.js diff
    Remove executable attribute

  628. Rob Swindell (on Debian Linux)
    Sun Aug 18 2024 18:43:12 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/sexyz.c diff
    src/sbbs3/xmodem.c diff
    src/sbbs3/zmodem.c diff
    src/sbbs3/zmodem.h diff
    Remove executable attribute

  629. Rob Swindell (on Windows 11)
    Sat Aug 17 2024 18:06:39 GMT-0700 (PDT)
    Modified Files:
    

    exec/user_settings.js diff
    Defense against TypeError: xtrn_area.editor[thisuser.editor] is undefined

  630. Eric Oulashin
    Fri Aug 16 2024 21:39:58 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    DDFileLister: Now supports editing file info (with the E key).

  631. Rob Swindell
    Fri Aug 16 2024 21:39:58 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    Merge branch 'dd_file_lister_edit_file_info' into 'master' DDFileLister: Now supports editing file info (with the E key). See merge request main/sbbs!453

  632. Rob Swindell (on Debian Linux)
    Thu Aug 15 2024 16:58:05 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/upgrade_to_v319.c diff
    Removed Files:

    src/sbbs3/sbbs4defs.h diff
    Eliminate unused file sbbs4defs.h

  633. Rob Swindell (on Debian Linux)
    Thu Aug 15 2024 17:08:44 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/telgate.cpp diff
    Log warning if sendsocket() fails to send string passed to telgate() Eliminates GCC warning about not checking return value of write/sendsocket()

  634. Rob Swindell (on Debian Linux)
    Thu Aug 15 2024 17:35:47 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/telgate.cpp diff
    Fix small memory leak when telgate() was used to proxy for a telnet server At least 512 bytes per call.

  635. echicken
    Thu Aug 15 2024 09:52:01 GMT-0700 (PDT)
    Modified Files:
    

    exec/fido-nodelist-browser.js diff
    Includes swindows with unborked home/end key handling in lightbar. Fixes problem reported by Nightfox.

  636. echicken
    Thu Aug 15 2024 07:44:09 GMT-0700 (PDT)
    Modified Files:
    

    exec/fido-nodelist-browser.js diff
    Temporary fix to restore things on exit pending figuring out why the other way doesn't work.

  637. echicken
    Thu Aug 15 2024 06:54:04 GMT-0700 (PDT)
    Modified Files:
    

    exec/fido-nodelist-browser.js diff
    Restore cursor on exit; which should be happening via js.on_exit anyway but ... isn't?

  638. echicken
    Wed Aug 14 2024 22:43:13 GMT-0700 (PDT)
    Modified Files:
    

    exec/fido-nodelist-browser.js diff
    A faster, better looking, less janky version of the FTN nodelist browser. Should be feature-equivalent with the old one, though the navigation is a bit different. If you don't like it, dig the old one out of git and run it from some other location. This is a build of: https://gitlab.synchro.net/echicken/nodelist-browser and it will be maintained there for now. I'll try to remember to update this copy as needed. Do not edit / commit changes to this file; it's transpiled from TypeScript and not meant to be edited by hand. Do not read this file if you value your sanity.

  639. Rob Swindell (on Windows 11)
    Tue Aug 13 2024 15:57:16 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/sbbsdefs.js diff
    src/sbbs3/sbbsdefs.h diff
    src/sbbs3/telgate.cpp diff
    Add Telnet Gateway "Raw TCP" (TG_RAW) and "Expand Bare-LF to CRLF" TG_EXPANDLF The expansion of LF to CRLF (with TG_EXPANDLF) is on receive. For Nelgin

  640. Eric Oulashin
    Mon Aug 12 2024 19:21:59 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/ddmr_cfg.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: Updates to fix new user newscan, depending on the scan_ptr value

  641. Rob Swindell
    Mon Aug 12 2024 19:40:25 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/ddmr_cfg.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_new_user_scan_ptr_fix' into 'master' DDMsgReader: Updates to fix new user newscan, depending on the scan_ptr value See merge request main/sbbs!452

  642. Rob Swindell (on Debian Linux)
    Mon Aug 12 2024 19:01:36 GMT-0700 (PDT)
    Modified Files:
    

    exec/rlogin.js diff
    exec/telgate.js diff
    Add support for -v (verbose) option and modopts.ini Don't display remote host name/addr unless -v option is specified or verbosity=1 is set in modopts.ini. Allow the displayed messages to be customized or disabled as the sysop wishes via modopts.ini keys: - help_msg - connecting_msg - failed_connect_msg (e.g. set to a blank string to disable) The following settings are also now configurable via modopts.ini: - quiet (correlates with -q option) - pause (correlates with -P option) - clear (correlates with -C option) - timeout (correlates with -T option) - verbosity (correlates with -v option) ... a sysop can control the default behavior of all invocations of telgate.js or rlogin.js via a single file now (modopts.ini). The rlogin.js module will first look ing for the [rlogin] section in modopts.ini and if it doesn't exist, then [telgate] section. telgate.js just looks for the [telgate] section. For the #synchronet irc crew: Nelgin and Keyop

  643. Rob Swindell (on Windows 11)
    Sat Aug 10 2024 19:40:14 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/node.c diff
    Fix usage of "node list <node_num> <node_num> [...]" Only the last node number specified would be listed before this fix.

  644. Rob Swindell (on Windows 11)
    Sat Aug 10 2024 19:41:04 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    Fix CIDs 508283 508284 508285 508286 508287 HANDLE_PENDING() macro returns from the calling function (without freeing allocated resources), so don't use that here.

  645. Rob Swindell (on Windows 11)
    Sat Aug 10 2024 19:43:15 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/telgate.cpp diff
    Fix CID 508288 (STRING_NULL) I'm not clear why Coverity suddenly thinks that getstr() doesn't nul-terminate strings, but whatever: NUL-terminate the buf before passing it to getstr(). <shrug>

  646. Rob Swindell (on Debian Linux)
    Sat Aug 10 2024 16:30:46 GMT-0700 (PDT)
    Modified Files:
    

    exec/telgate.js diff
    Send CRLF terminated strings with -S option instead of CR-terminated Telnet requires CRLF or CR/NUL instead of bare CR.

  647. echicken
    Sat Aug 10 2024 10:36:32 GMT-0700 (PDT)
    Removed Files:
    

    xtrn/bullshit/bullshit-lib.js diff
    xtrn/bullshit/bullshit.ini diff
    xtrn/bullshit/bullshit.ssjs diff
    xtrn/bullshit/readme.txt diff
    These files no longer needed with new version.

  648. echicken
    Sat Aug 10 2024 10:38:40 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/bullshit/999-bullshit.xjs diff
    Basically the same as before, but without the help of bullshit-lib.js. Untested.

  649. echicken
    Sat Aug 10 2024 10:40:08 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/bullshit/bullshit.js diff
    bullshit v4 build as in-place replacement for v3. On first run under the terminal server, your old bullshit.ini settings will be migrated to ctrl/modopts.d/bullshit.ini in a slightly different format.

  650. echicken
    Sat Aug 10 2024 10:40:41 GMT-0700 (PDT)
    Added Files:
    

    xtrn/bullshit/.babelrc.json diff
    xtrn/bullshit/.devcontainer/devcontainer.json diff
    xtrn/bullshit/.gitignore diff
    xtrn/bullshit/Readme.md diff
    xtrn/bullshit/package-lock.json diff
    xtrn/bullshit/package.json diff
    xtrn/bullshit/src/bullshit.ts diff
    xtrn/bullshit/src/lib/UI.ts diff
    xtrn/bullshit/src/lib/list.ts diff
    xtrn/bullshit/src/lib/options.ts diff
    xtrn/bullshit/tsconfig.json diff
    Bullshit v4 (source & tooling). This is a rewrite of the Bullshit bulletin lister. Should have all the same features as v3, but much faster at lightbar navigation and especially better at scrolling large files. (frame.js has been replaced here by my new screen management library, 'swindows'.) Sysops don't need to concern themselves with the files in this commit; the build generated from these has been placed in the same location as the old 'bullshit.js' script. Just copy that one to wherever you normally run this from and it'll take over. Or you could run Bullshit from the repo if you like to live dangerously.

  651. Rob Swindell (on Debian Linux)
    Sat Aug 10 2024 02:32:27 GMT-0700 (PDT)
    Modified Files:
    

    exec/tickit.js diff
    Change log level of "already exists" log messages from ERROR to WARNING Fix issue #773

  652. Rob Swindell (on Debian Linux)
    Sat Aug 10 2024 02:24:54 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/node.c diff
    Fix the 'node list' command No longer claim that 'list' is the default action (it's not). If you want to list nodes, you need to specify the 'list' action. Fix for issue #772

  653. Rob Swindell (on Debian Linux)
    Sat Aug 10 2024 02:10:53 GMT-0700 (PDT)
    Modified Files:
    

    exec/telgate.js diff
    Fix the mode passing to bbs.telnet_gate() - never undefined value bbs.telnet_gate() is not tolerant of receiving an undefined parameter value (while bbs.rlogin_gate() is), so this messed up the subsequent argument parsing which caused the strings pushed with the '-s' or '-S' options to not work. Fixes issue #774

  654. Rob Swindell (on Debian Linux)
    Fri Aug 09 2024 21:40:02 GMT-0700 (PDT)
    Modified Files:
    

    exec/rlogin.js diff
    Fixed typo

  655. Rob Swindell (on Debian Linux)
    Fri Aug 09 2024 21:38:39 GMT-0700 (PDT)
    Modified Files:
    

    exec/telgate.js diff
    Support more command-line options, like -p, -C, -T, -m ala rlogin.js Includes new feature to optionally send string(s) to remote server after connecting (for Nelgin). The -q option addition fixes issue #771.

  656. Rob Swindell (on Windows 11)
    Fri Aug 09 2024 21:23:54 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/telgate.cpp diff
    Add optional array argument to bbs.telnet_gate() and bbs.rlogin_gate() If an array argument is passed to these methods, the stringified contents of each array element value will be sent to the remote server after connecting. This is to support Nelgin's request of sending some strings to a server after connecting. There's no way to insert pauses between the sent strings or wait for certain output from the remote - that's beyond this scope/capability.

  657. Eric Oulashin
    Fri Aug 09 2024 19:52:53 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.cfg diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/ddmr_cfg.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    DDMsgReader: New msgSaveDir option to specify a default dir to save messages to (for the sysop)

  658. Rob Swindell
    Fri Aug 09 2024 20:17:45 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.cfg diff
    xtrn/DDMsgReader/DDMsgReader.js diff
    xtrn/DDMsgReader/ddmr_cfg.js diff
    xtrn/DDMsgReader/readme.txt diff
    xtrn/DDMsgReader/revision_history.txt diff
    Merge branch 'dd_msg_reader_default_save_path_option' into 'master' DDMsgReader: New msgSaveDir option to specify a default dir to save messages to (for the sysop) See merge request main/sbbs!450

  659. Rob Swindell (on Windows 11)
    Fri Aug 09 2024 19:16:01 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/ansiterm.cpp diff
    src/sbbs3/getkey.cpp diff
    src/sbbs3/inkey.cpp diff
    src/sbbs3/js_console.cpp diff
    src/sbbs3/sbbs.h diff
    Rename sbbs_t::ungetstr() and JS console.ungetstr() to ungetkeys() ... since these methods only feed the keyboard buffer. Add an optional 'insert' argument to console.ungetkeys() - default is false (append). Add a new version of console.ungetstr() which feeds the passed characters directly to the receive input buffer. Now returns bool indicating success. Existing scripts (if any) that use console.ungetstr() should continue to work just fine. This is anticipation of telgate.js being able to stuff strings (e.g. username, password) into the input buffer and those chars/keys being passed to the remote (gatewayed) telnet server. Since the telnet gateway reads directly from the receive input buffer (ignoring the keyboard buffer), we needed a way to stuff strings of characters into the receive input buffer directly and that sort of exposed the weirdness of the existing console.ungetstr() method: - it didn't return a return value (not indication of failure) - it didn't support an 'insert' operation (even though the underlying C++ method does) - it didn't use the sbbs_t method that already existed for feedding a string of characters into the input/keyboard buffer

  660. Rob Swindell (on Windows 11)
    Thu Aug 08 2024 21:07:45 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_global.c diff
    Global JS exit() function now sets 'exit_code' to 0 by default Calling exit() causes JS_ExecuteScript() to return false (same return value as if there's a syntax error) - so if we always set exit_code in exit() (even when not passed a parameter) and then use that exit code if the property is defined, then we get the -1 return value from js_execfile() if the script is terminated prematurely without using exit(). This fixes the issue introduced in the previous commit where scripts that call exit() - without any parameters, were causing errors to be logged about scripts (e.g. timed events) returning -1.

  661. Rob Swindell (on Windows 11)
    Thu Aug 08 2024 19:10:19 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/exec.cpp diff
    src/sbbs3/main.cpp diff
    Fix infinite loop of error msgs/notifications when JS shell has syntax error js_execfile() now returns -1 when JS_ExecuteScript() return false (failure). The main command-shell loop will now terminate when js_execfile() returns anything but 0 (success), similar to how PCMS (Baja-compiled) command-shell .bin file parse errors are handled.

  662. Rob Swindell (on Windows 11)
    Thu Aug 08 2024 18:19:27 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/readmail.cpp diff
    Save/reuse the mail save path/filename as a user property (in data/user/*.ini) This is a fix for issue #340 Another idea would be to store a history of mail save paths and allow the user to scroll through them/choose with the up and down arrow keys, but that goes beyond the original feature request. So this just stores/reuses the last successfully used path/filename.

  663. Rob Swindell (on Debian Linux)
    Thu Aug 08 2024 13:25:25 GMT-0700 (PDT)
    Modified Files:
    

    exec/load/shell_lib.js diff
    Prompt to clear the batch download queue if user chooses not to download files Some users may have unintentionally added files to their batch download queue and not know how to clear the queue manually, so prompt here for user friendliness/convenience.

  664. Rob Swindell (on Windows 11)
    Thu Aug 08 2024 13:22:20 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    Make argument to bbs.batch_clear() optional (clear downlaod queue by default) ... as appears to have been the intent

  665. Rob Swindell (on Windows 11)
    Thu Aug 08 2024 12:32:46 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_internal.c diff
    Fix CID 508259: Control flow issue (DEADCODE) ... introduced in commit 54523145

  666. Rob Swindell (on Windows 11)
    Thu Aug 08 2024 12:35:37 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_msgbase.c diff
    Fix CID 508260: Null pointer dereference And really, more importantly, the msg header field_list array length would always be interpretted as 0-length! ... introduced in commit 54523145

  667. Rob Swindell (on Windows 11)
    Thu Aug 08 2024 00:01:01 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/node.c diff
    Display usage help when unrecognized param is detected Include -pause and -loop options in usage help output. Don't delay (sleep) one second when looping and -pause option is used. Flush the output before waiting for key-press (-pause option is used). This should all address issue #365. Sorry for the long wait.

  668. Rob Swindell (on Debian Linux)
    Wed Aug 07 2024 21:17:59 GMT-0700 (PDT)
    Modified Files:
    

    ctrl/text.dat diff
    StartXferNow string now contains argument (%s) for the protocol name This is helpful when auto-starting a download using the user's pre-selected default download protocol, reminds the user to start the appropriate transfer protocol on their end (when necessary). Goes along with the previous commited fix to issue #767

  669. Rob Swindell (on Windows 11)
    Wed Aug 07 2024 21:10:58 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/bat_xfer.cpp diff
    src/sbbs3/download.cpp diff
    src/sbbs3/qwk.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/str.cpp diff
    src/sbbs3/text_defaults.c diff
    Don't display menu of file xfer prots when auto-selecting user's default prot When a user has a "default download protocol" selected (configured for their user account), don't display a menu of file transfer protocols when we're just going to auto-select their default anyway (e.g. when downloading a QWK packet). This change also introduces an argument (%s, the protocol name) in the StartXferNow text.dat string, so that if/when the user forgets which default download transfer protocol they had selected, they'll be reminded ("oh yeah, I need start an XMODEM download!"). This fixes issue #767

  670. Rob Swindell (on Windows 11)
    Wed Aug 07 2024 19:44:41 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/exec.cpp diff
    src/sbbs3/js_archive.c diff
    src/sbbs3/js_conio.c diff
    src/sbbs3/js_console.cpp diff
    src/sbbs3/js_file.c diff
    src/sbbs3/js_filebase.c diff
    src/sbbs3/js_global.c diff
    src/sbbs3/js_internal.c diff
    src/sbbs3/js_msgbase.c diff
    src/sbbs3/js_socket.c diff
    src/sbbs3/js_system.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/websrvr.c diff
    Prevent NULL pointer dereference when 'null' object passed to JS functions As was discovered as part of investigation into issue #769, a JavaScript could crash SBBS (cause a segfault) due to a NULL pointer dereference when the script passes 'null' to native JS functions where an object is expected. The issue raised was with console.gotoxy(), but it turns out that *many* Synchronet native JS functions would call JSVAL_TO_OBJECT() and then, without checking for NULL/nullptr, pass its return value to JS api functions such as JS_GetPrivate, JS_GetProperty, JS_GetClass, JS_ObjectIsFunction, JS_IsArrayObject, JS_GetArrayLength, JS_DefineProperty, JS_Enumerate, etc. All of these JS API functions dereference the passed object pointer without NULL/nullptr checking. The fix here is to either call JSVAL_IS_NULL() or JSVAL_NULL_OR_VOID() and if true, not call JSVAL_TO_OBJECT() and/or check the return value for the NULL value before using as an argument to any other JS API functions.

  671. Rob Swindell (on Debian Linux)
    Tue Aug 06 2024 18:26:29 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_console.cpp diff
    Better invalid argument reporting (null object) from js_gotoxy() The calling script will still terminate if it does this, but at least the caller will get a useful JS exception. Related to fix for issue #769

  672. Rob Swindell (on Windows 11)
    Tue Aug 06 2024 18:06:44 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_console.cpp diff
    Fix potential null object pointer passed to JS_GetProperty in js_gotoxy() I'm not sure under what script conditions this could happen, but apparently Nelgin was able to produce this null pointer deref (and segfault) using DDMsgReader. This should fix issue #769

AuthorCommitsLatest
Rob Swindell347Mon Nov 18 2024 11:15:34 GMT-0800 (PST)
Deucе292Mon Nov 18 2024 10:01:23 GMT-0800 (PST)
Eric Oulashin18Wed Nov 13 2024 11:20:48 GMT-0800 (PST)
Craig Hendricks1Sat Oct 26 2024 15:15:39 GMT-0700 (PDT)
mcmlxxix5Sat Oct 05 2024 13:24:44 GMT-0700 (PDT)
Rick Parrish1Thu Sep 12 2024 13:58:21 GMT-0700 (PDT)
echicken8Thu Aug 15 2024 09:52:01 GMT-0700 (PDT)

For older commits (in CVS), click here

Dynamically generated in 511 milliseconds