1. 16 Aug, 2019 1 commit
  2. 15 Aug, 2019 1 commit
    • rswindell's avatar
      Fix line-at-a-time mode printfile() operation with regards to attributes · 4dfdb036
      rswindell authored
      maintained between lines, reported by Immortal@IDOMAIN:
      Use P_SAVEATR to retain the new attributes after each call to putmsg() in
      printfile() line-at-a-time mode. We are no setting the initial attribute to
      LIGHTGRAY or restoring the original attribute at the end (like a call to
      putmsg() withou the P_SAVEATR would) - so we may need to add that later
      for line-at-a-time mode, as well.
  3. 09 Aug, 2019 1 commit
  4. 08 Aug, 2019 1 commit
    • rswindell's avatar
      Return to the sbbs v2 behavior of printfile() behavior (sort-of): When · b1ecd9b6
      rswindell authored
      P_OPENCLOSE mode flag is *not* specified, do not malloc()/read() the entire
      file and then display. Instead, print one line at a time (so long as that
      line is <= 1MB in length), calling putmsg() for each line.
      This should allow the viewing of massive text files in SBBS again without
      alloc/swap issues.
      I left the calls to utf8_normalize_str() in here, but I'm not so sure about
      them now. putmsg() will convert UTF-8 to CP437 through print_utf8_as_cp437(),
      and that only lacks a couple of conversions that utf8_normalize_str() does
      (e.g. ellipsis to "..."), so that might be a good candidate to remove in
      the future.
  5. 06 Jul, 2019 1 commit
  6. 09 May, 2019 1 commit
    • 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
  7. 11 Apr, 2019 1 commit
  8. 02 Feb, 2019 1 commit
  9. 30 Oct, 2018 1 commit
    • rswindell's avatar
      External programs that are "binary" in nature (e.g. file transfer protocols) · be7d06bc
      rswindell authored
      now have their output translated to PETSCII equivalents for PETSCII terminals
      (but input is not yet translated).
      .seq files are now sent untranslated via printfile() and putmsg() to PETSCII
      terminals (using the new P_PETSCII putmsg mode flag).
      .seq files (and P_PETSCII mode text printed via putmsg) is now converted
      (poorly) from PETSCII to CP437 - this is still a work-in-progress.
      Remove the remants of WIP and HTMLterm support from putmsg() and printfile().
  10. 25 Oct, 2018 2 commits
    • rswindell's avatar
      Introduce a new printfile/tail/menu mode flag: P_NOERROR, which if used, · 1fee774d
      rswindell authored
      means no error message will be displayed/logged if the referenced file does
      not exist.
    • rswindell's avatar
      Update display/menu file selection logic based current terminal capabilities. · 68e52292
      rswindell authored
      Newly supported files: text/menu/*.msg (higher priority than .asc when the
      terminal supports IBM extened ASCII, aka CP437). These are the same format
      as .asc files (and supported more readily by PabloDraw).
      Newly supported files: text/menu/*.seq - native PETSCII files for PETSCII
      terminals only. Support in the underlying putmsg() function is still
      Also, the text/*.msg files now supports alternative file formats for
      RIP/ANSI/PETSCII, if the files exist.
      WIP menu support removal.
      The new menu/display file selection priority will be detailed on
      wiki.synchro.net, but rest assured, it's backwards compatible with
      the previous/old priority with the exception of the removal of WIP support
      and HTML support.
  11. 22 Oct, 2018 1 commit
    • 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:
        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)
  12. 01 Oct, 2018 1 commit
  13. 27 Feb, 2018 3 commits
  14. 20 Feb, 2018 1 commit
  15. 07 Jan, 2018 1 commit
  16. 18 May, 2016 1 commit
  17. 06 Mar, 2010 1 commit
  18. 26 Feb, 2008 1 commit
  19. 24 Feb, 2008 1 commit
  20. 23 Aug, 2006 1 commit
  21. 03 May, 2006 1 commit
    • 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)
  22. 25 Sep, 2005 1 commit
  23. 20 Sep, 2005 1 commit
  24. 08 Sep, 2005 1 commit
  25. 31 Aug, 2005 1 commit
  26. 27 Oct, 2004 1 commit
  27. 24 Oct, 2003 1 commit
  28. 26 Jul, 2003 1 commit
  29. 19 Jun, 2003 1 commit
  30. 07 Nov, 2002 2 commits
  31. 04 Nov, 2002 1 commit
  32. 25 Jul, 2002 1 commit
  33. 07 Nov, 2000 1 commit
  34. 04 Nov, 2000 1 commit
  35. 10 Oct, 2000 1 commit