1. 22 Feb, 2022 1 commit
  2. 05 Feb, 2022 1 commit
  3. 18 Nov, 2021 1 commit
    • Rob Swindell's avatar
      Add text.dat lines for "All" and the List key ('L'), used in quoting · 064b602f
      Rob Swindell authored
      The internal line editor's quoting feature add some hard-coded strings ("Done" and "All") and the (L)ist key was hard-coded. Use the text.dat string (new and pre-existing) for these now.
      
      Also, use the new sbbs_t *_key() methods for referencing the configured key bindings (via text.dat) for these common key-stroke commands.
      Convert the text.dat strings for keys (e.g. YNQP) to uppercase always as well.
      064b602f
  4. 16 May, 2021 1 commit
  5. 04 Apr, 2021 1 commit
    • Rob Swindell's avatar
      A poll() failure with EINTR does not mean a socket is closed. · fcf58640
      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...
      fcf58640
  6. 06 Mar, 2021 1 commit
  7. 18 Feb, 2021 1 commit
  8. 15 Feb, 2021 7 commits
  9. 27 Dec, 2020 2 commits
  10. 10 Dec, 2020 1 commit
    • Rob Swindell's avatar
      Address GCC warning · bc6cddb0
      Rob Swindell authored
      ‘%s’ directive writing up to 255 bytes into a region of size between 103 and 128
      reported by Nelgin.
      bc6cddb0
  11. 06 Nov, 2020 1 commit
    • Rob Swindell's avatar
      Replace ctype.h function calls with new MSVC-safe XPDEV macros · 8a7b7308
      Rob Swindell authored
      I'm fed-up with MSVC assertions in ctype functions (e.g. isdigit, isprint, isspace, etc.) when called with out-of-range (e.g. negative) values.
      
      This problem only affects MSVC debug builds, but if you run them (like I do), these things are like little time bombs that can drive you crazy (knocking your board out of service).
      
      The new macros names are bit more descriptive as well.
      8a7b7308
  12. 19 Sep, 2020 1 commit
  13. 13 Sep, 2020 1 commit
  14. 12 Sep, 2020 1 commit
    • Rob Swindell's avatar
      Don't allow invalid netmail-forwarding addresses · a2f5990b
      Rob Swindell authored
      Don't prompt a new user to forward email to their netmail address if they
      provided an invalid netmail address (not supported by the system).
      
      If a sysop has an invalid netmail address setup for forwarding, don't try to
      forward email (or new user feedback) to that address.
      
      Re-ordered the new user terminal questions a little bit (ask for the backspace
      key first, to get earlier manual PETSCII detection). I'm not sure why I was
      enabling AUTOTERM along with PETSCII before. Removed that as PETSCII cannot
      be auto-detected.
      a2f5990b
  15. 07 Sep, 2020 1 commit
    • Rob Swindell's avatar
      Fix observed race-condition resulting in the HOSTNAME @-code being blank. · dee21ed6
      Rob Swindell authored
      Eliminate the hack in each server where it will over-write startup host_name
      (with the configured Internet email address), if it's blank. This hack was
      subject to a race condition where the parent app (e.g. sbbsctrl.exe) would
      clear or re-initialize the host_name after the sever threads had initialized.
      Instead, just use a function which will return either the startup->host_name
      or (fallback to) scfg.inet_addr.
      dee21ed6
  16. 16 Aug, 2020 1 commit
  17. 01 May, 2020 1 commit
  18. 28 Apr, 2020 1 commit
  19. 24 Apr, 2020 3 commits
  20. 23 Apr, 2020 2 commits
  21. 18 Aug, 2019 1 commit
  22. 02 Aug, 2019 1 commit
  23. 08 Jul, 2019 2 commits
  24. 12 Apr, 2019 1 commit
    • rswindell's avatar
      Define and use a new external message editor option: SAVECOLUMNS · ee00b5f8
      rswindell authored
      (default: off) - when enabled, the current terminal width (columns) will be
      saved in the msg header.
      When using the internal msg editor or raw intput mode, the columns are always
      saved in the message editor. fseditor.js should have this option enabled.
      ee00b5f8
  25. 26 Mar, 2019 1 commit
  26. 24 Mar, 2019 1 commit
  27. 20 Feb, 2019 1 commit
    • rswindell's avatar
      Reversed course on the WM_QUOTE mode handling in sbbs_t::postmsg() · 57424543
      rswindell authored
      (JS bbs.post_msg()): If the WM_QUOTE mode flag is *not* set, then it will auto-
      create the quote file (quotes.txt) and add the WM_QUOTE mode bit before calling
      sbbs_t::writemsg(). So if existing JS scripts call bbs.post_msg(..., WM_QUOTE)
      with a custom-created quote file (e.g. with msg tails), that'll still work as
      before (e.g. DDMsgReader.js).
      
      bbs.email() and bbs.netmail() now support an optional reply_header_object
      argument which works like bbs.post_msg(). These methods (and the underlying
      C++ methods: sbbs_t::email(), netmail(), inetmail(), all auto-create the
      quote file now, when the WM_QUOTE mode flag is *not* set.
      
      The auto-created quotes.txt now includes the plain-text version of MIME-encoded
      messages.
      
      the bbs.post_msg(), email(), and netmail() methods now all support reply
      header objects that came directly from bbs.get_msg_header() *or* copies of
      such header objects (but the auto-quoting feature won't work when supplied
      this type of header object). So if passed a header object returned from
      bbs.get_msg_header(), we can now use the message base (for auto-quoting) and
      the underlying msg storage directly (no JS parsing necessary). This is what
      the new js_GetMsgHeaderObjectPrivates() function is used for.
      
      js_ParseMsgHeaderObject() (and the underlying parse_header_object() function)
      now supports either an actual internally-generated msg header object (e.g.
      returned from bbs.get_msg_header()) or one that is a copy or hand-constructed.
      
      quotemsg() no longer tries to get a copy of the msg index/header. It shouldn't
      have to since we can now get to underlying msg storage in the js_msgbase.c
      via js_GetMsgHeaderObjectPrivates().
      
      quotemsg() now reads only the plain-text portion of MIME-encoded messages.
      
      As part of this effort, I modernized the method prototypes using default
      argument values (e.g. WM_NONE for wm_mode arguments) and removed some
      extraneous WM_EMAIL and WM_NETMAIL specifications (these wm_mode flags are
      automatically added by the sbbs_t::email() and *netmail() functions).
      
      savemsg() now *does* support reply-IDs/thread-linkage via the additional
      'remsg' argument (when non-NULL).
      
      Replaced some use of nulstr with NULL.
      
      Replaced more boilerplate SMB open code with calls to smb_open_sub().
      57424543
  28. 17 Feb, 2019 2 commits
    • rswindell's avatar
      Eliminted unused variable (pid). · 0d77cdbf
      rswindell authored
      0d77cdbf
    • rswindell's avatar
      QWK-reply-posted email/netmail messages did not contain a Message-ID. Really? · 7446c395
      rswindell authored
      So I created a single add_msg_ids() function (mostly migrated from postmsg.cpp)
      to make this incredibly easy so any/everywhere that adds a message to a message
      base should be able to call it. This function also creates reply-IDs (when
      relevant) and program ID (Fido-PID) header fields:
      - FIDOPID (always)
      - FIDOMSGID (if an echomail post)
      - FIDOREPLYID (if an echomail reply-post)
      - RFC822MSGID (always)
      - RFC822REPLYID (if a reply)
      7446c395