Skip to content
Snippets Groups Projects
  1. May 14, 2021
  2. Apr 25, 2021
  3. Apr 24, 2021
  4. Apr 14, 2021
  5. 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
  6. Feb 22, 2021
  7. Feb 15, 2021
  8. Dec 12, 2020
  9. Nov 26, 2020
  10. Nov 07, 2020
    • Rob Swindell's avatar
      Store client terminal information in node#/terminal.ini · c1637082
      Rob Swindell authored
      In preparation for node-spy applications that can support multiple terminal sizes/types (none exist yet). The file is updated whenever there is new/updated information about the client's terminal.
      
      Exposed as JS method: console.term_updated().
      c1637082
  11. Nov 06, 2020
    • Rob Swindell's avatar
      Replace ctype.h function calls with new MSVC-safe XPDEV macros · ec20d959
      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.
      ec20d959
  12. Oct 09, 2020
    • Rob Swindell's avatar
      Use an enum for ANSI output state · fa53e10a
      Rob Swindell authored
      No functional change with regard to the ANSI output state, just making the code easier to read.
      
      Removed the conversion of `[ and \xFA[ to \x1b[ in putmsg(). This unexplained output translation has been supported since at least v2.xx and I have no recollection of exactly why it was added. If I recall correctly, some BBS software at some point in time sent ANSI-encoded messages into message networks by translating the ESC (\x1b) character in the ANSI sequences to either ` or \xFA in the process. This "feature" seems like it would still work, but it's completely undocumented and I have no idea why it was added (and seriously doubt anyone relies on this behavior), so I'm removing it. If anyone misses this feature, I'll happily add it back, but I'm skeptical that'll happen.
      fa53e10a
  13. Aug 16, 2020
  14. Aug 04, 2020
    • rswindell's avatar
      Some users have complained about moue support being enabled by default, · 077eadbc
      rswindell authored
      so made it enabled/disabled per-user-terminal settings. This means that if
      you were already enjoying mouse support, you're going to have to turn it on
      to keep enjoying it. It also means there's currently no way to enable/use
      mouse support pre-logon, but I have ideas about how to support that for
      sysops that want that.
      077eadbc
  15. May 24, 2020
  16. May 12, 2020
  17. May 11, 2020
  18. May 09, 2020
    • rswindell's avatar
      If ^A~or ^A` is followed by a ctrl charcter, don't treat as a hot-spot. This... · 62880f22
      rswindell authored
      If ^A~or ^A` is followed by a ctrl charcter, don't treat as a hot-spot. This helps to insure that if there are any .asc/.msg files "in the wild" that have a sequence of ^A`^AL (home-cursor, clear-screen), they'll still render as before
      the introduction fo the strict hot-spot ^A` sequence.
      62880f22
    • rswindell's avatar
      Both hungry/liberal hot-spots and strict hot-spots can be defined now, at the... · 6f16fafe
      rswindell authored
      Both hungry/liberal hot-spots and strict hot-spots can be defined now, at the same time. For Nelgin.
      Use ^A` to define a single-char strict hot-spot using Ctrl-A codes. Unfortunately, this usurps the "home" Ctrl-A code which nothing seems to use but has now been changed to ^A'.
      Use ` instead of ~ in mnemonics to define strict single-char hot-spots (also displays the cmd key in [] instead () on non ANSI/PETSCII terms).
      Use @` instead of @~ codes to define strict hot-keys.
      Use HOT:STRICT @-code to declare a strict hot-key color.
      Use HOT:HUNGRY @-code to toggle back to hungry color-defined hot-keys (the default).
      New optional boolean argument to JS console.add_hotkey(), hungry = true by default.
      6f16fafe
    • rswindell's avatar
      One more method of creating a (single-character) mouse hot-spot since @-codes... · 2c443f78
      rswindell authored
      One more method of creating a (single-character) mouse hot-spot since @-codes are not universally supported everywhere or always convenient:
        Ctrl-A~
      The character immediately following a ^A~ will be added as a single-char mouse hot-spot.
      2c443f78
  19. May 08, 2020
    • rswindell's avatar
      fc5bc299
    • 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
  20. May 04, 2020
  21. Apr 30, 2020
  22. Apr 28, 2020
    • rswindell's avatar
      Fix some cosmetic issues with saveline/restoreline and its interaction with · fa37e0a7
      rswindell authored
      getstr's insert mode (Ctrl-V) indicator and edit/line modes. Global Hot Keys
      (e.g. Ctrl-T) would do weird stuff like return the cursor to the end of the
      line or redraw the input string multiple times.
      So as part of this fix:
      - backspasce() now removed the last count characters from the save-line buffer
        (it is a destructive backspace afterall).
      - outchar('\b') (a non-destructive backspace) adds the \b to the save-line buf
      - restoreline() now always redraws the current insert/overwrite indicator in
        the upper right-most corner fo the screen
      - insert_indicator() now uses functions that aren't line-saved.
      
      An unrelated change included in this comment: center() now sends a CR before
      the cursor movement and centered-text, for times when the current column is
      *not* already at 0. Very useful for use with @-codes (e.g. display some pattern
      or "graphics" and then center some text over it).
      fa37e0a7
  23. Mar 20, 2020
  24. Oct 08, 2019
  25. Sep 21, 2019
    • rswindell's avatar
      Make center() less destructive: · da0f2a1a
      rswindell authored
      Use cursor-right movement rather than spaces for left-margin.
      Don't do the clear-to-EOL thing added in previous commit.
      da0f2a1a
    • rswindell's avatar
      sbbs_t::center() and thusly JS console.center() now accepts an optional · 77f2c366
      rswindell authored
      "width" argument (in columns), defaults the user's current screen column-width
      but you can now over-ride this value when an additional/optional argument.
      Also, center() now clears-to-EOL before sending the CRLF to the terminal.
      Hopefully this doesn't mess up anyone's existing use of center().
      77f2c366
  26. Sep 10, 2019
  27. Aug 20, 2019
  28. Aug 19, 2019
  29. Aug 05, 2019
  30. 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
Loading