Skip to content
Snippets Groups Projects
  1. Apr 11, 2019
  2. Apr 10, 2019
  3. Apr 09, 2019
  4. Apr 06, 2019
    • rswindell's avatar
      MsgBase.put_msg_header() now updates the internal (smbmsg_t) representation · 53c677c3
      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.
      53c677c3
    • rswindell's avatar
      New MsgBase method: get_index() - returns an array of all message index records · 75417a26
      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.
      75417a26
  5. Apr 05, 2019
    • rswindell's avatar
      There appears to be a few places in this file that treat ^A^A as a literal · 0a5ea2e4
      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.
      0a5ea2e4
  6. Apr 02, 2019
  7. Apr 01, 2019
  8. Mar 31, 2019
  9. Mar 26, 2019
  10. Mar 24, 2019
    • rswindell's avatar
      New JS bbs methods: · b4d31140
      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.
      b4d31140
    • rswindell's avatar
    • rswindell's avatar
      Updated JS doc strings. · 079f2e69
      rswindell authored
      079f2e69
    • rswindell's avatar
      Support netmail addresses (e.g. Internet e-mail addresses) longer than the 35 · cd447d36
      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()
      cd447d36
    • rswindell's avatar
      Rename the 2 outbound interface keys that were introduced by Deuce in the big · cd883edd
      rswindell authored
      IPv6 commit of 2015:
      "OutgoingV4" is now "OutboundInterface" and
      "OutgoingV6" is now "OutboundV6Interface" (which is not yet used)
      cd883edd
  11. Mar 22, 2019
    • rswindell's avatar
      Use default calling convention (__cdecl) for DLL funcs in Borland builds. · bf82a889
      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).
      bf82a889
  12. Mar 19, 2019
    • rswindell's avatar
      37e55ca3
    • rswindell's avatar
    • rswindell's avatar
      Fix the off-by-one error in the COLS kludge line parsing logic. · 3da89611
      rswindell authored
      Don't store a columns value of 0 (the default).
      Use SAFEPRINTF in place of sprintf() in parse_control_line().
      3da89611
    • rswindell's avatar
      Export/import the original message editor column width (when known) as a new · 3a1923d8
      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.
      3a1923d8
  13. Mar 16, 2019
    • rswindell's avatar
      When adding a listfile (e.g. files.bbs), be a bit more strict: · e27d4a8f
      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.
      e27d4a8f
Loading