- Jan 05, 2025
-
-
(user_t.misc, User.settings), when enabling auto-terminal detection. This is similar to what we do in logon.cpp already: useron.misc |= (AUTOTERM | autoterm); We used to have this logic in useredit.cpp, but was removed in commit 8a71ab16, probably due to editing offline users (e.g. in ;uedit sysop comand). So just do the copy of autoterm flags when editing the *current* (online) user. This likely addresses the original concern in that commit. And it fixes issue #853, thanks to Deuce for root-causing
-
- Dec 17, 2024
-
-
Rob Swindell authored
-
- Nov 04, 2024
-
-
Rob Swindell authored
And have it return bool, like the others. The error logging is different (not using errormsg), but I think that's okay.
-
Rob Swindell authored
Trying to get to the bottom of user.tab corruption (issue #797).
-
- Oct 31, 2024
-
-
Rob Swindell authored
This allows us to use dstrtounix() for MM/DD/YY dates regardless of the system configuration (sysop/locale preference). This fixes issue with QWK route.dat file and door.sys (expiration date) parsing where the date is/has-to-be in MM/DD/YY format, always.
-
- Oct 30, 2024
-
-
Rob Swindell authored
Fix new date editing bug in user editor: we must use the numeric format for dates when creating strings to be edited.
-
- Oct 29, 2024
-
-
Rob Swindell authored
Although we've added (in SBBS v3.20) configurable numeric date input/display formats for the system, the output was still ambiguous for users (e.g. NN/NN/NN which could be interpretted a number of ways), so I've added an option to choose "verbal" short date formats to be displayed where possible instead. The same value separate from the numeric format (whatever the sysop chose) is used in the verbal date output, but since month name abbreviations are 3 characters, only one separator is used (to keep the output length fixed at 8 characters). The new "Verbal" short date display format is choosable in the SCFG wizard and via SCFG->System->Short Date Format.
-
- Oct 28, 2024
-
-
Rob Swindell authored
This is a code clean-up, no change in functionality
-
- Oct 23, 2024
-
-
Rob Swindell authored
Add JS console.ansi_getdims() Use sbbs_t::getdimensions() or JS console.getdimensions() to move user cols/rows values to run-time console values (querying ANSI terminal if appropriate/supported). JS console.pushxy(), popxy(), and gotoxy() all return Boolean now. sbbs_t::getdimensions() and its JS wrapper is now the proper way to propagate user's cols/rows settings to the run-time console values. This was done (post-login) only via use of the TERMROWS and TERMCOLS @-codes in user_settings.js. Weird.
-
- Oct 12, 2024
-
-
Rob Swindell authored
Created sbbs_t::batch_upload() and JS bbs.batch_upload() returns true if one or more blind-uploads were received and all files in the batch upload queue (if any) were received The Rainbow Ctrl-A codes (x|X) are not valid for message (there's no universal ANSI equivalent) - so treat as "invalid Ctrl-A codes" for most (message) uses. e.g. they're stripped when entered into text with the internal message editor. sbbs_t::chkpass() and JS bbs.good_password() now default to *not* requiring the password to be substantially different from the user's current password. This fixes weird issues where a user that just wanted to add more characters to their current password woudl not be allowed by cause the new password was "too obvious" JS bbs.good_password() now accepts an optional second argumnet: forced_unique which defaults to false. sbbs_t::chkpass() (JS bbs.good_password()) would always return false if the provided password was the same as the user's current password, regardless of the 'unique' parameter value. Now, only reject unchanged password when unique is true. sbbs_t::upload() and JS bbs.upload_file() now accept an optional second argument: 'filename' which when specified, the function won't prmopt for the user-supplied filename. New JS property: file_area.max_filename_length file_area.min_diskspace, settings, and web_vpath_prefix are now read-only. These properties should not have been writable.
-
- Oct 10, 2024
-
-
Rob Swindell authored
Normally, when modifying user fields via JS, the "user modified" node.dab flag would be set for that user (on all node's that user is logged-into) and the user record automatically re-read (soon after). But this doesn't work during newuser registration because the user is not yet "logged-into" a node. This fixes the issue reported by Nelgin (and observed on amessyroom's BBS) whereby if a new user resets/changes their external message editor, it would not take effect for their new user validation email to the sysop (they would still be using the default new user message editor as configured by the sysop). It's possible other new user default changes made (e.g. language) would also not have taken immediate effect as a result of this bug (now fixed).
-
- Apr 28, 2024
-
-
Rob Swindell authored
WIPterm hasn't been supported in ages and HTMLterm was just an ephemeral experiment. Leave the WIP ARS keyword parsing support, for backwards script compatibilty.
-
- Dec 31, 2023
-
-
Rob Swindell authored
To complete the request from: Max (WESTLINE) Is it possible to do a new dateformat in scfg In sweden we using YYYY-MM-DD format as standard. The default will be '/'. Technically, any separator is possible by editing the "date_sep" value in the global section of main.ini. SCFG allows the most popular separators: /.- and space.
-
- Nov 22, 2023
-
-
Rob Swindell authored
getkeys() could return -1 if user disconnects (and SS_ABORT not set), so this appears to be a valid bug.
-
- Oct 26, 2023
-
-
Rob Swindell authored
Uses the new ctrl/text.??.ini files (just a few words translated so far). Adds the new "lang" user property (to user.tab and JS User class). The language code is the 2-3 char (e.g. ISO 639-1) abbreviation of a language. A "blank" language property value (the default), just means to use the ctrl/text.dat contents. User-selected alternate language file is loaded upon logon and in the built-in/hard-coded user default settings menu. More on the user default settings menu: - AutoLogin via IP option ('I') to make room for new (I) Language option. - The cold-keys menu option was removed to make room for Language option (via text.dat change to UserDefaultsHotKey) - Any options disabled via blank text.dat strings will no longer result in supported command keys (that could accidentally be struck with hidden consequences/effect) - The user_settings.js will need similar treatment text/menu/<lang>/* is where alternate language menu files should be stored New UserDefaultsLanguage text.dat string (inserted before new PasswordChar string).
-
- Sep 24, 2023
-
-
Rob Swindell authored
Fixes unnecessary [Hit a key] prompt.
-
- Sep 23, 2023
-
-
Rob Swindell authored
When used, replaces built-in user (e.g. terminal) settings menu with a loadable (e.g. JS) module.
-
- Sep 15, 2023
-
-
Rob Swindell authored
Also, although not a bug (because we re-read/parse the user's record every menu cycle), don't decrement user.xedit before calling uselect() - just not a good practice to not modify variables unnecessarily. See the corresponding change to exec.cpp, which was a bug.
-
- Sep 14, 2023
-
-
Rob Swindell authored
-
- Sep 13, 2023
-
-
Rob Swindell authored
I'll add detailed docs to http://wiki.synchro.net/custom:atcodes soon, but the list is: - TERMTYPE - TERMROWS - TERMCOLS - AUTOTERM - ANSI - ASCII - COLOR - ICE - RIP - PETSCII - SWAPDEL - UTF8 - MOUSE - UPAUSE - SPIN - PAUSESPIN - EXPERT - HOTKEYS - MSGCLS - REMSUBS - FILEDESC - FILEFLAG - AUTOHANG - AUTOLOGON - QUIET - ASKNSCAN - ASKSSCAN - ANFSCAN - EDITOR - SHELL This should (at least mostly) address the issue #629
-
- Jun 04, 2023
-
-
Rob Swindell authored
-
- May 06, 2023
-
-
Rob Swindell authored
-
- Apr 14, 2023
-
-
Rob Swindell authored
Rather than recomputing (possibly differently) the max lines in multiple places. This also enables the possibility that editfile() could be used to edit files of > 10K lines in the future. <shrug>
-
- Mar 11, 2023
-
-
Rob Swindell authored
Does exactly the same thing, no change in behavior and unlikely there's any change in performance.
-
- Feb 26, 2023
-
-
Rob Swindell authored
Many dynamically-generated (e.g residential) hostnames are much > 30 chars. And we can now increase user.tab fields fairly arbitrarily, so let's. :-) Also rename LEN_COMP to LEN_HOST. Some day I'll change all the user_t comp references to 'host', but not today.
-
Rob Swindell authored
Reversed the order of the pwmod date and the password itself. The number of chars of the user's password displayed depends on the terminal width. e.g. on an 80 column terminal, 18 chars will be displayed. If the user's password is longer than what can be displayed, this is indicated with a trailing "..". Wider displays (e.g. 132 column) can display all 40 chars of a user's password. This fixes issue #442 When passwords aren't displayed (due to sysop configuration), show "<hidden>" instead of "XXXXXXXX" to make that more clear.
-
- Feb 19, 2023
-
-
Rob Swindell authored
More 'long int' purging.
-
Rob Swindell authored
Mostly [s]printf format fixups
-
- Jan 22, 2023
-
-
Rob Swindell authored
IF user hits 'Q' (or whatever the "Quit" key is), set the default protocol field in the user record to " " (instead of an empty string). If user hits abort (Ctrl-C), don't make any change to the default protocol.
-
- Dec 31, 2022
-
-
Rob Swindell authored
CID 433272
-
- Oct 20, 2022
-
-
Rob Swindell authored
... for proper error reporting, at least in the terminal server. Also define/use a macro for the user base filename (now user.tab, not user.dat).
-
Rob Swindell authored
and then unlocking again. So... make readuserdat() optionally leave the record locked, reducing a lot of unnecessary lock/unlocking in here. Move the user field index definitions to userfields.h
-
- Oct 18, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
Also resolved some 32 vs 64-bit 'long' issues/ambiguities that have long-remained. :-) This commit also removes logon.lst file support. There's a TODO block remaining in js_user.c for setting portions of a user's birthdate (e.g. just the year or month or day).
-
- Mar 24, 2022
-
-
Rob Swindell authored
Credits and daily free credits are accurate to the byte up to (a maximum) of 18446744073709551615 (that's 18 Exbibytes - 1). User's upload and download byte stats are now similarly extended in maximum range, but the accuracy is only "to the byte" for values less than 10,000,000,000. Beyond that value, the accuracy declines, but is generally pretty damn accurate (to 4 decimal places beyond the nearest multiple of a power of 1024), so I don't expect that to be an issue. This method of storing upload/download byte stats allowed me to use the same 10-character user record fields in the user.dat file. As a side-effect of this enhancements: * User and file credit values are now expressed in multiples of powers of 1024 (e.g. 4.0G rather than 4,294,967,296). * Free credits per day per security level has now been extended from 32 to 64-bits (to accommodate values >= 4GB). * adjustuserrec() now longer takes the record length since we can easily determine that automatically and don't need more "sources of truth" that can be out-of-sync (e.g. the U_CDT field length going from 10 to 20 chars with this change). * setting the stage for locale-dependent thousands-separators (e.g. space instead of comma) - currently still hard-coded to comma * more/better support for files > 4GB in size (e.g. in the batch download queue) * user_t ulong fields changed to either uint32_t or uint64_t - I didn't realize how many long/ulong's remained in the code (which are sometmies 32-bit, sometimes 64-bit) - ugh * Steve's ultoac() function renamed to u32toac() and created a C++ wrapper that still uses the old name, for homage
-
- Mar 07, 2022
-
-
Rob Swindell authored
As Andre pointed out, these checks perform no function because a user with a level lower than the user being edited cannot enter the related command-key anyway. This was just effectively dead code that was held-over from ancient SBBS days, seemingly before I learned to effectively use the || operator: if(!(atoi(str)>useron.level && console&CON_R_INPUT)) :-) Fixes issue #361
-
- Mar 04, 2022
-
-
Rob Swindell authored
Fix CID 33266: Negative loop bound
-
- Nov 18, 2021
-
-
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.
-
- Sep 25, 2021
-
-
Rob Swindell authored
Up to 40 characters can be configured by the sysop for gender options. The default choice/configuration is now: "M/F/X" (not just "M/F") New @-code: GENDERS text.dat EnterYourSex -> EnterYourGender Closes enhancement request #291 by Ragnarok
-
- Jul 31, 2021
-
-
Rob Swindell authored
If anything, I suppose would be beep if a search fails, but really, I think beeps are kind of annoying these days. Not changing the currently selected/viewed user is likely all that's really needed to indicate a search failure.
-