Skip to content
Snippets Groups Projects
  1. Mar 03, 2022
  2. Feb 11, 2022
  3. Apr 04, 2021
    • Rob Swindell's avatar
      A poll() failure with EINTR does not mean a socket is closed. · 925e3b0a
      Rob Swindell authored
      This won't impact Synchronet as it has a separate signal handling
      thread, but we still need to behave properly for processes that
      don't.  I'm also saying that ENOMEM does not indicate a disconnection,
      though it may be better to pretend it was disconnected...
      925e3b0a
  4. Mar 04, 2021
    • Rob Swindell's avatar
      Ignore filenames in subject that aren't valid filenames, e.g. "Fwd:" · e6f7ab9c
      Rob Swindell authored
      There were 2 bug identified by issue #230:
      - the "Fwd:" prefix being added to the message subject was being treated as a filename. I first thought to just remove this subject tag, but then thought it best to just ignore obviously invalid filenames in the subject in the first place.
      
      - when forwarding files to a netmail address, the 'to' extension (user number) is 0, so the file will be in the data/file/####.out directory of the sender instead.
      
      We have 4 places (at least) where the message subjects are parsed and only one of those places currently supports quoted filenames (e.g. with spaces in them) and some of the others (e.g. QWK) don't support multiple filenames at all. That should be fixed.
      e6f7ab9c
  5. Feb 15, 2021
  6. Jan 21, 2021
  7. Dec 20, 2020
  8. Dec 10, 2020
  9. Dec 09, 2020
    • Rob Swindell's avatar
      Some message attributes (auxiliary and network) weren't shown · 9de1b02f
      Rob Swindell authored
      Copy some code from atcodes.cpp to show all the aux and network attributes.
      
      Also, the MsgAttr text.dat string only contains 17 %s's but we were passing 18, so the last attribute (KillSent) would never be shown.
      
      Instead, split this into 3 strings and just pass those 3 strings to the MsgAttr format string along with a ton of blank strings. So we don't have to keep updating the MsgAttr text.dat string every time we add more attribute flags (that was kind of ridiculous).
      9de1b02f
  10. Sep 27, 2020
  11. Aug 16, 2020
  12. May 08, 2020
    • rswindell's avatar
      Add mouse hot spot support: · 87c9982c
      rswindell authored
      - hot spots are clickable screen areas (e.g. in menus and prompts) that   generate key-strokes
      - commands may be from 1 to 127 ASCII-characters in length
      - currently using the X10 mouse reporting mode, may change
      - all mnemonics strings (~Example) are automatically hot-spots
      - The new ~ @-code defines a hot spot
      - Any screen-clear operation clears all hot spots
      - sbbs now tracks the current screen (cursor position) row
      - eliminated the old "tos" (top-of-screen) boolean (row == 0 indicates "tos")
      - created an sbbs_t::ungetstr() method
      - keep track if in pause (hit a key) prompt, for special mouse behavior
      
      new JS console object:
      - row property
      - tos property is now read-only (and deprecated)
      - new methods:
        add_hotspot()
        clear_hotspots()
        scroll_hotspots()
      
      redrwstr() gets some UTF8 touch-ups as part of this commit. <shrug>
      87c9982c
  13. Oct 08, 2019
  14. Aug 24, 2019
  15. Aug 17, 2019
  16. Aug 08, 2019
  17. Aug 07, 2019
  18. Aug 04, 2019
    • rswindell's avatar
      More UTF-8 fun: · 3313a87e
      rswindell authored
      - bstrlen() moved to sbbs_t, accepts an option pmode argument so it can account
        for UTF-8 encoded strings correctly
      - JS console.strlen() now accepts an optional pmode argument (e.g. P_UTF8)
      - Renamed sbbs_t::utf8_to_cp437 to sbbs_t::print_utf8_as_cp437
      - Create/use msghdr_hfield() to perform UTF-8->CP437 conversions as needed for
        printing/copying UTF-8 encoded message header fields.
      - Defined XTRN_UTF8 misc setting flag. If a message editor does *not* have this
        flag, it is assumed to *not* support UTF-8. Will likely use this for UTF-8
        doors as some point too (none known to exist, yet).
      3313a87e
  19. Aug 03, 2019
  20. Aug 01, 2019
  21. Jul 30, 2019
  22. Jul 26, 2019
  23. Jul 06, 2019
  24. 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
  25. May 03, 2019
  26. 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
  27. Apr 30, 2019
  28. 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
  29. Apr 10, 2019
  30. 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
Loading