- 24 Mar, 2022 2 commits
-
-
Rob Swindell authored
-
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
-
- 21 Mar, 2022 1 commit
-
-
Rob Swindell authored
To fully support files > 4GB in size in file bases, credit values larger than 32-bits must be supported too. There's a couple of todo comments/items included in this commit, but that's mainly to do with messages (which don't really have costs anyway). The main thing to deal with now is the fact that users can't have more than 4GB in credits in the first place! That's got to be fixed next.
-
- 26 Feb, 2022 1 commit
-
-
Rob Swindell authored
For DesotoFireflite (VALHALLA)
-
- 05 Feb, 2022 1 commit
-
-
Rob Swindell authored
Users with the 'O' restriction (automatically set if a new user has the same "real name" as another account, and that's allowed by the sysop) will send netmail from their alias and not their real name to prevent impersonation of another user.
-
- 18 Nov, 2021 1 commit
-
-
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.
-
- 06 Oct, 2021 2 commits
-
-
Rob Swindell authored
Most Ctrl-A code terminal/attribute effects can now be invoked via @!x@ where x is one or more Ctrl-A sequence operands (e.g. @!B@ to set the current attribute to blue, @!P@ to pause the terminal). Multiple attribute codes may be specified in a single @!x@ sequence. Both upper and lowercase attribute codes are supported. The "^A@" sequence is not supported, but there's already an @-code to perform the equivalent operation ("SHOW:20"). Rationale: when using PabloDraw to edit display (e.g. .msg) files, there was no easy way to explicitly clear (set to "normal") the current attributes at the end of a line of text. If that line of text contained a background color and the line caused the terminal to scroll, that background color would fill the next/new line resulting in some potential undesirable effects. There are 2 common solutions to this problem: either clear the screen before displaying the file (not always desirable) or clear the attributes at the end of the line (before the CR/LF). This can now be achieved by adding a @!N@ (the equivalent of Ctrl-AN for "normal" attributes) to the end of a line. There's no way to insert custom Ctrl-A sequences or other way to force PabloDraw to clear the attributes at the end of a line, that I found. I chose the '!' character because it's (on my keyboard anyway) the Shift-1 key and Ctrl-A is ASCII 1. I considered a sequence such as @A:x@, but that's one more character and since this sequence usually won't display anything, a shorter sequence is likely preferred. For the shortest-possible sequence, use Ctrl-A sequences instead. However, for many consecutive Ctrl-A sequences, the @-code equivalent might actually end up being shorter(!). @-codes aren't support in as many places in Synchronet where Ctrl-A codes are supported (for security reasons), so it's not like this is going to replace the use of Ctrl-A codes everywhere.
-
Rob Swindell authored
SEX is the user's sex/gender GENDERS is the list of system-supported genders for new users to choose from.
-
- 25 Sep, 2021 1 commit
-
-
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
-
- 15 Aug, 2021 1 commit
-
-
Rob Swindell authored
Expands to a percentage, similar to PCR (not capped at 100). Remove the failed-attempt to cap the percentage at 100 for the PCR atcode.
-
- 04 Apr, 2021 3 commits
-
-
Rob Swindell authored
CONTINUE is like GETKEY except it'll set the display-abort flag if 'N' or 'Q' are typed. Make the WAIT:<n> argument 10ths of a second (instead of milliseconds) to be more consistent with DELAY:<n>.
-
Rob Swindell authored
GETKEY waits indefinitely for any key press by the user (resolves issue #245). WAIT:<n> waits for up to n-milliseconds for a key press and then continues on. For both cases, the key pressed is not echoed or acted upon in any way. Ctrl-keys could be handled by global or built-in ctrl-key handlers, so those would be the exception.
-
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...
-
- 15 Feb, 2021 2 commits
-
-
Rob Swindell authored
Hopefully not introducing any bugs in the process.
-
Rob Swindell authored
Hopefully not introducing any bugs in the process.
-
- 12 Dec, 2020 1 commit
-
-
Rob Swindell authored
New @-codes: GIT_HASH and GIT_BRANCH New JS system properties: git_hash and git_branch
-
- 09 Dec, 2020 1 commit
-
-
Rob Swindell authored
New JS User.stats properties: - read_mail_waiting - unread_mail_waiting - spam_waiting New @-codes: - MAILR (read mail waiting) - MAILU (unread mail waiting) And the corresponding MAILR# and MAILU# codes (for non-current user's stats). Addresses feature request #191.
-
- 06 Dec, 2020 2 commits
-
-
Rob Swindell authored
- FREESPACEM - Mebibytes - FREESPACEG - Gibibytes - FREESPACET - Tebibytes Mr. Millionaire's request.
-
Rob Swindell authored
- MSG_THREAD_ID - MSG_THREAD_BACK - MSG_THREAD_NEXT - MSG_THREAD_FIRST for John (JCBBS). Not sure what you're going to use these for, but there you have them. <shrug> :-)
-
- 25 Nov, 2020 2 commits
-
-
Rob Swindell authored
ARS = Access Requirement String Spaces aren't allowed in the <ars> so you might have to get creative with ARS symbols instead of keywords. SHOW by itself will re-enable display output for all users. - for Nelgin
-
Rob Swindell authored
- for Nelgin
-
- 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.
-
- 16 Oct, 2020 1 commit
-
-
Rob Swindell authored
Also, don't truncate strings to accommodate screen width when the string contains a new-line character. This is so ScottD (from irc.synchro.net) can use TEXT:556 @-code to print the Ctrl-K menu (text.dat string) via a command shell written in Baja.
-
- 15 Oct, 2020 2 commits
-
-
Rob Swindell authored
Use BIRTH instead of BDATE if you want MM/DD/YYYY (or DD/MM/YYYY) instead of MM/DD/YY or DD/MM/YY formatted birthdate display. New aliases (for consistency): BIRTHFMT -> BDATEFMT and BIRTH:<fmt> -> BDATE:<fmt>
-
Rob Swindell authored
Can't say I don't blame them, it is a little unnatural. So instead, use either MM/DD/YYYY (the default) or DD/MM/YYYY (European date mode). This required the use of a new @-code: BDATEFMT and the update of a couple of text.dat lines (in next commit).
-
- 05 Oct, 2020 1 commit
-
-
Rob Swindell authored
- DATE: (alias: TIME:) - BDATE: - PWDATE: - SINCE: - LASTON: - FIRSTON: - LASTNEW: - EXPDATE:
-
- 04 Oct, 2020 2 commits
-
-
Rob Swindell authored
Truncating. str is a pointer, so sizeof(str) is only 4 (or 8) bytes.
-
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.
-
- 29 Sep, 2020 1 commit
-
-
Rob Swindell authored
e.g. FILL:\x20 to fill with space (for Michael Long via USENET)
-
- 28 Sep, 2020 1 commit
-
-
Rob Swindell authored
NETMAIL: user's personal netmail or email address - for WitNik FWD: "On" if the user has opted for forwarding their mail to netmail or "Off" TMP: user's chosen temporay file type (e.g. "ZIP") NOTE: user's note (same as MEMO1) LASTIP: user's most recent IP address at time of logoff
-
- 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).
-
- 07 Sep, 2020 1 commit
-
-
Rob Swindell authored
Eliminate the hack in each server where it will over-write startup host_name (with the configured Internet email address), if it's blank. This hack was subject to a race condition where the parent app (e.g. sbbsctrl.exe) would clear or re-initialize the host_name after the sever threads had initialized. Instead, just use a function which will return either the startup->host_name or (fallback to) scfg.inet_addr.
-
- 16 Aug, 2020 1 commit
-
-
Rob Swindell authored
-
- 10 May, 2020 1 commit
-
-
rswindell authored
-
- 09 May, 2020 1 commit
-
-
rswindell authored
Both hungry/liberal hot-spots and strict hot-spots can be defined now, at the same time. For Nelgin. Use ^A` to define a single-char strict hot-spot using Ctrl-A codes. Unfortunately, this usurps the "home" Ctrl-A code which nothing seems to use but has now been changed to ^A'. Use ` instead of ~ in mnemonics to define strict single-char hot-spots (also displays the cmd key in [] instead () on non ANSI/PETSCII terms). Use @` instead of @~ codes to define strict hot-keys. Use HOT:STRICT @-code to declare a strict hot-key color. Use HOT:HUNGRY @-code to toggle back to hungry color-defined hot-keys (the default). New optional boolean argument to JS console.add_hotkey(), hungry = true by default.
-
- 08 May, 2020 4 commits
-
-
rswindell authored
- "HOT" by itself will set the hot-spot attribute to the *current* attribute (just colorize the @-code in your editor the same as you do your cmd keys no need to memorize color-code mnemonics) - "HOT:OFF" will turn off the hot-spot attribute through the end of the text or util re-enabled - Use a more greedy/liberal hot-spot matching algoirthm so that hot spots can overlap and the "best" one will be chosen. No way to opt-out of this algorithm (e.g. to use a conservative matching algo) currently. - Earlier parse of @~ codes to keep text prestine
-
rswindell authored
A more convenient method of creating mouse hot spots in a display (e.g. menu) file: New "HOT:<attr>" @-code allows you to define a specific combination of attributes (colors) that will be used to exclusively create clickable command keys or words in a file. Every set of charcters in the display file that uses that specific combination of attributes will become an automatic mouse hot spot. The <attr> is specified using a set of attribte mnemonics (e.g. "YH" for high-intensity yellow), the same set used in attr.cfg and other places in sbbs. This allows more WYSIWYG style menu editing (e.g. use PabloDraw), you just need to be careful with your choice of colors. You cannot send white-space or control characters with this method and the clickable text is the exact text that will be put in the keyboard buffer.
-
rswindell authored
- User Defaults menu mousified - When all hot spots have scrolled off the screen, clear the hot spot list - Insert new hot spots in the front of the list so they will take precedence over any previously defined duplicate hot spots - Numeric hot spot commands end in a carriage-return - No auto-acceptence of numbers when there are keys in the keyboard buffer - Baja UNGETKEY function now inserts keys into the "front" of the keyboard buffer (next to be consumed) - Hot key @-code command text supports C-style escape sequences (allows encoding of ctrl chars, spaces, etc.)
-
rswindell authored
- hot spots are clickable screen areas (e.g. in menus and prompts) that generate key-strokes - commands may be from 1 to 127 ASCII-characters in length - currently using the X10 mouse reporting mode, may change - all mnemonics strings (~Example) are automatically hot-spots - The new ~ @-code defines a hot spot - Any screen-clear operation clears all hot spots - sbbs now tracks the current screen (cursor position) row - eliminated the old "tos" (top-of-screen) boolean (row == 0 indicates "tos") - created an sbbs_t::ungetstr() method - keep track if in pause (hit a key) prompt, for special mouse behavior new JS console object: - row property - tos property is now read-only (and deprecated) - new methods: add_hotspot() clear_hotspots() scroll_hotspots() redrwstr() gets some UTF8 touch-ups as part of this commit. <shrug>
-
- 01 May, 2020 1 commit
-
-
rswindell authored
The 'U' modifier for @-codes implies left-alignment, but does not truncate the expanded value by default (only when a width is explicitly expressed).
-