- Apr 11, 2019
-
-
rswindell authored
-
rswindell authored
-
rswindell authored
strrchr() here to find terminating chars (quotes, parens, brackets). e.g. '"Joe Shmoe" <joe@shmoe.com>, "Fred Smith" <fred@smith.org>' would be parsed as 'Joe Shmoe" <joe@shmoe.com>, "Fred Smith'.
-
rswindell authored
'data_length', but not always (e.g. may include text from some header fields, excludes any non-text data fields). Mark 'data_length' msg header property as read-only.
-
rswindell authored
-
rswindell authored
-
rswindell authored
back in 1993, but were never needed/used.
-
- Apr 10, 2019
-
-
rswindell authored
-
rswindell authored
sendfile() no longer logs "attachment" when a file description is provided.
-
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
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
-
- 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
(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
-
-
rswindell authored
(use the sysop 'D'elete command to quickly delete a range of messages).
-
- 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
- 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 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).
-
- Mar 19, 2019
-
-
rswindell authored
-
rswindell authored
-
rswindell authored
Don't store a columns value of 0 (the default). Use SAFEPRINTF in place of sprintf() in parse_control_line().
-
rswindell authored
FidoNet "Kludge line" (control line): "\1COLS: <columns>\r" where <columns> is a value between 0 and 255 and a value of 0 is special, meaning "unknown" and not normally specified (this is the default assumption when there is no "columns"/COLS header field). When a message editor column width is unknown, is is normally assumed to have been 80 columns for word-wrapping/re-wrapping purposes when displaying the message text. This feature has worked well for Synchronet's QWK networking (i.e. there are far fewer instances of word-wrapping/re-wrapping issues when viewing messages on DOVE-Net), so I decided to support this message header field over FTN (SBBSecho) as well. Hopefully other FidoNet software authors will notice and support this header field in the future as there are still numerous examples of word-wrap issues when viewing FidoNet messages. At least Synchronet <-> Synchronet systems over FidoNet should be able to re-wrap and display all message text nicely when both ends support this kludge line. Incremented SBBSecho version number to 3.07.
-
- Mar 16, 2019
-
-
rswindell authored
- filenames must begin with an alpha-numeric char. Might want to relax this in the future if it's a problem, but generally filenames on BBSes do begin with alpha-numeric characters and this will help us to identify an ignore "garbage" filenames in listfiles. - always check if the file actually exists, even when parsing the length of the file from the listfile. This will also help us to ignore garbage filenames. - also removed an inexplicable unpadfname() call. Filenames in file lists should *not* normally be padded (like "this .txt") - so I'm not sure why this was in there. Perhaps for lists generated from filelist.exe (?). Anyway, out of an abundance of caution, removed it. Padded filenames are going away.
-