Skip to content
Snippets Groups Projects
  1. Oct 25, 2018
    • rswindell's avatar
      Also, the text/*.msg files now supports alternative file formats for · 24cc9af0
      rswindell authored
      RIP/ANSI/PETSCII, if the files exist.
      24cc9af0
    • 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
      pending.
      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.
      68e52292
    • rswindell's avatar
      Work-around race condition causing NULL-pointer dereference: · d3b4fd09
      rswindell authored
      telnet_input_thread() is started before cterm_init() is called, so the
      global "cterm" pointer was (sometimes) NULL at the time that the input
      thread received a "do termina-type" request, and telnet_interpret would
      dereference cterm (to get the emulation type) and thus crash. This is
      an inelegant solution which halts the telnet_input_thread() until the
      cterm pointer has been initialized. Also, be sure to reset cterm to
      NULL after calling cterm_end() which free's it. This fixes the problem of
      the telnet_input_thread() potentially using a stale (free'd) copy of cterm
      for the terminal-type response on subsequent connects.
      d3b4fd09
    • rswindell's avatar
      Added getuserdat() error checking with a search/replace macro. Now if · e4af92b9
      rswindell authored
      you run uedit and don't have access to the user.dat file, it will report
      an error rather than displaying a user with uninitialized values.
      e4af92b9
  2. Oct 23, 2018
  3. Oct 22, 2018
    • rswindell's avatar
      Another gcc printf warning fix. · 56f573c9
      rswindell authored
      56f573c9
    • rswindell's avatar
      When logging event-thread error messages, include the "evnt " prefix before · ece4a33f
      rswindell authored
      the string (which starts with the event internal code).
      ece4a33f
    • rswindell's avatar
      Lower the "MAIL BASE LOCKED" SMTP log message severity from critical · d22291e5
      rswindell authored
      to warning - this is normal/expected (e.g. when mail base is being
      backed-up).
      d22291e5
    • rswindell's avatar
    • rswindell's avatar
      Address new GCC printf warnings. · 30e31922
      rswindell authored
      30e31922
    • 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
    • rswindell's avatar
      Fixed bug where if you used the /W (whisper) command in multi-node chat · dede8b35
      rswindell authored
      and then hit 'Q', it would kick you out of multi-node chat (because
      the abort flag was set).
      dede8b35
  4. Oct 21, 2018
  5. Oct 20, 2018
  6. Oct 18, 2018
  7. Oct 17, 2018
  8. Oct 16, 2018
  9. Oct 15, 2018
  10. Oct 11, 2018
    • rswindell's avatar
      Fix a long standing-bug where if the "inactivity hangup" timeout value is set · 41af8b34
      rswindell authored
      *lower* than the "inactivity warning" timeout value, the hangup timer wouldn't
      actually take effect until after the warning timeout elapsed. This made the
      login.js modification (rev 1.14) where we reduce the hangup timeout (by 75%)
      when an ANSI terminal is not detected, not effective.
      41af8b34
    • rswindell's avatar
      Since rev 1.27 of prntfile.cpp (Sept-30), the stock scanmsg.asc menu · dc49cd42
      rswindell authored
      ('?' from the Reading Messages prompt) would not fully display because
      it contains a Ctrl-Z character (for the right-arrow symbol). Rather than
      revert the menu() change (where CPM-EOF mode is the default for menu
      files) - change the Ctrl-AZ sequence from "premature end-of-file" to instead
      send an actual Ctrl-Z character (similiar to Ctrl-AA, Ctrl-AL, etc.). This
      changes the long-standing behavior of what Ctrl-AZ does, but since that was
      a dubious "feature" that I'm pretty sure nobody used, I'm will to take that
      chance. If you need a premature EOF now, just use a regular ole Ctrl-Z
      char instead (or even the @eof@ code). Of course the msgscan.asc now has
      to change accordingly.
      dc49cd42
  11. Oct 09, 2018
Loading