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 Dec 09 2024 18:45:26 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    Support text.dat string IDs (string) args for replace/revert_text() funcs For alignment with the text() method and for instances where a script author doesn't want to load('text.js') or use [bbs|system].text.ID to get a text.dat string index from an ID.

  2. Rob Swindell (on Windows 11)
    Mon Dec 09 2024 18:37:25 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/postmsg.cpp diff
    If user doesn't modify the replied-to-msg subject, use the original subject (which might be UTF-8 encoded). This works-around the problem that Accession reported in #synchronet with my reply to a UTF-8 encoded message using a CP437 terminal which resulted in a message body that was UTF-8 encoded but a message subject that was CP437 encoded. This mix of encodings is not supported by FTN standards. This is just a work-around since if the user modifies the subject the result could still have the CP437 unside-down question marks (indicating non-translatable UNICODE chars) and those should be converted to UTF-8 chars when going out on FTN or being stored in the message base. So there's still a bug here somewhere that I need to look into more.

  3. Rob Swindell (on Windows 11)
    Mon Dec 09 2024 18:31:18 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/writemsg.cpp diff
    Fix off-by-one usage of snprintf() when copying message subject - when converting from CP437 to UTF-8 - when reading from RESULT.ED drop file This effectively limited message subjects in some instances to 69 chars instead of 70. This bug was caught while debugging a replied-message subject conversion from UTF-8 to CP437 issue reported by Accession.

  4. Rob Swindell (on Debian Linux)
    Mon Dec 09 2024 18:16:47 GMT-0800 (PST)
    Modified Files:
    

    exec/default.js diff
    exec/str_cmds.js diff
    Add RELOAD sysop command to reload a (JS) command shell without logoff/on We have to use load() (rather than js.exec) to invoke str_cmds.js so that an exit() will actually exit. Since load() automatically does the mods vs exec directory search-dance, that simplifies the code in default.js a little. I'm not sure exactly why I originally chose to use js.exec() over load() for invoking str_cmds.js, but for this feature, we need load() so let's go with that for now. I did encounter an issue (issue #840) while originally trying to make this work with the original code that called js.exec(), but just punted and went with load() instead. Perhaps if we fix issue #840, we can revert default.js back to using js.exec() (but why we would need/want to, I'm not sure).

  5. Rob Swindell
    Sun Dec 08 2024 21:02:39 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    Merge branch 'ddfilelister_metadata_desc_undefined_fix' into 'master' ddfilelister: Check whether 'desc' is a string in file metadata before trying to use it. Should fix issue #839 Closes #839 See merge request main/sbbs!482

  6. Eric Oulashin
    Sun Dec 08 2024 18:59:33 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    ddfilelister: Check whether 'desc' is a string in file metadata before trying to use it. Should fix issue #839

  7. Rob Swindell (on Debian Linux)
    Sun Dec 08 2024 12:45:20 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/getnode.cpp diff
    src/sbbs3/putnode.cpp diff
    Fix use of unitialize variable Since we we're not using opennodeext(), we don't have the path/fname for any failure error message here. CID 515714

  8. Rob Swindell (on Debian Linux)
    Sun Dec 08 2024 12:45:20 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    Fix incorrect use of sizeof in node_vstatus and node_activity This would cause the "Logout" status and multinode chat activity strings to be truncated to 3 or 7 chars. CID 515713 and 515715

  9. Deucе
    Sun Dec 08 2024 11:53:58 GMT-0800 (PST)
    Modified Files:
    

    src/ssh/ssh-trans.h diff
    We need separate context for client to server

  10. Deucе
    Sun Dec 08 2024 11:53:58 GMT-0800 (PST)
    Modified Files:
    

    .gitlab-ci.yml diff
    Disable darmwin-x86 System is going on a trip.

  11. Rob Swindell (on Debian Linux)
    Sun Dec 08 2024 04:09:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/getnode.cpp diff
    Reset/send status attr after activity, which could include Ctrl-A codes

  12. Rob Swindell (on Debian Linux)
    Sun Dec 08 2024 04:09:18 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    Insure ctrl chars/codes are stripped from nodestatus() output Use strlcpy instead of strncpy

  13. Rob Swindell (on Debian Linux)
    Sun Dec 08 2024 03:49:27 GMT-0800 (PST)
    Modified Files:
    

    exec/load/presence_lib.js diff
    Insert stats prefix after activity, in case it contains attr codes

  14. Rob Swindell (on Debian Linux)
    Sun Dec 08 2024 02:59:14 GMT-0800 (PST)
    Modified Files:
    

    exec/fingerservice.js diff
    Use new node (customizable) activity, if available (and strip ctrl chars) This allows customized node actions/activity to be sent over finger/activeuser (so visible in sbbsimsg.js for example).

  15. Rob Swindell (on Debian Linux)
    Sat Dec 07 2024 20:37:30 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/gtkmonitor/gtkmonitor.c diff
    src/sbbs3/umonitor/umonitor.c diff
    Load text.dat to get customized node status strings from text.dat/text.ini

  16. Rob Swindell (on Windows 11)
    Sat Dec 07 2024 17:19:55 GMT-0800 (PST)
    Modified Files:
    

    ctrl/text.dat diff
    exec/load/presence_lib.js diff
    exec/load/text.js diff
    src/sbbs3/ctrl/MainFormUnit.cpp diff
    src/sbbs3/ctrl/MainFormUnit.h diff
    src/sbbs3/getnode.cpp diff
    src/sbbs3/js_system.c diff
    src/sbbs3/putnode.cpp diff
    src/sbbs3/text.h diff
    src/sbbs3/text_defaults.c diff
    src/sbbs3/text_id.c diff
    src/sbbs3/userdat.c diff
    src/sbbs3/userdat.h diff
    Overhaul how custom Node actions and status strings are handled Custom NodeStatus and NodeAction/Activity strings are now displayed pretty much everywhere possible (except the node utility, since it doesn't read any configuration files). This fixes issue #618, finally. If you have custom (non-blank) NodeAction* strings in your text.dat/text.ini file, or you change these strings during runtime (e.g. using bbs.replace_text) this will impact you: - do not include the user name or any other fields normally included in printed node status in your string - just the customized node action and really, you should only use/override these strings for dynamically changing node status (i.e. you're using NodeActionCustom and you're setting different custom strings depending on current node activity). Consider using the new NodeActivity* text.dat strings instead if your customized string doesn't change during run-time. - don't use the %s/%u/%d specifiers any more - use @-codes instead, if needed If you want static/permanent node action strings, set new new NodeActivity* strings in your text.dat or (preferrbaly) text.ini file instead. This means the node actions can now be localized for other languagues! I'm still using the node.exb file (I did consider alternatives, e.g. node.ini or node*/activity.asc), but decided to postpone such a change. The node.exb file is still used, but the strings represent just the custom (extended) node *activity* and not the entire node status string. Use of Ctrl-A codes needs to be considered/accounted-for (currently isn't).

  17. Rob Swindell (on Debian Linux)
    Sat Dec 07 2024 16:32:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Fix the areas.bbs AreaMgr addition bug created in commit 813072cd450c2 The newly created/used link_aera() function was copying the address of the passed fidoaddr_t pointer rather than the value (fidoaddr) pointed to. This is the actual fix for the problem reported by Tom Moore (1:135/205) - tested and validated. It only immediately impacted areas.bbs use (not areas.ini), since we wrote a stringified address directly to the areas.ini file "links" key. This was not an allocation issue but a memcpy() issue. Other unrelated changes: - Log a debug-level message when ignoring a "NO-ECHO" message (subject "NE:*") - Log a notice-level message when ignoring a message due to GATEWAY VIOLATION (gating a message between net-types when not explicitly configured to do so)

  18. Rob Swindell (on Windows 11)
    Sat Dec 07 2024 14:03:53 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    A differnt 'fix' to link_area() So, (sizeof *addr) now looks right got me (this should've been the same as sizeof(fidoaddr_t)), so the change in commit e2476ebbaa doesn't actually look like a fix, but maybee a regression. I need to test some area manager link additions and get to the bottom of this, but this particular change was not a fix (and caught/reported by Coverity - CID 515673).

  19. Deucе
    Sat Dec 07 2024 13:43:35 GMT-0800 (PST)
    Added Files:
    

    src/ssh/comp/none.c diff
    src/ssh/comp/none.h diff
    src/ssh/enc/none.c diff
    src/ssh/enc/none.h diff
    src/ssh/mac/none.c diff
    src/ssh/mac/none.h diff
    Modified Files:

    src/ssh/CMakeLists.txt diff
    src/ssh/client.c diff
    src/ssh/ssh-trans.h diff
    Add the "none" encryption mac and compression drivers This is not the "hard part" I meantioned earlier. :D

  20. Deucе
    Sat Dec 07 2024 12:23:01 GMT-0800 (PST)
    Modified Files:
    

    src/ssh/client.c diff
    src/ssh/ssh-trans.c diff
    src/ssh/ssh-trans.h diff
    src/ssh/ssh.h diff
    Eliminate egregious and unneeded allocations.

  21. Rob Swindell (on Debian Linux)
    Fri Dec 06 2024 20:34:36 GMT-0800 (PST)
    Modified Files:
    

    exec/automsg.js diff
    Fix typo: bbs.node_action, not bbs.action

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

    src/sbbs3/sbbsecho.c diff
    Fix insufficient allocation bug in link_area() introduced in commit 813072cd4 This is likely the cause of the areamgr issue that resulted in weird/invalid node address being added to the area file, reported by Tom Moore (1:135/205).

  23. Rob Swindell (on Windows 11)
    Fri Dec 06 2024 17:38:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/EventsFormUnit.cpp diff
    src/sbbs3/ctrl/EventsFormUnit.h diff
    Update comment header blocks to remove CVS references and such

  24. Rob Swindell (on Windows 11)
    Fri Dec 06 2024 17:38:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Don't try to renaming a bad (unpackable) REP packet if it doesn't exist There still appears to be some race condition with network (Samba) FS directory caching and opening/locking of files, so it does seem illogical that the packet file wouldn't exist at this point (since we have the lock file opened) but this does still happen on occasion on Vertrauen.

  25. Rob Swindell (on Windows 11)
    Fri Dec 06 2024 17:38:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/un_rep.cpp diff
    Eliminate some redundant log output in Unpack REP failure condition.

  26. Rob Swindell (on Windows 11)
    Fri Dec 06 2024 17:38:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_console.cpp diff
    Parse console.inkey() timeout parameter as an *unsigned* integer A negative timeout value doesn't make sense and this will extend the legal (positive) range of this parameter value. Hopefully this will help eliminate these errors I get often: dd_lightbar_menu.js line 4041: Error: can't convert inputTimeoutMS to an integer But if there's some way that this parameter value is even out of the range of an unsigned 32-bit value (4294967295) then this error could still happen. Unfortunately, the JS exception doesn't report the value that failed to convert.

  27. Rob Swindell (on Windows 11)
    Fri Dec 06 2024 17:38:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/logon.cpp diff
    Check return value of getnodedat() Should fix CID 515599 since this seems to be the only place we call unlocknodedat() without possibly not owning the nodefile_mutex already.

  28. Rob Swindell (on Windows 11)
    Fri Dec 06 2024 17:38:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/putnode.cpp diff
    More nodefile_mutex fixes Need to unlock the mutex before calling errormsg(). Need unlock the mutex in error path of unlocknodedat(). I'm not clear why this would, but it might resolve CID 515601 which looks like false positive to me: getnmsg()->putnodedat() should never leave nodefile_mutex locked.

  29. Rob Swindell (on Windows 11)
    Fri Dec 06 2024 17:38:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/load_cfg.c diff
    Check return value of smb_create() in smb_open_dir() Resolves CID 515657

  30. Rob Swindell (on Windows 11)
    Fri Dec 06 2024 17:38:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/readmail.cpp diff
    Always free(mail) I don't think this was actually a leak (since smb.msgs should be non-zero any time mail is non-null), but to make Coverity happy (CID 515659) and just be more fault-tolerant, always free(mail).

  31. Rob Swindell
    Fri Dec 06 2024 14:50:08 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    Merge branch 'dd_msg_reader_list_select_msg_move_to_next_refresh_fix' into 'master' DDMsgReader: Screen refresh fix for selecting messages when automatically moving to the next message at the menu's last row on the screen See merge request main/sbbs!481

  32. Eric Oulashin
    Fri Dec 06 2024 14:12:01 GMT-0800 (PST)
    Modified Files:
    

    xtrn/DDMsgReader/DDMsgReader.js diff
    DDMsgReader: Screen refresh fix for selecting messages when automatically moving to the next message at the menu's last row on the screen

  33. Deucе
    Fri Dec 06 2024 13:27:28 GMT-0800 (PST)
    Modified Files:
    

    src/ssh/ssh-trans.c diff
    src/ssh/ssh-trans.h diff
    src/ssh/ssh.h diff
    And add the hooks for the rest of the transport stuff Should be possible to implement the hard stuff now, though it won't actually be testable until the KEX bits exist too. Smooth sailing after that though.

  34. Rob Swindell (on Debian Linux)
    Fri Dec 06 2024 13:15:08 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/dirwrap.c diff
    Optimize mkpath() If the path already exists (is a directory), don't need to check each path element for existence. This should help with the speed of saving of large file.ini (Nelgin's) when a lot of directories have "Check for File Existence" set to "Yes".

  35. Rob Swindell (on Windows 11)
    Thu Dec 05 2024 21:40:05 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/un_qwk.cpp diff
    src/sbbs3/un_rep.cpp diff
    Verify QWK messagse files (e.g. MESSAGES.DAT) is multiple of QWK block size (128 bytes) Fix up the filename in error messages reported during unpacking QWK packets (MESSAGES.DAT not BBSID.QWK).

  36. Rob Swindell (on Windows 11)
    Thu Dec 05 2024 21:40:05 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Truncate the GIT date (remove time) in Program ID.

  37. Rob Swindell (on Windows 11)
    Thu Dec 05 2024 21:40:05 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/msg_id.c diff
    Fix GIT date truncation (e.g. "202" instead of "2024") in program-ID

  38. Rob Swindell (on Debian Linux)
    Thu Dec 05 2024 21:20:51 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.h diff
    Resolve Borland build warning: missing xp_lockfile() prototype

  39. Rob Swindell (on ChromeOS)
    Thu Dec 05 2024 17:51:50 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.c diff
    Appears MinGW requires '_locking' Borland requires 'locking' and MSVC does both

  40. Rob Swindell (on ChromeOS)
    Thu Dec 05 2024 17:42:15 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.c diff
    In Boland's io.h, this function is just called locking()

  41. Rob Swindell (on ChromeOS)
    Thu Dec 05 2024 17:31:10 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.c diff
    Need locking.h here for Borland C++ build

  42. Rob Swindell (on Debian Linux)
    Thu Dec 05 2024 17:16:06 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.c diff
    Move the xp_lockfile() into a compile block that includes Borland

  43. Rob Swindell (on Debian Linux)
    Thu Dec 05 2024 17:09:39 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.c diff
    Fix typo in Windows version of xp_lockfile()

  44. Rob Swindell (on Debian Linux)
    Thu Dec 05 2024 16:57:15 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/logfile.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/sbbs.h diff
    Introduce/use errprintf() for de-duplicated/prioritized error logging Convert more log messages to use de-duplication as solution to issue #619. A lot more lprintf() -> errprintf() conversions will be needed to fully realize this solution (e.g. in the mail, ftp, web, services serverss).

  45. Rob Swindell (on Debian Linux)
    Thu Dec 05 2024 16:43:45 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/prntfile.cpp diff
    Add "Printing file" and "Printing tail" debug-level log messages In printfile() and printtail() which are used by menu() and many other functions. These should be helpful to sysops that just want to know what file is being displayed under what conditions (e.g. for trouble-shooting or customization reasons).

  46. Rob Swindell (on Debian Linux)
    Thu Dec 05 2024 16:26:25 GMT-0800 (PST)
    Modified Files:
    

    exec/webfileindex.ssjs diff
    Display directory aliases from web_alias.ini as shortcuts on index page Other kinds of aliases are supported in web_alias.ini (e.g. libraries, files) but not displaying those here (yet).

  47. Rob Swindell (on Debian Linux)
    Thu Dec 05 2024 16:12:26 GMT-0800 (PST)
    Modified Files:
    

    exec/load/tree.js diff
    Address occasional TypeError: this.current is undefined

  48. Rob Swindell (on Debian Linux)
    Thu Dec 05 2024 16:04:36 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    Make user_downloaded_file() tolerant of being passed a file path ... instead of just the file name, as was expected.

  49. Rob Swindell (on Debian Linux)
    Thu Dec 05 2024 15:52:13 GMT-0800 (PST)
    Modified Files:
    

    webv4/root/api/files.ssjs diff
    user.downloaded_file() expects *just* the filename, not a full path This is why files downloaded via ecWebv4 haven't been properly accounted.

  50. Rob Swindell (on Debian Linux)
    Thu Dec 05 2024 14:05:43 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    src/xpdev/filewrap.c diff
    src/xpdev/filewrap.h diff
    Add/use xp_lockfile() to support blocking file range/region lock acquisition Under heavy loads, I've found periodic non-blocking lock attempts just aren't reliable enough: in particular, on Vertrauen, the guest user account record in the user.tab file gets read and written-to A LOT (updating stats), and under heavy loads (especially with hundreds of web client sessions), I'd get timeouts attempting to lock the guest record in the user.tab (after about a minute of periodic retries) - so let's just block "forever" to get the user record lock (or until signaled or notified of a deadlock). With this change, I've not had any user.tab lock errors or apparent deadlocks. Let the underlying OS/filesystem handle queuing and deadlock detection, when supported. lock() still behaves as before: non-blocking lock attempt.

  51. Rob Swindell
    Thu Dec 05 2024 13:46:09 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_indexed_newscan_no_snap_selection_bug_fix' into 'master' DDMsgReader: Bug fix - For indexed newscan without snap-to-new, ensure it remembers the user's previously selected sub-board (reported by Keyop) See merge request main/sbbs!480

  52. Eric Oulashin
    Thu Dec 05 2024 13:46:09 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: Bug fix - For indexed newscan without snap-to-new, ensure it remembers the user's previously selected sub-board (reported by Keyop)

  53. Deucе
    Thu Dec 05 2024 09:49:48 GMT-0800 (PST)
    Added Files:
    

    src/ssh/client.c diff
    Modified Files:

    src/ssh/CMakeLists.txt diff
    src/ssh/ssh-trans.c diff
    src/ssh/ssh.h diff
    Add a test client and fix a couple bugs.

  54. Rob Swindell (on ChromeOS)
    Thu Dec 05 2024 00:45:38 GMT-0800 (PST)
    Modified Files:
    

    exec/addfiles.js diff
    Overhaul the help output and display valid lib names when helpful - If sysop specifies an invalid lib name, show them what the valid names are - Make it clear that the directory specified (dir-spec) is either a combination of -lib and -dir *or* -all *or* dir-code *or* nothing (a get prompted) - When using -all, clear the list of specified directories to prevent dupe dir scanning when misused.

  55. Rob Swindell (on ChromeOS)
    Wed Dec 04 2024 23:50:29 GMT-0800 (PST)
    Modified Files:
    

    exec/addfiles.js diff
    Allow any-case for library name used with -lib=name option

  56. Rob Swindell (on ChromeOS)
    Wed Dec 04 2024 23:46:50 GMT-0800 (PST)
    Modified Files:
    

    exec/addfiles.js diff
    Auto-convert specified directory codes to lowecase

  57. Rob Swindell (on ChromeOS)
    Wed Dec 04 2024 23:19:34 GMT-0800 (PST)
    Modified Files:
    

    exec/addfiles.js diff
    Allow a comma-separate list of dir-codes to be passed to -dir option

  58. Rob Swindell (on ChromeOS)
    Wed Dec 04 2024 23:05:21 GMT-0800 (PST)
    Modified Files:
    

    exec/addfiles.js diff
    Add -dir=<code> option to manually specify multiple directories As requested by Nelgin. And this option is mutually exclusive with the [dir-code] parameter.

  59. Rob Swindell (on Debian Linux)
    Wed Dec 04 2024 18:30:52 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/logfile.cpp diff
    De-duplicate repeated errors logged via sbbs_t::errormsg() by reducing severity ... from ERROR to WARNING, so the repeats won't be logged to error.log file and won't (normally) be sent as notifications (e.g. emails) to the sysop. The duplicates are identified as from the same source file and line number as the immediately previous logged error within the last 12 hours. String comparison doesn't really work for deduplication since if you look closely, the errors usually are *not* exact duplicates (i.e. there's a node number or a socket descriptor or something that uniquely identifies the user/client/session). Repeated errors don't increment the node's error counter either. This does not de-duplicate errors logged via other means (e.g. direct calls to log()/lputs(),lprintf() with a severity of LOG_ERR or higher), but will solve the majority of duplicate errors that can be logged from the terminal server. So this at least partially addresses issue #619.

  60. Rob Swindell (on Debian Linux)
    Wed Dec 04 2024 18:30:24 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.c diff
    Clean up the OFD check/decision, make use of fcntl() locks easier to opt-in

  61. Deucе
    Wed Dec 04 2024 14:35:37 GMT-0800 (PST)
    Modified Files:
    

    src/ssh/ssh-trans.c diff
    src/ssh/ssh-trans.h diff
    src/ssh/ssh.c diff
    src/ssh/ssh.h diff
    More transport work. Next step is to implement a KEX.

  62. Deucе
    Wed Dec 04 2024 14:35:36 GMT-0800 (PST)
    Modified Files:
    

    src/comio/comio_nix.c diff
    Enable ISTRIP mode when fewer than 8 bits are requested. With this, SyncTERM and SexPOTS on *nix won't actually need to strip received bytes themselves. No idea what Windows does though, so it'll likely still be needed forever.

  63. Rob Swindell
    Wed Dec 04 2024 13:43:25 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_option_listing_msgs_select_goes_to_next_msg' into 'master' DDMsgReader: New user option & behavior: In a message list, when selecting/toggling a message, it can now optionally move the cursor to the next message See merge request main/sbbs!479

  64. Eric Oulashin
    Wed Dec 04 2024 13:37:50 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: New user option & behavior: In a message list, when selecting/toggling a message, it can now optionally move the cursor to the next message

  65. Rob Swindell (on Debian Linux)
    Tue Dec 03 2024 22:52:40 GMT-0800 (PST)
    Modified Files:
    

    exec/avatars.js diff
    .ini files need to be opened for read/write access when writing/updating This happened to work before commit d49134e6f7 since iniReadFile() didn't return false upon any read error, so File.iniSetAllObjects() didn't realize that the read of (any) existing file contents had failed (because the file was open write-only). This explains why the *.avatars.ini files were pretty much blank as of late and no networked message posters were having their avatars displayed. Reported by Codefenix (thank you). Add a print/log line to tell us how many avatars were parsed, just for extra traceability of this script and any potential failure cause.

  66. Deucе
    Tue Dec 03 2024 16:37:53 GMT-0800 (PST)
    Added Files:
    

    src/ssh/ssh-trans.c diff
    src/ssh/ssh.c diff
    Modified Files:

    src/ssh/CMakeLists.txt diff
    src/ssh/portable.h diff
    src/ssh/ssh-trans.h diff
    src/ssh/ssh.h diff
    The start of the transport layer and the public API.

  67. Deucе
    Tue Dec 03 2024 10:23:49 GMT-0800 (PST)
    Added Files:
    

    src/ssh/portable.h diff
    Modified Files:

    src/ssh/ssh-arch.c diff
    src/ssh/ssh-arch.h diff
    Introduce portable.h for ugly hacks The plan is to hide non-standard stuff in here. Currently, just has [[maybe-unused]] from C23.

  68. Deucе
    Tue Dec 03 2024 10:23:31 GMT-0800 (PST)
    Modified Files:
    

    src/ssh/CMakeLists.txt diff
    Use FindOpenSSL instead of pkg-config for OpenSSL

  69. Deucе
    Tue Dec 03 2024 10:02:59 GMT-0800 (PST)
    Added Files:
    

    src/ssh/CMakeLists.txt diff
    src/ssh/ssh-arch.c diff
    src/ssh/ssh-arch.h diff
    src/ssh/ssh-trans.h diff
    src/ssh/ssh.h diff
    Start of DeuceSSH The intent is that this will be a library implementation of SSH which allows simple extension of the base protocol, and exposes all defined features of the protocol (including ones nobody uses). This will support both client and server, with initial focus on the client implementation for use in SyncTERM. The goal of the core library is to only support the most secure standard methods. When there are multiple methods that are not clearly of differing levels of security, the most common two will be implemented (ie: RSA and Ed25519). Additionally, care will be taken during development to allow for the OpenSSH Encrypt-then-MAC MAC modes in the expectation that someone will standardize an ETM mode at some point, and I expect to write an extension to support it soon after DeuceSSH is complete. Finally, if I cannot mitigate Terrapin without non-standard extensions, the OpenSSH "strict KEX" extension will be supported until there's a standard defined that solves the issue.

  70. Rob Swindell (on Windows 11)
    Tue Dec 03 2024 09:06:14 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/nopen.c diff
    On Windows, lock the opened mutex file to insure *nix sopen() will fail Even though we use O_EXCL, networked file systems still sometimes allow the secondary open() to succeed. We use record locking in xpdev's sopen() implementation for *nix, so this lock will insure such opens (and locks) will now fail. This is an attempt to address occassional error on Vertrauen: ERROR 2 (No such file or directory) renaming *.rep to *.bad

  71. Rob Swindell (on Windows 11)
    Tue Dec 03 2024 09:05:37 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/un_rep.cpp diff
    Log an info-level message before unpacking a REP packet

  72. Rob Swindell (on Windows 11)
    Tue Dec 03 2024 09:04:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    Check return value of writeuserfields() in putuserstr() Return correct error value upon seek failure.

  73. Rob Swindell (on Debian Linux)
    Mon Dec 02 2024 20:24:58 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.c diff
    Don't use flock() in sopen() since it ends up using non-OFD fcntl() locks When OFD locks are available, that's what we should be using. Otherwise, we suffer the horrible behavior of POSIX file/region locks and a subsequent open/close of the file releases any/all locks on it. This is currently in an !BSD block, which appears to include macOS, but macOS *does* support OFD locks, so I'll be fixing that here shortly.

  74. Rob Swindell (on Debian Linux)
    Mon Dec 02 2024 11:11:59 GMT-0800 (PST)
    Modified Files:
    

    ctrl/text.dat diff
    Add NodeActionCustom (blank, by default)

  75. Rob Swindell (on Debian Linux)
    Mon Dec 02 2024 00:47:11 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/getnode.cpp diff
    src/sbbs3/node.c diff
    src/sbbs3/userdat.c diff
    Handle NODE_CUSTOM action and print default node status "performing custom action" Normally, the sysop would set the NodeActionCustom text.dat string to override this.

  76. Rob Swindell (on Debian Linux)
    Mon Dec 02 2024 00:28:41 GMT-0800 (PST)
    Modified Files:
    

    exec/load/nodedefs.js diff
    exec/load/text.js diff
    Add the new NodeCustom action

  77. Rob Swindell (on Debian Linux)
    Mon Dec 02 2024 00:22:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/nodedefs.h diff
    src/sbbs3/text.h diff
    src/sbbs3/text_defaults.c diff
    src/sbbs3/text_id.c diff
    Define custom node action value This is to be used (e.g. instead of NODE_BXFR) for sysop-custom node actions.

  78. Rob Swindell (on Debian Linux)
    Mon Dec 02 2024 00:21:49 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/getnode.cpp diff
    White-space changes only

  79. Rob Swindell (on Debian Linux)
    Mon Dec 02 2024 00:21:08 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/putnode.cpp diff
    Support @-codes in NodeAction text.dat strings

  80. Rob Swindell (on Debian Linux)
    Sun Dec 01 2024 23:57:22 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    Add random jitter to lockuserdat() and putnodedat() retry delays so that if multiple entities call these functions at the same time, they don't retry at exactly the same times.

  81. Rob Swindell (on Debian Linux)
    Sun Dec 01 2024 23:55:51 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/execnet.cpp diff
    src/sbbs3/ftpsrvr.c diff
    src/sbbs3/js_global.c diff
    src/sbbs3/js_internal.c diff
    src/sbbs3/js_socket.c diff
    src/sbbs3/jsexec.c diff
    src/sbbs3/mailsrvr.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/mxlookup.c diff
    src/sbbs3/sbbscon.c diff
    src/sbbs3/services.c diff
    src/sbbs3/sexyz.c diff
    src/sbbs3/sockopts.c diff
    src/sbbs3/telgate.cpp diff
    src/sbbs3/websrvr.c diff
    Use SOCKET_ERRNO instead of (now deprecated) ERROR_VALUE macro

  82. Rob Swindell (on Debian Linux)
    Sun Dec 01 2024 22:11:00 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    src/xpdev/multisock.c diff
    src/xpdev/sockwrap.c diff
    src/xpdev/sockwrap.h diff
    Add/use SOCKET_ERRNO (in place of ERROR_VALUE)

  83. Rob Swindell (on Debian Linux)
    Sun Dec 01 2024 22:10:40 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/xp_syslog.c diff
    Eliminate unused variable

  84. Rob Swindell (on Windows 11)
    Sun Dec 01 2024 21:55:49 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/sockwrap.h diff
    Borland C++ apparently doesn't support inline functions (!)

  85. Rob Swindell (on Debian Linux)
    Sun Dec 01 2024 21:19:27 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_global.c diff
    src/sbbs3/main.cpp diff
    src/sbbs3/services.c diff
    src/xpdev/ini_file.c diff
    src/xpdev/multisock.c diff
    src/xpdev/sockwrap.c diff
    src/xpdev/sockwrap.h diff
    Make socket errno and string descriptions easier to get/use Add/use SOCKET_STRERROR which gets the description of the *last* socket error. We should start using socket_errno(true) in place of ERROR_VALUE (horribly named macro) for comparing last socket error nubers against values/macros from errno.h. Eliminate get_socket_errno(), unused and redundant with socket_errno().

  86. Rob Swindell (on Debian Linux)
    Sun Dec 01 2024 21:15:11 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/sopenfile.c diff
    Add -c and -R options Really need to make the option order (arity) neutral

  87. Rob Swindell (on Debian Linux)
    Sun Dec 01 2024 20:17:14 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ver.cpp diff
    Fix strlcpy() usage

  88. Rob Swindell (on Debian Linux)
    Sun Dec 01 2024 20:16:53 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/sockwrap.c diff
    Fix typo in get_socket_errno() definition

  89. Rob Swindell (on macOS)
    Sun Dec 01 2024 19:57:24 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Log the error description upon failure to send on socket

  90. Rob Swindell (on macOS)
    Sun Dec 01 2024 18:00:47 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/atcodes.cpp diff
    src/sbbs3/chat.cpp diff
    src/sbbs3/con_hi.cpp diff
    src/sbbs3/con_out.cpp diff
    src/sbbs3/exec.cpp diff
    src/sbbs3/execfile.cpp diff
    src/sbbs3/execfunc.cpp diff
    src/sbbs3/execmisc.cpp diff
    src/sbbs3/execmsg.cpp diff
    src/sbbs3/execnet.cpp diff
    src/sbbs3/fido.cpp diff
    src/sbbs3/file.cpp diff
    src/sbbs3/getnode.cpp diff
    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/js_console.cpp diff
    src/sbbs3/js_system.c diff
    src/sbbs3/listfile.cpp diff
    src/sbbs3/login.cpp diff
    src/sbbs3/mail.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/msgtoqwk.cpp diff
    src/sbbs3/netmail.cpp diff
    src/sbbs3/postmsg.cpp diff
    src/sbbs3/putmsg.cpp diff
    src/sbbs3/putnode.cpp diff
    src/sbbs3/qwktomsg.cpp diff
    src/sbbs3/readmail.cpp diff
    src/sbbs3/readmsgs.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/scansubs.cpp diff
    src/sbbs3/sftp.cpp diff
    src/sbbs3/str.cpp diff
    src/sbbs3/telgate.cpp diff
    src/sbbs3/ver.cpp diff
    Replace sprintf() calls with snprintf() Addresses Clang warnings about deprecation

  91. Rob Swindell (on macOS)
    Sun Dec 01 2024 16:25:50 GMT-0800 (PST)
    Modified Files:
    

    src/build/Common.gmake diff
    Add -L to LDFLAGS, not CFLAGS for macos builds This fixes all the "argument unused during compliation" warnings

  92. Deucе
    Sun Dec 01 2024 16:01:35 GMT-0800 (PST)
    Added Files:
    

    3rdp/build/cl-dont-validate-va-list.patch diff
    Modified Files:

    3rdp/build/CMakeLists-cl.txt diff
    3rdp/build/CMakeLists.txt diff
    3rdp/build/GNUmakefile diff
    Fix idiodic check that a va_list != NULL This breaks armv7 FreeBSD builds. Presumably it breaks anything else where va_list isn't a pointer too... and there's no real reason to expect a va_list to be a pointer except "it's a pointer on the platform I looked at".

  93. Rob Swindell (on Windows 11)
    Sun Dec 01 2024 15:58:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/userdat.c diff
    src/sbbs3/userdat.h diff
    Unify the int return values of userdat.c functions These functions now return a common set of non-zero error values (where appropriate), defined in userdat.h Don't return errno.

  94. Rob Swindell (on Windows 11)
    Sun Dec 01 2024 15:58:06 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/answer.cpp diff
    src/sbbs3/atcodes.cpp diff
    src/sbbs3/bat_xfer.cpp diff
    src/sbbs3/bulkmail.cpp diff
    src/sbbs3/chat.cpp diff
    src/sbbs3/download.cpp diff
    src/sbbs3/email.cpp diff
    src/sbbs3/exec.cpp diff
    src/sbbs3/execfunc.cpp diff
    src/sbbs3/getkey.cpp diff
    src/sbbs3/getnode.cpp diff
    src/sbbs3/js_bbs.cpp diff
    src/sbbs3/listfile.cpp diff
    src/sbbs3/logfile.cpp diff
    src/sbbs3/logon.cpp diff
    src/sbbs3/logout.cpp diff
    src/sbbs3/mail.cpp diff
    src/sbbs3/main.cpp diff
    src/sbbs3/newuser.cpp diff
    src/sbbs3/putnode.cpp diff
    src/sbbs3/readmsgs.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/str.cpp diff
    src/sbbs3/telgate.cpp diff
    src/sbbs3/un_rep.cpp diff
    src/sbbs3/writemsg.cpp diff
    src/sbbs3/xtrn.cpp diff
    src/sbbs3/xtrn_sec.cpp diff
    Simplify the getnode.cpp API - use bool returns, default paramaeter value getnodedat() now performs a non-locked read by default. Perform more checks of getnodedat() return value before calling putnodedat() to avoid unintentionally zeroing out node.dab records. Add/use unlocknodedat() method for unlocking a node.dab record without writing. Note: The userdat.c getnodedat() and putnodedat() still return int (i.e. 0 on success), so that can be confusing.

  95. Rob Swindell (on Debian Linux)
    Sun Dec 01 2024 15:48:16 GMT-0800 (PST)
    Modified Files:
    

    exec/freqitcfg.js diff
    Don't call uifc.bail() repeatedly Since this script already sets an on_exit() handler to call uifc.bail() it doesn't have to call it again (technically, before) in the "Done" block. This results in "UIFC is unitialized" error displayed, as reported by Fernando Toledo. Fixing issue #830 Set WIN_ESC (remains active, but greyed when ESC key pressed) mode flag on main menu while we're here. That looks better.

  96. Rob Swindell (on Windows 11)
    Sun Dec 01 2024 01:08:57 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/ctrl/WebCfgDlgUnit.cpp diff
    src/sbbs3/ctrl/WebCfgDlgUnit.dfm diff
    src/sbbs3/ctrl/WebCfgDlgUnit.h diff
    Add max concurrent connections edit box to web cfg dialog

  97. Rob Swindell (on Debian Linux)
    Sun Dec 01 2024 00:45:16 GMT-0800 (PST)
    Modified Files:
    

    exec/load/newsutil.js diff
    When the originating address is the same as the name, just include one There's no need to be unnecessarily redundant in the From header, e.g. From: "scan-admin@coverity.com" <scan-admin@coverity.com>

  98. Rob Swindell (on Debian Linux)
    Sun Dec 01 2024 00:21:04 GMT-0800 (PST)
    Modified Files:
    

    exec/load/newsutil.js diff
    MIME-encode To and From header fields that contain non-ASCII chars This fixes the display of gitlab pushes from Deucе in conforming news readers.

  99. Rob Swindell (on Debian Linux)
    Sat Nov 30 2024 23:43:30 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Track and report the concurrent connections per client highwater mark It's possible now for clients to easily exceed the configured max concurrent connections limit, even though they just get an error 429 page. Let's at least track and log when a new highwater mark is reached.

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

    exec/nntpservice.js diff
    More RFC (3977) conformance Some of the NNTP commands (e.g. LIST) aren't supposed to change the "currently selected newsgroup". Had to use a different variable name (e.g. mb versus msgbase) since these message base variables share the function scope). GROUP and LISTGROUP commands are supposed to set the "current article number" to the first article in the group. We weren't doing this. The HEAD, BODY, STAT, and ARTICLE commands aren't *required* to have arguments and yet, we required they had at least one argument (an article number). Now fixed. Enabled "strict mode" even though that didn't catch the colliding 'msgbase' variable definitions. Incremented the revision to 1.2

  101. Rob Swindell
    Sat Nov 30 2024 22:28:35 GMT-0800 (PST)
    Modified Files:
    

    exec/load/dd_lightbar_menu.js diff
    Merge branch 'dd_lightbar_menu_clear_after_menu_draw_fix' into 'master' DDLightbarMenu: When clearing the remainder of the screen after drawing the menu, ensure the console attributes are reset. Also, refactored that section of code. See merge request main/sbbs!478

  102. Eric Oulashin
    Sat Nov 30 2024 22:28:35 GMT-0800 (PST)
    Modified Files:
    

    exec/load/dd_lightbar_menu.js diff
    DDLightbarMenu: When clearing the remainder of the screen after drawing the menu, ensure the console attributes are reset. Also, refactored that section of code.

  103. Rob Swindell (on Debian Linux)
    Sat Nov 30 2024 21:00:33 GMT-0800 (PST)
    Modified Files:
    

    exec/load/mimehdr.js diff
    exec/load/newsutil.js diff
    Create/use mimehdr encode() method for MIME/Q-encoding UTF-8 header fields Use it in newsutil get_news_subject() when no original (RFC822) Subject header field exists. This should fix issue #817.

  104. Rob Swindell (on Debian Linux)
    Sat Nov 30 2024 20:57:23 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Eliminate some harmless gcc warning about using uninitialized vars

  105. Rob Swindell (on Debian Linux)
    Sat Nov 30 2024 20:56:46 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/logon.cpp diff
    Move the backup of dsts.ini before opening the file Can't backup (make copies of) an open file.

  106. Deucе
    Sat Nov 30 2024 19:47:09 GMT-0800 (PST)
    Added Files:
    

    web/root/error/429.html diff
    Add 429 error page

  107. Deucе
    Sat Nov 30 2024 19:43:58 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Since this is after client_on() is called now, use > not >=

  108. Deucе
    Sat Nov 30 2024 19:41:22 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/websrvr.c diff
    Move max concurrent connections check into http_session_thread() We can't send a 4xx error (ie: client did something wrong) in plaintext on a TLS connection. Untested beyond a basic compile check.

  109. Deucе
    Sat Nov 30 2024 18:16:35 GMT-0800 (PST)
    Modified Files:
    

    src/conio/Common.gmake diff
    Fix the pipeline that DigitalMan broke.

  110. Rob Swindell (on Windows 11)
    Sat Nov 30 2024 14:59:55 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbs_ini.c diff
    src/sbbs3/scfg/scfgsrvr.c diff
    src/sbbs3/websrvr.c diff
    src/sbbs3/websrvr.h diff
    Implement max concurrent connections (per IP) limit in web server, default: 10 We have this feature for the FTP, Mail, and Terminal servers (with no default limit) but crazy abuse of my Synchronet web servers has now made this a necessity for Vertrauen. A limit of 2 used to be considered reasonable long ago. Today, 10 seems fair enough. Setting to 0 will impose no max-connections per IP address (other than the total client limit per server).

  111. Deucе
    Sat Nov 30 2024 14:48:30 GMT-0800 (PST)
    Modified Files:
    

    src/conio/Common.gmake diff
    src/conio/GNUmakefile diff
    Fix X11 build option checkbox Similar problem as PulseAudio, but even grosser.

  112. Deucе
    Sat Nov 30 2024 14:22:29 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/Common.gmake diff
    src/xpdev/GNUmakefile diff
    Fix PulseAudio build option display The macro was only define in the xpdev GNUmakefile, not in Common, so bbslist.c did not know if it was enabled or not, and always showed it as disabled.

  113. Rob Swindell (on Debian Linux)
    Sat Nov 30 2024 13:34:21 GMT-0800 (PST)
    Modified Files:
    

    exec/load/newsutil.js diff
    exec/nntpservice.js diff
    Create/use news_get_from() function, copied from nntpservice.js Use the fully-formed "From" header field in responses to NNTP OVER/XOVER and HDR/XHDR requests. This should fix issue #829 reported by Accession

  114. Rob Swindell
    Sat Nov 30 2024 01:42:32 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/js_bbs.cpp diff
    Range check argc before deref of argv[1] Apparently JSVAL_IS_STRING() can return true even when argv[1] is out of range (I guess I assumed it'd alwasy be NULL or VOID/undefined) and this can lead to crash when calling JS_ValueToString() on it.

  115. Rob Swindell (on macOS)
    Sat Nov 30 2024 00:35:14 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/filewrap.h diff
    Retry file lock/read operations on EIO errors As seen on MacOS, an SMB shared file can cause the Mac SMB client to report EIO error on locked-file read or lock attempts. So retry.

  116. Rob Swindell
    Wed Nov 27 2024 16:25:29 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
    xtrn/slyvote/readme.txt diff
    xtrn/slyvote/slyv_cfg.js diff
    xtrn/slyvote/slyvote.js diff
    Merge branch 'ddmsgreader_slyvote_poll_message_show_who_voted_what' into 'master' DDMsgReader & SlyVote: WHen viewing polls, for the person who posted it, show who voted on what (mimicking the Synchronet behavior which shows new votes when the user logs in) See merge request main/sbbs!477

  117. Eric Oulashin
    Wed Nov 27 2024 12:29:22 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
    xtrn/slyvote/readme.txt diff
    xtrn/slyvote/slyv_cfg.js diff
    xtrn/slyvote/slyvote.js diff
    DDMsgReader & SlyVote: WHen viewing polls, for the person who posted it, show who voted on what (mimicking the Synchronet behavior which shows new votes when the user logs in)

  118. Deucе
    Wed Nov 27 2024 11:45:49 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/bbslist.c diff
    src/syncterm/term.c diff
    Re-order entry fields. This makes more sense. Also, ones that are meaningless are hidden now.

  119. Deucе
    Wed Nov 27 2024 09:31:29 GMT-0800 (PST)
    Modified Files:
    

    src/conio/cterm.c diff
    The final fixings for issue 172 Use 0 for "no held mosaic" to avoid confusion around printable bytes. Store the state of the current cell *before* updating in fix_line()

  120. Deucе
    Wed Nov 27 2024 07:48:56 GMT-0800 (PST)
    Modified Files:
    

    src/conio/bitmap_con.c diff
    src/conio/cterm.c diff
    Fix double-height drawing Top/bottom detection was somewhat broken. Interestingly, now the previous commit isn't working anymore. So issue 172 is not quite fixed yet.

  121. Deucе
    Wed Nov 27 2024 05:26:38 GMT-0800 (PST)
    Modified Files:
    

    src/conio/cterm.c diff
    Fix up the Prestel "Engineering Test Page" rendering This was due to two main bugs... the simple one was a type where the cutoff between separated and contiguous mosaics was incorrect, which caused the first four separated mosaics to not be displayed. The second was due to a number of bugs in the Hold Mosaic implementation. This fixes the first half of issue 172.

  122. Deucе
    Tue Nov 26 2024 16:02:46 GMT-0800 (PST)
    Modified Files:
    

    src/conio/utf8_codepages.c diff
    Fix unicode -> Prestel mapping We want ASCII to map directly, and unicode values need to be sorted ascending for bsearch() to work properly. Fixes Prestel keyboard input not working in GDI mode.

  123. Deucе
    Tue Nov 26 2024 13:55:09 GMT-0800 (PST)
    Modified Files:
    

    src/conio/OverhaulNotes.txt diff
    src/conio/cterm.c diff
    Handle 8-bit C1 codes in Prestel mode If the remote sends 8-bit C1 codes, handle them as though they were properly escaped. Since Prestel terminals are 7-bit, these will never be sent by a proper Pretel system, but apparently some systems do weird non-standard things.

  124. Rob Swindell (on Debian Linux)
    Mon Nov 25 2024 22:03:25 GMT-0800 (PST)
    Modified Files:
    

    ctrl/text.dat diff
    src/sbbs3/chat.cpp diff
    src/sbbs3/postmsg.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/text.h diff
    src/sbbs3/text_defaults.c diff
    src/sbbs3/text_id.c diff
    Create/use SysopPageNotification text.dat string to notify sysop (user #1) that they were paged. Previously, this was a hard-coded string. The new string in text.dat is the same, but adds 2 BELs (CTRL-G chars) and is now customizable. Created an sbbs_t::notify() method to make this easier to use and that method supports @-code expansion, so this text.dat string supports @-codes (which I used). This addresses the feature request in issue #828 (beep the sysop in the telegram/short message, when they're paged).

  125. Rob Swindell
    Mon Nov 25 2024 20:04:59 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_index_newscan_skip_subboard_fix' into 'master' DDMsgReader bug fix: For the indexed-mode newscan, when showing only sub-boards that have new messages, ensure the selected item index is correct when re-populating the menu so that it doesn't skip a sub-board. Reported by Amessyroom. See merge request main/sbbs!476

  126. Eric Oulashin
    Mon Nov 25 2024 20:04:59 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 bug fix: For the indexed-mode newscan, when showing only sub-boards that have new messages, ensure the selected item index is correct when re-populating the menu so that it doesn't skip a sub-board. Reported by Amessyroom.

  127. Deucе
    Sun Nov 24 2024 21:15:59 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CMakeLists.txt diff
    src/syncterm/Manual.txt diff
    src/syncterm/PackageInfo.in diff
    src/syncterm/dpkg-control.in diff
    src/syncterm/haiku.rdef diff
    src/syncterm/syncterm.c diff
    src/syncterm/syncterm.rc diff
    We're 1.4a now. :(

  128. Deucе
    Sun Nov 24 2024 21:15:46 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Document the death of SyncTERM 1.2

  129. Deucе
    Sun Nov 24 2024 21:06:55 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    Fix error in optmap creation

  130. Rob Swindell
    Sun Nov 24 2024 14:52:11 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    Merge branch 'ddfilelister_edit_file_check_cost_and_times_downloaded_exist' into 'master' DDFileLister: When editing file information, check whether cost and times_downloaded exist in the metadata before accessing them. Reported by Ragnarok See merge request main/sbbs!475

  131. Eric Oulashin
    Sun Nov 24 2024 14:52:11 GMT-0800 (PST)
    Modified Files:
    

    xtrn/ddfilelister/ddfilelister.js diff
    xtrn/ddfilelister/readme.txt diff
    xtrn/ddfilelister/revision_history.txt diff
    DDFileLister: When editing file information, check whether cost and times_downloaded exist in the metadata before accessing them. Reported by Ragnarok

  132. Deucе
    Sun Nov 24 2024 11:40:15 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CMakeLists.txt diff
    src/syncterm/Info.plist diff
    src/syncterm/Manual.txt diff
    src/syncterm/PackageInfo.in diff
    src/syncterm/dpkg-control.in diff
    src/syncterm/haiku.rdef diff
    src/syncterm/syncterm.c diff
    src/syncterm/syncterm.rc diff
    SyncTERM is now 1.3a

  133. Deucе
    Sun Nov 24 2024 11:02:07 GMT-0800 (PST)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Fix up win_lock mutex usage

  134. Deucе
    Sun Nov 24 2024 09:51:13 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/echocfg.c diff
    Some minor cleanups of echocfg 1) Initialize saverobot.name since this is checked unconditionally. This has a side effect of initializing everything else, but name is the only thing that actually matters. 2) Add a bar to the global settings menu. Previously, if you scrolled near the bottom and selected an option, after changing the option, you would jump up to the last item on the initial screen. 3) Fix the AreaMgr Support default value to be the current, not the opposite of current. 4) Use the correct variable for EchoMail Relay Filtered Messages setting default.

  135. Deucе
    Sun Nov 24 2024 09:33:39 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Remove ssh_errors variable. We're carefully counting the errors, but never looking at the count.

  136. Deucе
    Sun Nov 24 2024 09:28:35 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/GNUmakefile diff
    Don't create the Framework dir if we won't put anything in it.

  137. Deucе
    Sat Nov 23 2024 17:07:39 GMT-0800 (PST)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Remove unused variable

  138. Deucе
    Sat Nov 23 2024 17:01:44 GMT-0800 (PST)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Try this the other way...

  139. Deucе
    Sat Nov 23 2024 16:57:10 GMT-0800 (PST)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Scale SDL_GetDisplayUsableBounds() like SDL_GetWindowSize() For retina lies.

  140. Rob Swindell (on macOS)
    Sat Nov 23 2024 16:02:54 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/getnode.cpp diff
    Fix potential deadlock in getnodedat(), observed on macOS Upon any node.dab lock or read failure, this code would cause errormsg() which would often/usually end up claling getnodedat() which would block forever trying to acquire the ndoefile_mutex (introduced in commit b9633069, I'm not clear why). Unlock/release the mutex *before* calling errormsg().

  141. Rob Swindell
    Sat Nov 23 2024 01:23:31 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Fix crash when NO_EVENTS option is set for terminal server Don't deref that null pointer

  142. Rob Swindell (on Windows 11)
    Fri Nov 22 2024 23:30:20 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/echocfg.c diff
    Update Area File help screen to explain areas.ini area file format/option

  143. Rob Swindell (on Windows 11)
    Fri Nov 22 2024 23:29:23 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/scfg/scfgmsg.c diff
    Add support for exporting fidonet sub-boards to areas.ini file

  144. Rob Swindell (on Windows 11)
    Fri Nov 22 2024 18:03:24 GMT-0800 (PST)
    Modified Files:
    

    src/conio/sdl_con.c diff
    Deuce said I remove this error message It was always displayed (sent to stderr) when running scfg, echocfg, uedit, etc. in auto-curses mode, so suppress that noise.

  145. Rob Swindell (on Windows 11)
    Fri Nov 22 2024 17:59:28 GMT-0800 (PST)
    Modified Files:
    

    src/sexpots/sexpots.c diff
    If configured COM port byte size is less than 8, strip high 8-n bits on RX Some USB modems (reportedly, USRobotics USB modem) don't strip the parity bit of data received from modem connections operating in < 8 bit modes (e.g. 7-E-1), as is normally don't with a modem connected to a UART, so we'll do that stripping (forcing to 0) here, as recommended by Deuce. Nelgin, if you're doing some manually stripping of the 7th bit bytes received from 7-E-1 connected modems and then sent to your server/BBS over TCP, you shouldn't need to do that now.

  146. Rob Swindell (on Debian Linux)
    Fri Nov 22 2024 17:50:35 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Clean up area management code I dislike this particular code a little less now: - no more redundant string compares - less deeply nested if() and for() blocks - remove added areas from the add list, rather than zeroing out the tag - a little more common code between areas.bbs and areas.ini handling No functional change (I hope).

  147. Rob Swindell (on Debian Linux)
    Fri Nov 22 2024 17:50:35 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/str_list.c diff
    src/xpdev/str_list.h diff
    Add strListFastDeleteAll() To quickly free and remove all list entries (without realloc).

  148. Deucе
    Fri Nov 22 2024 15:50:29 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    Remove accidental zero-width unicode character.

  149. Deucе
    Fri Nov 22 2024 15:28:02 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    Use enum values for field names Easier to match up than numbers.

  150. Deucе
    Fri Nov 22 2024 15:09:48 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    Fix editing of name broken in earlier commit, refactor Split generating help into separate function - Regenerated when the connection type changes Split generation the opt list into separate function - Regenerated after handling any selection

  151. Deucе
    Fri Nov 22 2024 10:58:58 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Clean up changes list to only "interesting" ones. If someone wants to know the differences between 1.2rc1 and 1.2rc3, the can check git.

  152. Deucе
    Fri Nov 22 2024 09:57:33 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Make the same as the syncterm-1.2 branch

  153. Deucе
    Thu Nov 21 2024 10:25:52 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Change CHANGE for newest changes.

  154. Deucе
    Thu Nov 21 2024 10:22:07 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/modem.c diff
    The USR modem isn't so bad that it needs parity generated We just need to strip the high bit on RX because the mode leaves it on received bytes.

  155. Rob Swindell (on Debian Linux)
    Thu Nov 21 2024 01:23:56 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/modem.c diff
    Resolve recently added compile errors and warnings to unblock the pipes

  156. Rob Swindell (on Debian Linux)
    Wed Nov 20 2024 21:21:01 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/echocfg.c diff
    src/sbbs3/rechocfg.c diff
    src/sbbs3/sbbsecho.c diff
    src/sbbs3/sbbsecho.h diff
    Replace almost all references to AreaFix with AreaMgr or AreaManager "AreaFix" is a proper product name. Though it's been defunct and unsupported for decades, we still should not confuse sysops and historians: the general term for what AreaFix did/does is Area Management, aka Conference Management. The sbbsecho.ini key names are unchanged and the destination netmail address for AreaManager requests can still be "AreaFix" (though "SBBSecho" is still supported as well).

  157. Rob Swindell (on Debian Linux)
    Wed Nov 20 2024 20:50:23 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Fix stupid inverted logic bug: treating areas.ini as areas.bbs for AreaFix and vice versa - so area manager requests were broken since I introduced the areas.ini support. Oops.

  158. Rob Swindell (on Debian Linux)
    Wed Nov 20 2024 20:50:23 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Support AreaMgr request messages with -L (list) or -Q (query) but no body I noticed through code review that these kinds of messages would be rejected as "No commands to process.". We just needed to increment the 'cmd' counter when parsing these options to be sure we don't think that no commands were in fact request. -R (rescan) is not by itself a command since it requires listed area-tags to have any effect.

  159. Rob Swindell (on Debian Linux)
    Wed Nov 20 2024 20:50:23 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Detect and log warnings about duplicate area sections in areas.ini ... like how we do for areas.bbs files.

  160. Rob Swindell (on Debian Linux)
    Wed Nov 20 2024 20:50:23 GMT-0800 (PST)
    Modified Files:
    

    src/xpdev/ini_file.c diff
    src/xpdev/ini_file.h diff
    Add iniGet/ReadSectionListWithDupes() For use cases were we don't want to silenty ignore duplicate (secondary) section definitions.

  161. Deucе
    Wed Nov 20 2024 20:40:32 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Log changes

  162. Deucе
    Wed Nov 20 2024 20:40:10 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/modem.c diff
    Because some USB modems suck (ie: USR5637), do software parity This is just in case the modem actually stays in 8N1 mode when 7E1 or 7O1 is set. This is what the USR 5637 appears to do. There's a small performance penalty for anything in 7-bit mode with this, but it shouldn't be enough to actually impact anything.

  163. Deucе
    Wed Nov 20 2024 20:40:10 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/modem.c diff
    Drain modem buffer before sending commands.

  164. Deucе
    Wed Nov 20 2024 17:19:29 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/modem.c diff
    Set flow control before raising DTR Possibly setting CTS/RTS after raising DTR drops DTR which causes DCD to be lost.

  165. Rob Swindell
    Wed Nov 20 2024 17:06:17 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 'ddmsgreader_pollview_responses_fix' into 'master' DDMsgReader bug fix: When viewing a poll that the user has posted and showing who voted on the poll, ensure it only counts poll responses (not reply messages). Reported by nelgin See merge request main/sbbs!474

  166. Eric Oulashin
    Wed Nov 20 2024 17:06:17 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 bug fix: When viewing a poll that the user has posted and showing who voted on the poll, ensure it only counts poll responses (not reply messages). Reported by nelgin

  167. Rob Swindell (on Debian Linux)
    Wed Nov 20 2024 14:42:49 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Fix unsigned compare against >= 0 and nomatch misplacement I'm not clear if/why these would cause the issue reporetd by Fernando but they're definitely bugs in the areas.ini areafix code. No impact to the areas.bbs areafix handling.

  168. Rob Swindell (on Debian Linux)
    Wed Nov 20 2024 14:42:10 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/sbbsecho.c diff
    Fix new potential NULL derefs (the add/del_area args can be NULL) ... in area manager code modified in previous commit.

  169. Deucе
    Wed Nov 20 2024 14:34:50 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    Remove unused variable.

  170. Deucе
    Wed Nov 20 2024 14:33:45 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    Terminate parity_enum

  171. Deucе
    Wed Nov 20 2024 14:32:44 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/bbslist.c diff
    src/syncterm/bbslist.h diff
    src/syncterm/modem.c diff
    Apparently, Windows headers define (at least) PARITY_NONE Even when "lean and mean". Rename enum.

  172. Deucе
    Wed Nov 20 2024 14:08:12 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/bbslist.c diff
    src/syncterm/bbslist.h diff
    src/syncterm/modem.c diff
    Add support for configuring data/stop bits and parity for modem and serial Also, straighten out the confusing option adjuster thing when editing an entry. The help text still needs an overhaul, but now I have to re-test this whole mess.

  173. Deucе
    Wed Nov 20 2024 10:19:32 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Log changes

  174. Deucе
    Wed Nov 20 2024 10:17:49 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/modem.c diff
    Explicitly set serial port to 8N1 Surely nobody uses anything else...

  175. Rob Swindell (on ChromeOS)
    Tue Nov 19 2024 22:52:37 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/download.cpp diff
    src/sbbs3/sbbs.h diff
    Save and restore the Telnet BINARY_TX option state separate for each direction It's possible the client requested binary transmit in only one of the two directions and if so, restore just the direction that was previously *not* in binary transmit mode to NVT mode.

  176. Rob Swindell (on ChromeOS)
    Tue Nov 19 2024 22:38:55 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    request_telnet_opt() will ignore all cmds but DO, DONT, WILL and WONT This allows us to save unitialized telnet_*_option values (i.e. 0x00) and pass those values back to request_telnet_opt() with no side effect.

  177. Deucе
    Tue Nov 19 2024 22:14:32 GMT-0800 (PST)
    Modified Files:
    

    src/syncterm/CHANGES diff
    src/syncterm/bbslist.c diff
    src/syncterm/bbslist.h diff
    src/syncterm/syncterm.c diff
    Fix crash when editing blank "extra" bbslist entry Show current list path, not default in File Locations Support copy/paste in BBS list

  178. Deucе
    Tue Nov 19 2024 22:14:32 GMT-0800 (PST)
    Modified Files:
    

    src/conio/allfonts.c diff
    src/syncterm/CHANGES diff
    Add blank pixel to left and top of Prestel DEL glyph Makes the Night Owl BBS login screen look more accurate.

  179. Rob Swindell (on Windows 11)
    Tue Nov 19 2024 13:20:37 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/download.cpp diff
    src/sbbs3/sbbs.h diff
    src/sbbs3/telgate.cpp diff
    src/sbbs3/xtrn.cpp diff
    Allow Telnet client to be in binary mode persistently Before this change, we'd always request a return to Telnet NVT (turn off binary-TX in both directions) after any file transfer. So although a Telnet session might be negotiated into binary mode shortly after connection (e.g., using "telnet -8"), it would be reverted back to NVT mode after any file transfer. The request to turn off remote binary-TX after executing external programs didn't actually accomplish anything since we track the Telnet option states internally and don't send redundant requests (e.g. the change into a mode we're already in). External programs aren't expected to send Telnet requests anyway, so I think this was some holdover from early days of stp/sexyz development.

  180. Rob Swindell (on Windows 11)
    Mon Nov 18 2024 22:10:44 GMT-0800 (PST)
    Modified Files:
    

    src/sbbs3/main.cpp diff
    Don't use uninitialized variable: lockfname Where's the compiler warnings guys?

  181. Rob Swindell (on Windows 11)
    Mon Nov 18 2024 21:52:30 GMT-0800 (PST)
    Added Files:
    

    exec/make_areas_ini.js diff
    Modified Files:

    src/sbbs3/sbbsecho.c diff
    src/sbbs3/sbbsecho.h diff
    Add support for new experimental/optional Area File format: areas.ini As suggested/requested by Fernando Toledo in issue #826, you can: 1. run 'jsexec make_areas_ini.js' to export your areas.bbs file to areas.ini (your old areas.bbs is left in place, in tact, unmodified) 2. change your Area File in echocfg->Paths and Filenames->Area File to somepath/somefile.ini (e.g. "../data/areas.ini") and SBBSecho will use the .ini file format instead of the old AREAS.BBS format (NIH) You can always go back to your areas.bbs file by just reverting the Area File setting back to some other non-ini filename (e.g. "../data/areas.bbs"). Incremented version number to v3.23 Of course documentation and echocfg changes will need to follow, but this is enough to start testing (looking at your Fernando! :-). I tried to minimize the diff as much as possible and resisted updating (modernizing, fixing) the very old AREAS.BBS parsing and areafix code. The new .ini code is largely modeled after the old areas.bbs code, but oh, xpdev/ini_file makes things so much nicer and easier. There are no known fixes for any pre-existing area file/fix issues (including issue #826), but it's always possible I've introduced a new issue.

  182. Rob Swindell (on Debian Linux)
    Mon Nov 18 2024 19:35:18 GMT-0800 (PST)
    Modified Files:
    

    exec/init-fidonet.ini diff
    Update AmigaNet and Fido zone 4 details Use BACKBONE.NA from Vertrauen as echolist for all Fido zones (anyone have a better authoritative http link to a fixed file name or archive name?).

  183. Deucе
    Mon Nov 18 2024 15:29:04 GMT-0800 (PST)
    Modified Files:
    

    exec/imapservice.js diff
    Add log levels to the rest of the log() calls.

  184. Rob Swindell (on Debian Linux)
    Mon Nov 18 2024 12:37:55 GMT-0800 (PST)
    Modified Files:
    

    exec/init-fidonet.ini diff
    Add FidoNet Zone 2 and Zone 4 coordinator names and contact info Are there official echolists for these zones?

  185. 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

  186. 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

  187. 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.

  188. 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.

  189. 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

  190. 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.

  191. 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().

  192. 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.

  193. 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).

  194. 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

  195. 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!

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

    src/syncterm/CHANGES diff
    Log change.

  197. 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.

  198. 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

  199. 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).

  200. 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.

  201. 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

  202. 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

  203. 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

  204. 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.

  205. 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()

  206. 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

  207. 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()

  208. 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

  209. 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

  210. 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.

  211. 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).

  212. 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

  213. 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.

  214. 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.

  215. 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.

  216. 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)

  217. 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.

  218. 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

  219. 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

  220. 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

  221. 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.

  222. 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.

  223. 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).

  224. 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

  225. 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.

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

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

  227. 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.

  228. 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.

  229. 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.

  230. 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

  231. 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.

  232. 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

  233. 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.

  234. 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.

  235. 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

  236. 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

  237. 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

  238. 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

  239. 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.

  240. 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.

  241. 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.

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

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

  243. 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.

  244. 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.

  245. 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.

  246. 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.

  247. 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.

  248. 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.

  249. 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.

  250. 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.

  251. 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.

  252. 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).

  253. 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

  254. 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

  255. 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

  256. 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

  257. 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.

  258. 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.

  259. 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

  260. 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.

  261. 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

  262. 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

  263. 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

  264. 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.

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

    src/syncterm/CHANGES diff
    Mention the change

  266. 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.

  267. 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.

  268. 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.

  269. 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.

  270. 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

  271. 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

  272. 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) :-)

  273. 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

  274. 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.

  275. 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.

  276. 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

  277. 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?

  278. 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 = ( " " | "," ) { " " }

  279. 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.

  280. 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

  281. 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.

  282. 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.

  283. 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()

  284. 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()

  285. 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.

  286. 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()).

  287. 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.

  288. 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.

  289. 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.

  290. 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.

  291. 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()

  292. 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.

  293. 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".

  294. 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.

  295. 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.

  296. 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.

  297. 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.

  298. 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.

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

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

  300. 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.

  301. 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.

  302. 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.

  303. 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.

  304. 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

  305. 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.

  306. 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.

  307. 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.

  308. 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.

  309. 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.

  310. 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().

  311. 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.

  312. 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.

  313. 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.

  314. 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 *.?-?

  315. 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.

  316. 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.

  317. 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.

  318. 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.

  319. 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.

  320. 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.

  321. 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.

  322. 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.

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

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

  324. 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.

  325. 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!

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

    .gitlab-ci.yml diff
    Reconnect with High Sierra

  327. 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.

  328. 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.

  329. 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.

  330. 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)

  331. 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.

  332. 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.

  333. 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!

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

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

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

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

  336. 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.

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

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

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

    src/comio/comio_nix.c diff
    Fix stupid

  339. 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.

  340. 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.

  341. 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.

  342. 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.

  343. 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

  344. 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

  345. 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.

  346. 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.

  347. 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

  348. 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

  349. 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)

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

    src/syncterm/CHANGES diff
    Update changes

  351. 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.

  352. 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.

  353. 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

  354. 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.

  355. 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?

  356. 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

  357. 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

  358. 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).

  359. 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.

  360. 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

  361. 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

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

    src/syncterm/CHANGES diff
    Add to changes.

  363. 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.

  364. 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

  365. 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

  366. 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

  367. 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.

  368. 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()

  369. 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.

  370. 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

  371. 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.

  372. 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.

  373. 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).

  374. 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)

  375. 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

  376. 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

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

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

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

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

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

    src/conio/sdl_con.c diff
    Fix LOR

  380. 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.

  381. 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.

  382. 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)

  383. 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

  384. 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.

  385. 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.

  386. 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.

  387. 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.

  388. 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...

  389. 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)

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

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

  391. 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

  392. 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.

  393. 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.

  394. 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.

  395. 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).

  396. 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.

  397. 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

  398. 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

  399. 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.

  400. 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.

  401. 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.

  402. 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

  403. 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.

  404. 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

  405. 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

  406. 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.

  407. 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

  408. 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.

  409. 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.

  410. 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.

  411. 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

  412. 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

  413. 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

  414. 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.

  415. 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

  416. 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

  417. 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

  418. 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.

  419. 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

  420. 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

  421. 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.

  422. 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.

  423. 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

  424. 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.

  425. 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.

  426. 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.

  427. 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

  428. 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

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

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

  430. 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.

  431. 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.

  432. 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)

  433. 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

  434. 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

  435. 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.

  436. 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.

  437. 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.

  438. 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

  439. 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).

  440. 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).

  441. 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

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

    src/syncterm/CHANGES diff
    Add change log

  443. 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

  444. 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

  445. 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".

  446. 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

  447. 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

  448. 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.

  449. 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

  450. 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).

  451. 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)

  452. 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.

  453. 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

  454. 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

  455. 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

  456. 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

  457. 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.

  458. 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

  459. 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.

  460. 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. :(

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

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

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

    src/syncterm/syncterm.ico diff
    Add missing icon

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

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

  464. 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).

  465. 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.

  466. 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

  467. 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

  468. 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

  469. 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

  470. 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

  471. 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]

  472. 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

  473. 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)

  474. 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

  475. 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.

  476. 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

  477. 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

  478. 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.

  479. 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

  480. 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

  481. 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).

  482. 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

  483. 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.

  484. 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).

  485. 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

  486. 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.

  487. 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.

  488. 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.

  489. 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.

  490. 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.

  491. 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.

  492. 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.

  493. 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

  494. 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

  495. 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

  496. 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.

  497. 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.

  498. 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

  499. 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!

  500. 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.

  501. 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).

  502. 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.

  503. 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.

  504. 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.

  505. 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. :(

  506. 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.

  507. 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.

  508. 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

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

    src/syncterm/CHANGES diff
    Log the changes.

  510. 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

  511. 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.

  512. 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

  513. 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.

  514. 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.

  515. 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).

  516. 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.

  517. 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.

  518. 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.

  519. 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.

  520. 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

  521. 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.

  522. 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.

  523. 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

  524. 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.

  525. 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

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

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

  527. 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.

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

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

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

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

  530. 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

  531. 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)

  532. 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.

  533. 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. :(

  534. 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.

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

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

  536. 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.

  537. 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.

  538. 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).

  539. 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. :(

  540. 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.

  541. 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.

  542. 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.

  543. 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)

  544. 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.

  545. 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'

  546. 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

  547. 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.

  548. 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

  549. 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.

  550. 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.

  551. 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

  552. 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()

  553. 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.

  554. 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)

  555. 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

  556. 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.

  557. 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).

  558. 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

  559. 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.

  560. 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.

  561. 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.

  562. 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.

  563. 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().

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

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

  565. 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

  566. 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)

  567. 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 ;

  568. 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

  569. 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

  570. 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

  571. 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

  572. 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.

  573. 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.

  574. 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.

  575. 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.

  576. 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.

  577. 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!

  578. 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.

  579. 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.

  580. 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.

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

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

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

    src/syncterm/CHANGES diff
    Remove duplicated item

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

    src/syncterm/CHANGES diff
    Mention GDI AltGr fix

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

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

  585. 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

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

    src/conio/win32gdi.c diff
    Whoops.

  587. 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.

  588. 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.

  589. 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).

  590. 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.

  591. 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.

  592. 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.

  593. 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!

  594. 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.

  595. 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.

  596. 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.

  597. 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

  598. 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.

  599. 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

  600. 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>.

  601. 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()

  602. 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().

  603. 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.

  604. 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.

  605. 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.

  606. 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.

  607. 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.

  608. 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.

  609. 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.

  610. 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.

  611. 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.

  612. 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.

  613. Deucе
    Thu Oct 10 2024 20:53:39 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Ring the changes

  614. Deucе
    Thu Oct 10 2024 20:50:54 GMT-0700 (PDT)
    Modified Files:
    

    src/xpdev/CMakeLists.txt diff
    Remove spurious brace

  615. 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.

  616. 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.

  617. 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.

  618. 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.

  619. 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

  620. 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).

  621. 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

  622. mcmlxxix
    Sat Oct 05 2024 13:24:44 GMT-0700 (PDT)
    Modified Files:
    

    xtrn/bublbogl/game.js diff
    remove debug logging bits :|

  623. 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

  624. 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

  625. 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.

  626. Deucе
    Thu Oct 03 2024 09:33:57 GMT-0700 (PDT)
    Modified Files:
    

    src/sbbs3/js_socket.c diff
    Document the connect() callback thing.

  627. 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.

  628. Deucе
    Wed Oct 02 2024 21:15:09 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Mention CMake changes

  629. 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.

  630. 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.

  631. 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

  632. Deucе
    Wed Oct 02 2024 11:56:58 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Add NetBSD fix note

  633. 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.

  634. 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.

  635. 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

  636. 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).

  637. Deucе
    Tue Oct 01 2024 23:27:46 GMT-0700 (PDT)
    Added Files:
    

    src/sftp/CMakeLists.txt diff
    Add CMakeLists.txt for sftp

  638. 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

  639. 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).

  640. 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.

  641. 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.

  642. 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.

  643. 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.

  644. Deucе
    Tue Oct 01 2024 11:20:04 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Document more changes.

  645. 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.

  646. 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.

  647. 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.

  648. 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.

  649. 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

  650. 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. :(

  651. 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.

  652. 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.

  653. 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

  654. 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.

  655. Deucе
    Mon Sep 30 2024 15:05:42 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Add note about WM_SETCUSOR fix

  656. 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.

  657. 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

  658. Deucе
    Sun Sep 29 2024 19:23:45 GMT-0700 (PDT)
    Modified Files:
    

    src/conio/x_events.c diff
    Fix warnings in last commit.

  659. 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.

  660. 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.

  661. 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.

  662. 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. :(

  663. Deucе
    Sun Sep 29 2024 18:09:50 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/term.c diff
    Fix last commit.

  664. 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.

  665. 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. :(

  666. Deucе
    Sun Sep 29 2024 14:37:18 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Update CHANGES for rc2

  667. 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.

  668. 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.

  669. 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).

  670. 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.

  671. 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.

  672. 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.

  673. 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. :(

  674. 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.

  675. 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.

  676. 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

  677. 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!

  678. 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.

  679. Deucе
    Thu Sep 26 2024 09:33:23 GMT-0700 (PDT)
    Modified Files:
    

    src/syncterm/CHANGES diff
    Mention insert mode change

  680. 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.

AuthorCommitsLatest
Rob Swindell353Mon Dec 09 2024 18:45:26 GMT-0800 (PST)
Eric Oulashin18Sun Dec 08 2024 18:59:33 GMT-0800 (PST)
Deucе303Sun Dec 08 2024 11:53:58 GMT-0800 (PST)
Craig Hendricks1Sat Oct 26 2024 15:15:39 GMT-0700 (PDT)
mcmlxxix5Sat Oct 05 2024 13:24:44 GMT-0700 (PDT)

For older commits (in CVS), click here

Dynamically generated in 512 milliseconds