- Apr 10, 2019
-
-
rswindell authored
-
rswindell authored
download_file_attachments() and expose via new JS "bbs" method. Currently this only reall works for the mail base.
-
rswindell authored
-
rswindell authored
since the smb_t already contains a subnum and we were passing a pointer to the sbbs_t::smb to lower-level called-functions anyway. Let's not mix-up class-scope with function arguments.
-
- Apr 09, 2019
-
-
rswindell authored
-
rswindell authored
Fix the missing carriage-returns in the shell (bash) prompts by always building with the stderr logging support (in *nix builds) - but run-time disable as desired via EX_NOLOG option. I've been wanting to get rid of that "XTERN_*" macro for a long time anyway (it's "XTRN" damn-it!). :-)
-
rswindell authored
Added EX_NOLOG to *nix shell mode - don't log the shell output.
-
rswindell authored
-
rswindell authored
- Renamed EX_INR and EX_OUTR to EX_STDIN and EX_STDOUT (with duplicate variables for backwards compatibility) - Removed long-obsolete EX_OUTL, EX_SWAP - Added (new) EX_NOLOG
-
rswindell authored
intercepted output to stderr won't be logged.
-
rswindell authored
Since QUOTEWRAP *is* used, just define that bit flag specifically.
-
rswindell authored
list (smb_list) for thread-safe SMB stack storage.
-
rswindell authored
and frankly could cause all kinds of havok with multiple thread (e.g. nodes) pushing and popping SMB's concurrently. eek.
-
rswindell authored
-
- Apr 08, 2019
-
-
nightfox authored
More use of get_index() if available, to help speed things up a bit. Also, made a further optimization: when checking a sub-board if it has polls, check in reverse rather than forward. Since polls & voting is a relatively recent feature in Synchronet, hopefully it should finish faster going in reverse.
-
- Apr 07, 2019
-
-
nightfox authored
SlyVote v1.02: Now uses the new get_index() messagebase function, if available, for getting the message index objects when determining if a sub-board has polls (in the subBoardHasPolls() function). get_index() is faster than iterating through all messages and calling get_msg_index() for each message.
-
- Apr 06, 2019
-
-
rswindell authored
of the message header so that functions that need it (e.g. bbs.show_msg_header) don't use/show stale data. This change requires the updated smb_copymsgmem() which clear/sets message convenience pointers upon copying hfields from one message header to another.
-
rswindell authored
Did not clear/set convenience pointers (e.g. msg.subj), so they would point to the source message hfield_dat buffers which may be freed or garbage. Apparently nothing that used smb_copymsgmem() used the convenience pointers (before now), so it hasn't been a problem before now. <shrug> It became a problem becaue I'm going to use this function in js_put_msg_header to fix a problem where the underlying smbmsg_t representation is not current even after MsgBase.put_msg_header() is used.
-
rswindell authored
(objects, in the same format as returned by the get_mgs_index() method) much faster than iterating through a loop, calling the get_msg_index() method for each message. If you want to load messages (e.g. headers, text), filtering by criteria found in the message index (attributes, to/from user, subject CRC) loading a list of indexes and filtering before calling get_msg_header() for the selected messages is much faster than previously available MsgBase object methods (e.g. get_all_msg_headers()). If you don't need to filter the loaded messages (you really want *all* message headers), then get_index() is of no benefit to you, the script-writer. This is most useful for the "mail" msgbase where selective loading of messages is more common.
-
- Apr 05, 2019
-
-
rswindell authored
Ctrl-A (ASCII 1) char. This is wrong. A literal Ctrl-A sequence is ^AA. I'm only addressing one of those instances in this commit since it *also* appears to be an off-by-one bug where it's treating *all* Ctrl-A sequences as though they were ^AA - so just #ifdef'ing out until Deuce takes a look at this.
-
- Apr 02, 2019
- Apr 01, 2019
-
-
rswindell authored
js_put_msg_header (MsgBase.put_msg_header) - we can't free the memory associated with 'gotten' msg header. Just use the header offset from the header retrieved via MsgBase.get_msg_header() - for fast lookup. Also fixed an innocuous extra increment of 'n' in argv/argc loop.
-
rswindell authored
-
- Mar 31, 2019
- Mar 26, 2019
- Mar 24, 2019
-
-
rswindell authored
argument which specifies that the avatar should be drawn at the top of the screen.
-
rswindell authored
- bbs.show_msg() - bbs.show_msg_header() Re-worked the JS bbs.netmail() implementation sbbs::show_msg(), show_msghdr(), msgtotxt() now take an smb_t* argument (don't use the pseudo-global 'smb' in these functions any longer) sbbs_t::putmsg() and JS console.putmsg() now accept an optional orig_columns argument to specify the original column width of a text for intelligent re-word-wrapping (e.g. as taken from a message header field). Previously, the original-column value was hard-coded to 80 columns (technically, 79). sbbs_t::show_msghdr() no longer sends a CRLF if the cursor is already at the top-of-screen (TOS). sbbs_t::show_msg() now uses the stored "columns" msg header fields to pass to putmsg() to intelligently re-word-wrap message bodies for display. sbbs_t::show_msg() and msgtotxt() return bool now instead of void. JS MsgBase.get_all_msg_headers() now supports an optional "expand_fields" argument (defaults to true). I contemplated just getting rid of the (few) expanding header fields (more like default-value-header fields, like 'id'), but decided against it, at least for now. JS MsgBase.put_msg_header(), the "number_or_offset" argument is optional and not needed if a header object argument is provided. Make this clear in this JS docs for this method Note: I sat on this commit for a while because I noticed occasional errors like this: Node 1 <Digital Man> !ERROR 2 (No such file or directory) (WinError 0) in readmsgs.cpp line 217 (sbbs_t::loadposts) locking "path/to/sub" access=-100 info=smb_locksmbhdr msgbase not open started cropping up after introducing these changes and which I never root-caused. But after a clean-build and waiting a week, I haven't seen it again, so hopefully it was just a incomplete rebuild issue and not a new bug.
-
rswindell authored
-
rswindell authored
-
rswindell authored
character limit imposed by FidoNet message "to" fields, in sbbs_t::netmail(). Use the regarding-message from_net field when a 'to' field is not passed to sbbs_t::netmail()
-
rswindell authored
IPv6 commit of 2015: "OutgoingV4" is now "OutboundInterface" and "OutgoingV6" is now "OutboundV6Interface" (which is not yet used)
-
- Mar 23, 2019
-
-
nightfox authored
SlyVote version 1.01: Changed "voting area" verbage to "sub-board". Updated the main screen to show the number of polls the user has voted on & the number remaining. Updated the sub-board choosing to allow choosing the message group first, and load the sub-board information (such as whether each sub-board has polls) only when needed, rather than loading all the configured sub-boards, to help cut down the loading time when choosing a sub-board.
-
nightfox authored
Added the AddAdditionalQuitKeys() method, to add additional key characters to quit out of the meu in addition to ESC. It takes an array of key characters as strings. For example: lbMenu.AddAdditionalQuitKeys(["q", "Q"]);
-
- Mar 22, 2019
-
-
rswindell authored
Fix age-old bug with Borland/C++Builder built executables (Windows): to achieve compatibility with the default __cdecl symbol naming rules of Visual C++, we were using __stdcall convention for DLL functions when building code with Borland/C++Builder tools and using the default (__cdecl) convention when building with Microsoft (Visual C++) tools. Although this allowed symbols to be located when linking, the calling convention mismatch caused a stack cleanup issue that very rarely manifested itself in a bug (e.g. exception of some kind in sbbsctrl.exe, usually). Mismatching the calling conventions was unintentional (I thought the default for MSVC DLL functions was __stdcall) - but since the calls to MSVC-Built DLL functions worked 99% of the time, I didn't realize there was an underlying issue. So I now work-around the DLL symbol naming mismatch using a command-line option (-a) passed to implib in src/sbbs3/ctrl/makelibs.bat I had previously worked-around exceptions when calling MSVC DLL functions in sbbsctrl.exe by calling the problematic DLL functions from a timer tick handler rather than a user control (e.g. button) event handler. Those work-arounds can now be removed. The erroneous "DLLCALL" definition design pattern was replicated (copy/pasted) to many other projects' header files in cvs.synchro.net. In the future, we may want to just remove all instances of *CALL since they now serve no purpose and appear as useless "Kruft" (but do allow us to more-easily globally change DLL function calling conventions if/when necessary in the future).
-
rswindell authored
-
- Mar 20, 2019
-
-
rswindell authored
the list database (sbbslist.json) for external processing/modification. When run via jsexec (as intended), jsexec will return 0 if the lock/unlock operation was successful, -1 otherwise. It would be wise to check the errorlevel/return value of jsexec for successful lock before operating on the list file.
-