- 06 Feb, 2022 1 commit
-
-
Rob Swindell authored
In commit 3f17c245, I was addressing the issue reported by Nelgin via IRC: <nelgin> If you login using a term that doesn't support ansi, it changes your settings - can you set 'em back when done? <DigitalMan> if you have auto-term enabled, it doesn't actually change your settings, just what's in use during that session <nelgin> I logged in using my BBC emulator which doesn't do ansi, then when I logged in through syncterm, I got the display like it was on the BBC. All my characters replaced with #'s and stuff. <nelgin> I had to go back into the user menu to fix it. That is going to confuse users. However, the chk_ar() function in userdat.c which is used to populate JS objects (e.g. xtrn_area.sec_list[].prog_list[]) uses the user.misc value (cannot call term_supports()), so the current user terminal flags need to be reflected in user.misc always. So the real fix for the originally reported problem is to clear the charset-related terminal settings when logging in with auto-terminal settings enabled (and before the auto-detected charset flags are OR'd in). I toyed with the idea of storing a copy of the term_supports() result in client_t, which is passed to chk_ar() when appropriate, but decided that was a bit overkill and there were issues with servers that don't have term_supports (e.g. the web server) and properly populating access-controlled areas in the JS object model (e.g. door games that require ANSI). Better to use the last-auto-detected terminal caps than assuming "no" terminal capabilities in that scenario.
-
- 26 Jan, 2022 2 commits
-
-
Rob Swindell authored
And don't store the autoterm flags in useron.misc even when correcting a manual-PETSCII configuration.
-
Rob Swindell authored
We shouldn't need to set any of the autoterm flags in useron.misc these days (term_supports() checks autoterm when appropriate). Try this Nelgin.
-
- 17 Apr, 2021 1 commit
-
-
Rob Swindell authored
I forget who it was that said they were still using this feature in v3.18, but here you go, it's working again (the /D and /U commands). I'm not migrating any file sender/recipient info from v3.18, so only files added after upgrading to this will be downloadable from the "user" directory (if you have one). Something that I never implemented before but noticed is missing is the removal (or dereferencing) of user-to-user files that were sent from/to a user that is then deleted. So that's still a TODO item.
-
- 04 Apr, 2021 1 commit
-
-
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...
-
- 21 Dec, 2020 4 commits
-
-
Rob Swindell authored
-
Rob Swindell authored
We only use NSPR to build libmozjs, not to build sbbs. So define our own MIN and MAX macros if they're not already defined (e.g. from sys/param.h on *nix). Such a simple can o' worms, but wormful can it was.
-
Rob Swindell authored
-
Rob Swindell authored
length... for WitNik.
-
- 18 Nov, 2020 2 commits
-
-
Rob Swindell authored
-
Rob Swindell authored
Count the read mail-waiting and compare to the total mail-waiting and if they're the same, then default to "No" for the "Read Your Mail Now" prompt during logon. Also, pass the difference (the unread mail) to the LiMailWaiting logon-info line. As requested by altere via I.R.C.
-
- 07 Nov, 2020 1 commit
-
-
Rob Swindell authored
In preparation for node-spy applications that can support multiple terminal sizes/types (none exist yet). The file is updated whenever there is new/updated information about the client's terminal. Exposed as JS method: console.term_updated().
-
- 06 Nov, 2020 1 commit
-
-
Rob Swindell authored
I'm fed-up with MSVC assertions in ctype functions (e.g. isdigit, isprint, isspace, etc.) when called with out-of-range (e.g. negative) values. This problem only affects MSVC debug builds, but if you run them (like I do), these things are like little time bombs that can drive you crazy (knocking your board out of service). The new macros names are bit more descriptive as well.
-
- 25 Oct, 2020 1 commit
-
-
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.
-
- 12 Oct, 2020 1 commit
-
-
Rob Swindell authored
New bug, reported by Melkor (STARFRON).
-
- 04 Oct, 2020 1 commit
-
-
Rob Swindell authored
e.g. MM/DD/YY for drop files that assume that format, or either MM/DD/YY or DD/MM/YY (depending on sysop preference) for backwards compatibility in expanded @-codes, Guru chat keyword. Fixed the birthdate check while logging on to work with new/all birthdate formats.
-
- 25 Sep, 2020 1 commit
-
-
Rob Swindell authored
Wow. This is another one of those "forever bugs".
-
- 19 Sep, 2020 2 commits
-
-
Rob Swindell authored
-
Rob Swindell authored
betwen 4 (the default) and 40 (the maximum) characters
-
- 17 Sep, 2020 1 commit
-
-
Rob Swindell authored
- JS system.operator_available property (read/writeable) - SYSAVAIL @-code which expands to LiSysopAvailable or LiSysopNotAvailable (use the new SYSAVAIL @-code in the chat menu to show availabilty to chat) - ;avail sysop command (in str_cmds.js) to toggle sysop availability - Changed LiSysopIs text.dat string to be a format string (include %s) and the trailing \r\n, so that it can be used in str_cmds.js or anywhere else to report sysop availability to chat, or can be set to blank string to display nothing (this would not work previously).
-
- 13 Sep, 2020 1 commit
-
-
Rob Swindell authored
If the user's terminal was auto-detected as being ANSI, yet they had their account settings manually-overridden to use PETSCII, automatically switch back to auto-terminal mode (e.g. with ANSI).
-
- 11 Sep, 2020 1 commit
-
-
Rob Swindell authored
For Alpha (Robbie) for use with an RLogin game door server, apparently.
-
- 16 Aug, 2020 1 commit
-
-
Rob Swindell authored
-
- 04 Aug, 2020 1 commit
-
-
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.
-
- 08 May, 2020 1 commit
-
-
rswindell authored
Mmore use of K_TRIM getstr() mode to prevent prepended and trailing white-space on user data fields that are input by the user. Also fixed a pretty funny bug that would occur if a user hit Ctrl-C at the password modification (W) passowrd confirmation prmopt: all subsequen text was converted to X's. The console ECHO_X mode really should go away.
-
- 22 Apr, 2020 1 commit
-
-
rswindell authored
"Use Location in User List" option. When set to false, the user's *note* (not IP address) is to be included in the user/logon lists.
-
- 05 Apr, 2020 1 commit
-
-
rswindell authored
-
- 01 Apr, 2020 1 commit
-
-
rswindell authored
- that's not nice.
-
- 31 Mar, 2020 1 commit
-
-
rswindell authored
in the text.dat. This may be a sysop-configurable value in the future. text.dat NewPasword is now NewPassswordPromptFmt and includes both the minimum and maximum password length as % specifiers.
-
- 19 Mar, 2020 1 commit
-
-
rswindell authored
is actually an authenticated local user (when usernum != 0). msg_client_hfields() no longer saves the client->user as the SMB SENDERUSERID hfield when the client hasn't been authenticated (as is the case with normal SMTP). The SENDUSERIDs were redundant and misleading for unauthenticated SMTP-received mail messages, so that's now fixed.
-
- 24 Oct, 2019 1 commit
-
-
rswindell authored
running a JavaScript module would crash (e.g. segfault) sbbs: Create and use a separate JS runtime, context, and global object/scope for global hotkey events. This means that the hotkey won't benefit from any previously loaded/required scripts, possibly effecting the performance of the first invocation of the hotkey handler. Subsequent JS hotkey events will reuse the same runtime/context/global, so they'll execute fast(er). One questionalbe change to js_execfile(): With the JS_GC (garbage collection) call *before* the JS_ENDREQUEST() call, the process would crash in libmozjs. Moving the JS_GC() call to *after* the JS_ENDREQUEST() resolved this issue and I'm not clear why. This 'js_cx' parameter here is not always sbbs_t::js_cx. When called to handle a JS hotkey event, it's sbbs_t::js_hotkey_cx, so it shouldn't interfere with the sbs_t::js_cx being used by the currently executing JS module (shell or door). <scratches chin>
-
- 27 Sep, 2019 1 commit
-
-
rswindell authored
toggle OFF the QWK-logon status. This allows QWKnet accounts to perform other non-QWK operations, like change their password.
-
- 15 Aug, 2019 1 commit
-
-
rswindell authored
-
- 16 Jul, 2019 1 commit
-
-
rswindell authored
need that internal for SSH and RLogin support of fast-logons. So, now, even if logging in via SSH or Rlogin, the sys_status SS_FASTLOGON flag will be set when the user specifies "!username-or-number" during logon and then the logon.js can use that to determine what to display (or not) to the user, during logon. The QWK logon support ("*username-or-number") is also handled in this new sbbs_t method: parse_login(). This means the fast_logon_char is no longer configurable (hard-coded to '!') and the modopts.ini options are going to be parsed by logon.js from the [logon] section (not the [login] section). You still must set fast_logon=true in the [logon] section of modopts.ini to enable the fast-logon option for users.
-
- 11 Jul, 2019 1 commit
-
-
rswindell authored
string: LoggingOn This was the *first* possible cause of an auto-pause ([Hit a key] prompt) during successful SSH logins. The new text string is just "Logging on to @bbs@ as @alias@ @ellipsis@" - if you want a screen clear here or to display a text file, you can do so by modifying this line.
-
- 05 May, 2019 1 commit
-
-
rswindell authored
(when/what is executed, or at least attempted).
-
- 26 Oct, 2018 1 commit
-
-
rswindell authored
don't ask Guests (during logon) either. Removed some more WIP and HTMLterm support. Remove a couple unnecessary if (text[somethingQ][0]) checks.
-
- 22 Oct, 2018 1 commit
-
-
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)
-
- 16 Apr, 2018 1 commit
-
-
rswindell authored
pause and CLS after.
-
- 06 Dec, 2017 1 commit
-
-
rswindell authored
chat, rather than the old startup options flag ([BBS]->SYSOP_AVAILABLE). This will be much easier for other processes/programs to query and control.
-