- Mar 25, 2022
-
-
Rob Swindell authored
e.g. display basename.132col.msg even if the terminal is 133+ columns wide. Fixes issue #380.
-
Rob Swindell authored
glob() is case-insensitive on Windows already, so create a work-alike for *nix.
-
Rob Swindell authored
Fix for one of the problems described in issue #380. bbs.menu("random*"); would display column-width-specific files (e.g. random.132col.msg) even when they weren't appropriate for the current user terminal width. This is fixed by truncating the filenames matching the requested pattern at their first-dot rather than the last. The downside is, you can't have a set of random.#.* files, where # is the unique part of the filename and * is the file-type extension. Just use the naming pattern "random-#.*" instead (or something similar) instead.
-
- Mar 24, 2022
-
-
Rob Swindell authored
Fixes recently broken Win32 build
-
Rob Swindell authored
I knew I created these is_valid_*num() functions for a reason!
-
Rob Swindell authored
Since we're not displaying the exact value to the byte, with commas
-
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
-
Rob Swindell authored
-
Rob Swindell authored
We don't have a use case negative byte values in strings anywhere that I can think of. Created wrapper for MSFT _ui64toa_() - unsigned 64-bit integer to ASCII string. Add Petabyte (actually, Pebibyte) support to byte_count_to_str() and byte_estimate_to_str(). Removed 'B' suffix from byte_estimate_to_str() output for values < 1024. Callers may display this returned string followed by "bytes" (or similar) and thus the 'B' suffix is redundant in that case. If the caller needs a 'B' suffix, they can detect no suffix and add it.
-
- Mar 21, 2022
-
-
Rob Swindell authored
warning: invalid suffix on literal; C++11 requires a space between literal and string macro
-
Rob Swindell authored
-
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.
-
Rob Swindell authored
comparison of integer expressions of different signedness: ‘off_t’ {aka ‘long int’} and ‘uint64_t’ {aka ‘long unsigned int’}
-
Rob Swindell authored
Used the reserved 16-bits in the file index record to extend the supported index-file-size from 4294967295 (4GB) to 281474976710655 (281TB). I think that's big enough for the foreseeable future. :-)
-
Rob Swindell authored
Size is indexed, so might as well sort by it. This does have an issue with files >= 4GB in length however, so I'm looking at that next.
-
Rob Swindell authored
-
Rob Swindell authored
Query the disk for file's current "size" and "time" values when get_list() or get() method is used with a "detail" level of >= DETAIL.NORMAL and the "check file existence" toggle option is enabled for this directory in SCFG. I pondered and contemplated whether this configuration setting should be checked/applied here or in the various JS scripts (e.g. filelist.js) and decided here was best to provide the most uniform/expected behavior, even though there is a performance impact. If a script doesn't need/use these properties, they should probably be specifying the DETAIL.MIN (minimal) detail level in their queries anyway, which will then bypass these performance-impacting disk queries.
-
Rob Swindell authored
There are lot of places in the code where subnums and dirnums (especially) are compared against total_subs and/or total_dirs or >= 0 without a ton of consistency. We should migrate to use these functions for validity-checking going forward.
-
Rob Swindell authored
This option actually controls whether the disk will be queried for the current file size and modification date/time (when listing) too.
-
- Mar 20, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
By setting sbbs.ini [web] FileIndexScript to an SSJS or XJS script filename, that script (by default, from your exec directory) will be executed when a file area/base listing has been http[s]-requested. File area/base requests are of the form <vpath_prefix> (for the list of libraries), <vpath_prefix>/<lib-name>/ (for list of directories of a library) or <vpath_prefix>/<lib-name>/<dir-code-suffix>/ (for a list of files in a directory). The new http_request "lib" and "dir" properties indicate that a library or directory listing was requested (if neither are defined, that's a request for the root / list of libs). The same configured script is executed to handle all 3 types of index/list requests. A sample script (webfileindex.ssj) will be committed soon. Authentication (via HTTP-AUTH) will be required if user #0 does not have access to all libraries or all directories within a required library. file_area.lib[].link has been changed from "/<vdir>/" to just "<vdir>" (no slashes) and renamed to "vdir". file_area.dir[].link has been changed from "/<vpath>/" to "<vpath>/" (no leading slash) and renamed to "vpath". Added file_area.dir[].vdir property that contains just the directory's virtual directory name. I don't think anyone was using these "link" properties since the dynamic FTP HTML index scripting feature is no longer supported. Added can_user_access_lib() to insure that the user has access to at least one directory of a library before allowing access to the library (e.g. via JS). Something similar should be created for message groups.
-
Rob Swindell authored
Resolves issue with filelist.js trying to pass 4294967295 (-1) to system.datestr() resulting in: !JavaScript /sbbs/exec/filelist.js line 13: Error: can't convert t to an integer
-
- Mar 19, 2022
-
-
Rob Swindell authored
DDLightarMenu: Numbered mode item refresh fix & new item number colors See merge request !164
-
Rob Swindell authored
DD area choosers: No sub-board/library collapsing if all have the same separator See merge request !165
-
- Mar 18, 2022
-
-
Eric Oulashin authored
DD area choosers: For message sub-board/file directory collapsing, if there's only one sub-group/sub-library, then it won't be collapsed DD area choosers v1.23: For message sub-board/file directory collapsing, if there's only one sub-group/sub-library, then it won't be collapsed, as that wouldn't be very useful.
-
- Mar 17, 2022
-
-
Eric Oulashin authored
menu after the user types an item number to select/highlight it. Also, added 2 new color settings to specify the color to use for writing the item numbers: itemNumColor (for non-highlighted items) and highlightedItemNumColor (for the current highlighted item).
-
Rob Swindell authored
-
Rob Swindell authored
for Andre
-
- Mar 16, 2022
-
-
Rob Swindell authored
So you have multiple IRC servers configured in modopts.ini and you want different channel list per server? Just add more keys to the modopts.ini [chat_sec] section of the form: <server>=<channel_list> Where <server> is the IRC server's host name (e.g. irc.synchro.net) and <channel_list> is a comma-separated list of channels to override the default list of channels (set with the "irc_channel" key). For DesotoFireflite (VALHALLA)
-
- Mar 15, 2022
-
-
Rob Swindell authored
LORD: Fix daily bank transfer count not being reset properly See merge request !163
-
Rob Swindell authored
LORD: Fix online duel event See merge request !162
-
Rob Swindell authored
DDMsgReader: Added back a few functions that were accidentally removed See merge request !161
-
Rob Swindell authored
Removed references to old files See merge request !160
-
Eugene So authored
-
Eric Oulashin authored
Added back a few functions that were accidentally removed (which weren't moved to attr_conv.js)
-
Eugene So authored
Fixed broken code when taunting opponent Fixed broken code when aborting after waiting a long time for opponent to respond.
-
Eric Oulashin authored
-