1. 11 Apr, 2019 4 commits
  2. 10 Apr, 2019 9 commits
  3. 09 Apr, 2019 10 commits
  4. 08 Apr, 2019 1 commit
    • nightfox's avatar
      More use of get_index() if available, to help speed things up a bit. Also,... · d12a7c46
      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.
      d12a7c46
  5. 07 Apr, 2019 1 commit
    • nightfox's avatar
      SlyVote v1.02: Now uses the new get_index() messagebase function, if... · 44d863cd
      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.
      44d863cd
  6. 06 Apr, 2019 3 commits
    • 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
      smb_copymsgmem() fix: · 3debb32c
      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.
      3debb32c
    • 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
  7. 05 Apr, 2019 1 commit
    • 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
  8. 02 Apr, 2019 2 commits
  9. 01 Apr, 2019 2 commits
  10. 31 Mar, 2019 3 commits
  11. 26 Mar, 2019 2 commits
  12. 24 Mar, 2019 2 commits
    • rswindell's avatar
      The draw() and draw_bin() methods now support an additional, optional 'top' · 50186717
      rswindell authored
      argument which specifies that the avatar should be drawn at the top of the
      screen.
      50186717
    • 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