Synchronet now requires the libarchive development package (e.g. libarchive-dev on Debian-based Linux distros, libarchive.org for more info) to build successfully.

  1. 11 Apr, 2019 1 commit
    • 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
  2. 10 Apr, 2019 3 commits
  3. 24 Mar, 2019 1 commit
    • 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
  4. 26 Oct, 2018 1 commit
  5. 03 Oct, 2018 1 commit
  6. 24 Jul, 2018 1 commit
    • 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
  7. 12 Jan, 2018 2 commits
    • 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
  8. 09 Jan, 2018 1 commit
  9. 07 Jan, 2018 1 commit
  10. 08 Dec, 2017 1 commit
    • 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
  11. 28 Nov, 2017 2 commits
  12. 24 Nov, 2017 1 commit
  13. 13 Nov, 2017 1 commit
    • 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
  14. 27 Nov, 2016 1 commit
    • 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
  15. 21 Nov, 2016 4 commits
  16. 19 Nov, 2016 1 commit
  17. 18 Nov, 2016 1 commit
    • 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
  18. 16 Nov, 2016 2 commits
    • 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
  19. 15 Nov, 2016 1 commit
  20. 10 Nov, 2016 1 commit
    • 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
  21. 10 Dec, 2015 1 commit
    • 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
  22. 07 Dec, 2015 1 commit
    • 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
  23. 04 Dec, 2015 2 commits
  24. 26 Nov, 2015 2 commits
    • rswindell's avatar
      New long-sought feature: · 65a68990
      rswindell authored
      Sysop can set the number of days-worth of new messages that new users will
      see in their first new-message scan (the default is 0, no new messages).
      This does lengthen the amount of time that the first "Loading message pointers"
      is displayed (it has to go and open all the message bases), but at least new
      users are no longer bombarded with thousands of very old messages when they
      answer "Yes" to the "Scan for New Messages" prompt. This setting is in
      SCFG->System->New User Values->Days of New Messages. Set it to some really
      high number (maximum of 9999) if you want the old behavior.
      65a68990
    • rswindell's avatar
      Enable plain-text only display of MIME encoded messages (posts and email) by · 51bb36a5
      rswindell authored
      default (in the Terminal server), use Raw I/O mode (Ctrl-Z) to toggle this
      behavior off/on (same as word-wrap toggle).
      51bb36a5
  25. 25 Nov, 2015 2 commits
  26. 12 May, 2013 1 commit
  27. 14 Feb, 2013 1 commit
  28. 06 Nov, 2011 1 commit
  29. 04 Nov, 2011 1 commit