1. 20 Sep, 2019 2 commits
    • rswindell's avatar
      New @-codes (for The Millionaire): · 8a3d8d2c
      rswindell authored
      - FILESIZE - total file size in an auto-rounded value with suffix (B/K/M/G)
      - FILEBYTES - total file size in bytes
      - FILEKB - total file size in kibibytes
      - FILEMB - total file size in mebibytes
      - FILEGB - total file size in gibibytes
      All of the above default to the current file transfer directory path from where
      to find / calculate the sizes of files. Only files that exist in the actual
      storage directory are counted (offline files or file in alt. file paths are not
      All of the above support 2 alternate syntaxes:
      FILE*:<dir-code> where <dir-code> is the internal code of a file directory, or
      FILE*:<path[/file-spec]> where <path> is a directory path and [/file-spec] is
      an optinal file name/specification (i.e. w/wildcards).
    • rswindell's avatar
      Added 2 new @-codes for the Millionaire: · 6c08c18c
      rswindell authored
      - FILES
      - FILES:<code>
      I couldn't get out of him whether he wanted the total number of files in the
      *current* directory or a sysop-specified directory, so I just added both.
      I don't have an easy way to calculate the total bytes used for all files
      in a directory, so punt on that feature request for now.
  2. 31 Aug, 2019 1 commit
    • rswindell's avatar
      New @-codes: · c5dbe3e4
      rswindell authored
      - PWAGE - age (in days) of current user's password
      - PWDAYS - maximum age (in days) before forced-password-change (or "unlimited")
      - PWDATE (alias for MEMO) - date of last change of the current user's password
      - AUTODEL - days of user inactivity before auto-deletion (or "unlimited")
  3. 16 Aug, 2019 2 commits
  4. 15 Aug, 2019 1 commit
  5. 05 Aug, 2019 2 commits
  6. 03 Aug, 2019 1 commit
  7. 16 Jul, 2019 1 commit
  8. 11 Jul, 2019 4 commits
  9. 10 Jul, 2019 9 commits
  10. 02 May, 2019 1 commit
    • rswindell's avatar
      @-code changes: · 0868c5d9
      rswindell authored
      Expanded codes will not *not* go beyond the terminal column width (minus 1).
      If you need the old/wrap behavior, add a "-W" modifier to your @-code.
      If a length value is specified with -W, it is ignored.
      - MSG_TO, MSG_FROM, MSG_SUBJECT now reflect the header values passed
        to sbbs_t::show_msghdr(), JS bbs.show_msg_header() and not necessarily the
        actual stored (e.g. MIME-encoded) header values.
      New codes:
      - MSG_CC - reflect a message's CC list, if it has one
      - DATETIMEZONE - combines DATETIME and TIMEZONE in one string
  11. 26 Apr, 2019 2 commits
    • rswindell's avatar
    • rswindell's avatar
      Added support for PCBoard @ macros: · b437da19
      rswindell authored
      - DELAY:nn (delay nn 10ths of a second)
      - POS:nn (move cursor to position nn, not sure if nn is 0 or 1-based)
      - CLREOL (same as CLR2EOL)
      - YESCHAR (the character/key for "Yes", from text.dat YNQP string)
      - NOCHAR (the character/key for "No', from text.dat YNQP string)
      and for good measure:
      - QUITCHAR (the character/key for "Quit") - not supported by PCBoard
  12. 11 Apr, 2019 3 commits
  13. 04 Dec, 2018 1 commit
  14. 03 Dec, 2018 1 commit
  15. 25 Oct, 2018 1 commit
  16. 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)
  17. 04 Oct, 2018 1 commit
  18. 25 Jul, 2018 1 commit
  19. 17 Mar, 2018 1 commit
  20. 12 Jan, 2018 1 commit
    • rswindell's avatar
      New @-codes (for currently viewed file): · 464f80c5
      rswindell authored
      - FILE_AREA
      - FILE_LIB
      - FILE_LIB_NUM
      - FILE_DIR
      - FILE_DIR_NUM
      - FILE_NAME
      - FILE_DESC
      - FILE_SIZE
      - FILE_TIME
      - FILE_DATE
      Fixed MSG_ATTR @-code (missing SPAM attribute)
      New text.dat line: FileHdrDescSeparator, displayed between file detail display
      (name, date, uploader, etc.) and extended description, if there is one. This
      is used to execute showfileavatar.js.
      New JS 'bbs' object properties:
      - file_name
      - file_description
      - file_dir_number
      - file_attr
      - file_date
      - file_credits
      - file_uploader
      - file_update_date
      - file_download_date
      - file_download_count
      Inspiried by Lon Seidman's now infamous (but likely common) Synchronet sysop
      blunder (removing a file rather than downloading it while demonstrating his BBS
      on his youtube channel:
      - New text.dat line: RemoveFileQ <- using this rather than the vague:
        AreYouSureQ, when prompting to remove a file
      - The sysop command to remove files from the batch file flagging prompt has
        been changed from 'D' (delete) to 'R' (remove).
      - The 'D' command from the batch file flagging prompt may now be used for
        immediate Download of any flagged file(s).
      - When flagging files with '*', treat the same as '*.*'
  21. 15 Nov, 2017 1 commit
    • rswindell's avatar
      Daily maintenance log output now goes to the event log (or the terminal · b4f888d4
      rswindell authored
      server log) using the new magic sbbs_t::lputs().
      No more SSH errors if an SSH client's IP is blocked in ip.can (trying to send
      the block msg).
      New SSHConnectTimeout cfg value (in sbbs.ini [BBS]), defaults to 10 seconds.
      Previously, fails SSH connections could block the bbs_thread for 30 seconds
      (the Cryptlib default network connection timeout).
      Overhauled a lot of the SSH-related log output to make it less chatty and more
      getmail() is now more flexibility with regards to filtering by attribute flags
      (not just SPAM).
      Allow SPAM header attribute to be toggled with sysop 'C' command.
  22. 13 Nov, 2017 1 commit
    • rswindell's avatar
      New feature: control of SPAM visibility when reading mail on the Terminal · d18bd3bd
      rswindell authored
      Server via the new 'V' command from the Reading Mail prompt allows you to
      toggle between all mail (including SPAM, the default), SPAM only, or HAM only.
      Also added a new '/' (search text) command from the reading mail prompts.
      Mail imported before the mailsrvr added support (recently) for the MSG_SPAM
      attribute flag will not be counted/filtered as SPAM.
      SBBSecho will have a commit (next) to support the new loadmail() usage, it
      will not compile until then.
  23. 23 Oct, 2017 1 commit