Skip to content
Snippets Groups Projects
  1. May 09, 2019
    • rswindell's avatar
      Support bright background colors: · 48e7520e
      rswindell authored
      - for PETSCII, this is automatic and you don't lose blink, but you do lose
        colored foreground when enabling a bright background ("reverse video")
      - for ANSI, this mode is typically referred to as "iCE colors" and disables
        blinking-text support
      - Ctrl-AE (^AE) is the new attribute code to enable bright-background
        (will have no effect on ANSI terminals that are not iCE color enabled)
        "E" is now valid in the ctrl/attr.cfg file and string values for JS
        console.attributes assignments, as well
      - Ctrl-AI (^AI) - blink - now does nothing for ANSI/ICE color terminals
        (blinking is not supported in combination with bright-background)
      - Using a new/non-standard CGA attribute bit-flag to indicate the selection of
        bright-background colors (BG_BRIGHT, bit 10), separate from BLINK.
        This change required all/most char/uchar attribute representations to be
        converted to int/uint.
      
      New text.dat strings:
      - PetTerminalDetected (renamed from PetTermDetected)
      - PetTerminalQ
      - TerminalAutoDetect
      - TerminalColumns
      - TerminalRows
      - TerminalMonochrome
      - TerminalColor
      - TerminalIceColor
      - IceColorTerminalQ
      This also moved the MsgCarbonCopyList definition to the end of the file
      for now.
      
      PETSCII reverse-video attribute fix:
      When a CR is sent to the terminal, the reverse-video attibute is auto-disabled
      so update our "current attribute" (curatr) value to match the remote.
      
      Support new printfile/putmsg mode flag: P_WRAP to force an ungraceful
      line-wrap (splitting) to the specified column width. If no column width is
      specified (0), then this mode will force an ungraceful wrap before the last
      terminal column where some terminals *may* auto-wrap.
      
      JS console.printfile() and printtail() methods now support an optional
      "orig_columns" argument, similar to console.putmsg(). Must specify P_WORDWRAP
      or P_WRAP for this argument to have any effect.
      
      Much improved terminal-type selection/configuration in the user defaults
      menu and abort (^C) at any of the yes/no prompts is now detected/handled much
      better (to answers to the prompted questions are not saved to the user
      settings).
      48e7520e
  2. May 04, 2019
  3. May 03, 2019
  4. Jan 11, 2019
    • rswindell's avatar
      A partial retraction of the Ctrl-AZ interpretation changes introduced on · b2412964
      rswindell authored
      Oct-14-2018:
      It turns out, PabloDraw actually inserts a Ctrl-AZ sequence at the end of .msg
      (and presumably Synchronet .asc) files it edits - before the SAUCE record.
      This resulted in a printed Ctrl-Z character (arrow pointing right) in most
      terminals when viewing text/menu files created or edited with PabloDraw. :-(
      So, now Ctrl-AZ (uppercase) will revert to the previous definition:
      premature end-of-file (EOF)
      and a Ctrl-Az (lowercase) will output a Ctrl-Z (substitute) character.
      I'm not a big fan of case-sensitive Ctrl-A codes, but frankly, running out of
      chars and I already started this pattern with the Ctrl-AF/f sequences.
      Hopefully there's no existing software that is/was putting Ctrl-Az (lowercase)
      in files, expecting that to trigger a premature EOF. I certainly was not.
      b2412964
  5. Oct 31, 2018
  6. Oct 22, 2018
    • rswindell's avatar
      The big PETSCII commit: · 31303187
      rswindell authored
      So Omegix recently asked in the Synchronet Discussion group whether or not
      a PETSCII (Commodore) terminal could be used to access his Synchronet BBS.
      Now, the answer is "Yes". :-)
      The major issues addressed:
      
      - detecting a PETSCII terminal, solved by assigning specific (configurable):
        TCP ports to be used for incoming PETSCII connections, by default:
        port 64 is for 40-column PETSCII and port 128 is for 80-column PETSCII,
        but if the terminal sends a Telnet Window Size reply (e.g. SyncTERM), then
        either size terminal should fine on either port.
        The port numbers are configurable in the [BBS] section of your sbbs.ini
        file using the new keys: PET40Port (default value: 64) and PET80Port
        (default value: 128). Having these keys set doesn't make make the terminal
        server listen on that additional port - you'll need to add more
        IP:port combinations to one of Interfaces values, example:
          TelnetInterface=71.95.196.34,71.95.196.34:64,71.95.196.34:128
        And you don't have to use Telnet for the PETSCII connections - you could use
        RLogin or SSH instead (or in addition).
      
      - support for terminal widths < 80 columns:
        This was achieved through a combination of text.dat changes (numerous),
        new Ctrl-A and @-codes and new optional terminal-width-specific menu files
        (e.g. text/menu/main.40col.asc)
        A side effect of these changes is actually better support for terminals
        *wider* than 80 columns as well!
      
      - support for terminals that don't expand tabs to spaces (e.g. PETSCII):
        The terminal server now handles tab expansion with a run-time settable
        tab-size (default size: 8)
      
      - conditional access based on PETSCII (or small) terminal use (or not):
        + New PETSCII ARS keyword (boolean)
        + New COLS and ROWS ARS keywords (for terminal width and height requirements)
        + New TERM (string) ARS keyword
      
      New @-codes:
        - WORDWRAP, when placed at the top of a file, enables auto-wordwrap for
                    lines longer than the terminal width
        - CENTER, the text following before an end of line will be displayed centered
                  on the terminal (whatever the width, in columns)
        - CLEAR, like CLS, except it ignores (doesn't display) a CRLF that follows
        - COLS, current number of terminal columns (width)
        - ROWS, current number of terminal rows (height)
        - TERM, the auto-detected or reported terminal type (e.g. ANSI, TTY, etc.)
        - SYSONLY, toggles "echo" (display) off/back-on for non-sysops
                  similar to the Ctrl-A( and ) codes, but more convenient to use
                  (and PabloDraw won't strip the @-code from the file like it does
                   with Ctrl-A codes it doesn't support)
      
      New Ctrl-A codes:
        - \ conditional new-line/continuation when the terminal width is < 80 cols
            prints the new text.dat string LongLineContinuationPrefix
      
      yesno() will now return true if passed a blank string.
      noyes() will now return false if passed a blank string.
      getstr()'s input length limiting based on terminal width is more broadly
                 applied now (not just when using the K_LINE mode flag).
      
      New JS bbs object method: menu_exists(<base_filename>) returns Boolean
      New JS console object property: tabstop (Number)
      New JS console object methods: getbyte() and putbyte() to recv/send raw byte
          value with (very little) interpretation/intervention by the terminal server
      New JS console object method: creturn() - performs a carriage return
          (or equivalent)
      New JS (and C) printfile() mode flag: P_TRUNCATE, causes long lines to be
          truncated, rather than displaying causing a line-wrap.
      
      New text.dat strings:
        - NoAccessTerminal (for ARS check failures)
        - LongLineContinuationPrefix (for breaking long lines for 40col terminals)
        - Scanning (replaces a previously hard-coded "Scanning" string)
        - Done (replaces a previusly hard-coded "Done")
        - Scanned  (when finished scannning, clears the progress bar)
      31303187
  7. Oct 15, 2018
  8. Oct 11, 2018
  9. Jul 07, 2018
  10. Oct 12, 2017
  11. Dec 05, 2016
  12. Apr 28, 2015
    • rswindell's avatar
      Bug-fix: From the text.dat Yes/No/Quit/Password entry (YNQP), the 'Q' character · aa709e2a
      rswindell authored
      was never used. This was intended to be a method for internationalization,
      letting the sysop change which key is used as the uiniversal "quit" key.
      This commit replaces most of the uses of the hard-coded 'Q' for quit wtih the
      3rd charcter in the text.dat YNQP string. Some hard-coded menus still have the
      'Q' key hard-coded and will need to be addressed later. The text.h YN index
      macro was changed to YNQP and the JS text index variable name will change
      as well.
      aa709e2a
  13. Oct 28, 2014
    • rswindell's avatar
      Fix node hang (infinite loop) possible when input_thread() is terminated before · f18856a8
      rswindell authored
      answer() set online to ON_REMOTE. This should resolve the issue with SSH brute
      force password attackers hanging nodes in "new user applying for access".
      The actual fix was to remove the set of the online variable to ON_REMOTE
      in answer() (it's initialized to this value in the sbbs_t constructor), the
      check in getkey() is just for extra paranoia and should not be necessary.
      f18856a8
  14. Nov 09, 2009
  15. Feb 16, 2009
  16. Jun 05, 2008
  17. Jun 04, 2008
  18. Jul 27, 2007
  19. Aug 23, 2006
  20. Jun 18, 2006
  21. May 03, 2006
    • rswindell's avatar
      Removal of cruft: · a000d6d0
      rswindell authored
      * CON_L_ECHOX (no such thing as local echo now)
      * node_dollars_per_call (no such thing as a 976/900 billing node)
      * node_min_bps (no such thing as bps rate)
      a000d6d0
  22. Jan 30, 2006
  23. Nov 29, 2005
    • rswindell's avatar
      Reversed the ungetkey() overhaul of Sept-2-2005 (included in v3.13a), this new · f226f1c5
      rswindell authored
      method would insert keys at end of the input ring buffer. This was fine if
      there weren't already chars in the buffer. But if there were already chars in
      the input buffer, ansi_getxy() would then move keys to the end of the input
      buffer until it found the <ESC>[y;xR response it was looking for. This garbled
      the user's input in split-screen chat as reported by JasHud and others.
      If there was a RingBufInsert() routine, we could use that instead, but this
      separate "ungetkey" buf will do for now.
      f226f1c5
  24. Sep 02, 2005
    • rswindell's avatar
      Cleaned-up the whole ungetkey/keybuf stuff: · d2a6493e
      rswindell authored
      ungetkey() now puts keys directly into the input ring buffer (no more keybuf).
      handle_ctrlkey() no longer pushes entire unsupported ANSI escape sequence into
      the input buffer (causing an infinite loop).
      d2a6493e
    • deuce's avatar
      Add backspace() function to the sbbs_t which temporarily disables · 87233cf2
      deuce authored
      CON_R_ECHOX and CON_L_ECHOX, then sends "\b \b"
      
      Replace all instances of [br]puts("\b \b") with call to backspace()
      
      This fixes once and for all the "spaces entered at password prompt are
      echoed as spaces" problem.
      
      Har.
      
      PR:42->closed
      87233cf2
  25. Oct 21, 2004
  26. Oct 20, 2004
  27. May 30, 2004
  28. May 07, 2003
  29. May 06, 2003
  30. May 04, 2003
  31. Apr 30, 2003
  32. Feb 10, 2003
  33. Feb 07, 2003
  34. Nov 07, 2002
  35. Aug 16, 2002
  36. May 04, 2002
  37. May 02, 2002
Loading