Skip to content
Snippets Groups Projects
  1. Jul 06, 2019
  2. May 04, 2019
    • rswindell's avatar
      smb_getplaintext and smb_getmsgtxt(...,GETMSGTXT_PLAIN) will now fall-back · 284b31b3
      rswindell authored
      to a text/html part of a multi-part MIME encoded message if no text/plain part
      exists.
      Changed smbmsg_t.charset to smbmsg_t.text_charset.
      Added smbmsg_t.text_subtype (e.g. "plain" or "html").
      Fixed issue with parsing parsed plain-text when the charset was the last
      element of the MIME-part header.
      MIMEDecodedPlainTextFmt text.dat line now includes the text sub-type arg
      284b31b3
  3. May 03, 2019
  4. May 02, 2019
    • rswindell's avatar
      @-code changes: · 0868c5d9
      rswindell authored
      Expanded codes will not *not* go beyond the terminal column width (minus 1).
      If you need the old/wrap behavior, add a "-W" modifier to your @-code.
      If a length value is specified with -W, it is ignored.
      
      - MSG_TO, MSG_FROM, MSG_SUBJECT now reflect the header values passed
        to sbbs_t::show_msghdr(), JS bbs.show_msg_header() and not necessarily the
        actual stored (e.g. MIME-encoded) header values.
      
      New codes:
      - MSG_CC - reflect a message's CC list, if it has one
      - DATETIMEZONE - combines DATETIME and TIMEZONE in one string
      0868c5d9
    • rswindell's avatar
      Added new text.dat string: MsgCarbonCopyList · f3dfd635
      rswindell authored
      used to display a CC list, when applicable.
      f3dfd635
    • rswindell's avatar
      Restore accidentally removal of strchr (!). · 8d8ee163
      rswindell authored
      8d8ee163
    • rswindell's avatar
      Support the passing of optional 'subject', 'from', and 'to' values to · 4fc5b9a5
      rswindell authored
      show_msghdr(), over-riding the values from the passed smbmsg_t. This is useful
      for, say, displaying MIME-decoded values rather than the MIME-encoded versions
      of the header fields that you often find in email today.
      4fc5b9a5
  5. Apr 30, 2019
  6. Apr 11, 2019
    • rswindell's avatar
      Define and use sbbs_t::msghdr_tos (exposed via JS as · 0ad2c4a2
      rswindell authored
      console.msghdr_top_of_screen):
      a hack to let scripts know whether the most-recently displayed message header
      was displayed on the top of the terminal screen (or not). This allows us to
      show avatars at the top of the screen when the header is up there, rather than
      relevative to the bottom of the header (the pos can vary, depending on stuff).
      0ad2c4a2
  7. Apr 10, 2019
  8. 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
  9. Oct 26, 2018
  10. Oct 03, 2018
  11. Jul 24, 2018
    • rswindell's avatar
      Singificantlly improve message scan pointer initialization (e.g. for new · 264cb38c
      rswindell authored
      users) and adjusting scan ptrs by date or set to "Last msg" while online:
      - speed (on my system, reduced from 12 to < 2 seconds)
        This involved 2 enhancements: check msgbase index file timestamp (fast)
        before opening any files. When opening the msgbase, just open the index
        file (no other msgbase files) - required new smblib function: smb_open_index.
      - fixed off-by-one when setting by date (when setting the new-scan ptr to
        Jan-1-2018, you want that first message posted on/after Jan-1-2018 to be
        found as "new", not the first message posted *after* that date.
      - re-added the fixmsgptrs() call in putmsgptrs(), inadvertently removed
        in the .ixb -> .ini ptr storage update in rev 1.192 of userdat.c.
      264cb38c
  12. Jan 12, 2018
    • rswindell's avatar
      Added a synchronization comment. · 045e4055
      rswindell authored
      045e4055
    • rswindell's avatar
      Introduce new text.dat line: · 665933e8
      rswindell authored
        MsgHdrBodySeparator
      This is display between the msg header text.dat lines and the message body
      (previously, just hard-coded to a blank line).
      This enables us to now execute showmsgavatar.js much faster than loading
      msghdr.asc file, and using it to execute showmsghdr.js.
      So... if you're upgrading to this build, you can get rid of msghdr.asc and
      get a message viewing performance boost. The results should look the same
      (but the message header will display immediately, with no discernable delay).
      665933e8
  13. Jan 09, 2018
  14. Jan 07, 2018
  15. Dec 08, 2017
    • rswindell's avatar
      Adjustment to change introduced in rev1.67: · 676c18f4
      rswindell authored
      When displaying message body text, skip all initial ocurrences of CR or LF
      (rather than all initial white-space). Some people use white-space for
      centering or justifying blocks of text and we don't want to mess up the
      presentation of their messages.
      676c18f4
  16. Nov 28, 2017
  17. Nov 24, 2017
  18. Nov 13, 2017
    • rswindell's avatar
      New feature: control of SPAM visibility when reading mail on the Terminal · d18bd3bd
      rswindell authored
      Server via the new 'V' command from the Reading Mail prompt allows you to
      toggle between all mail (including SPAM, the default), SPAM only, or HAM only.
      Also added a new '/' (search text) command from the reading mail prompts.
      Mail imported before the mailsrvr added support (recently) for the MSG_SPAM
      attribute flag will not be counted/filtered as SPAM.
      SBBSecho will have a commit (next) to support the new loadmail() usage, it
      will not compile until then.
      d18bd3bd
  19. Nov 27, 2016
    • rswindell's avatar
      Added new sub-scan mode: SCAN_POLLS (used to scan sub-boards for posted polls) · b14e9904
      rswindell authored
      Introduced a better progress indicator (similar to poll results), using the
      backfill() method. 2 new attr.cfg fields allow the progress indicator colors to
      be configured separately from poll results (though they default to the same
      white on magenta). This new progress indicator is used when loading msg ptrs
      and scanning for votes. I will be using it while performing other searches
      (e.g. file libraries/dirs) as well.
      b14e9904
  20. Nov 21, 2016
  21. Nov 19, 2016
  22. Nov 18, 2016
    • rswindell's avatar
      Introduced 2 new poll concepts: · 0ac4f937
      rswindell authored
      - Closures (polls can be closed for new voting by the pollster)
      - Results can have configurable visibility:
        a. Only to voters (and the pollster) - the default
        b. Everyone
        c. Everyone once the poll has closed
        d. Only the pollster
      
      Changes to smb_getmsgtxt():
      Main change: poll questions can now be quoted when replying to a posted poll
      (the results cannot be quoted).
      Also: there's now automatically a blank line inserted between comment header
      fields and poll answers or the msg body text.
      Also: upon any malloc failure, the function now returns NULL.
      New functions: smb_msg_is_from() and smb_addpollclosure().
      0ac4f937
  23. Nov 16, 2016
    • rswindell's avatar
      loadmsg() now returns < 0 on error, >= 0 on success, this change was necessary · 742f1901
      rswindell authored
      to be able to delete messages that have no hfields, for example, with sub-op
      'D' command.
      Now support polls with comments (displayed before the poll answers).
      Poll results/statistics are only displayed to sub-ops and users who have voted
      already. This may be optoinal behavior determined by the pollster in the future.
      Sub-ops can now add comments to any post using the 'A' command from the
      [O]perator menu - use with caution.
      742f1901
    • rswindell's avatar
      Poll display support: · ae7c2f8b
      rswindell authored
      * uses new text.dat strings:
      - PollVoteNotice
      - PollAnswerNumber
      - PollAnswerFmt
      - PollAnswerChecked
      
      The actual answer of a poll is still crude (uses the old crufty uselect scheme)
      and doesn't support multiple-choice polls. This will be addressed.
      ae7c2f8b
  24. Nov 15, 2016
  25. Nov 10, 2016
    • rswindell's avatar
      Message voting via QWKnet is now fully implemented: · 74902cee
      rswindell authored
      - Users can be restricted from voting with the 'V' restriction
      - Sub-boards can be disalbled for voting in SCFG
      - VOTING.DAT can be include/excluded from QWK packets via user cfg
        (when a VOTING.DAT is received in a REP, the user cfg flag is auto-set)
      - Adds several new text.dat lines (if not present in yours, uses the default)
      
      What's not yet implemented:
      - Notification of votes on your posted messages
      - Method to view/audit all votes
      - Polling
      - Any special handling to auto-exclude votes from msg-related JavaScripts
      74902cee
  26. Dec 10, 2015
    • rswindell's avatar
      Change TO_NET and FROM_NET @-code logic and revert last change to show_msghdr() · 9b5374c4
      rswindell authored
      - it actually *is* an expected condition that a to_net.addr or from_net.addr
      msg header field is populated with a valid address (string) even though the
      to_net.type or from_net.type value is NET_NONE.
      
      The nntpservice.js and newslink.js modules rely on this behavior to display
      and export local NNTP-posters' email addresses in message headers, but still be
      able to identify newslink-imported messages as *not* local (the from_net.type =
      NET_INTERNET) and thus not export them back to the network.
      
      This was not the original intention behind these header fields in SMB, but it
      was retrofitted to support this condition 10+ years ago and I forgot.
      9b5374c4
  27. Dec 07, 2015
    • rswindell's avatar
      Change to sbbs_t::show_msghdr(): · 80c92968
      rswindell authored
      Don't include the to/from network-arddress in the displayed header if the
      net-type value is NET_NONE (not a normal/expected combination).
      80c92968
  28. Dec 04, 2015
Loading