1. 16 Apr, 2022 1 commit
  2. 14 Mar, 2022 1 commit
  3. 25 Feb, 2022 1 commit
    • Rob Swindell's avatar
      Add/use new text.dat strings for received Fido and Internet mail · 99312621
      Rob Swindell authored
      - InternetMailReceived
      - InternetMailForwarded
      - FidoNetMailReceived
      - WithAttachment
      - FidoEchoMailReceived
      
      For The Millionaire, closing issue #254
      
      The first string (suppressed with %.0s) is an optional date/time stamp.
      
      This also deprecates (removes support for) the [mail] NewMailNotice and ForwardNotice keys from sbbs.ini.
      99312621
  4. 24 Feb, 2022 1 commit
    • Rob Swindell's avatar
      Introduced FreeDownloadUserMsg text.dat string · ecbf2a73
      Rob Swindell authored
      Tired of being reminded that you were "awarded 0 credits"  for free downloads? I know I am, so I created another text.dat string (reusing Unused300), for notification of free-download files where no credits are awarded to the uploader. Also updated the default colors of the existing DownloadUserMsg string to have a little more variety.
      
      Not sure why ftpsrvr.c isn't using user_downloaded_file(). That copy/pasta should be eliminated later.
      ecbf2a73
  5. 18 Nov, 2021 2 commits
    • Rob Swindell's avatar
      Add text.dat lines for "All" and the List key ('L'), used in quoting · 064b602f
      Rob Swindell authored
      The internal line editor's quoting feature add some hard-coded strings ("Done" and "All") and the (L)ist key was hard-coded. Use the text.dat string (new and pre-existing) for these now.
      
      Also, use the new sbbs_t *_key() methods for referencing the configured key bindings (via text.dat) for these common key-stroke commands.
      Convert the text.dat strings for keys (e.g. YNQP) to uppercase always as well.
      064b602f
    • Rob Swindell's avatar
      Make msg/file scan configuration prompts and keys configurable · 35c1d051
      Rob Swindell authored
      For localization purposes, no more hard-coded text strings or characters in the new-file and file scan configuration menus.
      
      This change fixes issue 232.
      
      A Hungarian sysop also requested this change via Facebook not long ago.
      35c1d051
  6. 25 Sep, 2021 1 commit
  7. 06 Sep, 2021 1 commit
    • Rob Swindell's avatar
      When searching for text in file descriptions, always search ext desc · f0d253ef
      Rob Swindell authored
      Since users can (and usually do) display extended descriptions in their normal file listings anyway, it makes sense to go ahead and search them for the text (e.g. with the 'F' command from the default command shell File menu/prompt). So the "search/display extended info" prompt has been changed to just "Display extended file info" since it no longer controls whether or not the extended description is searched for the text (it always is). The FL_EXFIND was renamed to FL_EXT and only controls whether the extended info is display (the FL_FIND mode flag, always renamed, must also be specified for a find with extended info).
      
      This closes feature request #285 by Phil (@plt).
      f0d253ef
  8. 17 May, 2021 1 commit
  9. 14 May, 2021 1 commit
  10. 24 Apr, 2021 1 commit
    • Rob Swindell's avatar
      DIZ enhancements: Read/use SAUCE data, support ANSI, increase max 1->4K · 2a8e1c11
      Rob Swindell authored
      Inspired by Blocktronics (and other ANSI art group) packs' FILE_ID.DIZ/ANS files:
      * Support (and prioritize) FILE_ID.ANS
      * Convert ANSI color/attribute sequences in DIZ files to Ctrl-A equivalent (uses SAUCE width and ICE color, if specified)
      * Don't treat DIZ as a series of lines, they're not always nowadays.
      * New putmsg() mode: P_INDENT to print files indented by current column
      * Display full (up to 64-char) filenames in lists when using 132+ column terminal.
      * Use the Author, Group, and Title fields from the SAUCE if present/non-blank
      * 2 new text.dat strings: 301 (FiAuthor) and 302 (FiGroup)
      * Also fix bug with repeated Cost header field on bulk-uploaded files.
      
      I know this'll break the *nix build (sauce.c dependency), but I'll fix that next.
      2a8e1c11
  11. 17 Apr, 2021 1 commit
  12. 04 Apr, 2021 1 commit
    • Rob Swindell's avatar
      A poll() failure with EINTR does not mean a socket is closed. · fcf58640
      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...
      fcf58640
  13. 06 Mar, 2021 1 commit
  14. 25 Oct, 2020 1 commit
    • Rob Swindell's avatar
      Support manual terminal columns setting per user · 8afac993
      Rob Swindell authored
      The default terminal columns (still 0/auto) can be overridden with the 'L' command from the user defaults menu. 
      
      Also increased maximum manual terminal rows setting from 99 to 999 - this involved moving the record in user.dat, though the old record value is auto-migrated.
      8afac993
  15. 04 Sep, 2020 1 commit
    • Rob Swindell's avatar
      Spinning cursors (10 patterns now) are configurable in text.dat · b5c1a605
      Rob Swindell authored
      Inspired by the cool progress cursor displayed by 'git-size', the spinning
      cursors in the Synchronet terminal server are now configurable via text.dat
      strings (SpinningCursor0 - 9), no maximum length.
      Increased the cursor "spin" rate from 4 to 5 times per second.
      The first character of the spin pattern is chosen at random between 0 and 4
      but the direction of increment is also from left to right.
      b5c1a605
  16. 04 Aug, 2020 1 commit
    • 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
  17. 01 Aug, 2020 1 commit
    • rswindell's avatar
      Auto-detect non-Telnet connections to the terminal server's Telnet port and · 40d829f2
      rswindell authored
      automatically revert to Raw/TCP mode. This resolves the issue of users that
      connect using modem/serial emulators over TCP that do not actually support Telnet and then either try to transfer files, which usually will not work due to escaped (or unescaped) IAC (0xFF) characters, or the user may be sent Telnet Go Ahead (GA) sequences which may display as periodic garbage in their terminal program.
      
      This seemed like a better solution than having (yet another) dedicated terminal server port for "raw" connections over TCP, though a "raw" port still might not be a bad idea for a future enhancement. RLogin is already super close to "raw", so it's probably not really necessary to have another port configured/listening.
      40d829f2
  18. 31 Mar, 2020 1 commit
  19. 31 Aug, 2019 1 commit
  20. 20 Aug, 2019 1 commit
  21. 17 Aug, 2019 1 commit
  22. 11 Jul, 2019 1 commit
  23. 07 Jul, 2019 1 commit
  24. 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
      settings).
      48e7520e
  25. 02 May, 2019 1 commit
  26. 30 Apr, 2019 1 commit
  27. 28 Apr, 2019 1 commit
  28. 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:
          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
  29. 03 Oct, 2018 2 commits
    • rswindell's avatar
      Display message tags, if/when there are any to display, as part of the · 53a15037
      rswindell authored
      message header.
      53a15037
    • rswindell's avatar
      Allow message "tagging" (ala hashtags, without the hash). · 14b116bc
      rswindell authored
      If a message sub-board is configured to "Allow Message Tagging"
      (under Toggle Options in SCFG->Message Areas), then after a message is
      posted (via the terminal server), the user will be prompted if they
      want to tag the message with one or more space-separated tags. The no/yes
      prompt can be skipp if desired by setting the TagMessageQ line in the
      text.dat file to an empty string. There is currently no provision for
      regular users to actually see/view the message tags (yet), but the sysop
      or sub-op can view the tags in the message header with the 'H' sys/sub-op
      command.
      14b116bc
  30. 06 Sep, 2018 1 commit
  31. 04 Jun, 2018 1 commit
    • rswindell's avatar
      When the system has multiple configured FidoNet addressess (AKAs), let the · 1d41500e
      rswindell authored
      user choose which address to use as the source address when composing a netmail
      message (the default being the most appropriate for the dest zone/net). This
      change only works with SBBSecho v3.05 or later.
      Some other incremental and safety improvements to sbbs_t::netmail() too.
      FTN netmail file attachments needs some more work however (the "FA:" subject
      prefix trick) - just remove it?
      1d41500e
  32. 12 Jan, 2018 2 commits
    • rswindell's avatar
      New @-codes (for currently viewed file): · 464f80c5
      rswindell authored
      - FILE_AREA
      - FILE_AREA_DESC
      - FILE_LIB
      - FILE_LIB_DESC
      - FILE_LIB_NUM
      - FILE_DIR
      - FILE_DIR_DESC
      - FILE_DIR_CODE
      - FILE_DIR_NUM
      - FILE_NAME
      - FILE_DESC
      - FILE_UPLOADER
      - FILE_SIZE
      - FILE_CREDITS
      - FILE_TIME
      - FILE_TIME_ULED
      - FILE_TIME_DLED
      - FILE_DATE
      - FILE_DATE_ULED
      - FILE_DAT_DLED
      - FILE_TIMES_DLED
      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 '*.*'
      464f80c5
    • rswindell's avatar
      Introduce new text.dat line: · 665933e8
      rswindell authored
        MsgHdrBodySeparator
      This is display between the msg header text.dat lines and the message body
      (previously, just hard-coded to a blank line).
      This enables us to now execute showmsgavatar.js much faster than loading
      msghdr.asc file, and using it to execute showmsghdr.js.
      So... if you're upgrading to this build, you can get rid of msghdr.asc and
      get a message viewing performance boost. The results should look the same
      (but the message header will display immediately, with no discernable delay).
      665933e8
  33. 28 Nov, 2017 1 commit
  34. 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.
      d18bd3bd
  35. 14 Aug, 2017 1 commit
  36. 18 Nov, 2016 1 commit
  37. 16 Nov, 2016 1 commit
    • rswindell's avatar
      Poll display support: · ae7c2f8b
      rswindell authored
      * uses new text.dat strings:
      - PollVoteNotice
      - PollAnswerNumber
      - PollAnswerFmt
      - PollAnswerChecked
      
      The actual answer of a poll is still crude (uses the old crufty uselect scheme)
      and doesn't support multiple-choice polls. This will be addressed.
      ae7c2f8b