- Jan 14, 2025
-
-
Rob Swindell authored
uncrustify nl_split_if_one_liner setting
-
Rob Swindell authored
... using uncrustify mod_paren_on_return config
-
Rob Swindell authored
White-space changes only, exception being the rare insertion of NL before closing brace (couldn't find the option to disable that behavior). I excluded some header files (e.g. sbbs.h) since uncrustify seemed to be doing more harm than good there. I might just end up applying different set of rules to .h files.
-
- Jan 11, 2025
-
-
Rob Swindell authored
Previously, if either of the user terminal dimensions was set to a auto (0) then we wouldn't propagate the other specific (non-zero) value to the runtime console dimension. Usually a user will set either both values (cols and rows) to 0/auto or neither. So this isn't a oft-used configuration combo.
-
- Jan 09, 2025
-
-
Rob Swindell authored
Add/use new print mode flag: P_ATCODES for use with trusted format params Renamed text.dat strings (to better support translation/localization): - Deleted -> DeletedUser - Inactive -> InactiveUser New text.dat strings: - Deleting - DoneDeleting - Deleted - DeletedNumberItems - E_Mail - E_Mails
-
- Jan 05, 2025
-
-
This was evident by logging in with PETSCII/64col mode and the last ']' of the "Loading message pointers..." progress indicator was left in the first right column of the screen.
-
- Dec 02, 2024
-
-
Rob Swindell authored
Addresses Clang warnings about deprecation
-
- Nov 16, 2024
-
-
Rob Swindell authored
-
- 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 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.
-
- Sep 07, 2024
-
-
Rob Swindell authored
For cases where an mqtt struct is shared between threads without concurrency control. I'm making this improvement in light of research into issue #781, though I don't expect this change to fix the reported issue. The reported error seems to come from the event thread (publishing node status upon starting to run the "DAILY" event) when a broker connection was not successful, however the reporter (Nelgin) may not have had debug-level logging turned on, so didn't capture the successful broker-connect log message. I think the broker connection *was* successful and perhaps then terminated by the broker ("due to protocol error"?).
-
- May 25, 2024
-
-
Rob Swindell authored
Fix issue #759
-
Rob Swindell authored
New key "rainbow" in ctrl/attr.ini New Ctrl-A codes: 'X' to turn on repeating/wrapping rainbow attributes, 'x' to turn on non-repeating/wrapping rainbow attributes. New @-code: RAINBOW:x to set the list of (comma-separated) rainbow attribute values (in same form as attr.ini). When used in a display file, the rainbow attribute change is temporary. Ever wanted to add alternating attributes to @-code expanded text in display files? Now you can. Also can be used to easily/quickly create display files with repeating elements (e.g. commands/options) using alternating attributes.
-
- Feb 16, 2024
-
-
Rob Swindell authored
Don't corrupt UTF-8 strings with SAFECOPY() (use new SAFECOPY_UTF8). Some terminals (notably, Windows Terminal) display zero width UNICODE chars as a single column-wide space. <sigh> Auto-detect the zero-width "width" (1 or 0) of the terminal during connection and UTF-8 auto-detection. getstr() works a lot better now with UTF-8 strings with wide chars (e.g. emojis), but likely much more to do.
-
- Sep 26, 2023
-
-
Rob Swindell authored
sbbs_t::mnemonics() now supports @-codes immediately following the tilde (e.g. ~@Yes@) to use the first character of a dynamically-replaced (e.g. localized/translated) text string as a command key. Fixed issue in sbbs_t::mnemonics if multiple @-codes were specified in the string, but no space characters (just noticed this bug while reviewing). Created: sbbs_t::expand_atcodes() - used by sbbs_t::mnemonics(), exposed in JS as bbs.expand_atcodes(). bbs.text and system.text now have properties: each text string ID is the property name and the text index number (1-based) is the property value - enabling fast text string lookup without load/require text.js Constified sbbs_t::atcode() and attrstr() - not too painful Deprecated YNQP text.dat string in favor of (the first character of) "Yes" and "No" text strings and new strings: "Quit", and "PasswordChar" Other text.dat changes: ListKey->List, AllKey->Unused853 More new text.dat strings: Which, Next, Previous, Language, LANG Deprecate the "AllKey" text string Create/use sbbs_t::all_key() - first character of "All" text string New JS console properties that present common (possibly localized) command keys: yes_key, no_key, quit_key, all_key, list_key, next_key, prev_key
-
- 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
-
- May 26, 2023
-
-
Rob Swindell authored
-
- May 06, 2023
-
-
Rob Swindell authored
e.g. when using Ctrl-K or when being prompted for key-press due to inactivity
-
- Mar 11, 2023
-
-
Rob Swindell authored
Does exactly the same thing, no change in behavior and unlikely there's any change in performance.
-
- Feb 19, 2023
-
-
Rob Swindell authored
Mostly [s]printf format fixups
-
Rob Swindell authored
At one time, Synchronet was a 16-bit DOS project, plagued by the 16-bit [u]int, so long's were used everywhere > 16-bits were known to be needed/wanted (This is before the days of the standard sized types from stdint.h), and they've persisted. But '[u]long int' is 64-bits on *nix 64-bit builds, 32-bits everywhere else (even 64-bit Windows builds if/when we ever get around to that), so this could lead to insidious bugs that would only show up on one flavor or the other. Since [u]int is 32-bits on everything we currently support, we'll use that instead of [u]long. This "part 1" because I'm sure there's going to be warnings and errors from the GCC/Clang builds as a result, which I'll get to next.
-
- Jan 28, 2023
-
-
Rob Swindell authored
The interactive prompting for terminal capabilities worked fine, but the default configuration menu settings did not reflect the user's previous choices and changes they made (e.g. toggle mouse support or BS/DEL key swap) were not reflected in the menu. Once logged in, the normal user defaults menu worked as expected. This is all because term_supports() keyed off of SS_USERON which isn't set during new user sign-up, so let's key off SS_USERON|SS_NEWUSER now.
-
- Jan 05, 2023
-
-
Rob Swindell authored
-
- Jan 04, 2023
-
-
Rob Swindell authored
<server>/state is now published directly to the <sever> topic level (the "state" topic goes away). Moved <bbs-id>/node# topics to <bbs-id>/nodes/# (allows better wild-card subscription per MQTT standards). Publishing total node count to <bbs-id>/nodes rather than <bbs-id>/node_count Introduced "publish verbosity" control (defaults to "High") - if you want nice human readable (and sometimes redundant) topic messages, leave this set to "High". To reduce traffic, set to "Low". It's expected that purpose-built Synchronet/MQTT clients should work equally-well with either setting, but when using generic MQTT clients/browser, "high" verbosity is nice. The human-readable node status is only published when "high" verbosity is enabled. Publishing the BBS name to the <bbs-id> topic, the instance hostname (as configured in sbbs.ini) to the <host> topic. Makes the hierarchy much more clear when using an MQTT browser like MQTT Explorer.
-
Rob Swindell authored
-
Rob Swindell authored
Each Synchronet server is now its own MQTT client. This means there's no longer any MQTT logic in the Synchronet "hosts" (e.g. sbbscon.c, ctrl/*.cpp) and none needed for SBBS NT services (they'll "just work" with MQTT). This also means that just about everything (except for nodes, spam and hack) is now published per-server (in the sbbs/BBS-ID/hostname/server/ topic branch) and if you want aggregated totals or client lists, you'll have to do that in your own MQTT client or dashboard. I also removed the publishing of thread_count and socket_count topics as they weren't universally supported across all servers and are of questionable value. They can be added back later if determined to be useful.
-
- Jan 02, 2023
-
-
Rob Swindell authored
Now support subscriptions (e.g. recycle topics, node input topics) in SBBSCTRL. This required a lot of search/replace and fun with circular struct pointers.
-
- Dec 21, 2022
-
-
Rob Swindell authored
This is to avoid the error reporting/logging that results.
-
- Dec 12, 2022
-
-
Rob Swindell authored
Requires libmosquitto (e.g. install mosquitto-dev pkg) and set in ctrl/main.ini: [mqtt] Enabled=true broker_addr=127.0.0.1 broker_port=1883 qos=0 keepalive=10 Next up: Windows support
-
- Dec 03, 2022
-
-
Rob Swindell authored
New LINEDELAY and LINEDELAY:n @-codes Another way to pace the terminal output of long display (e.g. ANSI) files. LINEDELAY enables a 1/10th of a second delay before the sending of all LF chars. LINEDELAY:n sets the line_delay duration explicitly to a value in 1/100ths of a second units. So LINEDELAY and LINEDELAY:10 are equivalent. LINEDELAY:0 turns line-pacing off. The original line pacing value is always restored after a printfile/putmsg operation. New JS console.line_delay property (milliseconds) to control via JS. Setting this to a really high value would be bad. Some range enforcement should be added to this and many other console control values (TODO).
-
- Nov 12, 2022
-
-
Rob Swindell authored
Now, if the BOOL argument value is FALSE, then the .ini file is opened read-only (and thus only read permissions are needed, resolving issue #455). If the BOOL argument value is TRUE, create-if-not-exist is implied. There are no use cases where we would want to open an .ini file for writing only if it already existed.
-
- Jul 05, 2022
-
-
Rob Swindell authored
Note: this centering logic does not know the expanded-size of the @-code, so use a fixed-length @-code (e.g. with padding) or use the 'C' @-code format modifier instead. Fix issue #418
-
- Jun 11, 2022
-
-
Rob Swindell authored
This is normally the first count value and even if we *just* output a progress() for a previous operation, we still want the first progress() call for the operation to display.
-
- Apr 28, 2022
-
-
Rob Swindell authored
... regardless of the timing of the last progress report. For cases where the progress output isn't erased once done doing the thing.
-
- Feb 12, 2022
-
-
Rob Swindell authored
it just seems it's even worst than Deuce thought. :-)
-
- Jan 20, 2022
-
-
Rob Swindell authored
Default the progress time interval to 500 milliseconds (twice a second). Don't specify a count/call interval in the call-sites, since we really want to use time-based progress updates now only and the default probably will work fine everywhere.
-
Rob Swindell authored
To send less text over slow (e.g. 4800bps) modems. For Nelgin. This makes the interval argument unnecessary I think.
-
- Jun 08, 2021
-
-
Rob Swindell authored
Sometimes the progress meter (e.g. during file text searches) appears at a column offset > 0 and doesn't look good. Fix that.
-
- May 14, 2021
-
-
Rob Swindell authored
I haven't played with this chat pager in *years*! The lowest tones were inaudible (raise the range from 0-800Hz to 400-1200Hz). Increase the msgabort() tone from 1 to 10ms, sounds like those computerized voice recognition phone systems now. Remove the redundant "<user> paged you to chat" notifications (and log message) when turning *off* the chat pager.
-