# StormBot.TCL V6.2.00016 CHANGELOG: 2019-03-20 18:18:21 GMT # 2019-03-20 18:18:21 GMT: === Current Development Version === 0001) 2019-03-04 22:03:50 GMT: [core - login] Fixed LOGIN (multi-step process: moved all LOGIN tracking into the LOGIN bead. I don't ever foresee SB running without the need to login, but, it does make updating easier if I'm not always updating the core file.) 0002) 2019-03-04 19:01:24 GMT: [core] Fixed SB:AUTH (added automatic cleanup of auth data [exposed during testing but I don't think the "mess" (multiple copies of nicks/handles) will go into the wild].) 0003) 2019-03-04 18:43:05 GMT: [login] Fixed LOGIN (cosmetic: $HOST was used as a variable name again in yesterday's patch, so the output "this user logged in (NICK!*!ident@domain)" was the resulting output.) 0004) 2019-03-03 00:34:24 GMT: [note] Fixed The Albatross (NOTE LIST: colored the urgent and important note counts.) 0005) 2019-03-02 05:59:49 GMT: [core - login] Fixed LOGIN* (solved an issue with multiple nicks authing to the same handle: OAUTHs were shared once one successful OAUTH occurred. This has been a pain for me to solve for a long while. This issue is a security issue which will require a new distro to be released.)) 0006) 2019-03-02 03:50:39 GMT: [login] Fixed LOGIN (test against userhosts, so user with password can't get in so easily.) 0007) 2019-03-02 02:28:25 GMT: [config] Fixed CONFIG (added CONFIG VARIABLES: set automatic overrides to global variables. This allows for setting custom variables without altering the bot's config file [CONFIG is bound to =1000]. Bootstrapper will quietly catch "read-only" variables (non REHASH/RESTART situations, such as MAINTENANCE). TASK #77.) 0008) 2019-03-02 02:00:09 GMT: [core - config - set] Added OUTPUTCMD (lets you re-direct specific commands to specific outputs, instead of programming code in the individual command beads, like NOTE & DCCME. Global option (via CONFIG -GLOBAL) and user-speific (via SET) are available.) 0009) 2019-03-02 01:23:50 GMT: [ban] Fixed BAN (when no time marker is used, the check for defaults caused the default times to be interpreted as seconds (when they were actually minutes) when the core Eggdrop settings were used. SB-related defaults weren't affected by this. Found by fd0. TASK #151.) 0010) 2019-02-28 17:56:23 GMT: [quote] Fixed QUOTE (re-wrote QUOTE to side-step the TDB; the old bead was not interfacing with the TDB properly. Instead of chasing and debugging like a mad woman, I'm retiring the TDB globally. Other bead re-writes are likely.) 0011) 2019-02-28 16:58:04 GMT: [core] Fixed ISSCINOT (fixed to allow EXPR-legal expressions to survive (i.e. "1e5" and the like). This fixes issue noted in CHANGELOG #2991 (I will have to ignore any visually 'hex-like' number like '1E5' because it SHOULD have a header (0x, #$, $) attached to it).) 0012) 2019-02-25 20:45:30 GMT: [alarm] Fixed ALARM & DELAY [fixed ALARM:PROCESS: wasn't updated for arg order change in SB:IDENTIFY (WHOIS) referenced in CHANGELOGs #2750 & #4312.) 0013) 2019-02-24 00:21:06 GMT: [core] Fixed WHOIS (when the user isn't authed, new code wasn't searching for the user (by nick) on any channels. This caused a look-up failure if the user wasn't (1) logged-in *and* (2) on a "alias" of some kind. Found by Bette, by happenstance. :) 0014) 2019-02-23 22:11:25 GMT: [core] Fixed SB6:BOOTSTRAP (adjusted TLS initialization to force TLS1 use and disable SSL2/SSL3.) 0015) 2019-02-06 17:03:41 GMT: [external] Added EXTERNAL (preliminary testing: ability to TELNET in and run the bot, similar to DCC CHAT, but is designed to be used by scripts, such as BASH / BATCH / TCL EXPECT.) 0016) 2019-02-06 17:02:54 GMT: [core] Fixed OUTPUT2 (applied control strip for DCC & EXTERNAL output streams; also, added CR for EXTERNAL (TELNET connection needs CRLF; Eggdrop's DCC system only uses LF).) 0017) 2019-01-28 20:55:05 GMT: === Version 6.2.004 - build 00016 === 0018) 2019-01-28 20:27:51 GMT: [note] Fixed The Albatross (the specific-user lookup was trying to locate a user by NICK/FINDME instead of HANDLE/FINDME. This issue may exist in other places; I've had to fix this before.) 0019) 2019-01-28 20:27:07 GMT: [core] Fixed WHOIS (additional tweak needed to handle DCC-targetted commands, like NOTE.) 0020) 2019-01-28 20:06:44 GMT: [core] Fixed WHOIS (replaced with better parser, based on SB7 version, then cleaned-up some code.) 0021) 2019-01-28 18:19:41 GMT: [core] Fixed MID (quick-check for simplest syntax (MID , implied to-end-of-string) instead of piping through the math section.) 0022) 2019-01-25 22:21:11 GMT: [onjoin - konjoin - memo] Retiring KONJIN and MEMO (KONJOIN's code was wiping-out ONJOIN anyway.) 0023) 2019-01-25 20:33:00 GMT: [botsend5] Fixed BOTSEND5 INFO (error trap for INFO data handshake, due totoday's issue with the "USER:nickhosthandlechan") data packet [multi-element LIST].) 0024) 2019-01-25 20:17:31 GMT: [botsend5] Fixed BOTSEND5 (actual BOTSEND5 command [data throughput]: some SWITCH targets were missing their respective RETURNs.) 0025) 2019-01-25 19:51:03 GMT: [core] Fixed all distributions (somehow, MODUSER was missing! "Found" by Bette.) 0026) 2019-01-25 16:44:56 GMT: [botsend5] Fixed BOTSEND5 (REGEXP for determining bot list vs : vs file names was weird: ^([^:]+))[ ]*:[ ]*(.+)+$ which does: search for first colon, then check for spaces, THEN the colon. This caused the botlist's final entry to carry any extra spaces as part of the bot name itself.) 0027) 2019-01-25 15:57:01 GMT: === Version 6.2.004 - build 00015 === 0028) 2018-12-04 22:18:08 GMT: [tvmaze] Fixed TVMAZE (fixed SCHEDULE option: now properly displayed times, given multi-timezone regions.) 0029) 2018-12-03 20:49:57 GMT: [core] Added UTF8UNICODE ("manual" parser for UTF-8 -> Unicode conversions.) 0030) 2018-12-03 06:27:51 GMT: [core - openlocation - distro - credits] Fixed CORE, OPENLOCATION, DISTRO, & CREDITS (updated copyright dates for 2019.) 0031) 2018-12-01 22:17:28 GMT: [dns] Added DNS -WHOIS (will do a WHOIS look-up on a domain name. Currently can 't handle IPs (extra level of parsing required; will do some day). Made this a flag-option to DNS because the WHOIS command already exists.) 0032) 2018-12-01 17:56:18 GMT: [chattr] Fixed CHATTR (missing bracket in the final "reset channels" loop.) 0033) 2018-11-12 14:19:31 GMT: [core] Fixed SB:DISPATCH (coemstic: cleaning some code in a few spots (and adding some color to come critical mesages, like DCC + no saved hosts ("NEW"), and, the line-truncation warning.) 0034) 2018-11-10 21:39:23 GMT: [core] Fixed VAR (properly handle arrays.) 0035) 2018-11-07 19:25:41 GMT: [botsend5] Fixed BOTSEND5 (cosmetic: colon instead of another comma: (speed): (sizes)....) 0036) 2018-10-30 21:35:14 GMT: [set] Fixed SET HELP ALL (cosmetic: forgot a colon. Found by fd0. TASK #148. Also, needed to replace the USING with FORMAT. When I wrote this bead æons ago, I didn't understand how FORMAT worked, so I wrote USING to approximate the PRINT USING of C-128 BASIC to handle formatting. FORMAT can't center text, though. :) 0037) 2018-10-30 18:25:45 GMT: [botsend5] Added BTOSEND5 SHIFT (in case AUTOSHIFT is off.) 0038) 2018-10-30 16:14:26 GMT: [core] Added SB:TARGET_COMPONENT (oft-needed "where whould this go if it didn't already exist" file directory selector. This deals with the flaw in SB:MATCH_COMPONENTS, which relies on the file already existing in order to be found.) 0039) 2018-10-30 14:29:11 GMT: [core] Removed from distribution: TOP, STATS, COUNTERS, & TOPCHECK (feedback was nil.) 0040) 2018-10-30 14:28:27 GMT: [top - stats] Fixed STATS (split STATS, created TOP.) 0041) 2018-10-30 05:30:10 GMT: [botsend5] Fixed BOTSEND5 NEXT (added option: DO (alias: FORCE) to force a buffered transfer to begin. As opposed to BOTSEND [1], you can now select which transfer to force.) 0042) 2018-10-30 05:29:13 GMT: [botsend5] Added BOTSEND5 ALIAS (added control and support code for bot group aliases.) 0043) 2018-10-30 04:53:34 GMT: [lookup] Fixed LOOKUP (a warning was added and another was deleted: because of the asynchronous waythe DNS module works, outptu control flags like and can't be applied (the flags are cleared when the command exits, even though, the DNS module hasn't responded yet). I can't correct for that in an asynchronous setup like this. Found by Bette. TASK #146.) 0044) 2018-10-29 04:37:37 GMT: [core - config] Aded CONFIG -GLOBAL FAILCONTINUE (currently, when a bead crashes during cold or warm boots, the error trapped so the bot will load OTHER scripts, but SB6 won't load (depending on where in the sequence the bad bead is). This option will allow the bead loads to continue. Inspired by Natalia.) 0045) 2018-10-29 04:01:26 GMT: [date] Added DATE to all distributions (oversight from bead splits! Found by Bette.) 0046) 2018-10-29 03:39:02 GMT: [botsend5] Added BOTSEND5 NEXT (same as BOTSEND -NEXT SEND: buffer a send for when no other transfers are in progress, either direction. This will allow / create daisy-chained transfers.) 0047) 2018-10-29 02:50:27 GMT: [botsend5] Fixed BOTSEND5 (added NEXT ability, made easy to implement thanks to BOTSEND5:CURRENT.) 0048) 2018-10-29 01:52:43 GMT: [botsend5] Fixed BOTSEND ALLOW/BLOCK DEL (wrong arg offset for integer mode.) 0049) 2018-10-29 01:44:51 GMT: [botsend5] Fixed BOTSEND5 (created alias OFF/ON for SET ACTIVE OFF/ON.) 0050) 2018-10-28 04:16:30 GMT: [botsend5] Added BOTSEND5 (new, auto-compensating transfer code which will eventually replace the current BOTSEND. Still a couple of things to sniff-out first.) 0051) 2018-10-28 04:05:35 GMT: [core] Fixed BYTES (added -RAW flag so it can be used for things like BPS calculations [BOTSEND5].) 0052) 2018-10-28 03:50:01 GMT: [core] Fixed SB:IS_COMPONENT (was spelled: SB:IS_COMPOMENT.) 0053) 2018-10-27 21:44:05 GMT: [core] Added SB:IS_COMPONENT (return boolean: is file a core component? Being used for BOTSEND[5].) 0054) 2018-10-24 23:21:26 GMT: [core] Added SPLIT:SIZE (split a string by a specific size. This is necessary because REGEXP (mainly -INLINE) only accepts an atom size of 0-255.) 0055) 2018-10-23 04:22:16 GMT: [botsend] Fixed BOTSEND EMERGENCY (typoes all around.) 0056) 2018-10-23 03:11:27 GMT: [show] Fixed SHOW (inplemented block on special keywords; this list may be expanded at some point.) 0057) 2018-10-19 15:10:22 GMT: [link] Fixed LINK (used LSEARCH -INDEX within the required integer.) 0058) 2018-10-19 14:22:08 GMT: [distro] Fixed DISTRO RELEASE REFRESH ALL (code didn't allow for a "refresh all" option; now it does. "*" = OK.) 0059) 2018-10-18 18:34:24 GMT: [core] Fixed core (removed "UNKNOWN" from service, due to problems with implementation: the "info commands" method just doesn't work. As a result, sometimes it kicks-in, sometimes it doesn't. When it doesn't, an "endless loop" error occurs. This will break a BUNCH of things, but I have no solution for now.) 0060) 2018-10-18 18:08:44 GMT: [news] Fixed NEWS EDIT (I only half-updated the EDIT code for the pos-vs-index issue, which no longer exists due to index #0 being the lock-level information. As a result, any EDIT munged the data. TASK #143.) 0061) 2018-10-18 17:13:23 GMT: [adduser - moduser - global] Fixed ADDUSER, MODUSER< & GLOBAL (re-introduced word-level access levels (i.e. chanop), which were not supported in SB6. Requested by fd0. TASK #142.) 0062) 2018-10-18 16:54:25 GMT: [core] Added SB:ACCESSNAME (look-up for old SB3-style access levels vs new (SB5) numeric user levels.) 0063) 2018-10-18 16:37:59 GMT: [distro] Fixed DISTRO (if a file isn't owned by the bot's user ID, don't try to CHGRP it (it'll fail anyway).) 0064) 2018-10-11 20:14:25 GMT: === Version 6.2.004 - build 00014 === 0065) 2018-10-11 20:03:45 GMT: [note] Fixed The Albatross (the AUTOSEND option test during NOTE DEL was checking for a flag named "autosend" not "autosave" thus it was never working. Because setting AUTOSAVE turns RECYCLE off, the notes were deleted fully on demand.) 0066) 2018-10-11 18:09:15 GMT: [core] Added STORMBOT (core "read-only" values; can really be updated but ... don't.) 0067) 2018-10-10 23:51:14 GMT: [core] Fixed DEBUG (added synonym -RAW for -QUIET, because other versions of the DEBUG parser use that.) 0068) 2018-10-10 04:56:47 GMT: === Version 6.2.004 - build 00013 === 0069) 2018-10-10 04:53:19 GMT: [distro] Fixed DISTRO RELEASE GROUP NONE (I forgot to add the "none" option.) 0070) 2018-10-09 21:57:14 GMT: [config] Fixed CONFIG -GLOBAL DEFTIME (had to reverse the polarity of the neutron flow. I mean: the logic checks weren't working in their prescribed order; revering the logic order fixed it. Only The Doctor can understand why it worked. Found by fd0.) 0071) 2018-10-09 21:21:17 GMT: [ban] Fixed BAN (the mode (flag letter "b") was copied form EXEMPT: +e. Found by fd0.) 0072) 2018-10-04 18:05:37 GMT: [core] Fixed SB:DISPATCH_PUBCMD (new code was allowing private trigger to work but the global one would fail.) 0073) 2018-10-04 15:16:20 GMT: [distro] FIxed SB:DISTRO_CHANGELOG (cosmetic: "version" in header line was redundantly including "stormbot" a second time into SB6_CHANGELOG.TXT.) 0074) 2018-10-04 15:14:38 GMT: [core] Added SB6_CHANGELOG.TXT to all tarballs (requested by fd0.) 0075) 2018-10-03 05:15:05 GMT: [distro] Fixed DISTRO RELEASE REFRESH (allows "ALL" and "*" to refresh all files.) 0076) 2018-10-03 01:15:46 GMT: [dccme] Fixed DCCME -DIAGNOSE (when 4-or-more IP-related variables are set, an error trap was triggered. However, nowadays, that's a real possibility, so the error was changed to a more useful message.) 0077) 2018-10-01 03:40:37 GMT: [core - config] Fixed CONFIG (added -USER (alias = -ME) option for certain commands only. Added CONFIG -USER PUBCMD which allows you to set a PUBCMD just for you; each user can set their own. I *MAY* expand this to the shortcuts as well, but that's kinda too dynamic to tinker with. We'll see.) 0078) 2018-10-01 03:04:45 GMT: [quick] Added QUICK URBAN (Urban Dictionary entries.) 0079) 2018-09-27 19:54:11 GMT: [maintenance] Fixed MAINTENANCE UPDATE (the -KEEP flag was added in the wrong place.) 0080) 2018-09-27 18:42:34 GMT: [core] Fixed FLAGS:SIMPLE (when a flag list was being tested (via FLAGS:PARAMS), and there were no params (other than the flags), the empty-string (the non-parameter) was being swallowed: the flag-list itself was shifted into the $LIST result. Exposed by TESTPASS.) 0081) 2018-09-27 17:28:58 GMT: [distro] Fixed dISTRO SCROLLER (added 'last edited' timestamp / message. TASK #80.) 0082) 2018-09-27 17:15:03 GMT: [comickick] Added COMICKICK to STANDARD & ZENKAI. (TASK 67. Is this even needed any more Their own network imploded almost 20 years ago....) 0083) 2018-09-27 17:12:45 GMT: [swearkick] Added SWEARKICK to STANDARD & ZENKAI. (TASK #69.) 0084) 2018-09-27 17:07:02 GMT: [dccme] Fixed DCCME (added -DETECT flag, which will do an Internet lookup and imemdiately (if successful) try a DCCME with that IP.) 0085) 2018-09-27 16:45:01 GMT: [core] Fixed BOTSEND (reverted all changes to SB6 release 6.2.004.00004, becuas eI just can't get this to work. I'm a failed programmer.) 0086) 2018-09-27 16:21:38 GMT: [core] Removed TOPCHECK from distribution; way too many variations to process .... 0087) 2018-09-27 16:07:45 GMT: [tree] Fixed TREE (tweak to 'average hops' math. TASK #88.) 0088) 2018-09-27 16:02:51 GMT: [core] Fixed SB:TREE_TRACE (rogue "-" character caused havoc.) 0089) 2018-09-24 13:39:08 GMT: [core] Fixed SB:SETUP_SHORTCUTS (use LSORT -UNIQUE to make the list not BIND duplicates.) 0090) 2018-09-19 05:48:49 GMT: [core] Fixed NUMBER::EVAL (when a "integer." or "integer.0" was sent through the math became garbage and exceptions were thrown.) 0091) 2018-09-16 21:28:26 GMT: [botsend] Fixed BOTSEND SEND (re-used a variable that controlled the transfer ID ($INDEX) within the new data-packing loop; that causes the transfer to fail at the end (EOF), $INDEX's new value didn't match the transfer ID #.) 0092) 2018-09-15 17:02:03 GMT: [botsend] Fixed BOTSEND KILLALL (cosmetic: tabs instead of spaces in the log entries when clearing dead data.) 0093) 2018-09-15 16:31:08 GMT: [note] Fixed The Albatross (NOTE SEND: last week's patch failed if the target wasn't on the channel (but the note DID still get delivered); the message TO the user was where the error was. Found by Bette.) 0094) 2018-09-13 19:01:47 GMT: [botsend] Fixed BOTSEND (standard SEND mode has been standardized a bit, featuring the ported BOTSEND5 code, and backward compatability. Now, BOTSEND SEND can be used for normal file transfers again; QUICK mode remains for "oh shit, it's broken" fixes.) 0095) 2018-09-13 14:58:58 GMT: [botsend] Fixed BOTSEND (SB:botsend_receive: the config test fails if $::CONFIG has a fully-qualified path.) 0096) 2018-09-13 13:42:35 GMT: [note] Fixed The Albatross (NOTE SEND: recent change required a variable name update: $_n -> $_findchan_nick.) 0097) 2018-09-13 00:03:42 GMT: [botsend] Fixed BOTSEND (ported over some experimental code from BOTSEND5, which makes the botnet speak across to one another and determine what compression and encoding options each has, then automatically utilize the best options for any file send.) 0098) 2018-09-12 23:52:00 GMT: [distro] Fixed DISTRO (SB:DISTRO_HTML: the code to strip the full-version tarballs ... was placed into the HTML code! Why didn't anyone tell me this before? This was done 3 months ago!! [CHANGELOG #3702 / 2018-05-18 01:25:30 UTC] Found by Estella.) 0099) 2018-09-12 20:45:48 GMT: [core] Fixed ARRAYSPLIT & ARRAYJOIN (starting points not being properly applied. Also, cleaned-up the code generally; it was sloppy.) 0100) 2018-09-12 18:40:17 GMT: [botsend] Fixed BOTSEND QUICK (now checks for aliases liek normal transfer mode.) 0101) 2018-09-12 17:36:10 GMT: [tree] Fixed TREE (cosmetic: bot count and hops math corrections.) 0102) 2018-09-12 17:35:49 GMT: [core] Fixed SB:TREE_TRACE & SB:TREE_TRACE:HOPS (sanity checks needed to prevent 'bot not connected' errors when requesting paths from the bot itself to others, as the bot itself isn't listed by [BOTS] [by design].) 0103) 2018-09-12 16:43:13 GMT: [core] Fixed SB:TREE_TRACE (added optional flag -HOPS: return number of hops [this decrements the count as appropriate].) 0104) 2018-09-12 16:23:52 GMT: [core] Added SB:TREE_TRACE:HOPS (to work with SB:TREE_TRACE to count hops: between two specific bot, or, the entire botnet itself.) 0105) 2018-09-12 16:17:56 GMT: [core] Added SB:TREE_TRACE (originally stored in TRACE.SB6, this replaces the other TREE-related code.) 0106) 2018-09-12 15:33:14 GMT: [note] Fixed The Albatross (all output now piped through NOTE:PRINT, to respect privacy at all times [i.e. "illegal note value"], instead of just: successful functions.) 0107) 2018-09-12 15:07:54 GMT: [note] Fixed The Albatross (NOTE:BOOTSTRAP: made default-value processing more appropriately dynamic.) 0108) 2018-09-12 15:06:53 GMT: [note] Fixed The Albatross (NOTE SEND: when a note arrives, a user would only be notified if a command channel was specified; otherwise, "user not on target channel [default: HOME]" would prevent the user from being "found" and get the notification. This was partially fixed with the NOTE SET KNOCK patch, which was inspired by this situation. Found by Bette.) 0109) 2018-09-12 15:05:20 GMT: [note] Fixed The Albatross (NOTE SET KNOCK: will notify you if a note arrives, default: on) 0110) 2018-09-12 02:32:59 GMT: Fixed WHOAMI (for some reason, on one bot, same-intereger comparisons were passing the A < B test, causing the bot to say: you're only level (same level as the test), and you have all the flags for it. You need an admin to adjust your level. Bot on drugs. Found by Bette.) 0111) 2018-09-12 02:05:49 GMT: [auto] Fixed AUTO (needed to remove abbreviations assigned to AUTOOP*. Found by fd0.) 0112) 2018-09-11 08:30:34 GMT: 8[autosend] Fixed AUTOSEND (encorporated the base64/zlib combination for data transfers, necessitated by DISTRO CHANGELOG being over 4,200 entries. The test transfer was shortened from 45 seconds down to 6! :) 0113) 2018-09-11 07:10:43 GMT: [shell] Fixed SHELL (two references to LRANGE (J1E & JL1E) were truncating the first keyword command off; you had to double the keyword to get it to work. Found by Dat.) 0114) 2018-09-11 06:47:06 GMT: [info] Fixed INFO (sanity check. Found by Dat.) 0115) 2018-09-11 04:49:09 GMT: [core] Fixed SBD:LOOP ((1) changed test trigger from "" (empty string) to TEST, &, (2) Added SBD:NOTEQUAL [interp alias from SBD:NE]) 0116) 2018-09-10 20:00:52 GMT: [chattr] Fixed CHATTR ((1) when a change is made, force RESETCHAN to make changes apply immediately, &, (2) cosmetic: the 'remedy' section needed an update: ADMIN ADD vs GLOBAL SET, chanegd a few days ago.) 0117) 2018-09-10 19:54:13 GMT: [note] Fixed The Albatross (added a setting: AUTOSAVE, an alternative to the recycle bin. Autosave doesn't get auto-deleted ... for now .... Turning on either Recycle Bin or Autosave disables the other (obvious conflicts). Inspired by Dat.) 0118) 2018-09-10 19:47:07 GMT: [set] Fixed SET (patch to COLOR had two different patch methods; they conflicted, causing the interpretted value to be lost.) 0119) 2018-09-10 19:30:04 GMT: [botsend] Fixed BOTSEND ALIAS ADD (cosmetic: if entry couldn't be added, it was because: it already existed. Error message needed to be clarified, as "Could not add" was vague.) 0120) 2018-09-10 18:28:27 GMT: [botsend] Fixed BOTSEND QUICK (the "all files received" message is now in green, to stand out from the potential flood of other-bot messages.) 0121) 2018-09-09 05:23:01 GMT: [botsend] Fixed BOTSEND STATUS (added "perform next" information.) 0122) 2018-09-09 04:56:40 GMT: [core] Fixed NUMBER:CLEAN (took hints from TCL wiki re: properly scanning / cleaning an integer via SCAN %lld. It doesn't help with the mantissa, but ... one thing at a time.) 0123) 2018-09-09 04:55:56 GMT: [core] Fixed NORMALIZE:VAR (optimized code.) 0124) 2018-09-08 19:14:44 GMT: [core - botsend] Fixed READFILE & BOTSEND QUICK (shortcut for reading binary files (mirroring DUMPFILE); BOTSEND QUICK was reading all files as ASCII, causing data corruption on non-text files.) 0125) 2018-09-08 00:11:00 GMT: === Version 6.2.004 - build 00012 === 0126) 2018-09-07 23:25:22 GMT: [distro] Fixed DISTRO CHANGELOG LIST SINCE VER (cosmetic: list # of changed files, for reference.) 0127) 2018-09-07 23:21:48 GMT: [botsend] Fixed BOTSEND (fixed BUSY: left a debug in place. Also, fixed QUICK: added -COMPRESS flag to do triial GZIP & BASE-64 compression.) 0128) 2018-09-07 21:41:46 GMT: [set] Fixed SET COLOR (I missed a close-bracket in the new IF line.) 0129) 2018-09-07 20:19:07 GMT: [distro] Fixed DISTRO CHANGELOG DEL (parser used for LIST wasn't written into DEL; "last 2" wasn't valid. TASK #98.) 0130) 2018-09-07 20:06:38 GMT: [quiet - owner - deowner - autoowner] Fixed ONWER* & QUIET (determine which vesion of channel mode +q is currently active, based on RAW 005; reply as necessary if the command is illogical for the circumstances.) 0131) 2018-09-07 20:05:46 GMT: [quiet] Added QUIET (added to all distributions: there is an IRCd that uses chanmode +q to indicate QUIET (single-target mute), in the way +b (BAN)-without-a-kick does.) 0132) 2018-09-07 20:01:52 GMT: [voice - halfop - op - admin - owner] Fixed OP* (if you use OWNER / ADMIN, and you only have +o butnot the other mode +q / +a, it would still report that you already have the modes and fail. Fixed and applied fown to OP, HALFOP, & VOICE, "just in case," y'know?) 0133) 2018-09-07 19:35:34 GMT: [alarm - delay] Fixed ALARM & DELAY (auto-conversion from older formats didn't sanity-check the data, just "is there data 'here' at all? If so, munge stuff" processing. This caused a buildup of garbage data of repeated timers (e.g. -HOURLY).) 0134) 2018-09-07 18:12:23 GMT: [alarm - delay] Fixed ALARM & DELAY (for reasons I don't even comprehend, the BootStrapper was updating data from odler formats, then, setting the data stream to "" (default), deleting all values that existed before! [Seriously, WTF??] TASK #36.) 0135) 2018-09-07 18:11:38 GMT: [alarm - delay] Fixed ALARM & DELAY (various issues with wrong variables being used when the two beads were split.) 0136) 2018-09-07 17:39:32 GMT: [maintenance] Fixed MAINTENANCE LOAD (properly handle sb6_defs.tcl file.) 0137) 2018-09-07 17:30:30 GMT: [defs] Re-activating SB6_DEFS.TCL (requested by fd0 and others. TASK #128.) 0138) 2018-09-07 17:28:33 GMT: [distro - openlocation - credits] Fixed DISTRO, OPENLOCATION, & CREDITS (copyright year was still 2017!) 0139) 2018-09-07 17:11:30 GMT: [autovoice - autohalfop - autoop - autoadmin - autoowner] Fixed AUTOOP* (bad variable: $AUTOOMODE instead of $AUTOMODE.) 0140) 2018-09-07 16:46:23 GMT: [distro] Fixed DISTRO ADD (cosmetic: output used "[AJL $variable " - "]" for some damn reason!) 0141) 2018-09-07 16:39:26 GMT: [scratchpaper] Added SCRATCHPAPER EXPORT (write the file to a text file.) 0142) 2018-09-07 16:21:27 GMT: [owner - deowner - autoowner - owners] Fixed OWNER* & OWNERS (took OWNER abbreviation from OWNERS; re-named OWN* to OWNER*. Also, fixed DEOWNER: text copy created the proc SB:PROC_AUTOPROT (which no longer exists anyway).) 0143) 2018-09-07 16:02:04 GMT: [core - autoowner] Updated AUTOPURGE (renamed AUTOOWN to AUTOOWNER.) 0144) 2018-09-07 16:01:02 GMT: [autovoice - autohalfop - autoop - autoadmin - autoowner] Fixed AUTOOP* (I completely forgot the HELP and DEL options! With the DEL option, I updated the syntax to add users with the ADD param.) 0145) 2018-09-07 16:00:06 GMT: [core] Fixed SB:IDENTIFY (found another problem witht he orde rof args: the DCCIDX lookup was relying on the reversed look-up args.) 0146) 2018-09-07 15:20:02 GMT: [core] Added SBD:MERGE & SBD:LMERGE (needed for data stream upgrades as I adjust commands, usually via BootStrappers.) 0147) 2018-09-07 15:19:21 GMT: [core] Fixed SBD:CONCAT (streamlined the code.) 0148) 2018-09-07 15:17:24 GMT: [distro] Fixed DISTRO CHANGELOG ADD (cosmetic: the "teh" check needed a JOIN in the "error found" output.) 0149) 2018-09-07 15:15:15 GMT: [news] Fixed NEWS DELETE (always said "deleted item" even when there were no items to delete. I may re-arrange the data format at a future date; the pos-vs-index scheme I used it kinda janky.) 0150) 2018-09-07 14:35:58 GMT: [set] Fixed SET COLOR (cleaned up some code, and fixed the default syntax checker so fake 'invalid' values like bold-bold can't be used to cancel-out the color. Found by accident by Dat.) 0151) 2018-09-07 14:34:37 GMT: [distro] Fixed CHANGELOG FIND: the -limit flag wasn't being sanity-checked for no-entry (empty string in flag info).) 0152) 2018-09-06 18:54:50 GMT: [note] Fixed The Albatross (NOTE UNREAD synonym: "UNDEAD" [thanks Zombie-Bette; I needed that laugh]. Inspired by Bette.) 0153) 2018-09-06 13:36:57 GMT: [core] Added BASE85 (same code as BASE94, but removed the 9 chars that TCL LIST will escape: the usual 8 ( " $ ; [ \ ] { } ), plus "#" because it's escaped if it's the first character of a LIST, since TCL 8.5.) 0154) 2018-09-06 00:51:01 GMT: [admin - deadmin - autoadmin] Added ADMIN, DEADMIN, & AUTOADMIN (just the PROT* command renamed. ADMIN itself (the original version) was renamed to GLOBAL.) 0155) 2018-09-06 00:50:19 GMT: [core] Added GLOBAL (replaced ADMIN options, so PROT could be renamed to ADMIN.) 0156) 2018-09-06 00:49:40 GMT: [core] Updated AUTOPUrGE (remove PROT / DEPROT / AUTOPROT [renamed].) 0157) 2018-09-06 00:01:56 GMT: [core] Fixed AUTOPURGE (removed addressbook from auto-purge; reactivated.) 0158) 2018-09-05 23:51:33 GMT: [autolink] Fixed AUTOLINK:TIMER (default variable entries at the top relied on old LDEFAULT code.) 0159) 2018-09-05 23:51:19 GMT: [core] Fixed LDEFAULT (if variable doesn't exist [no sanity check by caller?], initialize as scalar variable.) 0160) 2018-09-05 23:16:58 GMT: [scratchpaper] Fixed SCRATCHPAPER ((1) removed SPLIT option [never written anyway], (2) Fixed REPLACE -ALL [flag was supposed to be BEFORE the "replace" keyword, but was never parsed-for by SB:SETMISCVARIABLES this was written before I created FLAGS:SIMPLE], &, (3) renamed bead from PAPER.sb6 to SCRATCHPAPER.sb6.) 0161) 2018-09-05 23:01:13 GMT: [addressbook] Re-wrote ADDRESSBOOK (a simpler version which doesn't rely on a common-to-all-users text database (TDB), and doesn't require fields be defined for all users before data can be added. Added to ZENKAI distribution.) 0162) 2018-09-05 21:03:16 GMT: [core] Added LOWER, UPPER, TITLE, & SENTENCE (variable re-casing, based on EMPTY method.) 0163) 2018-09-05 20:28:20 GMT: [botsend] Added BOTSEND BUSY (just a betetr version of STATUS, so you can tell if anything is actually going on, inc ase you'rewaiting for a transfer to be done before doing anything else.) 0164) 2018-09-05 05:41:51 GMT: [note] Fixed The Albatross (the NOTE:PRINT processor had a duplicate instruction: if the user was a DCC connection, process from DCC data, otherwise, process from DCC data [obviously an improper duplication].) 0165) 2018-09-04 05:07:09 GMT: [autolink] Fixed AUTOLINK:TIMER (tweaked a few things; there's still a bug to find, which seems to be one of the byref variable calls.) 0166) 2018-09-04 02:31:57 GMT: [twitter] FIxed TWITTER:PUBLIC (the normal mode (BIND TIME) has an issue BIND CRON doesn't: month is true-1, so September = "08" instead. Trying to INCR to compensate caused an illegal number error as: "08" can't be incremented: it looks like AN ILLEGAL OCTAL!) 0167) 2018-09-04 01:06:20 GMT: [botsend] Fixed BOTSEND TEST (typo in check for new format ("TEST") or old flag (-TEST): -NCOASE (a common typo for me).) 0168) 2018-09-04 00:49:01 GMT: [core] Fixed SB:setup_shortcuts (the setup variables in CORE for shortcut (set ::stormbot(shortcut:)) were being kept separate; those were showing up as "@DEFAULT" binds in the CONFIG -GLOBAL SHORTCUT listing. Now, they're merged into the main data stream (CONFIG:GLOBAL-COMMANDBINDS:) in the binding loop, as should always have been done.) 0169) 2018-09-04 00:34:16 GMT: [distro] Fixed DISTRO CHANGELOG ADD (the "teh" checker had a bad line that I forgot to remove (an incomplete loop intialization).) 0170) 2018-09-04 00:33:43 GMT: [core] Fixed SB:setup_shortcuts (added $::ALTNICK to the automatic shortcut (BIND PUB) list.) 0171) 2018-08-31 03:08:09 GMT: [textpad] Fixed TEXTPAD (the "last edited" data isn't the MTIME for the file; it's the last TEXTPAD EDIT command used. Now replaced with "[EDITED]" when the file has a save pending. For now, will remain on until the file is closed.) 0172) 2018-08-31 03:07:07 GMT: [core] Fixed LDEFAULT (used UPLEVEL instraed of UPVAR; a common mistake for me.) 0173) 2018-08-30 16:10:29 GMT: [dst] Added DST NOTIFY (option to turn-off DST shift reminders on demand; betetr handling of WHEN to trigger those notes. Requested by Bette.) 0174) 2018-08-30 16:09:11 GMT: [core] Added LDEFAULT (kinda what I've always intended it to be: byref variable with list of defaults, but using simpler code.) 0175) 2018-08-30 01:01:48 GMT: [autovoice - autohalfop - autoop - autoprot - autoown] Added AUTOOP* (finally finished these commands, using AUTOOP as a template. After testing, I can release 6.4 finally!) 0176) 2018-08-30 00:46:33 GMT: [auto] Fixed AUTO (removed all original code; made it a pipe to AUTOOP*; each of the AUTOOP* beads will be its own commands, just like BAN*.) 0177) 2018-08-29 21:50:28 GMT: [core] Fixed SB:DISPATCH (the "509 clip" text ($ARG) needed to be JOINed.) 0178) 2018-08-29 21:49:21 GMT: [core] Fixed SB:GET_COUNT (notehr update: due to the conflict between "LAST 5" and "LAST 5" (the first one is: incldue the last entry, and, include #5; the last one is pull the lastd 5 in order (of 1-10, pull: 6, 7, 8, 9, & 10), I couldnt make both work toegther. Introducing FIRST:5 and LAST:5 ("/" can also be used) to allow LAST 5 last:5 (1-11) -> 5, 7, 8, 9, 10, 11, & 11 [duplicate].) 0179) 2018-08-29 20:48:55 GMT: [fib] Fixed FIBONACCI (using TCL 8.5's internal arbitrary-integer math, I could expand this to handle most normal situations. Negative series are NOT covered by this command... for now.) 0180) 2018-08-29 20:48:21 GMT: [fib] Fixed FIBONACCI (added a BootStrapper to remove XNACCI command, as it was folded into the regular FIBONACCI calculations via the factor-option. A future upgrade will allow X-Fibonacci calculations, controlle dby flags.) 0181) 2018-08-29 19:36:51 GMT: [float] Fixed FLOAT INFO (sizes >64 suffered from a NaN (out of range value, < 2^(-1024 or less), causing hell with the normalizes/smallest value calculation. Now, it does a simple size check against the number and flips the SCINOT switch based on that alone.) 0182) 2018-08-29 18:59:58 GMT: [note] Fixed The Albatross (adjusted the "you were sent a note" output to respect personal note privacy settings.) 0183) 2018-08-29 17:09:37 GMT: [note] Fixed The Albatross (hourly & onjoin nags are now respected; the hourly check was in the WRONG place (jisatsu nag, not nourly note check). Also, forced hourly & onjoin check to respect note output privacy. Requested by Bette) 0184) 2018-08-29 16:43:06 GMT: [whoami] Fixed WHOAMI (when the user 'looks like' they should be level =1000, don't suggest ad ADMIN MOD, because that won't work. Help text edited to provide proper advice in that unique situation.) 0185) 2018-08-29 04:01:51 GMT: [alarm - delay] Fixed ALARM & DELAY (bootstrapper was clearning the data in the start-up loop, for some unknown reason. IDX checker has also been fixed.) 0186) 2018-08-29 01:58:22 GMT: [alarm - delay - core] Fixed ALARM, DELAY, & SB:DISPATCH (DCC CHAT use for DELAY (and ALARM): if you set a DELAY (or ALARM) from DCC, then disconnect, IDX => invalid, even if you return (usually a different IDX). This caused IDX panics. Also discovered that this could be used as a IDX collision exploit. Sanity checks added to ALARM & DELAY; IDX/HANDLE check added to dispatcher. TASK #56.) 0187) 2018-08-29 01:01:52 GMT: [core] Fixed SB:GET_COUNT (patch from the other day broke the END/LAST option; "END" was being checked literally after the REGEXP looked for it.)) 0188) 2018-08-28 05:24:15 GMT: [link] Fixed LINK (command keyword typo [ifbotnick instead of isbotnick]. Fount by Bette. TASK #137. Also foud another typo that wasn't triggered but would have been an error in certain circumstances..) 0189) 2018-08-28 05:13:47 GMT: [datesince] Removed DATESINEC from Zenkai (needs tweaking in the math portion; I'll need help to clean up the code.) 0190) 2018-08-28 05:04:29 GMT: [core] Updated AUTOPURGE (removed ADDRESSBOOK from circulation, pending a partial re-write.) 0191) 2018-08-28 04:36:50 GMT: [addressbook] Removed ADDRESSBOOK from Zenkai (needs a re-write; the options list will eb simplified, allowing for dynamic field name adoption.) 0192) 2018-08-26 03:08:25 GMT: [news] Added NEWS EDIT. 0193) 2018-08-26 02:38:30 GMT: [prot - own - deprot - deown] Fixed PROT*/OWN* (issue with +o not being added/removed with the other mode. Also, discovered that DEPROT was using a PROC of the same name name: PROT. This was not released into the wild yet (ETA: 6.4).) 0194) 2018-08-25 22:27:37 GMT: [devoice - dehalfop - deop - deprot - deown] Fixed DEOP* (when -SELF is used, but no nick is given, need to presume bot is target, not yourself as if -SELF were not used. Found by fd0.) 0195) 2018-08-25 03:51:47 GMT: [core] fixed SB:GET_COUNT (allowed synonym: LAST-# to work with END-#.) 0196) 2018-08-25 01:03:34 GMT: [trace] Fixed TRACE (re-wrote the parsing code from scratch; the original code (provided by Eggdrop core coders) stopped working; I couldn't figure out why. Code base don SB5 idea that I never finished but was 80% complete. TASK #115.) 0197) 2018-08-24 22:41:37 GMT: [note] Fixed The Albatross (adjusted BootStrapper to handle new values.) 0198) 2018-08-24 22:39:02 GMT: [note] Fixed The Albatross (new options: set nag hourly and set nag onjoin. The global option, if off, will kill by default; if on, the user option controls the issue. Inspired by Chreddy.) 0199) 2018-08-24 22:28:36 GMT: [note] Fixed The Albatross (hourly nag wasn't checking the 'hourly' setting. Also, changed the default to 1 in the BootStrapper because it was originally set to OFF, which was wrong.) 0200) 2018-08-24 05:37:05 GMT: [chanmon] Fixed CHANMON (if the bot is deopped, then gets opped, force an update of modes.) 0201) 2018-08-24 03:38:20 GMT: [unban - unexempt - uninvex] Fixed UNBAN* ((1) bad variable ($um instead of $un), (2) typo in HELP ("yo" instead of "you"), (3) $LOCK in lock-level checker wasn't set to a default value, which is necessary when using REGEXP to define variables, &, (4) typoes in the lock-level checker ($reaosn instead of $reason, twice [copy/paste]).) 0202) 2018-08-22 13:41:34 GMT: [dccme] Fixed DCCME mode 0 (it's possible for all IP-relatd variables to be unset; this caused chaos. Eggdrop still has [myip] to use based on internal math.) 0203) 2018-08-22 03:39:50 GMT: [freeze] Fixed FREEZE ((1) allowed seconds to be accepted as input, &, (2) fixed typo: ISENPTY instead of ISEMPTY.) 0204) 2018-08-22 01:53:17 GMT: [copyuser] Fixed COPYUSER QUICK -BOTS (the bot's address was being added to a list for later loop processing; needed to use TCL 8.5's {*} syntax to split the args apart so they didn't arrive as a {single-element list}, which is not what's expected.) 0205) 2018-08-22 01:45:33 GMT: [twitter] Fixed TWITTER ACCOUNT (was going back-and-forth between SETUSER and SETDATA, which cas causing updates to the account list to fail. Also, fixed some typos.) 0206) 2018-08-19 05:36:34 GMT: [core] Fixed CONVERT ($FROM_OLD was being reset to "*" causing problems during conversion. Triggered by FLOAT BEST.) 0207) 2018-08-19 04:58:45 GMT: [core] Fixed IFF (recent re-write didn't UPLEVEL the expression check. Triggered by FLOAT:CONVERT ENCODE and could also be triggered by any braced (delayed-substitution) expression.) 0208) 2018-08-19 04:58:11 GMT: [float] Fixed FLOAT (ENCODE didn't send the bit count when doing the reverse (round-trip) check, making a float-14 return tested as a float-16, which failed [of course].) 0209) 2018-08-19 02:54:00 GMT: [admin] Fixed ADMIN (removed ADM shortcut, via bootstrap, as PROT is now using it.) 0210) 2018-08-19 01:54:47 GMT: [core] Fixed LONGIP:CONVERT (IPv6 mode wasn't processing each word as hexadecimal; testing was done on small words (1:2:3:4), which happened to work-out properly.) 0211) 2018-08-19 00:55:58 GMT: [auto] Added AUTO to standard and zenkai distributions. 0212) 2018-08-19 00:53:28 GMT: [autovoiceall] Fixed SB:CHECK_AUTOVOICEALL (cleaned up some of the SWITCH code.) 0213) 2018-08-19 00:46:13 GMT: [auto] Added AUTO (handles AUTO OP* as two separate key wpords. This allowed me to combine the commands into one bead. I might do the same for OP* as well.) 0214) 2018-08-18 23:00:18 GMT: [core] Nothing updated; just logging that Eggdrop finally accepted a patch I wrote! It's small, but I did it! https://github.com/eggheads/eggdrop/pull/564 (I did cosmetic patches for SEEN and $::CONFIGURE-ARGS, but those were local only.) 0215) 2018-08-17 23:03:52 GMT: [distro] Fixed DISTRO CHANGELOG ADD (cosmetic: the whine when I type "teh" again.) 0216) 2018-08-17 23:02:52 GMT: [core] Fixed WWW (apparently, YubTube is getting picky with their user agent string processing. An outside script exposed that certain keywords in the user agent string caused YouTube to "not find a video" when used. I stole the info from my browser to make it work.) 0217) 2018-08-17 21:14:07 GMT: [core] Fixed DUMPFILE (BINARY/Unicode shortcut from private TCLs wasn't previously incorporated.) 0218) 2018-08-17 20:59:08 GMT: [dccme] Fixed DCCME MODE 0 (bracket issues plus a missing \001 code plus a double-LONGIP call = chaos.) 0219) 2018-08-16 20:01:29 GMT: [distro] Fixed DISTRO (cosmetic: included precentage-complete with "processing page: " log entries.) 0220) 2018-08-16 19:17:00 GMT: [mode] Fixed MODE (added MODE ME (see your current modes), MODE USERS (see modes for list of users), & MODE CURRENT/CHECK (see all current channel modes).) 0221) 2018-08-16 18:48:08 GMT: [core] Fixed SB:ISUSERMODE (cleaned up one of the checks to optimize processing.) 0222) 2018-08-16 18:30:44 GMT: [core] Fixed PROCDEF (a few cosmetic things; one reverts the ARGS section I changed a couple of months ago; I just didn't like it. Plus, the TCL rules for "proper lists" wasn't necessarily broken yb the old method in the first place.) 0223) 2018-08-16 16:34:16 GMT: [core] Added LIST:REGSUB (iterate a REGSUB on individual list elements. This was requires for MODE CURRENT because #@%^%$&^#%@$ TCL 8.5 changed to make any list tha tbegins with the "#" character into a BRACED list element. While LINDEX would properly deal with it, string-processing commands like REGSUB didn't. This was initially done to avoid lists to be processed as comments in certain situations.) 0224) 2018-08-15 18:40:16 GMT: [core] Fixed SB:MODE_OPSTATUS (proper removal of channel modes wasn't bring done; only additions.) 0225) 2018-08-14 04:25:54 GMT: [core] Fixed SB:mode_opstatus_raw_mode (added WHOIS dump when the bot is the target of a mode change. This is to help th eforever-unsolved $::BOTNAME issue.) 0226) 2018-08-14 03:47:36 GMT: [mode] Fixed MODE CURRENT (home channel #BotHouse was hard-coded into the code.) 0227) 2018-08-13 20:47:24 GMT: [core] Added $ , !$ , & TCL (tips & tricks for shortcuts. Don't know if they'll be permanent.) 0228) 2018-08-13 10:01:52 GMT: [oper] Fixed SB:OPER_BOTOPER_CHECK (a cheat to use UPVAR #0 to enable a shorter, nont-hyphenated variable ($IS) instead of $::INIT-SERVER left a potentially sensitive variable lingering in the global scope ($IS).) 0229) 2018-08-13 07:34:22 GMT: [core] fixed IFF (replaced with simpler code and no comments (which were 90% of the PROC).) 0230) 2018-08-13 06:39:56 GMT: [core] Added SUBST:VAR (shortcut for substitution of braced expressions, especially useful in REGEXPs.) 0231) 2018-08-12 20:16:50 GMT: [ore] Fixed SCINOT (when values were astronomically small (beyond the range of 64-bit doubles [less than approximately 1e-325], the FORMAT command (which I used to cheat for rounding purposes) was overloaded. This broke FLOAT INFO 64 (and larger).) 0232) 2018-08-12 19:37:04 GMT: [note] Fixed The Albatross (Fixed NOTE UNSEND (adjusted syntax to allow for the note number alone to be specified, making the "UNSEND/DEL/DELETE/ERASE" keyword optional. This way, "UNSEND #" actually fits its intended use.) 0233) 2018-08-12 19:21:50 GMT: [distro] Fixed DISTRO CHANGELOG (added flag options to control / limit output.) 0234) 2018-08-12 18:35:53 GMT: [addressbook - survey] Removed ADDRESSBOOK & SURVEY from Zenkai (TDB needs an overhaul. While that's in the core code, these commands can't run without it.) 0235) 2018-08-12 18:27:40 GMT: [core] Fixed TDB FIELD CREATE (bad param loop: sl3e instead of sl4e. Also, added synonym: DROP DEL / DELETE -> DESTROY, &, ADD -> CREATE. TDB is so old that I'll default to usual param at this point, so, make life easier....) 0236) 2018-08-12 18:11:40 GMT: [ban - exempt - invex] Fixed BAN* (typo: NPTEMPTY instead of NOTEMPTY. Copied from BAN to EXEMPT & INVEX.) 0237) 2018-08-12 17:47:44 GMT: [botmon] Fixed BOTMON GROUP MARKER & NAME (removed "description" synonym for "name" (which made the previous fix miss the target).) 0238) 2018-08-12 17:31:34 GMT: [botmon] Fixed BOTMON LIST, GROUP LIST, and all LIST variants (when key or description was missing, indicate instead of displaying confusing blanks. TASK #97.) 0239) 2018-08-12 17:19:27 GMT: [banlist - exemptlist - invexlist] Fixed BANLIST* ((1) cosmetic: added headers to the lists ("#DEOP banlist:" was confusing during debugging), &, (2) cosmetic: INVEXLIST -ALL said "EXEMPTLIST -ALL" from the filecopy to create the bead.) 0240) 2018-08-12 17:14:13 GMT: [ban - exempt - invex - config] Fixed BAN* & CONFIG (implemented DEFTIME option [global and local level]. Also, as predicted, I renamed CONFIG BANTIME to CONFIG DEFTIME to avoid the command name collision.) 0241) 2018-08-12 16:59:34 GMT: [config] Fixed CONFIG ((1) fixed BANTIMES error message ("er" instead of "we"), (2) moved BANTIMES & BANTIME to level 400 instead of 100, &, (3) added BANTIME (default ban time if unspecified, vs, BANTIMES: setting -B# times). I might rename BANTIME at some point to not command-collide.) 0242) 2018-08-12 16:28:58 GMT: [botsend] Fixed BOTSEND (a change I made earlier didn't have the semi-colon command delimiter; a "#" comment on the same line as code contained "$FILE" which was being parsed, ultimately throwing an exception.) 0243) 2018-08-12 16:25:01 GMT: [devoice - dehalfop - deop - deprot - deown] Fixed DEOP* (when copying the base code from OP*, I didn't reverse the logic gate for "is X already opped" to "is X already deopped" instead. Found by Dat.) 0244) 2018-08-12 15:32:24 GMT: [link] Fixed LINK (accidental fall-through to "uncharted waters" because i forgot a "RETURN 0" when I recoded it recently.) 0245) 2018-08-12 14:49:34 GMT: [botmon] Fixed BOTMON ((1) fixed the "you don't have a group name/marker" when you're actually setting it, &, (2) Any "ADD" sub-function checks for the bot's own nick being added to the list; will complain if so.) 0246) 2018-08-12 14:29:19 GMT: [core] Fixed /da [botsend] Fixed BOTSEND QUICK (combined all success / failure messages until the end; removed 'bad bots' from further loops via LREMOVE.) 0247) 2018-08-12 14:29:08 GMT: [botsend] Fixed BOTSEND QUICK (cosmetic: final output status line edited to be more concise, because I hated it.) 0248) 2018-08-12 14:24:48 GMT: [core] Added SB:SHORT_COMPONENT (shorten an SB6 component's name in a way that it can be restored via SB:MATCH_COMPONENTS.) 0249) 2018-08-12 14:10:16 GMT: [mode] Fixed MODE HELP (clearified what modes can be controlled; +qaohvbeI are under control of other commands.) 0250) 2018-08-12 14:09:49 GMT: [devoice - dehalfop - deop - deprot - deown] Added DEOP* commands to all distros (long over-due for a re-write!) 0251) 2018-08-12 13:39:05 GMT: [protect] Fixed PROTECT:BOOTSTRAP (*dcc:-bot was re-bound incorrectly (".-user" was rebound to *dcc:-bot).) 0252) 2018-08-11 19:46:46 GMT: [dccme] Fixed DCCME (version 2: various errors. Now modes 0 (default) goes with default IP options; mode 1 considers all IP variables. Mode 2 only considers your set IP (unset = complaint). This was the intended behavior all along. All modes now use raw output mode so DCCME's don't get caught in the buffers; mode 0 by default is queued, unless your burst setting allow raw mode to be used.) 0253) 2018-08-11 19:17:24 GMT: [dccme] Fixed DCCME (changed the default mode from 1 to 0, mode 1 is now a direct raw-mode attempt [as is 0 if your burst mode is active] but mode 1 forces it no matter what, 2 is "search the DCCLIST" mode; 3 & 4 are unchanged. Fixed connection issues found by Dat.) 0254) 2018-08-11 19:15:33 GMT: [core] Added ISBURST (determine if burst mode is allowed for a given handle at the moment, given global and user settings.) 0255) 2018-08-11 19:05:21 GMT: [dccme] Fixed DCCME (bad references to local IP settings. I changed the data names from DCCME to DCME:IP but didn't update *all* of the references in the code.) 0256) 2018-08-11 19:04:43 GMT: [delay] Fixed DELAY (at some point, I reverted the REHASH / RESTART / DIE work-around code; probably when I re-wrote the code a few months back. As a result, the DIE loop was re-instated. Code fixed again and comments left so I don't do that again&^%#*$#&^R*&!) 0257) 2018-08-11 04:08:10 GMT: [core] Fixed SB:BOOTSTRAP (a potential race condition, of sorts: if you rely on dynamic channels (all are, as of 1.6.20-RC1 or so), and don't add the "CHANNEL ADD" in your bot's config file, YET, you have it in your CHANNEL file, then SB6's bootstrap won't have the channel info on cold-boot. When commands (like SERVMON) invoke SB:HOME, an error is returned (illegal home channel). Found by Dat.) 0258) 2018-08-11 03:32:51 GMT: [link] Fixed LINK (NPTEMPTY instead of NOTEMPTY incode.) 0259) 2018-08-11 03:28:29 GMT: [core] Fixed SB:BOOTSTRAP (check for TLS had a unmatched close-bracket.) 0260) 2018-08-11 02:11:34 GMT: [core] Added URI-DECODE (paired with URI-ENCODE; see CHANGELOG from earlier today.) 0261) 2018-08-11 01:41:12 GMT: [core] Added URI-ENCODE (turns text into URI_escaped strings. Thsi is not RFC-compatible as I am only parsing [^\x21-\x24\x26-\x7E], where normally [.?&=/] would have to be escaped [they express variables or URI sections / directories]. This is needed for BOTSEND5.) 0262) 2018-08-11 01:35:32 GMT: [core] Added BASE94 (needed for BOTSEND5. THis is one step in several to compress data without relying on COMPRESSFILE or EXEC TAR / GZIP / zlib in general, and, avoiding UUENCODE via SHARUTILS because some bot owners aren't box admins and can't install packages.) 0263) 2018-08-10 21:18:52 GMT: [quote] Added QUOTE to zenkai distribution. 0264) 2018-08-10 21:17:58 GMT: [quote] Fixed QUOTE ((1) HELP didn't identify the SHOW option, &, (2) LIST's short-version list: JOIN issue.) 0265) 2018-08-10 20:54:48 GMT: [maintenance] Fixed MAINTENANCE UPDATE (added -KEEP option, which renames the original to its m-time stamp. Requested by fd0. TASK #127.) 0266) 2018-08-10 03:58:45 GMT: [core] Fixed SB:BOOTSTRAP (attempt to pre-load packages that some beads need. Found by fd0. TASK #129.) 0267) 2018-08-10 03:23:32 GMT: [part] Fixed PART (cosmetic: some messages needed clarification, especially when parting the HOME channel.) 0268) 2018-08-10 03:19:53 GMT: [join - part - block - cycle] Split JOIN (created PART< BLOCK, & CYCLE beads.) 0269) 2018-08-10 00:22:33 GMT: [core] Fixed VAR ( "RETURN $DEFAULT" expression is multi-word and needed to be braced.) 0270) 2018-08-08 19:43:12 GMT: [core] Fixed NOSCINOT (interpret as 'loose' value; "1e-09" is considered a loose value because standard SCINOT requires a mantissa [1.0E-09].) 0271) 2018-08-08 18:58:19 GMT: [textpad] Added TEXTPAD SET PRIVATE (to make output private for thiscommand only, similar to NOTE and TWITTER.) 0272) 2018-08-08 18:22:04 GMT: [dccme] Fixed DCCME (changed the nomenclature: VERSION to MODE, including flags and bootstrapper.) 0273) 2018-08-06 01:33:28 GMT: [badchan] Added BADCHAN to standard & zenkai distros. 0274) 2018-08-06 01:33:07 GMT: [kick] Added KICK to distros. 0275) 2018-08-06 01:32:35 GMT: [calc] Added CALC to distros (adjusted to level 50.) 0276) 2018-08-06 01:13:57 GMT: [stats] Fixed STATS CLEAR (tweaked some syntax, and, added some option flags. -GLOBAL was referenced but never supported. TASK #41.) 0277) 2018-08-06 01:11:03 GMT: [core] Fixed FLAGS:SIMPLE & FLAGS:PARAMS (flags target variable, if already set as array (FLAGS:PARAMS) or scalar (FLAGS:SIMPLE), using it will throw an exception.) 0278) 2018-08-05 03:09:48 GMT: [core] Fixed SB:botnet_traceroute (various cosmetic issues.) 0279) 2018-08-05 00:41:58 GMT: [counters] Fixed COUNTERS (re-wrote the whole damn thing. Added a new option: CHANS. TASK #117.) 0280) 2018-08-05 00:13:30 GMT: [dst] Fixed DST (the automatic timezone detector was annoying people with 'stuff has changed' notes when the data file was wiped. Now checks for blank entries and ignores them instead. Also, updated the text of the note to better explain WHY those notes are going out. Found by Bette & Pixelz.) 0281) 2018-08-04 20:37:58 GMT: [autosend] Fixed AUTOSEND:PROCESS (don't invoke ANY PING? PONG!s unless we have data to de-buffer.) 0282) 2018-08-04 00:01:29 GMT: [botsend] Fixed BOTSEND QUICK (since $BOTS and $FIlES aren't edited for elements that don't exist, the 'don't display anything if nothing was sent' test always failed.) 0283) 2018-08-03 23:21:46 GMT: [core] Fixed SB:APPLYCOLORS (left a debug in.) 0284) 2018-08-03 23:21:02 GMT: [core] Fixed SB:PINGPONG (removed debugging info in the log.) 0285) 2018-08-03 23:13:56 GMT: [autosend] Fixed AUTOSEND (when the transfer begins, show that something is ebign received at first. For long data transfers, you're otherwise left wondering: "did it do anything?") 0286) 2018-08-03 23:00:10 GMT: [ban - exempt - invex] Fixed BAN* (added bootstraps to clean-up some old data, ported from old BAN code.) 0287) 2018-08-03 22:57:09 GMT: [sticklist] Added STICKLIST to standard & zenkai distributions (re-written from scratch.) 0288) 2018-08-03 21:30:46 GMT: [invexlist] Added INVEXLIST to all distro versions (re-coded from scratch, based on the new BANLIST.) 0289) 2018-08-03 20:42:56 GMT: [stickban - stickexempt - stickinvex] Fixed STICKBAN, STICKEXEMPT, & STICKINVEX (split from old STICK code; moved all commands to level 75.) 0290) 2018-08-03 20:24:02 GMT: [banscan - exemptscan - invexscan] Added BANSCAN, EXEMPTSCAN, & INVEXSCAN to zenkai distribution (ported from old BAN bead code with a few tweaks needed to separate them from each other.) 0291) 2018-08-03 20:02:07 GMT: [unban - unexempt - uninvex] Added UNBAN, UNEXEMPT< & UNINVEX to all distributions (re-written from scratch, using [NEW]UNBAN as a template. These have been VEXING me for months!) 0292) 2018-08-03 19:21:39 GMT: [note] Fixed The Albatross (one of the more recent updates [I don't think it's today's] was a mass-replace that caused NOTE:NOTE:PRINT; the tet that went iwth it was processed (becuase that's waht TCL does with "unknown"), and it tried to process the text's header ("[NOTE REPLY]") as the command NOTE, which doesn't exist [TCL is case-sensitive].) 0293) 2018-08-03 18:38:08 GMT: [ban - exempt - invex] Fixed BAN* (re-wrote all from scratch, using NEWBAN as a template. These versions will replace the old version of the commands. I kept the functionality as close to the original as possible [which caused me some headaches]. INVEX may have some issues due to the nomenclature [which has ALWAYS been a thorn in my side].) 0294) 2018-08-03 18:13:42 GMT: [core] Fixed SB:SETPARAMS (I only set the variables matching ^\de?$ and skipped the u/l/s/t versions [u0, l1, et cetera]. Was feeling lazy. Now, I need it for BAN*.) 0295) 2018-08-03 17:51:18 GMT: [config - ban - exempt - invex] Fixed CONFIG-GLOBAL BANTIMES & BAN* (config data was CONFIG:GLOBAL-BANTIMES; BAN* referenced CONFIG:GLOBAL-BANTIME only (singular), so nothing evey matched.) 0296) 2018-08-03 16:53:57 GMT: [exemptlist] Added EXEMPTLIST to all distro versions (re-coded from scratch, based on the new BANLIST.) 0297) 2018-08-03 15:54:22 GMT: [note] Fixed The Albatross (NOTE MARK: (1) the help had a duplicated "HELP" keyword, (2) the "this is waht you're reading now" line is stupid; I've removed it from many places already, &, (3) added MARK so specify a time. Inspired by fd0.) 0298) 2018-08-03 04:44:20 GMT: [autosend] Fixed AUTOSEND (all kinds of idiocy happened, mainly: duplicates of requested data were being sent. This was a problem when it was a 600KB CHANGELOG to two different bots!) 0299) 2018-08-03 04:11:43 GMT: [core] Fixed LDESTROY (added synonym flag: -BOOLEAN -TEST & -MATCH will both be synonyms (and pipe to) -BOOLEAN.) 0300) 2018-08-03 01:49:49 GMT: [core] Fixed SB:UNAME (the previous code didn't seem to be actually DOING anything important. As a result, the "box version" info in the VERSION command was useless and inaccurate. Found by fd0. TASK #125.) 0301) 2018-08-03 01:19:08 GMT: [textpad] Fixed TEXTPAD ((1) added aliases: COPEN/COREOPEN for CLOAD/CORELOAD, &, (2) fixed bad access checks: SB:ACCESSHECK instead of SB:CHECKACCESS.)) 0302) 2018-08-01 19:55:00 GMT: [cron] Fixed CRON HELP (cosmetic: found several typoes.) 0303) 2018-08-01 19:50:02 GMT: [cron] Fixed CRON HELP (forgot a credit. Usually, I don't forget that.) 0304) 2018-07-31 22:33:28 GMT: [newban] Fixed NEWBAN (when no nick-based flags are used, but a nick *is* used in the ban mask, it was obliterated anyway. Also of note: issuing a ban that already exists (by the same exact mask) updates the timestamps within (regardless of longer or shorter; reason and creator are not checked); no duplicate is added this is undocumented!) 0305) 2018-07-31 20:48:24 GMT: [textpad] Added TEXTPAD CORELOAD & CORESAVE (operated directly on StormBot.TCL core files. You must have "permanent botowner" access (=1000) to use it.) 0306) 2018-07-31 20:35:48 GMT: [core] Fixed SB:MATCH_COMPONENTS (added -FORCE flag, so, if creating a new file, you won't get stuck with the default ./ directory provided.) 0307) 2018-07-30 20:15:00 GMT: [save Added SAVE -USERS (save a tcl-sourcable data file with userfile data, similar to USERREAD WRITE / CUPYOSER QUICK -TCL.) 0308) 2018-07-30 18:48:31 GMT: [botmon] Fixed BOTMON STATUS ("legend" was in the wrong place. Also, cosmetic: changed the color for the offline-linked bots (because of my black mIRC background, the dark blue looked like crap. Also, fixed BOTMON INFO: bad variable: $missing_Chan instead of $missing_chan.) 0309) 2018-07-30 04:13:09 GMT: [core] Fixed SB:DISPATCH (when the given command might be at / over the IRCd limit of 511 characters (If you consider a CRLF at the end), complain about it.) 0310) 2018-07-30 03:45:06 GMT: [core] I'm battling Eggdrop coders regarding the *FORCED* SSL connections between 1.8 bots (regardless of YOUR desires, YOUR system configuration, YOUR desire to run localhost w/o establishing certificates). So far, I'm *LOSING*. So, I'm making a decision: should this fail (likely), I will make a drastic change. Follow the progress at: https://github.com/eggheads/eggdrop/issues/535 0311) 2018-07-30 03:26:20 GMT: [voice - halfop - op - prot - own] Fixed VOICE, HALFOP, OP, PROT, & OWN (completely re-wrote them all (using common code), to simplify debugging, and to detach them from each other. DEbugging that mess was hell!) 0312) 2018-07-30 02:30:29 GMT: [link] Fixed LINK (clearned up a bunch of the ode, including, better catching of "link already in progress" situations.) 0313) 2018-07-30 02:21:59 GMT: [core[ Fixed SB:FINDHUB (IF the bot isn't in the botnet, return"" like it should have (instead of returning the requested name back). Also, a bot can't connect to itself, so, the same test will also return "" for this situation.) 0314) 2018-07-29 23:07:08 GMT: [banlist] Fixed BANLIST (updated "what kind of ban is this" consideration, as a future release (1.8.03+isban? Well, 108032 anyway, if I'm right :) will have the very issue I filed repaired (despite some apparently back*-compat* related objection). ISBAN will be fixed, thus removing the need for compensatory code.) 0315) 2018-07-29 06:41:05 GMT: [counters] Fixed COUNTERS (when no params are given, pipe to HELP. Issue still pending with: sort flags [TASK #117]; I'm still working on it.) 0316) 2018-07-29 06:35:19 GMT: [core] Added CONTEXT:FETCH (if the CONTEXT provided in debugging is useful, pull the source file and provide some lines of code to show what came after the CONTEXT marker.) 0317) 2018-07-29 06:15:45 GMT: [config] Added CONFIG -GLOBAL ERRORCONTEXT (with CHANGELOG #5014, allows dynamic control of the context report information in case of command error, but ONLY if it's used for debugging.) 0318) 2018-07-29 06:06:03 GMT: [core] Fixed SB:DISPATCH (forfully put out the last reference in a CONTEXT statement; normally, only DEBUG MODE would trigger this. I might repeal this, or, create a CONFIG option for it ....) 0319) 2018-07-29 05:58:01 GMT: [tree] Fixed TREE (cosmetic: if the bot isn't connected to anything, complain! Don't provide a hop count of 1 with 0 connected bots. TASK #119.) 0320) 2018-07-29 05:23:06 GMT: [note] Fixed The Albatross (changed most of the non-help output to respect your privacy output (note read) mode.) 0321) 2018-07-29 04:43:54 GMT: [core] Added BSWITCH, ESWITCH, LSWITCH, & VSWITCH (examples inspired by code at: https://wiki.tcl.tk/4582 only, as usual, I added some new options and switches and whatnot.) 0322) 2018-07-29 04:42:52 GMT: [core] Fixed STL, STU, & STS (changed codes to INTERP ALIAS, which saves on a few CPU cycles.) 0323) 2018-07-28 05:51:52 GMT: [cron] Added CRON (requested by fd0. Note: I had to compensate for a cosmetic flaw in TCL regarding interpreter aliases and arg counts. See notes in the code in front of CRON:PROCESS if interested.) 0324) 2018-07-28 04:23:41 GMT: [core - delay] Fixed SB:DISPATCH & DELAY (better handling of This was needed to facilitate CRON's inclusion (see next entry).) 0325) 2018-07-28 03:06:28 GMT: [distro] Fixed DISTRO (when deleting files from the distributions, and you specify non-wildcard names, the search wasn't finding the files. Also, when complaining about a file that can't be copied over to the distribution folder, show the distro name within the complaint so you know where to look for the offending entry.) 0326) 2018-07-28 02:53:28 GMT: [core] Fixed SCINOT (not handling rounding properly.) 0327) 2018-07-28 01:56:17 GMT: [delay] Fixed DELAY (rogue "s" in the code (from a keyboard shortcut to SAVE) causing a burp.) 0328) 2018-07-27 03:57:08 GMT: [core] Fixed PROCDEF (using function to determine bytecode and source file information for files. Tip found at: http://wiki.tcl.tk/583.) 0329) 2018-07-27 03:00:26 GMT: [core] Added PRIMEFACTORS (code from: https://wiki.tcl.tk/819#pagetocda201c18.) 0330) 2018-07-27 02:45:30 GMT: [core] Fixed DEGREES (helpful tip found at: https://wiki.tcl.tk/819#pagetocda201c18 plus other enhancements in options [flags].) 0331) 2018-07-27 02:10:18 GMT: [chanmon] Fixed CHANMON (the CALC mode was suffering from a string-vs-list issue. Found by fd0. TASK #121. Also, fixed the other sections of CHANMON to make the "$" optional for PREV/NEXT, since it's a TCL "special character" and I don't want other mistakes to crop-up later.) 0332) 2018-07-27 01:10:27 GMT: [alarm - delay] Fixed ALARM & DELAY (left a debug in both. Meh.) 0333) 2018-07-27 00:06:02 GMT: [core] Fixed DEBUG (for some reason, the "=" manual parameter parser was doing an EXPR (math expression) when it's usually text. A holdover from preliminary days? It was choking up my private code (which does floating-point math out to 151 digits of precision (2^-151), so eXPR was throwing a domain range error; I decided to correct it here as well.) 0334) 2018-07-26 01:34:05 GMT: [autosend] Fixed AUTOSEND (cosmetic: any fields that reply with a blank when empty now updated with NONE.) 0335) 2018-07-25 03:35:10 GMT: [note] Fixed The Albatross ((1) added NOTE FIND (search your notes for text), &, (2) added NOTE:PRINT to respect privacy setting when reading notes. Will probably update all of the code with this change at a later date [LONG overdue!].) 0336) 2018-07-25 03:12:08 GMT: [newban] Added NEWBAN (new re-write of old BAN bead. I consider it in "beta testing" mode for now, but it works. The old BAN command is still in place, all caveats considering.) 0337) 2018-07-25 03:08:12 GMT: [banlist] Added BANLIST to all distributions (recoded from scratch. Found issue with ISBAN command; filed Eggdrop bug #531.) 0338) 2018-07-25 03:05:23 GMT: [botsend] Fixed BOTSEND QUICK (now will process -NEXT instruction.) 0339) 2018-07-25 01:46:20 GMT: [core] Added BIT:COUNT & BIT:SIZE (to work with SETBIT/ISBITSET.) 0340) 2018-07-25 01:23:05 GMT: [core] Fixed URT (fixed $NUMBER_OF_TERMS issue: count(position)-vs-index issue: only calculate when necessary, not "every time." Also, cosmetic: added "+" when truncation occurs.) 0341) 2018-07-25 00:20:06 GMT: [botsend] Fixed BOTSEND QUICK (cosmetic: properly choose when to display successful sends vs failed sends (bot not in botnet).) 0342) 2018-07-24 23:54:26 GMT: [core] Fixed INTERVAL (the -INTEGER patch didn't consider a value of "1.0" as an integer [which it is yet isn't] because of literal interpretation. Now, will NORMALIZE before evaluating.) 0343) 2018-07-24 22:42:42 GMT: [core] Fixed INTERVAL (added -INTEGER flag, mainly for BAN, as a "ceiling" style function.) 0344) 2018-07-24 22:28:31 GMT: [core] Fixed INTERVAL (default interval step => 1.) 0345) 2018-07-24 20:51:00 GMT: [botsend] Fixed BOTSEND QUICK (bot list wasn't sanity-checked!) 0346) 2018-07-24 19:16:41 GMT: [core] Fixed LDESTROY (test for match flags [glob / exact / regexp] was flawed.) 0347) 2018-07-24 19:06:36 GMT: [ban] Fixed UNBAN (BAN* needs a re-write; it's in progress. As a result, the old, flawed code (+URT isn't properly working) is currently in place as a place-holder [it functions, exept the the above-mentioned =URT mode]. In the updating, the UNBAN bind was deleted by accident. Found by fd0. Patch by fd0.) 0348) 2018-07-24 04:33:53 GMT: [distro] Fixed SB:DISTRO_CHANGELOG (dump a timestamped, current copy of changelog in case I do something BRILLIANT again, like leave a changelog-override file like "_cl.sb6" around to auto-load on MAINTENANCE REHASH!)) 0349) 2018-07-24 04:08:44 GMT: === Version 6.2.004 - build 00011 === 0350) 2018-07-24 04:07:52 GMT: [core] Fixed all distributions (file splitting done before version 6.2.4.00010 didn't have the newly-created beads re-added manually. Found by fd0.) 0351) 2018-07-23 06:05:37 GMT: [alarm - delay] Fixed ALARM & DELAY ((1) separated them into two separate beads, &, (2) fixed CLEAR: bad variable: data9clear) instead of data(clear).) 0352) 2018-07-20 05:33:12 GMT: [chanmon] Fixed CHANMON HELP (cosmetic: "which allowed bots to be the network" ... which ... I dunno know what drugs I was on when I wrote that.) 0353) 2018-07-20 04:32:24 GMT: [botsend] Fixed BOTSEND QUICK (if there were no files to send, or no valid target bots, complain!) 0354) 2018-07-20 04:27:24 GMT: [note] Fixed The Albatross (when FORWARDING a note, if you select an illogical note number to forward, complain about it! It didn't before; it said NOTHING and left you wondering.) 0355) 2018-07-02 19:56:43 GMT: [core] Fixed UNKNOWN (shifter didn't account for the fact that the core UNKNOWN was intrinsic binary instead of a PROC (even though it is).) 0356) 2018-07-02 18:15:01 GMT: [distro] Fixed DISTRO (various file-writes of fixed files needed to be CRLF-terminated (e.g. robots.txt).) 0357) 2018-07-02 18:13:51 GMT: [distro] Fixed SB:DISTRO:_CHECKSUMS (bad syntax for fixed file dump (e.g. robots.txt, which THE INTERNET ARCHIVE REFUSES TO RESPECT), causing the FILE NORMALIZE syntax to be broken.)) 0358) 2018-07-02 18:11:21 GMT: [distro] Fixed DISTRO RELEASE UPDATE (bad folder name: "fiels" vs "files" in the files path.) 0359) 2018-07-02 04:22:46 GMT: === Version 6.2.004 - build 00010 === 0360) 2018-07-02 03:00:47 GMT: [core] Fixed FLAGS:PARAMS (an issue existed where "*" as a param count was confusing the -FORCE option. Also, when one flag was superceded by another flag (in "*" mode), it wasn't realizing to switch flag-collection buckets and keps adding everything to the first (triggered) flag.) 0361) 2018-07-02 01:34:16 GMT: [core] Fixed FLAGS:SIMPLE & FLAGS:PARAMS (previous attempt to allow multiple variables to take-on the params returned by the text variable failed (CHANGELOG #3261). Figured out how to make it work in FLAGS:SIMPLE, and incorporated into FLAGS:PARAMS.) 0362) 2018-07-01 23:44:24 GMT: [core] Fixed SB:DISPATCH_NOTICE (allowed the /NOTICE mode to also respond to when the command is /WALLOPSed. The /NOTICE method parser already checks for valid commands, so no false-positive eror messages will be seen for notmal WALLOPS-type messages.) 0363) 2018-07-01 21:39:25 GMT: [chaninfo] Fixed CHANINFO:BOOTSTRAP (bad reference to SB:chandata_changeover_init, which was removed the other day.) 0364) 2018-06-30 04:52:12 GMT: [date] Fixed DATE (re-wrote date/time formatting, making better use of TCL 8.5's CLOCK -TIMEZONE option. Found by Bette, essentially.) 0365) 2018-06-29 19:01:35 GMT: [note] Fixed The Albatross (NOTE SET NAG: cosmetic: NAG is no longer a flag, but, was showing a flag for each of the choices.) 0366) 2018-06-29 18:30:05 GMT: [bmi - comickick - protect] Fixed BMI, COMICKICK, & PROTECT (various mis-named bootstrappers from yesterday's mass-splitting update. In the case of BMI, I had a rogue close-brace.) 0367) 2018-06-29 18:00:28 GMT: [core] Fixed FLAGS:SIMPLE & FLAGS:PARAMS (finally SUCCESSFULLY enabled multi-variable text assignment, with $($var_flags)_args returning the remaining text. Also, defaulted the flags variable to $flags. Also, gave FLAGS:PARAMS the same upgrades. I've been wanting to do this for ages! :) 0368) 2018-06-29 04:30:09 GMT: [adduser - addbot - remuser - admin - createuser - protect] Split ADDUSER (created: addbot, remuser, admin, createuser, & protect beads. Some of these needed PROC renames, and, some needed bootstrappers.) 0369) 2018-06-29 04:28:46 GMT: [abuse] Fixed ABUSE (added a bootstrapper, and, cleaned up the PROC names.) 0370) 2018-06-29 04:27:12 GMT: [alarm] Fixed ALARM (made DELAY a true abbreviation, instead of INTERP ALIASing them together.) 0371) 2018-06-29 04:26:16 GMT: [autolink] Fixed AUTOLINK (added a bootstrapper, and, cleaned up the PROC names.) 0372) 2018-06-29 04:25:28 GMT: [automode] Fixed AUTOMODE (added a bootstrapper, and, cleaned up the PROC names.) 0373) 2018-06-29 04:23:53 GMT: [autosend] Fixed AUTOSEND (cleaned up the PROC names.) 0374) 2018-06-29 04:22:46 GMT: [autostart] Fixed AUTOSTART (added a bootstrapper, and, cleaned up the PROC names.) 0375) 2018-06-29 04:20:34 GMT: [badchan] Fixed BADCHAN (added a bootstrapper.) 0376) 2018-06-29 04:18:47 GMT: [badchan] Fixed SB:BADCHAN_CHECK2 (a rogue closing double-quote was causing havoc. NOTEPAD++ caught it.) 0377) 2018-06-29 04:17:32 GMT: [blackjack] Fixed BLACKJACK (modes some code into a bootstrapper.) 0378) 2018-06-29 04:15:27 GMT: [botmon] Fixed BOTMON (cleaned-up all the PROC names.) 0379) 2018-06-29 04:09:00 GMT: [send] Fixed SEND (piped XSEND through SEND, ebcause I didn't want to duplicate the code into two beads, fix one (if something went wrong), and not fix it in the other.) 0380) 2018-06-29 03:59:06 GMT: [vbottree] Renamed BOTVTREE to VBOTTREE. 0381) 2018-06-29 03:57:58 GMT: [botnet - botlist - botping - send - xsend - botattr - link - unlink - chaddr - botaddr - botnet - botjupe - tree - trace - botvtree] Split BOTNET (created: botnet, botlist, botping, send, xsend, botattr, link, unlink, chaddr, botaddr, botnet, botjupe, tree, trace, & botvtree beads.) 0382) 2018-06-29 03:54:21 GMT: [passtest - passcheck] Renamed PASSCHECK to PASSTEST (currently only some notes), allowing PASSCHECK2 to be renamed to PASSCHECK (botnet-based password testing.) 0383) 2018-06-29 03:50:27 GMT: [botsend2] Fixed BOTSEND2 (cleaned-up bootstrapper.) 0384) 2018-06-29 03:48:24 GMT: [brainfuck] Fixed BRAINFUCK (renamed core PROC to "brainfuck" to make it more usable by other scripts.) 0385) 2018-06-29 03:43:33 GMT: [capskick] Fixed CAPSKICK (added a bootstrapper. Also, renamed some PROCs to more logical names.) 0386) 2018-06-29 03:29:31 GMT: [distro] Fixed DISTRO CHANGELOG ADD (tap into AUTOSEND information to see if there's any autosending of the CHANGELOG data; list if so.) 0387) 2018-06-29 03:24:58 GMT: [chanmon] Fixed CHANMON (renamed various PROCS to more intuitive names.) 0388) 2018-06-29 03:15:12 GMT: [allowflood] Fixed ALLOWFLOOD (moved some code into a bootstrapper.) 0389) 2018-06-29 03:14:50 GMT: [chanset - chaninfo - autovoiceall - allowflood] Split CHANSET (created: chaninfo, autovoiceall, & allowflood beads.) 0390) 2018-06-29 03:12:41 GMT: [chansusp - chanunsusp] Split CHANSUSP (created: chanunsusp bead.) 0391) 2018-06-29 03:11:01 GMT: [chansusp] Fixed CHANSUSP (a closing double-quote within a text string wasn't escaped. NOTEPAD++ caught it.) 0392) 2018-06-29 03:08:01 GMT: [checkpass - genpass - botpass - encpass - setpass] Split CHECKPASS (created: genpass, botpass, encpass, & setpass beads. This is counter-intuitive, but, Ineed to be consistent.) 0393) 2018-06-29 03:04:57 GMT: [cmdreport] Fixed CMDREPORT (moved some code into a bootstrapper.) 0394) 2018-06-29 03:04:12 GMT: [comickick] Fixed COMICKICK (moved some code into a bootstrapper.) 0395) 2018-06-29 03:02:49 GMT: [config - home - keepsaves] Split CONFIG (created: home & keepsaves beads. I might deprecate both in the near future.) 0396) 2018-06-29 02:58:39 GMT: [credits] Fixed CREDITS ((1) updated the copyright date, &, (2) added a missing person (Megenis).) 0397) 2018-06-29 02:57:20 GMT: [currency] Fixed CURRENCY (old SB:GET_HTML references, which has "WWW" since 2015-10-07.) 0398) 2018-06-29 02:54:25 GMT: [date - timestamp - timecomp] Split TIME (created: timestamp & timecomp beads.) 0399) 2018-06-29 02:47:26 GMT: [dictionary - spellcheck] Split DICTIONARY (created: spellcheck bead.) 0400) 2018-06-29 02:45:39 GMT: [die - jisatsu - hibernate] Split DIE (created: jisatsu & hibernate beads.) 0401) 2018-06-29 02:43:58 GMT: [displaywallops - displayservmsg] Fixed DISPLAYWALLOPS & DISPLAYSERVMSG (moved some code into a BootStrapper.) 0402) 2018-06-29 02:42:31 GMT: [displaywallops - displayservmsg] Split DISPLAYWALLOPS (created: displayservmsg bead.) 0403) 2018-06-29 02:39:56 GMT: [dns - lookup] Split DNS (created: lookup bead.) 0404) 2018-06-29 02:36:21 GMT: [dst] Fixed DST (renamed bootstrapper and cleaned up some of the other PROC names.) 0405) 2018-06-29 02:32:51 GMT: [autosend] Fixed AUTOSEND REFRESH (show the resulting data output lists, including: when DENY f***s with things because you mixed-up DENY vs PROTECT.) 0406) 2018-06-29 02:32:36 GMT: [sbddata] Fixed SBDDATA READ (an unnecesary SPLIT caued data names to be expanded to {name}, which caused mismatches.) 0407) 2018-06-28 23:04:11 GMT: [distro] Fixed DISTRO CHANGELOG ADD (printed when CHANGELOG was being sent to other bots, so you don't sit there and wonder.) 0408) 2018-06-28 22:54:24 GMT: [sbddata] Fixed SBDDATA READ (had to re-write due to new headers.) 0409) 2018-06-28 22:38:13 GMT: [sbddata] Fixed SBDDATA (bad loop to store data. Also, when SAVE mode is used, don't sanity-check for a bot list.) 0410) 2018-06-28 22:32:15 GMT: [sbdsend] Fixed SBDSEND SEND (bad LSEARCH, which doesn't like "--" [yet other LIST commands do]....) 0411) 2018-06-28 22:12:02 GMT: [distro] Fixed DISTRO CHANGELOG DEFERTO NONE (forgot to add it.) 0412) 2018-06-28 22:04:33 GMT: [sbddata] Fixed SBDDATA SEND (BOTSEND sytnax was wrong: forgot "SEND" param. Also, adde -QUICK option to use BOTSEND QUICK instead.) 0413) 2018-06-28 21:50:56 GMT: [links - map] Fixed LINKS & MAP (brace issues caused by yesterday's bead-splitting.) 0414) 2018-06-28 21:50:07 GMT: [snapshot] Fixed SNAPSHOT:BOOTSTRAP (changed the direct fiel save to a buffered one via SB:NEEDSAVE. More changes of this nature are coming ....) 0415) 2018-06-28 21:47:42 GMT: [core] Fixed SB:BOTDATAFILE SAVE (badly-formed CLOCK statement for the file header.) 0416) 2018-06-28 01:07:09 GMT: [addmask - remmask] Split ADDMASK (created remmask bead.) 0417) 2018-06-28 01:07:04 GMT: [calc - speed - quad - pi - formulae - graph] Split CALC (created speed, quad, pi, formulae, & graph beads.) 0418) 2018-06-28 01:02:31 GMT: [getops] Fixed GETOPS (use of {"} to trap a double-quote was driving NOTEPAD++ nuts.) 0419) 2018-06-28 01:02:18 GMT: [fukung] Fixed FUKUNG (use of {"} to trap a double-quote was driving NOTEPAD++ nuts.) 0420) 2018-06-28 00:55:50 GMT: [log] Fixed LOG (moved some code to bootstrap; tweaked some other code.) 0421) 2018-06-28 00:40:50 GMT: [matchgreet] Fixed MATCHGREET (moved some code into a bootstrapper.) 0422) 2018-06-28 00:10:06 GMT: [onjoin - konjoin - memo] Split ONJOIN (created: konjoin & memo beads.) 0423) 2018-06-27 23:52:03 GMT: [oper - map - lusers - links] Split OPER (created: map, lusers, & links beads. Move all commands to level 501.) 0424) 2018-06-27 23:51:31 GMT: [op - stripops - modekill - voice - devoice - halfop - dehalfop - op - deop - admin - deadminown - deown] Split OP (created: stripops, modekill, voice, devoice, halfop, dehalfop, op, deop, prot, deprot (renamed to admin & deadmin [de-admin, not DEAD MIN :p]), own, & deown beads.) 0425) 2018-06-27 23:15:35 GMT: [qotd] Fixed QOTD (added line in HELP: not all machines run this any more (engine on port 17), so it may fail. Also, left myself a note: test for Windrop/windows machine and complain if found.) 0426) 2018-06-27 23:13:27 GMT: [quad] Reconciled QUAD (found old version, which I named QUAD2. Figured out which was newer; was QUAD after all.) 0427) 2018-06-27 23:12:57 GMT: [quick] Added QUICK SB9. 0428) 2018-06-27 23:04:25 GMT: [rehash - restart] Split REHASH (created: restart bead.) 0429) 2018-06-27 23:01:59 GMT: [save - reload - backup - restore - fixchanfile - fileaudit - snapshot] Split SAVE (created: reload, backup, restore, fixchanfile, fileaudit, & snapshot beads.) 0430) 2018-06-27 22:57:34 GMT: [reload] Fixed RELOAD HELP (missing close-double quote was causing output hell. Found by NOTEPAD++.) 0431) 2018-06-27 22:56:02 GMT: [say - act - msg - notice - hi] Split SAY (created beads: act, msg, notice, & hi. I have *NO IDEA* why "HI" was included in this bead in the first place.) 0432) 2018-06-27 22:53:25 GMT: [core - servers - jump] Renamed SERVERS to JUMP (code copied from SB7 [see earlier CHANGELOG]. AUTOPURGE adjusted to compensate.) 0433) 2018-06-27 22:51:43 GMT: [servmon] Fixed SERVMON (a copy/paste/replace double-quote was left in a REGEXP, causing a quote issue. NOTEPAD++ found it.) 0434) 2018-06-27 22:49:34 GMT: [set - info - list - chset] Split SET (created: info, list, and chset beads. "MY" stays with SET (but will pipe to INFO as needed).) 0435) 2018-06-27 22:39:32 GMT: [telnet] Fixed TELNET INFO (two double-quotes at the end of a line. NOTEPAD++ caught it. ) 0436) 2018-06-27 22:38:36 GMT: [test] Fixed TEST (some cosmetic changes; this bead is good for testing command bead transfers. Have to figure out how to use it more.) 0437) 2018-06-27 22:30:13 GMT: [userlist - userfind - finddeop - userscan - staff] Split USERLIST (created: userfind, finddeop, userscan, & staff beads.) 0438) 2018-06-27 22:24:02 GMT: [core] Fixed AUTOPURGE (cleaned house, re-enabled several old beads from the Kyak purge.) 0439) 2018-06-27 22:01:43 GMT: [wallops] Fixed WALLOPS (left debugs in ... ages ago.) 0440) 2018-06-27 21:55:47 GMT: [access - who - whoami - owners] Split WHOIS (split off commands to their own beads: ACCESS, WHO, WHOAMI, & OWNERS.) 0441) 2018-06-27 21:55:30 GMT: [whois] Split WHOIS (split off commands to their own beads: ACCESS, WHO, WHOAMI, & OWNERS.) 0442) 2018-06-27 21:54:33 GMT: [moduser] Added MODUSER (split from ADDUSER.) 0443) 2018-06-27 21:50:47 GMT: [xtra] Fixed XTRA (debugs left in place.) 0444) 2018-06-27 21:49:32 GMT: [addmask] Split ADDMASK (REMMASK moved to its own bead.) 0445) 2018-06-27 21:44:25 GMT: [core] Fixed AUTOPURGE (added beads/@*.sb6, so any bead with "@" is marked for purging. Currently: @unreal.sb6.) 0446) 2018-06-27 21:41:11 GMT: [pascal] Fixed PASCAL (merged all the different variations I've written. Some are redundant; some will error-out because of 'missing pieces' in the code. I'll figure it out in time.) 0447) 2018-06-27 21:22:14 GMT: [calc] Fixed CALC bead (stripped all beads from it; made them their own beads-per-command. Main reason: PASCAL.) 0448) 2018-06-27 20:31:36 GMT: [sbddata] Fixed SBDDATA (re-wrote most of the code to simplify it; it was unnecessarily complex. Also, changed the options to: LOAD, SAVE, and SEND (which dies SAVE first, then pipes to BOTSEND afterward).) 0449) 2018-06-27 19:55:40 GMT: [sbddata] Renamed SBDSEND to SBDDATA. 0450) 2018-06-27 19:52:03 GMT: [servers] Fixed SERVERS (I was sick of the "space" issue in $::servers, so I just pulled the SB7 version of the code, which is simpler, dumbed it down to be compatible with SB6, and called it a day.) 0451) 2018-06-27 19:20:26 GMT: [core] Fixed PRINT:TABLE (ported upgrades from private TCLs, including -TRIM.) 0452) 2018-06-27 19:10:52 GMT: [core] Added SBD:GETALL. 0453) 2018-06-27 19:07:58 GMT: [core] Fixed SB:BOTDATAFILE (updated the header to inlcude some mundane details. Also pushed the data file version number up to 2.1 to reflect header change.) 0454) 2018-06-26 20:01:13 GMT: [twitter] Fixed TWITTER ACCOUNT DEL (wasn't deleting accounts by wildcard.) 0455) 2018-06-26 19:29:57 GMT: [copyuser] Fixed COPYUSER (left some debug in place.) 0456) 2018-06-26 19:05:11 GMT: [core] Fixed LREMOVE (changed ST- construction to ST=. Also, added note in ST= to explain why it exists (LREMOVE).) 0457) 2018-06-26 01:41:44 GMT: [core] Fixed SCINOT (re-wrote to streamline the code, thanks to my increasing comfortability with semi-complex regexp use.) 0458) 2018-06-26 01:14:56 GMT: [core] Fixed ALLEMPTY (double-negative logic: ![isempty] should have been [notempty].) 0459) 2018-06-25 20:13:28 GMT: [note] Fixed The Albatross (level changed from 0 to 1, because level 0 commands don't require a login; this could subject the NOTE command to flood abuse/queue-overloading avalanches.) 0460) 2018-06-25 04:36:03 GMT: [fix] Fixed FIX (multiple functions (2 ~ 10) used the combined AND / LIST / LSORT [some with -COMMAND LSORT:ALPHAONLY], instead of jsut using AJL.) 0461) 2018-06-24 04:37:01 GMT: [core] Fixed SB:SETPARAMS (left some debugs in.) 0462) 2018-06-24 04:01:34 GMT: [botsend] Fixed BOTSEND -NEXT (also needed to check for QUICK sends before determining that nothing was being transferred (and to park until finished).) 0463) 2018-06-24 03:42:13 GMT: [botsend] Fixed BOTSEND QUICK (cosmetic: added bytes-sent count to output.) 0464) 2018-06-24 03:38:16 GMT: [botmon] Fixed BOTMON REJECT (cosmetic: if you delete bots, and none are left, don't output a blank line!) 0465) 2018-06-24 03:37:17 GMT: [botmon] Fixed BOTMON AUDIT (unknown copied text into output text, causing a double-quote count mismatch. NOTEPAD9++ caught it.) 0466) 2018-06-24 03:34:16 GMT: [fix] Fixed FIX -28 (setting BOTADDR requires a different, multi-element syntax. Don't know why. Anyway, this explains the idiocy COPYUSER has had with bots entries all these years. Previous tests didn't reveal this for some reason. This is the same as the COPYUSER issue.) 0467) 2018-06-24 03:33:54 GMT: [copyuser] Fixed COPYUSER (setting BOTADDR requires a different, multi-element syntax. Don't know why. Anyway, this explains the idiocy COPYUSER has had with bots entries all these years. Previous tests didn't reveal this for some reason.) 0468) 2018-06-24 02:23:26 GMT: [servers] Added SERVERS TEST (just walk-through and report problems. Trying to automatically fixing these problems has caused MORE problems ("\{:6665" and the like), so it's just not worth it.) 0469) 2018-06-24 01:54:58 GMT: [fix] Added FIX -30 (same as -29 [$::SERVERS], but with the internal SERVERS command data instead [SBD:GET SERVERS].) 0470) 2018-06-24 01:36:51 GMT: [servers] Fixed SERVERS:TEST (when the current server on the list has been edited to contain the "name" of the current server in element #1 ("1.1.1.1:6667" may become "1.1.1.1:6667 home.server.com"), don't consider that a test failure.) 0471) 2018-06-24 01:14:47 GMT: [servers] Fixed SERVERS:TEST (a LAPPEND line was moved to the wrong IF/THEN/ELSEIF line (a CTRL+dorn-arrow combination, probably).) 0472) 2018-06-24 00:59:10 GMT: [fix] Added FIX -TEST (simulate changes, to see if the code determines the proper repair.) 0473) 2018-06-24 00:57:38 GMT: [fix] Fixed FIX (added a template for future expansions; I hte have to 'cleanse' other code to make a new entry.) 0474) 2018-06-24 00:13:26 GMT: [fix] Added FIX -28 (bad BOTADDR check.) 0475) 2018-06-24 00:12:24 GMT: [fix] Added FIX -29 (server list check, which *should* be handled by SERVERS:BOOTSTRAP, but just in case ....) 0476) 2018-06-23 23:59:30 GMT: [fix] Fixed FIX (cosmetic: if no errors, HAPPY FACE!) 0477) 2018-06-23 23:45:11 GMT: [botsend] Fixed BOTSEND STATUS ($HEADER was defined within an IF/THEN, so the ELSE didn't see it as defined.) 0478) 2018-06-23 23:39:19 GMT: [botsend] Fixed BOTSEND QUICK (cosmetic: "all files have been sent" should be "all files have been bursted" instead.) 0479) 2018-06-23 23:28:09 GMT: [distro] Fixed DISTRO ((1) added new option: RELEASE GROUP (which will change the group [ownership] of a file when it's written, &, (2) changed all DUMPFILEs to DISTRO:DUMPFILEs so the permissions and groups can be applied on file-write [instead of in multiple places; wil be removed later].) 0480) 2018-06-23 22:38:54 GMT: [fix] Fixed FIX -06 (added --06PART and --06INACTIVE options to "bot not on channel" checks; suspended channels were triggering this issue to fix.) 0481) 2018-06-23 22:20:47 GMT: [core] Added ALLEMPTY (complement to ANYEMPTY.) 0482) 2018-06-22 00:57:08 GMT: === Version 6.2.004 - build 00009 === 0483) 2018-06-22 00:47:00 GMT: [botsend] Fixed BOTSEND QUICK (when all files are sent, say so.) 0484) 2018-06-22 00:19:08 GMT: [distro] Fixed DISTRO CHANGELOG (added a =DEFER-TO option, so I don't send updates to the wrong bots, and have disjointed lists all over the place. Hasn't happened yet, but, I know it will.) 0485) 2018-06-22 00:09:15 GMT: [core Added FACTORS:SPLIT (product two median factors to use to multiply back to the original number. This will be useful when you have to step-through factors to do intricate math but with fewer steps. Help by ElriC.) 0486) 2018-06-21 22:14:22 GMT: [autosend] Fixed AUTOSEND HELP (typo: "form" instead of "from" again.) 0487) 2018-06-21 22:07:20 GMT: [copyuser] Fixed COPYUSER QUICK -BOTS (store anti-flood variables, as you will paste a flood-worth of data by intention, then restore them later. At least, the values will eb stored in temporary variables. This doesn't affect -TCL mode.) 0488) 2018-06-21 20:58:04 GMT: [dccme] Added DCCME KILL (alias -KILL, removes you from DCC CHATs with the bot, linked by handle.) 0489) 2018-06-21 05:19:44 GMT: [core] Fixed FLAGS:PARAMS (when a flag had a param counf of zero, the FOR loop wasn't being entered, so the flag was never counted.) 0490) 2018-06-21 05:19:08 GMT: [core] Fixed SEQUENCE (programmed from scratch: now more efficient and allows a new boundary-based syntax: X .. Y Z, where X may-or-may-not be adjusted to fit the pattern. Also, now handles reverse sequences (9 7 .. 1).) 0491) 2018-06-19 19:01:49 GMT: [calc] Fixed PASCAL (added -GET and -QUICK modes, based on private TCLs. While working on this, I noted that the constant killing/resurrecting of the CALC, et al, beads was causing command-name collisions. I will seal with that shortly (likely outcom: all combination-command beads separated into constituent command beads).) 0492) 2018-06-16 15:03:43 GMT: [core] Fixed PRINT:TABLE (added -TRIM flag to trim the fat off the right-side [only] of the text.) 0493) 2018-06-16 05:55:44 GMT: [botsend] Fixed BOTSEND (left a debug in place.) 0494) 2018-06-16 05:22:31 GMT: [core] Fixed DUMPFILE (added automatic header use for Unicode-related character encodings.) 0495) 2018-06-16 05:10:41 GMT: [core] Fixed DUMPFILE (using LIST_MODE destroys the binary data that comprises UTF-8 data; wrote a new portion that specifically deals with that and the fact that CRLF mode munges the binary data also [so a manual CR is needed with -translation binary].) 0496) 2018-06-13 22:28:51 GMT: [core] General announcement: effective immediately, I am only producing security fixes. I will no longer develope the SB6 branch, as I can't get ANY HELP to deal with the clock/msgcat issue, so I can't even start a local bot. ( cygwin? thats not a real bot. cant help you). So, if I can't dev, I don't code. You know who to blame. 0497) 2018-06-13 18:21:43 GMT: [copyuser] Fixed COPYUSER (in normal mode (not QUICK mode), the ADDBOT was following the old syntax, which kept the connect ports atatched to the address as one list element.) 0498) 2018-06-13 05:59:25 GMT: [core] Fixed SB:SETPARAMS (left a few debugs in place.) 0499) 2018-06-13 05:41:12 GMT: === Version 6.2.004 - build 00008 === 0500) 2018-06-13 05:40:07 GMT: [botsend] Fixed BOTSEND (whatever th bot-on-drugs error was there, I've gotten around it. If you use BOTSEND to update your bots, and they're affected by the problem, you have three choices: (1) download the newest tarball, (2) download jsut the botsend bead, (3) use MAINTENANCE UPDATE BOTSEND.SB6 which will update remotely. Your choice.) 0501) 2018-06-13 05:09:20 GMT: [maintenance] Fixed MAINTENANCE CHECK (use of FLAGS -PARAMS replaced by FLAGS:PARAMS [the original is broken; testing a replacement]. Also, cleaned-up code which checks our website for bead statuses. This command will fail with Windrops.☹) 0502) 2018-06-13 04:27:27 GMT: [core] Fixed FLAGS (the -PARAMS mode seems broken; I've already written FLAGS:PARAMS from scratch to replace it anyway, so, I'm piping one into the other to solve this. If this holds up, I'll strip the old code permanently. 0503) 2018-06-13 04:12:05 GMT: [botsend] Fixed BOTSEND:CHECK_LOAD_SHIFT (the call to SB:LOADBEADS needed a "force" flag; the test script I use isn't a proper bead (which files its file's mtime); it just spits out a line to show it loaded. Since FORCE isn't being refreshed, the oldest mtime available is being checked: if newer then (old time) isn't triggering.) 0504) 2018-06-13 03:58:46 GMT: [core] Fixed SB:LOADBEADS (cosmetic; typo "eggdorp" instead of "eggdrop" [again].) 0505) 2018-06-12 04:27:02 GMT: [botsend] Because of an unknown issue (somehow, even with a proper count of args, a command complains that it's not right), I am NEUTERING the BOTSEND command until I can address this. A manual patch may be necessary to repair this. The issue defies ALL LOGIC!) 0506) 2018-06-12 04:19:32 GMT: [core] Fixed AUTOPURGE (removed "test" from the autopurge; I need it.) 0507) 2018-06-12 04:01:11 GMT: [botsend] TO repair botsend, if your bead it faulty, transfer from any workign bot using: BOTSEND QUICK (which bypasses most of the compression code); this should allow you to update any remote beads successfully. See us if you have any difficulties.) 0508) 2018-06-12 03:33:46 GMT: [botsend] Fixed SB:BOTSEND_RECEIVE (wrong # of args to invoke the new check/load/shift code. I must have updated one seciont of code but not another (there are two invocations). As this is a critical command error (and includes / involves uploading patches, I will release this fix tonight!) 0509) 2018-06-12 02:30:02 GMT: [botnet] Added PASSCHECK (use the botnet to check password issues.) 0510) 2018-06-11 19:56:52 GMT: [core] Fixed @ENCRYPT:BITCH (cosmetic: "works mode" which doesn't even make sense.) 0511) 2018-06-11 07:02:43 GMT: [botsend] Fixed BOTSEND HELP (added HELP for NEW option.) 0512) 2018-06-11 06:34:46 GMT: [core] Fixed NORMALIZE:VAR (re-wrote from scratch.) 0513) 2018-06-11 06:10:26 GMT: [core] Added GET:OPTIONS (calculate what option flags go with commands. Currently, only REGEXP and REGSUB are listed, but, this will be expanded with time.) 0514) 2018-06-11 05:58:24 GMT: [botsend] Fixed BOTSEND QUICK (when the file is complete, the global array wasn't being cleared (the individual file info was), so BOTSEND STATUS kept thinking there were transfers in progress.) 0515) 2018-06-11 05:57:35 GMT: [botsend] Fixed BOTSEND STATUS (proper listing of BOTSEND QUICK info.) 0516) 2018-06-11 05:11:37 GMT: [botsend] Fixed BOTSEND KILLALL (the file-specific data for QUICK transfers was being removed, but the global array was surviving.) 0517) 2018-06-10 23:58:10 GMT: [distro] Fixed DISTRO (SB:DISTRO_CHECKSUMS: added a sanity check to test for file ownership; a file (specifically, checksum files) that aren't owner by the bot's account can't be permisison-changed, even if accessible due to group access.) 0518) 2018-06-10 03:25:41 GMT: === Version 6.2.004 - build 00007 === 0519) 2018-06-10 02:55:44 GMT: [alarm] Fixed ALARM / DELAY EDIT (code wasn't written yet. I got lazy and piped EDIT into DEL & ADD accordingly. Sue me.) 0520) 2018-06-10 02:44:56 GMT: [core] Fixed GET:TIME (cleaned up code re: "NOW" and "NOW [A-Z]" which was causing problems. One situation still exists: there's aline of code that scans for a single letter in the front of the text, but not "NOW " first. Is this a catch for "I" coming after NOW?)) 0521) 2018-06-10 02:22:14 GMT: [core] Fixed VALIDFLAG (allowed "-" to be optional; typoes cause problems with this otherwise.) 0522) 2018-06-10 01:40:23 GMT: [core] Fixed LOG (when a log level wasn't specified, the default needs to be "6" but an earlier version of the command used "0" instead.) 0523) 2018-06-10 01:39:31 GMT: [core] Fixed LOG (if the script isn't loaded, all output needs to go to the "misc" loc (.console +o, the same as PUTLOG) to be seen during cold start-up.) 0524) 2018-06-10 00:50:16 GMT: [alarm] Fixed ALARM & DELAY (changed how data is processed: separated ALARMs and DELAYs via LSEARCH trickery. Also, added ALARM TEST (a test suite re: the timestamp issues of late).) 0525) 2018-06-08 20:43:10 GMT: [alarm - core] Fixed ALARM & DELAY (long-standing issue with timestamp conversion: your time vs the bot's time, and whether-or-not you specify a timezone in your designation. This has been plaguing me for ages, and, was about to become my second Albatross. This also involved a tweak to GET:TIME. TASK #36.) 0526) 2018-06-08 18:22:31 GMT: [core] Fixed SB:GET_FORMAT (added 4rd parameter return value: flag to indicate which mode was astisfied (which is only needed for CLOCK SCAN mode; all other modes are relative times and don't need later compensation).) 0527) 2018-06-08 17:44:00 GMT: [core] Fixed PRECISION (defaulting to "16" is no longer necessary if $::tcl_precision is 0; in TCL 8.5, this is a proper default that allows for arbitrary-length integer math and limited floating-point precision.) 0528) 2018-06-08 02:16:40 GMT: [core] Added flags2vars (shortcut to assigning vairables with the same names as the flags (without the hyphen) with the boolean value: 0 or 1. Also handles -PARAMS mode (just copies the value over).) 0529) 2018-06-08 00:47:51 GMT: [core] Fixed VAR (allowed a default value; initially is "" for obvious reasons (back*-compat*).) 0530) 2018-06-07 23:48:28 GMT: [core] Fixed OUTPUT2 (when a bto is *not* compiled into UTF08, such as WinDrop, re-convert codes back from UTF-8 into Eggdrop's (and TCL's originally) native Unicode. Whether you accept this as UCS-2 or UTF-16 is for you to decide; leave me out of it) 0531) 2018-06-06 00:38:54 GMT: [knock] Added KNOCK to Zenkai. 0532) 2018-06-05 05:53:51 GMT: [copyuser] Fixed COPYUSER ()(1) some cosmetic stuff, (2) check for self-transfers, & (3) better user sanity check.) 0533) 2018-06-04 19:50:48 GMT: [core] Fixed SB:RAW_SERVER_DATA_005 (RAW 005 CHANMODES don't include the channel-op flags (qaohv); they're shown as "PREFIX=(qaohv)~&@%+" instead. ALso, did a little logic cleanup.) 0534) 2018-06-04 18:07:34 GMT: [core] Fixed SB:PINGPONG:BOTNET (ghost ping/pongs to users aren't even necessary. Code calculated the idx/nick pair improperly anyway, so it always did "[] pi" to users anyway.) 0535) 2018-06-04 17:57:43 GMT: [distro] Fixed DISTRO (cosmetic: SB:DISTRO_HTML wasn't outputting percentage markers until the entire process was complete. Obviously, raw output is needed here. Also, tweaked the math a little bit to make it more dynamic than fixed-interval.) 0536) 2018-06-04 17:27:34 GMT: [distro] Fixed DISTRO (all invocations of checksums are now error-trapped. Permission errors were killing the process.) 0537) 2018-06-04 17:13:09 GMT: [distro] Fixed DISTOR (cosmetic: SB:DISTRO_HTML used an AJL (a custom join / list sort / "and" command) while using a custom JOIN of "-" for the links at the bottom of the distribution pages. This caused "sb6.tcl - file - file - & last file" which wasn't the intention.) 0538) 2018-06-04 00:42:42 GMT: === Version 6.2.004 - build 00006 === 0539) 2018-06-04 00:29:29 GMT: [distro] Fixed DISTRO (SB:DISTRO_HTML: the percentage calculator was incrementing the wrong way, and, the wrong variable was used to calculate percentages (old test version variables).)) 0540) 2018-06-04 00:19:12 GMT: [core] Fixed SB:PINGPONG (cosmetic: extra close-parenthesus in debug lines.) 0541) 2018-06-04 00:01:51 GMT: [op] Fixed STRIPOPS ("*" now triggers a new mode: -ALL [force all modes off]. Also, bot will try to protect itself from the mode barrage.) 0542) 2018-06-03 23:28:25 GMT: [core] Fixed SB:RAW_SERVER_DATA_005 (restricte the max-modes-per-line parser to 12, due to an apparent bug in UnRealIRCd 3.2.10.7: only 12 modes are thrown even though the value reported by numeric 005 is 20; the remaining 8 are discarded.) 0543) 2018-06-03 23:15:35 GMT: [op] Fixed STRIPOPS, OP*, DEOP* (used server 005 info to increase modes-per-line calculations.) 0544) 2018-06-03 22:27:18 GMT: [botsend] Fixed BOTSEND QUICK (cosmetic: converted success output from milli-seconds to seconds.) 0545) 2018-06-03 22:11:29 GMT: [op] Added STRIPOPS (an emergency deop protocol for mode wars. It strips flags, changes channel modes, and adds deop flags (if requested) to stop a mode war in progress. Inspired by our own mode wars while testing various autoop commands over the years.) 0546) 2018-06-03 22:10:29 GMT: [botsend] Fixed BOTSEND QUICK (left a debug in from the other day.) 0547) 2018-06-03 20:33:29 GMT: [oper] Fixed OPER (UPGRADE controller was missing a close-bracket on a USERLIST check.) 0548) 2018-06-03 03:38:18 GMT: [twitter] Fixed TWITTER (to change over to 280 characters, I made the count into a variable. One proc (the text squeezer), didn't invoke the variable properly.) 0549) 2018-06-03 03:32:00 GMT: [distro] Fixed DISTRO CHANGELOG ADD (stupid me, I keep typing "teh" so it now scans and auto-corrects for it.) 0550) 2018-06-03 03:15:46 GMT: [botsend] Fixed BOTSEND QUICK (time calculations were all wrong; shifted data within the stream, some of which was unnecessary.) 0551) 2018-06-03 02:58:37 GMT: [laston] Added LASTON to Zenkai. 0552) 2018-06-03 02:58:28 GMT: [laston] Added LASTON (shows last-on information that the bot has stored. This is different than SEEN (which is in-channel only), and LASTCMDS (which reviews command usage).) 0553) 2018-06-03 02:54:50 GMT: [core] Fixed CASEHANDLE (recent patch returned an empty value if there wasn't a match; the intention is: return what you're checking if there's no match.) 0554) 2018-06-03 02:25:54 GMT: [core] Fixed VALIDSERVER (added optional apram: boolean:return_name will return the name of the matching server; this avoids creating a separate command.) 0555) 2018-06-03 02:22:54 GMT: [core] Added VALIDSERVER (currently only supports IPv4 servers, either IP or DNS name, with optional port and password (you can leave either of those off, but you MUST include the server name).) 0556) 2018-06-03 01:27:44 GMT: [core] Fixed CASEWHO (added case matches for the bot's own nick, channel names, & servers.) 0557) 2018-06-03 01:24:52 GMT: [core] Fixed FINDCHAN (replaced look-up with a new one with 2 differences: (1) proper casing of nick AND handle, and (2) NICK [first element] is a proper TCL list; multiple matches to a handle will now be returned. This might break some stuff.) 0558) 2018-06-03 00:52:05 GMT: [core] Added CASEWHO (piping CASEHANDLE through CASEWHO, properly (finally!) searches for users: userlist (via getuser handle), then on channels (via FINDCHAN, which itself needs fixing), then the botnet. If no user is found those ways, return the original test value.) 0559) 2018-06-02 23:56:59 GMT: [note] Fixed The Albatross (added a why-the-hell-didn't-this-exist-for-the-last-21-years command: NOTE CLEAR! This will do the same as "note del 1-" but for ALL of your archives, not just your main notes. This saves you doing "note -name archive1 del 1-" "note -name archive2 del 1-" over and over again.) 0560) 2018-06-02 06:36:21 GMT: [fix] Fixed FIX -20 (when a user doesn't ahve alocal last-seen timestamp, the "replace with 'globally added" substitution method was breaking everything. Now, it just complains about the user in general.) 0561) 2018-06-02 06:29:13 GMT: [fix] Fixed FIX -15 (cosmetic: Café needed to be listed as \xE9.) 0562) 2018-06-02 06:22:22 GMT: [fix] Fixed FIX -03 (wasn't reporting failed fixes properly. There is no true way to automatically fix this issue (users listed in $OWNER but aren't in the userlist) without altering the userfile, which I will never do remotely.) 0563) 2018-06-02 06:19:52 GMT: [fix] Fixed FIX -03 (wasn't reporting that fixes were needed.) 0564) 2018-06-02 06:05:26 GMT: [copyuser] Fixed COPYUSER QUICK -TCL (syntax change needed for PASS; I only did it half-way (.tcl setuser $user [pass] ... without the keyword "pass").) 0565) 2018-06-02 05:58:36 GMT: [oper] Fixed SB:OPERFLAG UPGRADE (cleaned-up the checkes for old versions of the data flags and vhosts. FIX -25 was catching "registered data" for the oper flag data.) 0566) 2018-06-02 05:31:39 GMT: [fix] Fixed FIX (renamed -SHOW to -SHOWME, because I keep typing that; the "unique match" algorithm of the flag parser will alow a back*-compat* parsing of both.) 0567) 2018-06-02 05:29:43 GMT: [fix] Fixed FIX -21 (added reversal flag: --21KEEP. This method is betetr than adding a -REVERSE flag and trying ot figure our which options can use it, becuase more than one could ....) 0568) 2018-06-02 05:12:17 GMT: [fix] Fixed FIX -19 -SHOWME (cosmetic re: output of bad entries was all weird.) 0569) 2018-06-02 05:05:41 GMT: [fix] Fixed FIX -19 (level check used the wrong flag: +h instead of +l for halfop.) 0570) 2018-06-02 04:58:11 GMT: [copyuser] Fixed COPYUSER (added -NOSAVE, -NOBACKUP, & -NOQUIT options.) 0571) 2018-06-01 21:18:58 GMT: [copyuser] Fixed COPYUSER QUICK (added temporar removal of anti-flood variables; theyr'e restored after. Does not affect -TC Lmode.) 0572) 2018-06-01 04:58:21 GMT: [copyuser] Fixed COPYUSER (added -NOBOTFLAGS to prevent copying bot linkage flags all over, which can easily disrupt the botnet.) 0573) 2018-05-31 20:06:48 GMT: [core] Fixed UNIQUEMATCH (last night's patch used the wrong variables ($n instead of $m), so, the pattern to match against was being returned instead of the atcual match.) 0574) 2018-05-31 05:35:41 GMT: [core] Added LIST:MATH (ported from private TCLs. Does a math functin across all elements of a list. Use "#" as a token for the 'current value' of each element.) 0575) 2018-05-31 05:07:47 GMT: [distro] Fixed SB:DISTRO_HTML (added percentage-based output as the pages are being built, due to teh delay in completing the builds. Currently set at every-ten-percent.) 0576) 2018-05-31 04:44:37 GMT: [core] Fixed NUMBER:CLEAN (the REGEXP, which splits the value into constituent components, was only allowing single-digit E values through.) 0577) 2018-05-31 04:35:21 GMT: [core] Fixed UNIQUEMATCH (better matching protocol, and, removed the STLs that were in there (no SB extensions!).) 0578) 2018-05-30 20:43:14 GMT: [clearqueue] Fixed cLEARQUEUE (a transient (and hard-to-duplicate) error showed up where an illegal name for queues was used. Fixed by changing how the flags are interpreted. Added synonym ability (back*-compat* to SB5 and early SB^ syntax).)) 0579) 2018-05-27 19:50:08 GMT: [note] Fixed The Albatross (code for "nag" options wasn't working. While fixing that, I found that the return value (list of notes) for IMPORTANT notes was falling-though to normal note processing. I don't think I meant for that to happen. Same with auto-moved notification notes. All 3 sections merged into one.) 0580) 2018-05-27 18:29:45 GMT: [core] Fixed JTEXT (have to dance around encoding issues (which I didn't udnerstand as well back when I wrote this), based on whatever the system's encoding is. ISO8859-1 systems can't handle the raw UTF-8; UTF-8 systems don't need any conversino, and so on. (Eggdrop built on UTF-8 TCL can handle the UTF-8 codes just fine, from 0-65535).) 0581) 2018-05-27 18:03:14 GMT: [botsend] Fixed BOTSEND KILLALL & BOTSEND QUICK (KILLALL now cancels incoming data but can't stop the send: the send code doesn't enter the event loop to be stopped.) 0582) 2018-05-27 17:52:11 GMT: [servers] Added SERVERS:BOOTSTRAP (tests for boner server entries in *BOTH* global $::servers list and SB's server data list. Research with Eggdrop coder thommey reveals: the server names are pulled as a STRING, not as a LIST, so no trimming "naturally" occurs. As a result, you might see connection attempts to "[1.2.3.4:+6697 ]:6667" or the like. Bug has been filed with Eggdrop: #510 & #523.) 0583) 2018-05-27 17:12:09 GMT: [botsend] Fixed BOTSEND QUICK ((1) tightened the time math, &, (2) re-routed main BOTSEND code to a sub-proc so teh AUTOLOAD could be triggered by QUICK's completion.) 0584) 2018-05-27 15:34:25 GMT: [core debug bservice config] Fixed CONFIG, DEBUG, & SB:LIST_TRIGGERS (some time ago, I changed the dispatcher targets (in this case: SB:dispatch to SB:dispatch_chan), however, I didn't update all the references to it. This affacted CONFIG -GLOBAL SHORTCUT LIST and others.) 0585) 2018-05-27 15:29:01 GMT: [core] Fixed SB:SETUP_SHORTCUTS (logged bind creation for later debugging.) 0586) 2018-05-27 14:44:51 GMT: [botsend] Fixed BOTAEND QUICK (allowed sending of files outside normal directory-heirarchy rules.) 0587) 2018-05-27 14:02:42 GMT: [core] Added GET:LEVELS (simple, one-line stack trace, with flag-options to show args and last-only args.) 0588) 2018-05-27 13:59:21 GMT: [core] Fixed SB:FILT (fixed REGEXP to allow /NOTICEd information properly; was only coded for /MSGd data.) 0589) 2018-05-27 13:38:21 GMT: [config] Fixed CONFIG BIND (added "PC" alias fo rPUBCMD, since that's an abbreviation for setting the pubcmd already.) 0590) 2018-05-26 04:57:57 GMT: [core] Added VAR (returns variable value, or, "" (empty string) if it doesn't exist. Just a shortcut to save a lot of awkward typing.) 0591) 2018-05-25 17:09:00 GMT: [channels] Fixed CHANNELS bootstrap (cosmetic: moved abbr inline with command registration, not a separate ABBR call. Other beads might be changed accordingly.) 0592) 2018-05-25 02:31:13 GMT: [core] Fixed RAWOUTPUT (made log output line (which was changed from PUTLOGLEV to LOG) output only to console +r. Was going to default ("0").) 0593) 2018-05-24 04:41:50 GMT: [stats] Fixed STATS CLEAR (HELP forgot to list a param which was causing false-failures. TASK #41.) 0594) 2018-05-24 04:11:06 GMT: [greet] Fixed COMMENT:PROCESS ((1) renamed from sB:COMMENT_PROCESS, (2) fixed extra close-bracket that was mucking up the process. &, (3) Fixed -GLOBAL LIST [rather, I will in a minute].) 0595) 2018-05-24 04:03:56 GMT: [alarm] Fixed ALARM CLEAR (old reference to split data streams (one for ALARM, one for DELAY) was causing a bad-variable error. Found by Dat. TASK #36. This DOES NOT address the part of the bug report re: items not triggering; this is due to timestamp vs user/bot issues. That's pending....) 0596) 2018-05-24 03:46:01 GMT: [core] Fixed GET:TIME (typo: LEANGE instead of LRANGE.) 0597) 2018-05-24 03:16:41 GMT: [clearqueue] Fixed CLEARQUEUE (cleaned up the flag sanity check; cosmetically only. There was a reported bug, but I was unable to duplicate. TASK #34.) 0598) 2018-05-24 01:17:30 GMT: [core bmi brainfuck calc capskick chancount channels automode autovoiceall badchan blackjack newtree] Updated AUTOPURGE (restored various removed beads back into service.) 0599) 2018-05-24 01:17:30 GMT: [core faw fib dns date dice dictionary convert currency cycle data] Updated AUTOPURGE (restored various removed beads back into service.) 0600) 2018-05-24 01:17:29 GMT: [core page ping hug kick list log lusers map news math] Updated AUTOPURGE (restored various removed beads back into service.) 0601) 2018-05-24 01:17:29 GMT: [core servinfo spellcheck startrek survey swearkick timeleft trout unicode url hangman] Updated AUTOPURGE (restored various removed beads back into service.) 0602) 2018-05-24 01:17:29 GMT: [core displaywallops publish quick quote repeat resynch rss scratchpaper seen servermap] Updated AUTOPURGE (restored various removed beads back into service.) 0603) 2018-05-24 01:17:28 GMT: [core tvmaze float verify verifyauth vhost wallops weather youtube snapshot messenger] Updated AUTOPURGE (restored various removed beads back into service.) 0604) 2018-05-24 01:01:46 GMT: [twitter] Fixed TWITTER (emergency delete-all code was left in place from a private matter.) 0605) 2018-05-24 00:59:50 GMT: [twitter] Fixed TWITTER:BOOTSTRAP (sanity check for TLS package so the "http::register" command doesn't barf chunks.) 0606) 2018-05-23 20:23:46 GMT: [stats] Fixed TOP (nosanity check for forgotton params. Also, actually coded the -SHORT option (code was completely missing). Found by Dat. TASK #42.) 0607) 2018-05-23 19:22:15 GMT: [login] Removed "*AUTH" synonyms from *LOGIN commands. Was syntatic sugar for all the different service bots on networks; many people like "AUTH" better than "LOGIN" but ... can't code for everyone, as much as I try! TASK #30.) 0608) 2018-05-23 19:16:30 GMT: [alias] Fixed ALIAS (default data wasn't installed (even temporarily), so: users with no data caused "no such variable" - type situations. Task #29.) 0609) 2018-05-23 19:12:55 GMT: [core] Fixed CASEHANDLE (used the obvious method: getuser handle.) 0610) 2018-05-23 18:02:01 GMT: [note] Fixed The Albatross (added two new options: SET NAG : this will allow you to disable the hourly / onjoin note nag if you have either type of note but you've already read it. Original purpose: nag you until you do something with it (lest it not be flagged). But I can see the point of making it optional. Requested by Bette. TASK #52.) 0611) 2018-05-23 17:35:22 GMT: [core] Fixed CORE (I renamed the "Original bind" marker in CONFIG but didn't update the core file with the changes. A freshly-installed script on a bot would have everything bound to the wrong mode (re-bind SB instead of re-bind eggdrop), making the bot not respond to anything.) 0612) 2018-05-23 16:03:20 GMT: [note] Fixed SB:NOTE_CONTROL SAVE SWITC:DEFAULT (missing open double-quotes. Not sure how this didn't trigger errors all this time ....) 0613) 2018-05-23 15:31:25 GMT: [core] Added ST= (renamed ST-, then added an INTERP ALIAS for back*-compat*.) 0614) 2018-05-23 15:29:16 GMT: [core] Added STRING:EQ, STRING:NE (bot via STRING:TEST), & STRING:EQUALVARS (perform string matching using ISEMPTY's concept: return no-match if a variable is null (no need to check for null first). Additional: STRING:EQUALVARS uses -NULLEQUAL to return "equal" if both variables are null.) 0615) 2018-05-23 15:24:29 GMT: [core] Fixed ISEMPTYVAL, NOTEMPTYVAL, IFEMPTYVAL, & IFNOTEMPTYVAL (all are deprecated, but, warning messages were using broken CTCP codes (\001) instead of color codes (\03). Now, the commands will throw exceptions; warning have been there long enough.) 0616) 2018-05-23 04:39:06 GMT: [core] Added INTERVAL (combines NEXT, PREV, NEXTEQUAL, & PREVEQUAL.) 0617) 2018-05-21 20:00:21 GMT: [ban] Fixed BAN (I disabled the old code to enable new code; it's untested, so I neutered THAT, too. Problem is ... I didn't re-bind the original code back in. Found by Bette.) 0618) 2018-05-21 10:15:31 GMT: === Version 6.2.004 - build 00005 === 0619) 2018-05-21 04:37:24 GMT: [core] Fixed ARRAY2SCALAR & SCALAR2ARRAY (variable inconsistency.) 0620) 2018-05-20 23:50:17 GMT: [core] Fixed SBD:ARRAY (added a GET option: with no arg, return the array, else, return the value of the specific element (STL).) 0621) 2018-05-20 09:46:55 GMT: [config] Fixed CONFIG (overlap issues existed between ORIGINALBIND, BIND, & SHORTCUT. Fixed by (1) removing BIND/BINDS from SHORTCUT, &, (2) renamed ORIGINALBIND to BINDORIGINAL.) 0622) 2018-05-20 09:27:39 GMT: [config] Fixed CONFIG BIND (SHORTCUT had synonym binds of BIND and BINDS, which interfered with the BIND PUB / MSG / et cetera.) 0623) 2018-05-20 04:08:23 GMT: [core - config] Fixed CONFIG (at some time in the past, SB:DISPATCH_PUBM was renamed to SB:DISPATCH_PUBCMD. As a result, CONFIG was out-of-date for changes made by CONFIG -GLOBAL BIND.) 0624) 2018-05-19 01:44:42 GMT: [core] Announcement: effective immediately, all "debug" lines will go to DCC CHat console +6. This is to unify a bunch of variations of what's important enough to show in the "home" channel, what's good enough for PUTLOG (any console +o user), PUTCMDLOG (any console +c user), and debug (console +d user). Many,many changes are coming .... 0625) 2018-05-19 01:41:12 GMT: [core] Fixed LOG (catastrophic error: one line was copy/pasted into 7 lines. Sadly, the source line was missing a close-bracket (visually hidden by the escaped bracket pattern it was within). This propagated to every line, causing brace mis-alignment, causing SB to stop responding. This was *NOT* released into the wild.) 0626) 2018-05-18 08:49:44 GMT: [distro botsend2 webserv userfile maintenance autosend autolink] Fixed BOTSEND2, WEBSERV, USERFILE, MAINTENANCE, AUTOSEND, & AUTOLINK (found various issues with PUTLOGLEV: when an owner-locked log is used, and $::RAW-LOG == 0, an exception is thrown. This was affecting DISTRO.) 0627) 2018-05-18 08:47:21 GMT: [config op oper] Fixed CONFIG (merged multiple versiouns of these beads that got into the wild.) 0628) 2018-05-18 08:30:57 GMT: [core] Added LOG (long-needed simple manual logger.) 0629) 2018-05-18 01:31:39 GMT: [distro] Fixed DISTRO (various PUTLOGLEVs (level 5) were causing errors. No idea why. This reminded me to file eggdrop bug #519.) 0630) 2018-05-18 01:25:30 GMT: [distro] Fixed DISTRO (the HTML file builder will now check the status of MAKEFULL before including links to the full-file distributions.) 0631) 2018-05-18 01:06:16 GMT: [version] Fixed VERSION:UPDATE (if the sb6_updated.txt (typoed as "sb6_updates.txt" in the error message) is missing, don't complain: just set some default information. Why this was a crash-error-level error is unknown to me, though, the file *IS* in the tarballl it shouldn't be missing. Inspired by manchester.) 0632) 2018-05-18 00:19:52 GMT: [core] Fixed FLAGS:PARAMS (added -FORCE option to force empty/0 values, based on param-count requred. This way, the calling PROC doesn't have to test for NULL, EMPTY, or value.) 0633) 2018-05-18 00:19:07 GMT: [core] Added NOTNULL and upgraded ISNULL (simplified the checks.) 0634) 2018-05-17 07:04:11 GMT: [servers] Fixed SERVERS (added a BOOTSTRAP which scans teh server slist for anomalies and quto-corrects them. This is response to Eggdrop bug #503, which no one believes me about.) 0635) 2018-05-16 20:48:50 GMT: [core] Added FLAGS:PARAMS (new method to process FLAGS -PARAMS mode, will respect multi-word flag values. Still pending -FORCE.) 0636) 2018-05-16 02:57:06 GMT: [core] Fixed SB:PINGPONG:BOTNET ("PUTLOGLEV t" doesn't work [error] if $::RAW-LOG = 0.) 0637) 2018-05-15 05:24:51 GMT: [core] Added NEXTEQUAL & PREVEQUAL (same as NEXT & PREV (interval calculators), but allowing for a number, which is a valid multiple, to not jump to the next interval. In other words, by 5s, 10 would still report 10 instead of 15.) 0638) 2018-05-14 07:18:01 GMT: [config help] Fixed HELPBLOCK (change in the data stream names; affected CONFIG also.)) 0639) 2018-05-14 01:40:52 GMT: [core] Fixed SB:BOOTSTRAP (cosmetic: "trye" instead of "true.") 0640) 2018-05-14 01:00:53 GMT: [textpad] Fixed TEXTPAD OPEN (bad braces around ALLOW ariable caused {} within the data stream name.) 0641) 2018-05-14 00:52:59 GMT: [core] Renamed TRACE to TRACE:ME (interfered with TCL's true TRACE command.) 0642) 2018-05-13 12:42:21 GMT: [core] Fixed TDB FIELD CRATE (rogue "d" at the beginning of the line.) 0643) 2018-05-13 11:30:31 GMT: [config] Fixed BINDORIGINAL HELP (cosmetic: "teh" again.) 0644) 2018-05-12 07:07:12 GMT: [config ban] Fixed CONFIG & BAN (got rid of confusing / overlapping ban mask format options; unified them under "CONFIG MASKFORMAT" (notice the lack of -GLOBAL there; CONFIG also sets a couple of channel-specific options). There may be other commands that need to allow custom formatting (INVEX / EXEMPT maybe?). so making this a CONFIG option made sense. Added MASKFORMAT to help.) 0645) 2018-05-12 05:46:06 GMT: [rehash] Remvoed REBOOT from distribution (it's tricky due to removed internal components, and, it doesn't really do a better job than RESTART or JISATSU would do.) 0646) 2018-05-12 05:29:21 GMT: [need] Fixed NEED:BOOTSTRAP ($CHAN vs $CHANNEL. Found by me before being released into the wild.) 0647) 2018-05-12 05:11:16 GMT: [core] Fixed TDB FIELD CREATE (wrong arg position to look for field names.) 0648) 2018-05-12 03:35:05 GMT: [rehash] Added .DCC EMERGENCY:REBOOT (a quick counterpart to the REBOOT command. Only DCC is available because auth issues with PUB/PUBM/MSG/NOTC.) 0649) 2018-05-11 08:38:52 GMT: [topic] Fixed DEFTOPIC SHOW (when no default topic has been set (or it's been cleared), don't show a blank line with unixtime 0 as teh "current" setting. Found by Dat. TASK #24.) 0650) 2018-05-11 08:35:03 GMT: [save] Fixed FIXCHANFILE (I switched (inverted) variable names but didn't catch all of them to update. Found by Dat. TASK #23.) 0651) 2018-05-11 08:31:21 GMT: [config] Fixed KEEPSAVES ("print $nick" was duplicated on the same line, causing an error. Found by Dat. TASK #22.) 0652) 2018-05-11 07:54:21 GMT: [myip] Fixed MYIP (forced output to /NOTICE / .DCC. Requested by Dat. TASK #16.) 0653) 2018-05-11 07:51:30 GMT: [login] Fixed FORCELOG (sanity check added: if no one is requested, complain. Found by Dat. TASK #15.) 0654) 2018-05-11 07:47:32 GMT: [status] Fixed STATUS (added privacy mode, à la Andromeda. Requested by Dat. TASK #14.) 0655) 2018-05-11 07:38:27 GMT: [core] Added SBD:BOOLEAN (shortcut to: boolean [sbd: X].) 0656) 2018-05-11 07:25:30 GMT: [opstat] Added OPSTAT to ZENKAI. 0657) 2018-05-11 06:24:32 GMT: [lock] Fixed CLEAR ((1) added sanity check: did you choose anything? (2) "dot" was undefined: it was hold-over from SB5 but not added to SB6. Added (it's jsut HTML &bullet / Unicode #0x2022). Found by Dat. TASK #13.) 0658) 2018-05-11 06:04:20 GMT: [fetch] Fixed FETCH (sanity check needed for owners who don't set their various FILESYS-related variables or just don't use the TRANSFER module. Found by Dat. TASK #17.) 0659) 2018-05-08 19:56:56 GMT: [core] Added DOT (was deleted before.) 0660) 2018-05-08 18:41:47 GMT: [shell] Fixed SHELL (when no data is provided (""), complain. Found by Dat. TASK #11 0661) 2018-05-08 03:36:05 GMT: [webserv] Upgraded WEBSERv (using new parameter scheme: internal array, incorporating ARRAY2SCALAR from core. Still needs some transitioning.) 0662) 2018-05-08 02:59:49 GMT: [webserv] Upgraded WEBSERV (added option PRIVATE: direct output to /NOTICE [or DCC]. Default: on. Requested by Dat. TASK #10.) 0663) 2018-05-08 02:42:27 GMT: [alarm] Fixed ALARM & DELAY (when no optin was selected, default to "HELP" mode. Found by Dat. TASK #9.) 0664) 2018-05-08 02:41:02 GMT: [alarm] Fixed ALARM HELP & DELAY HELP (various copy/pastes had the wrong word instead of the other as needed.) 0665) 2018-05-08 02:11:38 GMT: Fixed STATS (the unknown "-" variable was a shortcut for when the user was checking her/his own stats. The nick should have gone into $- but was forgotten. Checking stats for another user should still work. Found by Dat. TASK #7.) 0666) 2018-05-08 02:10:54 GMT: Fixed STATS (space - vs - tab issues in entire code!) 0667) 2018-05-08 02:05:58 GMT: [stats] Fixed STATS HELEP (no "return 0" to end the output; command continued into the normal flow. There's another bug below; it shows up here as well.) 0668) 2018-05-08 02:04:19 GMT: [stats] Fixed TOP (cosmetic: formatting of code made no sense for "tidy brace" indenting.) 0669) 2018-05-08 01:38:43 GMT: [set] Fixed MY (shortcut to SET/INFO: when no param was given, the pass-through of empty data caused an error in INFO. Found by Dat. TASK #4.) 0670) 2018-05-08 01:24:42 GMT: [set] Fixed SET (various badly-matched close-quotes or escaped double-quotes. NotePad++, its flaws aside, helped me notice the issues. This is not a product endorsement. Please drive through.) 0671) 2018-05-08 01:14:19 GMT: [set] Adde CHSET (separate command, mimicking SET -CHSET, but not requiring as much sanity checking.) 0672) 2018-05-08 01:01:08 GMT: [core] Added ISEMPTYDATA (checks GETDATA vs "" as a shortcut only.) 0673) 2018-05-08 00:58:01 GMT: [core] Fixed GETUSER:VALID (minor: version check for Eggdrop 1.9.0 was > instead of >=.) 0674) 2018-05-08 00:34:29 GMT: [set] Fixed INFO (holdover command: IFEMPTYVAL, which was replace by NONE long ago.) 0675) 2018-05-07 04:00:11 GMT: [core config] Added new option: CONFIG -GLOBAL BINDORIGINAL (makes the change from earlier today dynamic: by default, it will re-bind the core Eggdrop commands (that collide) to "./command" and StormBot.TCL will take those commands. Now, you can go the other way. This is expermiental for now.) 0676) 2018-05-07 03:03:00 GMT: [swearkick ban] Added SWEARKICK to zenkai distro (separated form BAN.SB6, re-coded to allow word-specific ban times. Default action = kick.) 0677) 2018-05-07 02:50:31 GMT: [core] Fixed LORDER (if given a true TCL list, it just looks are you all confused. Now, open list (like other list commands), or, it handles a true list; either way.) 0678) 2018-05-07 01:57:35 GMT: [ban] Fixed KICK (fixed a missing double-quote within MASS-KICK's use of channel-mode +i, specifically: -i.) 0679) 2018-05-07 01:00:49 GMT: [ban config email2 note onjoin op oper save set twitter userlist] (restored localized testing version of these beads. I originally removed some features because they were (1) esoteric, or, (2) in reaction to other events like: kyak [CHANGELOG #2909, #2910, & #3449). Well, I miss some of these functions, so I'm bringing them back (くたばれよ! Some of these aren't in distros. though.) 0680) 2018-05-07 00:55:47 GMT: [need] Fixed SB:NEED:SETUP (sanity check for entreis in channels' "need" Data for escaped semi-colons ("\;") which were being parsed as "{;}" and piping through UNKNOWN, which itself was making a cod damn mess of things. Found by Dat.) 0681) 2018-05-07 00:16:03 GMT: [core] Upgraded UNKNOWN (added a debug line in the +d debug console [$OWNER owners only].) 0682) 2018-05-07 00:06:08 GMT: [core] Updated core components (I've decided to fix a long-term bad decision: instead of overrunning eggdrop core command binds [/msg & .DCC] and renaming the original with "/" I'm now REVERSING that. Now, DCC commands will require "./command" and /MSG will require "msg bot /command [params]" instead. I may tweak this with a CONFIG option, but for now ....) 0683) 2018-05-06 04:25:06 GMT: [whois] Fixed WHOAMI (a missing-flag check for users was parsing incorrectly: LINDEX 0 [l0] instead of LINDEX 3 [l3] of $userlevels($level); it was looping the level NAMES instead, causing all kinds of hell. Found by Dat. Task #3) 0684) 2018-05-06 02:42:02 GMT: [core] Added NOTIFY:CODER (an intercept, first used in WHOAMI, when I need to be nofitied of something weird (and could predictably encouner such a situation).)) 0685) 2018-05-06 02:41:17 GMT: [whois] Fixed WHOAMI (bad flag in the "you-should-have-this-flag" check. Found by Dat. BUG #3.) 0686) 2018-05-04 18:50:56 GMT: [distro] Fixed DISTRO RELEASE NEXT (version number line that's automatically-added had a 4-digit padded build #; it should have been 5 (which is used for the file name template).) 0687) 2018-05-04 18:41:39 GMT: === Version 6.2.004 - build 0004 === 0688) 2018-05-04 18:40:26 GMT: [distro] Added DISTRO MAKEFULL (option to turn off/on automatic "full" tarball production. It's just done by the current version of the code but it should have been a boolean option all along. Errors are being created by the addition of REVEALMSG (a close-brace before SAVE) that is causing a fatal load error. Found by Dat.) 0689) 2018-05-04 18:34:50 GMT: [botsend] Fixed BOTSEND HELP (typo: "obivously" ....) 0690) 2018-04-22 23:30:59 GMT: [core] Added LPAD (ported from SB7.) 0691) 2018-03-24 21:25:50 GMT: [core] Fixed MID (in the proper spirit of TCL (and various complaints I've had about ADDBOT recently), allowed the second parameter, the start-position, to be either (1) comma-delimited [default], or, (2) a proper TCL LIST. Either will now work. Ported from SB7.) 0692) 2018-03-07 04:53:00 GMT: [set] Upgraded SET (restored old COLOR/MY shortcuts.) 0693) 2018-02-27 06:22:00 GMT: === Version 6.2.004 - build 0003 === 0694) 2018-02-27 06:21:42 GMT: [userlist] Fixed STAFF (new users wouldn't have a LASTSEEN timestamp. Found by DarkPriest.) 0695) 2018-02-27 03:15:53 GMT: === Version 6.2.004 - build 0002 === 0696) 2017-12-12 21:17:05 GMT: [core] Fixed MATH:FORMULA (initial seed value for SIGMA must be zero; for PI it must be one. Was defaulting to zero for both.) 0697) 2017-12-12 21:17:05 GMT: [core] Fixed MATH:FORMULA (fixed math to properly handle initial (seed/first loop) value. Original code was fine for SIGMA function but introduced a multiply-by-zero issue in the PI function. See private TCL for code..)) 0698) 2017-11-11 02:36:58 GMT: [twitter] Fixed TWITTER (cosmetic: "X's wall" instead of "Twitter home for X" for some reason.) 0699) 2017-11-11 01:41:32 GMT: [twitter] Fixed TWITTER (now uses 280-character limit (which applies to MOST languages, and already exists for multi-byte encodings).) 0700) 2017-10-27 19:07:43 GMT: [core] Fixed SB:UNAME (the -a test wasn't sanity-checked against existing data; variable might not exist (fatal cold-start crash). Found by Bette. TASK #104.) 0701) 2017-10-03 08:38:33 GMT: [tvmaze] Fixed TVMAZE SCHEDULE (some programs don't provide all the information; a NULL was returned for the episode date/time.) 0702) 2017-07-26 03:46:00 GMT: [uptime] Fixed UPTIME (20170725-204600-0700: hard-coded my handle for the "server uptime" and "box uptime" checks, instead of using $HANDLE.) 0703) 2017-07-23 01:30:37 GMT: === Version 6.2.004 - build 0001 === 0704) 2017-07-20 05:55:13 GMT: [botmon] Added BOTMON STATUS (does a breakdown of bot statuses (stata? stati?) by group and ungrouped bots.) 0705) 2017-07-16 00:54:02 GMT: === Version 6.2.003 - build 0008 === 0706) 2017-07-16 00:31:41 GMT: [core] Fixed SB:OS (added adaptive coding to handle Windows versions [windrops by way of Cygwin, not Cygwin directly]. Originally, only up to Windows 7 was hard-coded (NT 6.1 what the hell with the version numbers, Microsoft?!). Now, handles all "odd" versions and will adapt to future versions better. Found by LOQUILLO.) 0707) 2017-07-16 00:29:43 GMT: [core] Fixed SB:OS_VER (abandoned, or so I thought. Added log debugging to see when it's triggered.) 0708) 2017-07-15 23:17:27 GMT: [botsend] Fixed BOTSEND SHIFT (changed file write from RENAME -FORCE to DEL & RENAME combination. I'm trying to track down why some bots won't "update" a file [old version survives updates]. Exposed by Samantha.) 0709) 2017-07-15 23:05:08 GMT: [core] Fixed SB:BOOTSTRAP (cosmetic: fixed display of configure arguments de-single-quoting method.) 0710) 2017-07-15 22:10:46 GMT: [core] Fixed SB:UNAME (completely re-wrote proc to handle various error conditions (apparently, Windows 10 WinDrop 1.8.1 doesn't reply the right system information (OS) that previous versions did, so I can't deflect against it (Windows doesn't use "uname"). Also, if incompatible OS found, put empty data in place (in memory) so no further checks are done [until the next cold start or RESTART]. Found by LOQUILLO.) 0711) 2017-07-15 02:26:44 GMT: [core] Fixed SB:UNAME (changed EXEC calls to the "uname" shell command to OPEN [pipe mode] for more OS compatibility. Found by LOQUILLO.) 0712) 2017-07-14 02:40:00 GMT: [core] Happy 1.5 billion time! (1500000000 unix timestamp) 0713) 2017-07-13 00:40:06 GMT: [core] Added FGLOB; fixed RGLOB & DGLOB (re-write from scratch, piping into a common parser AGLOB (which can be used directly if desired).) 0714) 2017-07-12 23:15:28 GMT: [core] Fixed DGLOB (patch for LREMOVE was only applied to the non-recursive section.) 0715) 2017-07-12 02:57:14 GMT: [core] Fixed AUTOPURGE (removed status.sb6 because I re-added the beads into circulation it last week but didn't remember to log it. It does do some duplicate functions as DEBUG; I'll address that later. Maybe that's why I AUTOPURGEd it?) 0716) 2017-07-09 10:32:31 GMT: === Version 6.2.003 - build 0007 === 0717) 2017-07-09 10:22:07 GMT: [twitter] Fixed private/TWITTER (easier to control what private messages are displayed: count/range, "since " , "first/last [count limiter]" , ... basically, anything that determines a range, similar to NOTE or DISTRO CHANGELOG LIST.) 0718) 2017-07-09 09:44:11 GMT: [twitter] Fixed private/TWITTER (when RETWEETING, compress resulting ID #.) 0719) 2017-07-09 09:37:46 GMT: [login] Fixed LOGIN* (addressed a concern where two users [who are NOT the same person] have the same mask/vhost on two different networks, and, are both present on channels where bots on the same botnet can see both; a XLOGIN / XOLOGIN will grant both users access. Never exploited; I'm just patching for it "just in case," y'know?) 0720) 2017-07-09 09:18:47 GMT: [maintenance] Fixed MAINTENANCE ((1) CHECK/UPDATE ALL now processes a list of source beads only, not name->beadname [access -> whois.sb6], &, (2) forgot the bootstrap trigger from an update earlier today (code was written).) 0721) 2017-07-09 09:07:07 GMT: [opstat - status] Fixed private/STATUS (cosmetic: made OPSTAT reply prettier.) 0722) 2017-07-09 08:59:29 GMT: [status] Fixed STATUS (005-based parsing of "available channels" count.) 0723) 2017-07-09 04:08:23 GMT: [maintenance] Added MAINTENANCE:BOOTSTRAP (TLS package check for MAINTENANCE CHECK / UPDATE. Inspired by dat.) 0724) 2017-07-09 02:44:09 GMT: === Version 6.2.003 - build 0006 === 0725) 2017-07-09 02:41:06 GMT: [core] Note: due to issue listed re: out of date beads, I'm pushing a new release. 0726) 2017-07-09 02:39:27 GMT: [botsend] Fixed BOTSEND STATUS (cosmetic: changed "sent X ago" times from DURATION to URT.) 0727) 2017-07-09 02:30:52 GMT: [core] Note: manually refreshed all beads in the distribution; some old versions were surviving in the latest tarballs (this may go back as far as version 6.2.003.0002. Found by dat.) 0728) 2017-07-08 09:07:57 GMT: === Version 6.2.003 - build 0005 === 0729) 2017-07-08 09:03:53 GMT: [opstat] Fixed OPSTAT (cosmetic: removed AJL to final list of channel statuses.) 0730) 2017-07-08 09:02:43 GMT: [debug] Fixed DEBUG (added PUBCMD info.) 0731) 2017-07-08 08:26:27 GMT: [botnet] Fixed BOTNET STATS (bot was showing itself as a hub; at some point, the internals changed how the hub is calculated. Found by Bette & Demonicpagan.) 0732) 2017-07-08 07:37:10 GMT: [debug] Fixed DEBUG (added package checks: http, tls, et cetera.) 0733) 2017-07-08 02:54:46 GMT: [botnet] Fixed UNLINK (cosmetic: when listing the removed bots, but not bots were removed, the output made no sense [AND & JOIN used instead of AJL].) 0734) 2017-07-08 02:49:35 GMT: [twitter] Fixed private/TWITTER:APPKEY & APPSEC (locked access to these values to level 1000.) 0735) 2017-07-08 02:49:09 GMT: [twitter] Fixed private/@TWITTER:BOOTSTRAP (renamed consumer keys to appkeys [because that's what they really are].) 0736) 2017-07-08 02:48:19 GMT: [twitter] Fixed private/TWITTER READ (added alias "rad" to read.) 0737) 2017-07-07 02:37:49 GMT: [credits] Fixed CREDITS (tidied up a bit; nothing significant [other than the update-date and dat -> datruth].) 0738) 2017-07-06 08:56:07 GMT: === Version 6.2.003 - build 0004 === 0739) 2017-07-06 08:45:36 GMT: [core] Coder's log, Stardate 71509.0: MATCHATTR is returning false positives for several local flags. Eggdrop bug filed: https://github.com/eggheads/eggdrop/issues/419 (affected flags (both by "&" and "|"): b c i h j p t x; found by dat.) 0740) 2017-07-06 08:28:12 GMT: [core] Fixed SB:FIXLEVEL (the user level integrity check was using "h" for the HALFOP flag instead of "l" [lower-case "L"]. Found by dat.) 0741) 2017-07-06 07:26:34 GMT: [help] Fixed HELP (was defaulting to "-1 to 1000" [hard-coded], instead of defaulting to the user's actual level. While this is overridden by a specified value [such as "<501"], the default was hard-coded to show up to level 1000, even if the user doesn't have that high of access. Found by dat.) 0742) 2017-07-06 07:22:19 GMT: [adduser] Fixed ADDUSER (bad variable: $MASKHOST instead of MASKFORMAT.) 0743) 2017-07-06 05:47:13 GMT: [core] Fixed SB:DISPATCH (fixed debug modes 2 & 3: changed tag to DEBUG:6 so same script can be used to process SB7 debug data.) 0744) 2017-07-05 09:22:31 GMT: === Version 6.2.003 - build 0003 === 0745) 2017-07-05 08:25:23 GMT: [core] Fixed SB:DISPATCH (EDC debug data had mismatching square brackets ([]), causing the ENCRYPT command to fail.) 0746) 2017-06-27 07:03:24 GMT: [datesince] Fixed DATESINCE ((1) changed "next" option to a -NEXT flag, (2) fixed math for -NEXT [not perfected yet], &, (3) fixed multi-item look-up mode.) 0747) 2017-06-27 06:46:00 GMT: [distro] Fixed DISTRO CHANGELOG LIST (when multiple beads were listed in an entry, the "-" separator was being included as a updated bead name. This may be related to the LREMOVE upgrade, cf. CHANGELOG #3507.) 0748) 2017-06-27 06:39:56 GMT: [twitter] Fixed private/TWITTER GET (encoded ID# like everywhere else.) 0749) 2017-06-27 05:23:39 GMT: [error] Fixed ERROR (streamlined the command; 1 line.) 0750) 2017-06-27 05:03:45 GMT: [core] Fixed SB:DISPATCH (added AH, OH, & UO to debug stream; renamed LB/SB to LBT.) 0751) 2017-06-27 02:08:54 GMT: [core] Fixed SB:DISPATCH (added EDVN & TCLP for debug information, edited EDV & TCLV to provide all values (because some releases are tagged with extra information).) 0752) 2017-06-26 10:34:25 GMT: [botmon] Fixed BOTMON ((1) added RELOAD option to reload command bead itself, &, (2) Fixed BOTMON COMMENT: variable with comment was actually pulled [copied] from IGNORE code.) 0753) 2017-06-26 10:26:43 GMT: [core] Fixed SB:BOOTSTRAP (cosmetic: removal of single-quotes in $::CONFIGURE-ARGS.) 0754) 2017-06-26 04:30:08 GMT: [core] Added APPENDFILE (like WRITEFILE/DUMPFILE, but appends to an existing file; if the file doesn't exist, create it first [automatically].) 0755) 2017-06-22 22:01:08 GMT: [datesince] Fixed DATESINCE (better equation which side-steps the aggregate leap-day issue.) 0756) 2017-06-22 22:00:39 GMT: [core] Added SB:RELOAD (shortcut to MAINTENANCE LOAD .) 0757) 2017-06-22 10:53:37 GMT: [twitter] Fixed private/TWITTER (RESET / MARK option: fixed so any valid time expressions is converted to a Twitter-formatted timestamp for comparison (since_freplies_id).) 0758) 2017-06-22 09:56:12 GMT: [core] Fixed GET:TIME (special check for "NOW" was messing up legitimate combinations ["now yesterday"].) 0759) 2017-06-20 15:05:02 GMT: [twitter] Fixed private/TWITTER (">" alias for REPLY wasn't being considered when checking for missing ID# & text.) 0760) 2017-06-18 09:59:41 GMT: === Version 6.2.003 - build 0002 === 0761) 2017-06-18 08:59:38 GMT: [distro] Fixed SB:DISTRO_HTML (LMATCH issue again; no files were being written.) 0762) 2017-06-18 08:35:16 GMT: [twitter] Fixed private/TWITTER (the oauth keys are not restored when the data is wiped from memory (RESTART, et al).) 0763) 2017-06-18 05:39:44 GMT: [distro] Fixed DISTRO CHANGELOG AUDIT (changed -EXEMPT to -IGNORE; just makes more sense.) 0764) 2017-06-18 05:36:49 GMT: [twitter] Fixed private/TWITTER REPLY (ID was double-encoded, returning "*" as the new ID number.) 0765) 2017-06-18 04:45:05 GMT: [maintenance] Fixed MAINTENANCE CHECK (udpated for udpate website URL and also added a -DIFF flag to show what differences actually exist.) 0766) 2017-06-18 01:46:42 GMT: [core] Fixed AJL ((1) wasn't removing duplicates, &, (2) parsed for duplicates before considering list length [as duplicate removal may alter how the list is count-processed].) 0767) 2017-06-18 01:39:16 GMT: [copyuser] Fixed COPYUSER HELP (cosmetic: QUICK TCL option is really QUICK -TCL; the hypen was missing [but the actual code is correct].) 0768) 2017-06-18 01:07:30 GMT: [core] Fixed RGLOB & DGLOB (pursuant to CHANGELOG #3508, added necessary flags: -all -glob.) 0769) 2017-06-18 00:26:38 GMT: [distro] Fixed DISTRO AUDIT HELP (HELP was checked against $1, not $2.) 0770) 2017-06-18 00:24:01 GMT: [fix] Fixed FIX -09 (cleaned-up local flag-matching code. May not actually be a bug.) 0771) 2017-06-18 00:20:26 GMT: [fix] Fixed FIX -11 (bad variable copied data from any previous test using $USER into the "bad results" portion of -11.) 0772) 2017-06-18 00:05:40 GMT: [twitter] Fixed private/TWITTER ((1) added " NONE patch.) 0785) 2017-06-13 12:57:59 GMT: [userlist - verifyauth - verify] Fixed private/USERLIST, private/VERIFYAUTH, private/VERIFY (IFEMPTYVAL -> NONE patch.) 0786) 2017-06-13 12:57:48 GMT: [data - date - dictionary - quote - set - survey - timeleft] Fixed private/DATA, private/DATE, private/DICTIONARY, private/QUOTE, private/SET, private/SURVEY, & private/TIMELEFT (IFEMPTYVAL -> NONE patch.) 0787) 2017-06-13 12:57:38 GMT: [badchan - ban - book - botsend2 - calc - checksecure - convert - currency] Fixed private/BADCHAN, private/BAN, private/BOOK, private/BOTSEND2, private/CALC, private/CHECKSECURE, private/CONVERT, & private/CURRENCY (IFEMPTYVAL -> NONE patch.) 0788) 2017-06-13 12:57:28 GMT: [edict - email2 - extlog - fib - messenger - news - paper - pascal - publish] Fixed private/EDICT, private/EMAIL2, private/EXTLOG, private/FIBONACCI, private/MESSENGER, private/NEWS, private/PAPER, private/PASCAL, private/PUBLISH (IFEMPTYVAL -> NONE patch.) 0789) 2017-06-13 11:54:05 GMT: [userlist - version - webserv - whois] Fixed USERLIST, VERSION, WEBSERV, & WHOIS (IFEMPTYVAL -> NONE patch.) 0790) 2017-06-13 11:45:00 GMT: [servers - servmon - suspend - tests - textpad] Fixed SERVERS, SERVMON, SUSPEND, TESTS, & TEXTPAD (IFEMPTYVAL -> NONE patch.) 0791) 2017-06-13 11:36:00 GMT: [lock - maintenance - memcheck - mode - netstat - op - paper] Fixed LOCK, MAINTENANCE, MEMCHECK, MODE, NETSTAT, OP, & PAPER (IFEMPTYVAL -> NONE patch.) 0792) 2017-06-13 11:20:50 GMT: [getops - greet - initchan - ircd - join] Fixed GETOPS, GREET, INITCHAN, IRCD, & JOIN (IFEMPTYVAL -> NONE patch.) 0793) 2017-06-13 11:10:42 GMT: [chansusp - checkpass - checksbd - cmdsusp - copyuser - dccblock - dccme - debug - die - dirscan - distro - emailcmd - fix] Fixed CHANSUSP, CHECKPASS, CHECKSBD, CMDSUSP, COPYUSER, DCCBLOCK, DCCME, DEBUG, DIE, DIRSCAN, DISTRO, EMAILCMD, & FIX (IFEMPTYVAL -> NONE patch.) 0794) 2017-06-13 11:10:31 GMT: [abbr - alias - autolink - autosend - autostart - ban - beadtimes - book - botmon - botsend - bservice - chanscan - chanset] [Fixed ABBR, ALIAS, AUTOLINK, AUTOSEND, AUTOSTART, BAN, BEADTIMES, BOOK, BOTMON, BOTSEND, BSERVICE, CHANSCAN, & CHANSET (IFEMPTYVAL -> NONE patch.) 0795) 2017-06-13 10:26:36 GMT: [book - set - email2 - tests] Fixed BOOK, private/BOOK, private/SET, private/EMAIL2, & TESTS (ISEMPTYVAL -> STRING EQ "" patch.) 0796) 2017-06-13 10:20:07 GMT: [email - deny - google - note - rss - set - show - unreal - swearkick] Fixed EMAIL, DENY, GOOGLE, private/NOTE, private/RSS, SET, SHOW, private/UNREAL, private/SWEARKICK (IFEMPTYVAL -> NONE patch.) 0797) 2017-06-13 10:08:46 GMT: [chanmon - cmdlevel - abuse - email - deny - google - note - rss - set - show - wallops - unreal - swearkick] Fixed CHANMON, CMDLEVEL, ABUSE, EMAIL, DENY, private/GOOGLE, private/NOTE, private/RSS, SET, SHOW, private/WALLOPS, UNREAL, & private/SWEARKICK (ISEMPTYVAL patch.) 0798) 2017-06-13 09:58:13 GMT: [login - timezones - set - rss - note - initchan - imdb - fileinfo - abuse] Fixed LOGIN*, TIMEZONES, private/RSS, private/NOTE, INITCHAN, private/IMDB, FILEINFO, & ABUSE (NOTEMPTYVAL patch.) 0799) 2017-06-12 03:42:48 GMT: [core] Added SYNONYM (better handle command word synonyms, better than SB:SYNONYM [will eventually replace it].) 0800) 2017-06-12 03:42:09 GMT: [core] Added FLAGS:PRIORITY (easier way to handle flags that have a priority for only one (example: -glob -exact -regexp).) 0801) 2017-06-12 01:16:57 GMT: [twitter] Fixed private/TWITTER (DEL now shows the compressed ID# or the full ID, which ever you specified.) 0802) 2017-06-11 04:40:32 GMT: [twitter] Fixed private/TWITTER (added second credit mention because the first one keeps disappearing.) 0803) 2017-06-08 23:16:23 GMT: [chanmon] Fixed LOGIN* (IFEMPTYVAL patch (more will be coming).) 0804) 2017-06-08 23:14:40 GMT: [chanmon] Fixed CHANMON (ISEMPTYVAL patch (more will be coming).) 0805) 2017-06-08 23:00:56 GMT: [config] Fixed CONFIG -GLBOAL HOURLY (the value was returned by the generic value output ... because I never wrote the parser code for it! CHANGELOG #1522 (2010-09-13) says I wrote it, but the code only supported keeping the value, and defining the default value. Covfefe!) 0806) 2017-06-08 22:41:14 GMT: [botmon] Fixed SB:BOTMON_TIMER (changed use of LMATCH to simple LSEARCH, due to change made to LDESTROY in CHANGELOG #3469. As with CHANGELOG #3505, other commands might be broken due to this logic change. TRAC #94.) 0807) 2017-06-07 05:43:57 GMT: [core] Fixed multiple commands (ISEMPTYVAL replacement & IFEMPTYVAL tracking debug.) 0808) 2017-06-06 00:19:19 GMT: [core] Fixed ESCAPE (added "-double" flag, needed when using ESCAPE with REGEXP.) 0809) 2017-06-05 05:39:08 GMT: [chanset] Fixed SB:CHECK_AUTOVOICEALL (a combined line with a SET command and a DEBUG line was causing havoc.) 0810) 2017-06-05 05:37:54 GMT: [core] Fixed multiple functions (replacing IFEMPTYVAL with NONE. Will report more when encountered.) 0811) 2017-06-04 23:00:48 GMT: [timezones] Fixed TIMEZONES ((1) added abbreviation "TIMEZONE" because ... well ..., & (2) forgot to credit author of original script, Pixelz.) 0812) 2017-06-04 21:19:45 GMT: [ban] Fixed EXEMPTLIST (typo: NOTEPMTY insteda of NOTEMPTY.) 0813) 2017-06-04 10:48:07 GMT: [core] Fixed CONVERT ($FROM is being overridden by format prefix of the value. If base isn't identified (such as in octal), the $FROM value is ignored.) 0814) 2017-06-04 10:13:48 GMT: [twitter] Fixed private/TWITTER REPLY (auto-added all recipients to message if not manually listed.) 0815) 2017-06-02 22:41:34 GMT: [twitter] Fixed private/OAUTH::QUERY (cleaned up the SWITCH that handles $NCODE (unnecessary split & duplication for some dumb reason).) 0816) 2017-06-02 22:16:23 GMT: [core] Fixed ISEMPTY / NOTEMPTY and added ANYEMPTY (allowed multiple variables to be checked; results applies to ALL listed variables [any failure along the line breaks the condition]. Needed for TWITTER:WWW.) 0817) 2017-06-02 20:59:42 GMT: [twitter] Fixed private/TWITTER READ ("done" reply went through regular output queue instead of Twitter-controlled output controller.) 0818) 2017-06-02 02:27:30 GMT: [core] Added TRUE & FALSE (work the same as ONE / ZERO / NEGONE ... but better than they do. Why?) 0819) 2017-06-02 00:53:58 GMT: [twitter] Fixed private/TWITTER (misspells of "Twiter" were found.) 0820) 2017-06-02 00:26:43 GMT: [twitter] Fixed private/TWITTER REPLY (some things, like tags of users, don't count toward your 140 character limit any more; let the website complain about length.) 0821) 2017-06-02 00:06:28 GMT: [twitter] Fixed private/TWITTER SEND (added ">" synonym.) 0822) 2017-06-02 00:05:03 GMT: [twitter] Fixed private/TWITTER DEL (compressed tweet ID.) 0823) 2017-06-01 12:42:26 GMT: === Version 6.2.002 - build 0018 === 0824) 2017-06-01 12:31:49 GMT: [botsend] Fixed BOTSEND (put color in "all transfers complete" message so it's easier to see.) 0825) 2017-06-01 12:26:00 GMT: [core] Upgraded LREMOVE (added flag options: -nocase -glob -exact -regexp -all, do work similarly to the other built-in LIST commands. This will break some commands; the command used to work with the following implications: -nocase -glob -all. -glob is the default mode (so that helps a bit).) 0826) 2017-06-01 12:17:59 GMT: [core] Fixed SB:RESET_DEFAULTS (IFEMPTYVAL -> NONE. More of these as I find them.) 0827) 2017-06-01 12:07:06 GMT: [core] Added ST- (useful in IF/THEN situations, such as LREMOVE updates (see next log entry) where an either/or is easier than a more complex IF/THEN/ELSE.) 0828) 2017-06-01 11:56:26 GMT: [autosend] Fixed AUTOSEND (changes in LMATCH made bad matching situations in choosing to accept incoming data.) 0829) 2017-06-01 10:54:42 GMT: [twitter] Fixed private/TWITTER:COMPRESS_ID (compression now only happens when (1) no user is indicated, or, (2) specified user has it turned on. Decompression always happens no matter what, in case of a copied/pasted link.) 0830) 2017-06-01 10:53:47 GMT: [twitter] Fixed private/TWITTER REPLY ((1) added "roy" as an alias, because I can't type for crap, &, (2) processed "original text: blah" through de-HTMLers.) 0831) 2017-06-01 10:48:48 GMT: [twitter] Fixed private/TWITTER (converted URLs over from old syntax to new; was incomplete from an earlier date.) 0832) 2017-06-01 09:51:18 GMT: [twitter] Added private/TWITTER SET (currently: compress & limit.) 0833) 2017-06-01 09:42:43 GMT: [core] Fixed FALSETRUE* (created common PROC: BOOLEAN:WORD. This might break some stuff.) 0834) 2017-06-01 09:27:03 GMT: [core] Fixed REVERSE & ISLEAPYEAR (cleaned up code.) 0835) 2017-06-01 08:44:41 GMT: [core] Fixed OFFON (fixed adjustment options for TRUE/false.) 0836) 2017-06-01 07:52:12 GMT: [dccme] Fixed DCCME (added DCC alias.) 0837) 2017-06-01 07:50:57 GMT: [dccme] Fixed DCCME -DIAGNOSE (added vhost* / prefer-ipv6 variables. Also, updated variable used for speciflc-DCCME IP (was DCCME but has been DCCME:IP for some time).) 0838) 2017-06-01 04:17:09 GMT: [twitter] Fixed private/TWITTER:CONPRESS_ID (once ID numbers reach a certain plateau, remove right-side zeroes to compress the number even further (the advantage of converting to base 64: multiples of 1024 compress to even "thousands" in base-64).) 0839) 2017-06-01 04:01:09 GMT: [twitter] Fixed TWITTER REPLY (the output, showing which account you are posting as, had the "@" in the wrong spot, ruining the variable ("$@{account}").) 0840) 2017-06-01 04:00:18 GMT: [twitter] Added TWITTER REHASH (shortcut to reload beads (piper through MAINTENANCE command). Is this a future addition to all commands?) 0841) 2017-05-31 14:31:28 GMT: [twitter] Fixed private/TWITTER ALIAS (changed varoiable name, and, fixed inconsistency of some data going through TWITTER:SETDATA and other data being directly saved via SETDATA.) 0842) 2017-05-31 14:00:32 GMT: [twitter] Fixed private/TWITTER (bead now can handle multiple accounts for each user, via the ACCOUNT command. Also, fixed HELP to properly reflect the setup for adding new accounts (it's never been right).) 0843) 2017-05-31 11:55:34 GMT: [twitter] Fixed private/TWITTER:OAUTH::QUERY (bad variable from original code: $RESULT instead of $DATA.) 0844) 2017-05-31 11:37:59 GMT: [twitter] Fixed private/TWITTER (changed all output to Twitter-directed output mode, except for HELP [which still uses the normal help queues, via PRINTH].) 0845) 2017-05-31 11:00:12 GMT: [twitter] Fixed private/TWITTER:DEFAULT (since blank auto-updates weren't being immediately saved, switched the code to a simple NONE use of the default value.) 0846) 2017-05-31 09:53:24 GMT: [twitter] Fixed private/TWITTER (to send a message now requires the SEND parameter, due to a new function currently being coded. More on that later.) 0847) 2017-05-31 09:51:13 GMT: [twitter] Fixed private/TWITTER (moourl.com is no longer an active forwarding service.) 0848) 2017-05-31 09:47:49 GMT: [core] Added SPLIT:BASE (port of SPLIT_BY_BASE from private/FLOAT code. This split a number into sections (where commas would be). Also splits the mantissa [special rules for decimal numbers].) 0849) 2017-05-31 09:46:01 GMT: [core] Fixed NORMALIZE (allowed explicit decimal markers to be properly interpreted.) 0850) 2017-05-31 04:14:47 GMT: [core] Added BASE:GET (determine what base a number is being expressed in.) 0851) 2017-05-31 04:08:07 GMT: [core] Fixed CONVERT (added #*, 0x*, and 0d* parsing. 0x* was disabled for some reason I can't find, and, "#*" (without quotes) was taken as a comment ... which normally doesn't work within SWITCH (without complaint, anyway).) 0852) 2017-05-31 01:48:45 GMT: [twitter] Fixed private/TWITTER SEND, READ, CHAIN, DEL, and GET (new ID# compression scheme, based on the factor-1024 ID numbers within 64-bit [un?]signed integers. You can now specify the true ID# or the compressed version; both will work. Saves on the typing, though mixed-case text is slower to type. You'll probably just copy/paste anyway.) 0853) 2017-05-31 01:25:55 GMT: [twitter] Fixed private/TWITTER REPLY (need to properly convert | | to \r\n, not just \n. This was fixed elsewhere but not here.) 0854) 2017-05-31 01:22:24 GMT: [core] Fixed UNROMAN (conversion wasn't handling the "0r" portion properly. This affected CONVERT mainly.) 0855) 2017-05-31 01:21:20 GMT: [core] Fixed UNROMAN (cleaned up the code a little bit. Also, left myself a note about decoding values > 4999.) 0856) 2017-05-31 01:07:33 GMT: [core] Fixed HEX, DEC, BIN, & OCT (redirected directly to CONVERT instead of stepping through BASECONV, which immediately bounces to CONVERT anyway, patched in CHANGELOGs #2089 & #3009.) 0857) 2017-05-31 00:58:53 GMT: [core] Fixed CONVERT (output was always uppercase; it made a mess for bases above 36; input for base > 36 was always lowered, causing even more of a mess. Actually, the former was worse than the latter. Ugh.) 0858) 2017-05-30 23:34:26 GMT: [core] Fixed CONVERT (added HELP, MAX, and LIST options.) 0859) 2017-05-30 23:07:45 GMT: [core] Fixed CONVERT (expanded valid bases from 36 to 64 (added both cases of alpha and "?" and "!" as the 63rd and 64th characters, respectively.) 0860) 2017-05-30 22:47:16 GMT: [core] Fixed CONVERT (patch to employ FORMAT for quick conversions didn't do a sanity check; any and all esoteric bases were causing no-such-variable errors in $_TO [and presumably $_FROM].) 0861) 2017-05-30 09:06:58 GMT: === Version 6.2.002 - build 0017 === 0862) 2017-05-30 08:10:24 GMT: [core] Fixed BITS (better handling of the = option.) 0863) 2017-05-30 07:50:59 GMT: [twitter] Fixed private/TWITTER ((1) added ALIAS command to create "!SHORTCUT" aliases to your favorite users, as all good usernames are taken, everyone uses weird names that don't match any other account names, & (2) applied ALIAS options to SEND and REPLY.) 0864) 2017-05-30 07:29:03 GMT: [core] Fixed LDESTROY (-CHECK returns the number of destroyed [matched] elements; -NOT reverses this [returns the number of UNMATCHED elements].) 0865) 2017-05-30 07:20:53 GMT: [core] Fixed LDESTROY (changed matching type priority from exact/glob/regexp to glob/exact/regexp, to match LSEARCH.) 0866) 2017-05-30 06:49:40 GMT: [core - makeegg] Removed MAKEEGG from Zenkai (was way out of date anyway; no desire to update it (even though it only needed a couple of variables). Also, updated AUTOPURGE to remove it.) 0867) 2017-05-30 06:37:40 GMT: [twitter] Fixed private/TWITTER CHAIN (removed bold / underline from ID# where the message matches the ID # given to search for.) 0868) 2017-05-30 06:34:06 GMT: [botnet] Fixed BOTATTR ((1) fixed HELP, (2) removed bad code where using the -VERIFYHUBS still required the use of a bot (which isn't even used); this was linked to HELP being triggered by $1 == "" as well as HELP.) 0869) 2017-05-30 06:30:42 GMT: [botmon] Fixed BOTMON REJECT HELP (added "see also" information about other botnet-linking commands.) 0870) 2017-05-30 06:18:56 GMT: [core] Fixed ISEMPTYVAL & NOTEMPTYVAL (deprecating both in favor of STRING EQ "" (will bitch to log).) 0871) 2017-05-30 06:17:47 GMT: [core] Fixed IFEMPTYVAL & IFNOTEMPTYVAL (deprecating both of these; NONE does both their jobs.) 0872) 2017-05-30 06:17:26 GMT: [core] Fixed ISNULL & NOTNULL (cleaned up code.) 0873) 2017-05-30 02:41:01 GMT: [botmon] Added BOTMON REJECT (bitch if certain bots connect to the botnet. Inspired by Bette.) 0874) 2017-05-30 01:33:34 GMT: [core] Fixed multiple output commands (cf. CHANGELOG #3457, due to loops creating the PROCs, the variable $WORD [which is a loop variable, not a command-level variable] was being preserved, via "\$word" instead of just "$word" within the loops.) 0875) 2017-05-30 00:54:12 GMT: [twitter] Fixed TWITTER READ (display when reading is done, otherwise, you're waiting to see if the stream was just broken.) 0876) 2017-05-29 23:12:02 GMT: [core] Fixed NOPRINT, NOPRINTH, NOPRINTN, NOPRINTQ, NOPRINTR, SHOWPRINT, SHOWPRINTH, SHOWPRINTN, SHOWPRINTQ, & SHOWPRINTR (properly check for valid users before temporarily tweaking output settings.) 0877) 2017-05-29 23:01:26 GMT: [core] Fixed PRINT:IDENT (changed default indent from 3 to 5 (personal preference).) 0878) 2017-05-29 23:00:27 GMT: [core] Fixed OUTPUTPRINT (when unknown user was having data output to her/him, the look-up to test for NULL was choking on the 'unknown user' error.) 0879) 2017-05-29 22:30:30 GMT: [core] Fixed GETDATA & SETDATA (better error trap for unknown users; will put invocation into log so I can trace it.) 0880) 2017-05-25 02:11:21 GMT: [core] Fixed SB:BOOTSTRAP (renamed SB:SETUP_VERSION to SB:GET_VERSION so the SETUP parser won't get it; the bootstrapper will do it instead. This was needed to replace the log line with Eggdrop / TCL / library / script version with more up-to-date information.) 0881) 2017-05-25 01:38:11 GMT: [core - debug] Fixed SB:BOOTSTRAP & DEBUG (new variable $::CONFIGURE-ARGS [a personally-hacked patch because I hate the variable name $::CONFIGUREARGS ~ you just can't read it!] provides information provided during the bot's compile process. Requested by me via by me (https://github.com/eggheads/eggdrop/issues/342).) 0882) 2017-05-25 01:30:45 GMT: [core - login] Notes re: all encryption code (a global variable will appear in 1.8.2 [I hope] to allow global backward-compatibility for the ENCRYPT issue, as the default mode will be changed from ECB to CBC: $::blowfish-use-mode (I initially suggested a different name; they never listen to me).) 0883) 2017-05-25 01:00:05 GMT: [core - polynomial] Updated AUTOPURGE & resurrected POLYNOMIAL (rescued from the previously-purged MATH.SB6 & CALC.SB6, removed thanks to Kyak, cf. CHANGELOG #2910. He's done ENOUGH damage to my confidence.) 0884) 2017-05-23 02:53:12 GMT: [float] Fixed private/FLOAT (adjusted micro-floats: float-2, float-3, float-4, & float-5 had their attributes normalized, but as they're not IEEE 754-2008, there's no "right or wrong" to the values.) 0885) 2017-05-23 00:26:59 GMT: [core] Fixed POW2 (utilized TCL8.5 EXPR's arbitrary-length integer math when possible.) 0886) 2017-05-23 00:02:24 GMT: [core] Fixed UNKNOWN (a restrictor in the REGEXP was causing ++ or - - to fail.) 0887) 2017-05-22 23:24:53 GMT: [core] Fixed SB:CCS (possible hold-over code "channel info " to test if a value exists in a channel's settings. The proper syntax is "channel get" not "channel info" but it might be a version-specific hold-over that I can't remember any more.) 0888) 2017-05-22 22:10:04 GMT: [twitter] Fixed private/TWITTER (when sending, only a \n (linefeed) was being sent; changed to \r\n (CRLF).) 0889) 2017-05-22 21:23:59 GMT: [twitter] Fixed private/TWITTER:REPLACETEXT (changed "without" from "w/out" to "w/o" instead.) 0890) 2017-05-22 21:22:54 GMT: [twitter] Fixed private/TWITTER (package check using improved ISPACKAGE, cf. CHANGELOG #3442.) 0891) 2017-05-22 21:22:25 GMT: [core] Fixed ISPACKAGE (streamlined code.) 0892) 2017-05-22 03:31:04 GMT: [core] Added HEADER (because I keep doing it manually for EVERY command line output, I might as well globalize this. "Global" is used for the global level; various flags are available for output control; additional text (after flags) is also processed.) 0893) 2017-05-22 00:04:19 GMT: [dirscan] Fixed DIRSCAN (removed "DS" abbreviation, which is now being used by DATESINCE.) 0894) 2017-05-22 00:03:53 GMT: [datesince] Added DATESINCE to Zenkai (shows time from anniversaries from a given date (or to the next one), inspired by one of Demonicpagan's scripts.) 0895) 2017-05-21 07:03:50 GMT: [dirscan] Edited DIRSCAN (removed DS shortcut / alias [which is being re-assigned to DATESINCE].) 0896) 2017-05-21 05:24:24 GMT: [core] Fixed ORDINAL (used REGEXP format to make the code cleaner.) 0897) 2017-05-20 00:13:52 GMT: [core] Fixed SB:DISPATCH (the context parser only cleared context data when an error occurred and the data was needed; any pre-function testing data was never cleared. Fixed so context data is cleared after every command. Found by Worf.) 0898) 2017-05-17 12:25:16 GMT: [core] Note for SB:BOOTSTRAP (the variable mentioned in CHANGELOG #3434 actually resolves CHANGELOG #3360 [which itself refers to Eggdrop issues #384 & 397]. FINALLY, I'm taken seriously! Now, if we could use the TARDIS, go back in time, and resolve that HALFOP issue ....) 0899) 2017-05-17 12:23:44 GMT: [core] Fixed SB:BOOTSTRAP (new config variable created: $::BLOWFISH-USE-MODE . Resolved complaints filed at: https://github.com/eggheads/eggdrop/issues/384 & https://github.com/eggheads/eggdrop/issues/397 .... I win!) 0900) 2017-05-16 23:52:13 GMT: [twitter] Fixed private/TWITTER REPLY (added support for || line feeds, same as normal send mode.) 0901) 2017-05-15 07:43:33 GMT: === Version 6.2.002 - build 0016 === 0902) 2017-05-15 07:29:59 GMT: [distro] Added CLOCK to ZENKAI. 0903) 2017-05-15 07:29:47 GMT: [core] Fixed autopurge (removed CLOCK from autopurge list.) 0904) 2017-05-15 07:18:49 GMT: [core] Fixed DATE:COMPRESS (cosmetic: buried 00:00:00 by obfuscation [just seemed too obvious / ugly].) 0905) 2017-05-15 06:29:44 GMT: [core] Upgraded DATE:COMPRESS (added leap-year marker, maintaining the "visual manipulation" method.) 0906) 2017-05-15 04:37:02 GMT: [greet] Footnote for CHANGELOG #3425 & #3426 repairs: https://github.com/eggheads/eggdrop/issues/382 0907) 2017-05-15 04:31:35 GMT: [greet] Fixed SB:COMMENT_PROCESS (JOIN issues will cause havoc with the checks for the special tokens ($ACT, $BOT, $SND / $SOUND, & $CTCP). This was exposed by the previous issue (CHANGELOG #3425) but always existed.) 0908) 2017-05-15 04:27:25 GMT: [greet] Fixed COMMENT / SB:COMMENT_PROCESS & COMMENT:BOOTSTRAP (the infamous Eggdrop 1.8.1+sslserverlist bug again: an empty GETUSER request somewhere populated all users (who didn't have any COMMENT data already) with a full list of user data into the comment itself. Added a bootstrapper to check for this specific problem.) 0909) 2017-05-15 03:52:44 GMT: [clock] Fixed private/CLOCK (properly handle user-specific %z / %Z processing. Also, added custom %q / %Q processing.) 0910) 2017-05-15 03:44:25 GMT: [core] Fixed SB:GMT_FORMAT (if the format is empty, return an empty string. This might allow some commands to return garbage output; I'll catch those as I encounter them.) 0911) 2017-05-15 03:32:03 GMT: [clock] Fixed private/CLOCK (fixed SHOW output by restricting build loop. Also, re-added %q & %Q (custom formats, processed by FORMATTIME). Also, added priority sorting: normal, %E*, & %O* through LSORT:CLOCK-FORMAT sorting sub-routine.) 0912) 2017-05-15 02:44:13 GMT: [clock] Fixed private/CLOCK (added a FIND option. Also, updated maching code to compensate for the "" options automatically.) 0913) 2017-05-15 01:18:26 GMT: [core] Fixed GET:TIME (CLOCK SCAN accepts "now " as calculating the current time, shifted multiple hours forward or backwards, based on the single-letter timezones, where k = UTC, t = UTC-7 [does this do the DST shift?].) 0914) 2017-05-14 22:13:02 GMT: [clock] Fixed private/CLOCK (allowed for specific date or timestamp to be processed.) 0915) 2017-05-14 22:06:48 GMT: [core] Added DATE:DAY (just a little math for day-of-week without using the CLOCK command. Found this while trying to research a better "mental" method (which I didn't find; they're all hard).) 0916) 2017-05-14 21:57:24 GMT: [core] Fixed GETIMGINFO (left a DEBUG in the .PNG processor.) 0917) 2017-05-14 21:56:26 GMT: [core] Fixed CONVERTGMT (already deprecated command: added context to force log of where command came from.) 0918) 2017-05-14 21:50:22 GMT: [core] Fixed DATE:COMPRESS (left a DEBUG in.) 0919) 2017-05-13 06:41:03 GMT: [dictionary] Fixed SPELLCHECK (renamed PURGE option to UNLOAD, to get in line with other command.) 0920) 2017-05-13 06:38:13 GMT: [dictionary] Fixed SB:SPELLCHECK_WORD (list of suggestions had duplicates for some reason, possible due to case-mixed duplicates in the dictionary itself. The AJL in the main output wasn't catching them as duplicates.) 0921) 2017-05-13 06:31:39 GMT: [twitter] Fixed private/TWITTER (added typo synonym for READ: REDA.) 0922) 2017-05-13 06:23:28 GMT: [core] Added DATE:COMPRESS (utilized an old high school-days way of compressing a timestamp, then, expanding it to include timezone. The format was written initially to be visually interpreted (without calculations), but, complexity (and saving a few chars) requires interlacing of some digits.) 0923) 2017-05-11 10:09:29 GMT: [float] Fixed private/FLOAT BEST ((1) binary -> hexadecimal values created by the signed and unsigned integers were being double-interpreted as hex instaed of binary, &, (2) cosmetic: "least-costly" result wasn't being JOIN/ANDed properly (due to the orignial strings in $NAMES).) 0924) 2017-05-11 05:21:16 GMT: [float] Fixed private/FLOAT (recent changes to FLOAT:GIMME [CHANGELOG #3337] used weird combinations of flags to prevent misinterpretation of -INTEGER mode. However, it messed-up -BINARY mode (default version).) 0925) 2017-05-07 23:45:47 GMT: [core] Fixed FINDCHAIN (sanity checks: when the original list is empty (nothing to test again), or the test item is empty, just bail out with an empty string.) 0926) 2017-05-07 23:02:20 GMT: [twitter] Fixed private/TWITTER (added "msg" and "dir" as synonyms to DIRECT.) 0927) 2017-05-07 11:29:17 GMT: === Version 6.2.002 - build 0015 === 0928) 2017-05-07 11:00:30 GMT: [twitter] Fixed TWITTER (when sending, use "||" to line-break, just like with other commands like NOTE.) 0929) 2017-05-07 10:50:48 GMT: [twitter] Fixed private/TWITTER (updated all SETUSER options for TWITTER; changed all "handle" settings to "user" instead.) 0930) 2017-05-07 10:35:35 GMT: [twitter] Fixed private/TWITTER RATELIMIT (added synonyms for STATUSES: ST, STAT, STATS, & STATUS.) 0931) 2017-05-07 10:03:51 GMT: [twitter] Fixed private/TWITTER (sanity check for DEL. Also, for posting a new tweet, when it reports the resultant text, don't LIST it then loop through the one-item list (why the hell was this done in the first place? It's in a few places...).) 0932) 2017-05-07 09:36:30 GMT: [twitter] Fixed private/TWITTER (now allows multiple ID #s for deletion.) 0933) 2017-05-07 09:08:30 GMT: [twitter] Fixed private/TWITTER (added TWITTER CHAIN: will find the message chain involving the given ID#, no matter where in the sequence it lies.) 0934) 2017-05-07 08:09:26 GMT: [core] Added FINDCHAIN (locate a chain of values that includes a specific item; it's up to the caller to determine: use all, use-up-to, or use-from-there-on. Needed for TWITTER CHAIN.) 0935) 2017-05-04 04:23:19 GMT: [twitter] Fixed private/TWITTER (more cosmetic work, and, made REPLY mode research the original tweet before posting (provide reply target user if not specified).) 0936) 2017-05-04 03:49:31 GMT: [core] Fixed SB:GET_COUNT (when a bad value is passed, instead of throwing an exception, return an empty string. Some commands may be waiting for an error message for bad data; I'll fix those as I encounter them.) 0937) 2017-05-04 03:09:21 GMT: [twitter] Fixed TWITTER:REPLACETEXT (JOIN issues were causing double-quotes to morph into curly braces. From a TCL standpoint, this makes sense, but, it's not what's actually wanted.) 0938) 2017-05-04 01:53:13 GMT: [core] Added SBD:VAR (assign variable directly from result.) 0939) 2017-05-04 01:13:11 GMT: [core] Fixed ADD, SUB, MUL, DIV, POW, INT, FLOAT, NULL, EMPTY, ZERO, ONE, & NEGONE (when using UPVAR #0, the leading "::" of the variable name might be processed as a literal instead of a global variable.) 0940) 2017-05-04 01:03:48 GMT: [core] Updated CORE (added INTERP ALIASes for: EMPTY (""), ZERO (0), ONE (1), and NEGONE (-1).) 0941) 2017-05-04 01:02:44 GMT: [core] Fixed CORE (deleted duplicate ZERO definition.) 0942) 2017-05-04 00:47:32 GMT: [core] Fixed NEGONE, ONE, & ZERO (recent patch (CHANGELOG #3390) caused an endless loop when "LEFT $A 2 ::" was used instead of STRING MATCH ::*. INT & FLOAT properly used STRING MATCH and were not affected.) 0943) 2017-05-04 00:17:41 GMT: [core] Fixed INT, FLOAT, ZERO, ONE, & NEGONE (if variable is global (matching "::*"), UPVAR #0 is needed instead of UPVAR 1. I thought INT & FLOAT were already patched for this, but they're not.) 0944) 2017-05-03 23:49:41 GMT: [fix] Fixed FIX (added synonym REP* for "repair" option.) 0945) 2017-05-03 23:39:51 GMT: [op - adduser - core - dccblock - chanscan - rss - getops - levels - mp3 - chanset] Fixed AUTOVOICE, ADMIN, FLAGS, DCCBLOCK, MP3, CHANSCAN, RSS, GETOPS, CHANSET, BOOTSTRAP:SB6_TAIL, & SB:CONVERTCMDATTRIBUTES (patches to work with new BITS code.) 0946) 2017-05-03 23:25:12 GMT: [core] Fixed BITS (added -VALUE flag: you can pass a value (ByVal) to be directly processed.) 0947) 2017-05-03 20:27:54 GMT: [core] Fixed BITS (adjusted code for = mode (default with no symbol now is =). This allows you to set/clear bits, then test the final result: BITS +0 -1 -3 +2 =5) 0948) 2017-05-03 20:03:31 GMT: [core] Added BITS (set & clear bits by bit indeces [BITS +0 -1 ...]; multiple bits can be controlled in one command. Second option: BITS =#: tests if a given bit is on (boolean). This replaces: SETBIT, CLEARBIT, & ISBITSET.) 0949) 2017-05-03 06:03:38 GMT: [fix] Fixed FIX -25 (cosmetic: using commas in $BAD result.) 0950) 2017-05-03 06:03:18 GMT: [twitter] Fixed TWITTER MENTIONS, GET, & SHOW (colors the actual mention of your handle.) 0951) 2017-05-03 01:29:53 GMT: [fix] Fixed FIX -14 (sorting $BAD with -UNIQUE to remove duplicate entries.) 0952) 2017-05-02 03:36:38 GMT: [twitter] Fixed private/TWITTER (UTF-8 issues: the code sent from the Twitter server isn't proper UTF-8; Eggdrop can compensate internally if set to the proper charset during compile; if non-UTF-8 code is put with UTF-8 code, Eggdrop won't auto-convert the non-UTF-8 code and you'll get ASCII garbage.) 0953) 2017-05-02 03:22:01 GMT: [fix] Fixed FIX -14 (needed to remove duplicates in $BAD.) 0954) 2017-05-02 01:46:01 GMT: [credits] Fixed CREDITS (I forgot to give myself credit in the "story" at the beginning!) 0955) 2017-05-02 01:41:29 GMT: [twitter] Fixed TWITTER (added common misspells as command aliases for LIST / SHOW, so idiot typoes don't become new posts.) 0956) 2017-05-02 01:39:28 GMT: [twitter] Fixed private/TWITTER (massive upgrades and re-organization (which respects FIX). Also, added TWITTER OUTPUT option to redirect output (respects --FORCE: flag use).) 0957) 2017-04-30 13:41:07 GMT: === Version 6.2.002 - build 0014 === 0958) 2017-04-30 13:30:27 GMT: [ban - botmon - botnet - chanmon - chanset - distro - dst - freeze - ignore - shell - stats - tcl - userlist - webserv - oper - note - extlog - idletime - page - pastebin - ping - swearkick - userlist] Fixed The Albatross, BAN, BOTMON, BOTNET, CHANMON, CHANSET, DISTRO, DST, FREEZE, IGNORE, SHELL, STATS, TCL, USERLIST, WEBSERV, OPER, NOTE, EXTLOG, IDLETIME, PAGE, PASTEBIN, PING, SWEARKICK, & USERLIST (TIMEVAL patches.) 0959) 2017-04-30 13:28:44 GMT: [ban - botmon - botnet - chanmon - chanset - distro - dst - freeze - ignore - shell - stats - tcl - userlist - webserv - oper - note - extlog - idletime - page - pastebin - ping - swearkick - userlist] Fixed The Albatross, BAN, BOTMON, BOTNET, CHANMON, CHANSET, DISTRO, DST, FREEZE, IGNORE, SHELL, STATS, TCL, USERLIST, WEBSERV, OPER, NOTE, EXTLOG, IDLETIME, PAGE, PASTEBIN, PING, SWEARKICK, & USERLIST (TIMEVAL patch upgrad 0960) 2017-04-30 12:51:36 GMT: [core] Fixed TIMEVAL (deal with multiple signs.) 0961) 2017-04-30 12:39:53 GMT: [twitter] Fixed private/TWITTER (major overhaul of some sections of code to make it multi-user compatible, plus, to bring it in line with other coding practices currently in place. Also, removed in-channel lockout (output goes to user preference). I may do a custom restriction similar to NOTE in the future.) 0962) 2017-04-30 12:28:56 GMT: [core] Fixed TIMEVAL (ported an upgrade from SB7.) 0963) 2017-04-30 12:23:00 GMT: [core] Fixed GET:TIME (when using TIMEVAL, the wrong variable was being set ($TIME instead of $DATE, which is UPVAR'd).) 0964) 2017-04-30 04:03:40 GMT: [core] Fixed FINDINPROCS (cosmetic: added match counts, and, changed proc:line# counts to proc\line# format.) 0965) 2017-04-30 03:58:21 GMT: [core] Fixed FINDINPROCS (added glob matching (-nocase) to INSTR matching sequence.) 0966) 2017-04-30 03:49:09 GMT: [core] Deleted SB:FINDINPROCS (out of date predecessor to FINDINPROCS, ported from private TCLs.) 0967) 2017-04-30 03:46:05 GMT: [core] Fixed FINDINPROCS & FINDINVARS (added alpha-sorting of results (vars & subscripts).) 0968) 2017-04-30 03:37:53 GMT: [botmon] Fixed BOTMON GROUP (added several misspell of "GROUP" because my fingers suck now.) 0969) 2017-04-28 07:11:41 GMT: === Version 6.2.002 - build 0013 === 0970) 2017-04-28 06:38:21 GMT: [core - login] Fixed CORE & LOGIN (new command to test ENCRYPT/DECRYPT status-and-bypass: @ENCRYPT:BITCH (returns 1 if complaint is necessary, returns 0 if safe to continue).) 0971) 2017-04-28 05:56:21 GMT: [core] Fixed SB:DISPATCH (wrote wedges to fix ENCRYPT/DECRYPT issue (cf. CHANGELOG #3360), default encryption to the old (EBC) method. This relaxes the security issue that made Eggdrop upgrade in the first place, but, it hasn't actually been a problem for the 20 years I've been coding StormBot.TCL, so I'm not going to worry about it until a proof-of-concept is shown to me.) 0972) 2017-04-28 04:11:52 GMT: [core] Fixed SB:BOOTSTRAP (using new GETUSER code to determine valid list of GETUSER params. Still needs tweaking.) 0973) 2017-04-28 03:23:02 GMT: [core - login] Fixed CORE & LOGIN* (with the Git release of Eggdrop1.8.1+sslserverlist, ALL BLOWFISH ENCRYPTION is now broken in a non-backward-compatible way! XLOGIN, XOLOGIN, & XDLOGIN ARE OFFICIALLY BROKEN AND YOU CAN NOT LOG INTO YOUR BOTS!!!!! See Eggdrop issue #384 for my complaint and any future resolutions. Cizzle ....) 0974) 2017-04-27 04:20:42 GMT: [textpad] Fixed TEXTPAD HELP (cosmetic: "ilne" instead of "line" typo.) 0975) 2017-04-27 04:19:06 GMT: [macro] Fixed SB:MACRO_REPLACE (cosmetic: extra space in debug.print data.) 0976) 2017-04-26 21:11:18 GMT: [core] Fixed SB:DISPATCH (the check for "valid channel command redirection" was swallowing situations where "#" was a valid command alias (I use "##" as pubcmd/tcl trigger on one of my test bots). As a result, the command always got swallowed. Exclusive to "#-as-a-command abbreviation" situations. This *may* break "#" for "current-channel" redirections. Found by Samantha. :) 0977) 2017-04-26 21:09:05 GMT: [core] Fixed DEBUG.PRINT (added access level restriction due to debugs used in disptcher.) 0978) 2017-04-26 07:19:26 GMT: [config] Fixed CONFIG -GLOBAL SHORTCUT ADD (bind name for PUB binds was changed a few updates ago.) 0979) 2017-04-26 03:46:51 GMT: [core] Added FINDINVARS (search for text within all global variables.) 0980) 2017-04-26 03:46:45 GMT: [core] Added CONTEXT (debugging tool ported from SB7.) 0981) 2017-04-25 19:25:45 GMT: === Version 6.2.002 - build 0012 === 0982) 2017-04-21 02:26:31 GMT: [tvmaze] Fixed private/TVMAZE SUMMARY (when a web series is listed, the normal network data isn't useful; have to pull usable data from another field.) 0983) 2017-04-18 14:51:51 GMT: === Version 6.2.002 - build 0011 === 0984) 2017-04-18 14:46:42 GMT: [core] Fixed SB:PIPETOIDX (changed "arror" character to something more visually appealing.) 0985) 2017-04-18 11:38:37 GMT: [core] Fixed PROCDEF (added specific line listing, which can be used with bug reports.) 0986) 2017-04-18 11:01:13 GMT: [botnet] Added TRACE (trace from one bot to another [or self].) 0987) 2017-04-18 08:51:54 GMT: [distro] Added DISTRO AUDIT REPAIR (similar to FIX, fixes offending data streams.) 0988) 2017-04-18 08:23:50 GMT: [distro] Fixed DISTRO (added DISTRO AUDIT. Also, fixed DISTRO DEL to better find listed entries which don't actually exist any more.) 0989) 2017-04-18 08:23:03 GMT: [email2] Removed EMAIL2 from Zenkai. 0990) 2017-04-17 05:37:23 GMT: === Version 6.2.002 - build 0010 === 0991) 2017-04-17 01:11:51 GMT: [firsttime] Fixed private/FIRSTTIME (cosmetic: typo "a EGGDROP" instead of "an EGGDROP" in output.) 0992) 2017-04-17 01:10:10 GMT: [freeze] Fixed FREEZE (glitch in math causing extra-long lockups. Unknown cause but code adjustment fixed it. Also, added synonym: SLEEP.) 0993) 2017-04-16 07:34:13 GMT: [timezones] Fixed TIMEZONES FIND (cosmetic: close-parenthesus was missing from " (DST [zone])" text.) 0994) 2017-04-16 07:09:47 GMT: [core] Fixed loader/bootstrap (cosmetic: version number was showing up as "vstormbot6.2.000.00000" wrongly. Used REGEXP to match the digits only.) 0995) 2017-04-16 06:56:02 GMT: [alarm] Fixed ALARM/DELAY ADD (when illogical decimal times are presented, complain. This was found by the typo "+1n" (which is +0.01s) instead of "+1m" (1 minute).) 0996) 2017-04-16 06:19:19 GMT: [float] Fixed private/FLOAT:GIMME (forced special parsing of the -BINARY flag, otherwise, FLOAT INFO -s -int 32 would internally process the lo/hi pair for the INTEGER primitive data type only, causing the INFO code to crash ("float--s").) 0997) 2017-04-16 06:11:50 GMT: [core] Fixed UNKNOWN (cf. CHANGELOG #3222, the "~=" option was left-off, causing problems with FLOAT INFO -INTEGER.) 0998) 2017-04-16 06:07:26 GMT: [float] Fixed private/FLOAT (the UTF-8 code for em-dash in INFO -INTEGER -SIGNED was wrong; first byte was C2 instead of E2 (3-byte UTF-8 start with E).) 0999) 2017-04-16 05:58:23 GMT: [core] Fixed SB:DISPATCH (better parsing of the error frame trace.) 1000) 2017-04-16 05:48:03 GMT: [ban] Fixed STICK (cosmetic: $BAD (failed results) were being returned as list-ed string responses [obviously breaking list-vs-string rules].) 1001) 2017-04-16 05:39:08 GMT: [core - openlocation] Fixed FORMAT:NUMBER (both global and OPENLOCATIONCODE namespace: when sign padding was turned off, the negative sign also was snuffed.) 1002) 2017-04-16 05:34:01 GMT: [core] Added FORMAT:NUMBER (ported from private code, the predecessor to OPENLOCATION.) 1003) 2017-04-15 05:06:37 GMT: [core] Added LDEFAULTS (not to be confused with LDEFAULT [which should be deprecated by LDEFAULTS]: simpler way of assigning defaults, paired with LASSIGN vs $ARGS.) 1004) 2017-04-14 12:03:37 GMT: [news] Fixed private/NEWS (remove data into from bot accounts.) 1005) 2017-04-14 11:57:57 GMT: [fix] Fixed FIX (added -11 (check for multiple types of each connection flag). Also, renumbered -11 to -27 (check for default command level values) in order to keep -10 & -11 together.) 1006) 2017-04-14 02:40:27 GMT: [core - config] Fixed CONFIG:BOOTSTRAP (cosmetic). Also, fixed SB:COMMAND (ADD option wasn't checking the proper bind for command binding, example: CONFIG:GLOBAL-BINDMSG instead of CONFIG:GLOBAL-BIND:MSG (the colon was recently added).) 1007) 2017-04-12 13:19:45 GMT: [config] Fixed CONFIG:BOOTSTRAP (the "default" concept doesn't work very will with them.) 1008) 2017-04-08 13:01:17 GMT: [botmon] Fixed BOTMON FORCE (cosmetic: re-wrote trigger message [does not affect command performance].) 1009) 2017-04-08 12:55:26 GMT: [fix] Fixed FIX (when -SHOW was used by itself, the default "-ALL" trigger wasn't being activated.) 1010) 2017-04-07 08:10:58 GMT: [timezones] Added TIMEZONES (lookup for timezone data, searchable by time or zone name (wildcards OK). Inspired by Pixelz's city2envtz.tcl script.) 1011) 2017-04-07 07:11:25 GMT: [core - openlocation] Fixed DEGREES & private/OPENLOCATION (JOIN issues when processing degrees-minutes-seconds input (the double-quote was causing issues).) 1012) 2017-04-04 14:16:56 GMT: [config] Fixed CONFIG (data variable registration had some global data listed in the channel-specific data registration.) 1013) 2017-04-04 12:49:36 GMT: [config - core] Fixed CONFIG, BOOTSTRAP, SB:BOOTSTRAP, & SB:DISPATCH_NOTICE (better args for internal data (CONFIG:GLOBAL-BIND:), NOT renamed to NOTICE (including SB:DISPATCH_NOTICE), and CONFIG:BOOTSTRAP (better default processing for bind modes).) 1014) 2017-04-04 02:54:17 GMT: [core - config] Fixed CONFIG, SB:SETUP_SHORTCUTS, BOOTSTRAP, & SB:DISPATCH_CHAN (added intercept bind control in CONFIG to disable any type of command parsing for a given group: chan, pubcmd, dcc, msg, & not.) 1015) 2017-04-04 02:23:43 GMT: [note] Fixed private/The Albatross (when sending a note (with autofwd off), the "hey, you got a note" notification wasn't consistently being displayed. Patch may not actually solve problem permanently.) 1016) 2017-04-04 02:12:28 GMT: [tclscan] Fixed TCLSCAN (removed CATCH from bind removal; need to see any errors that may occur [debugging purposes].) 1017) 2017-04-04 02:09:27 GMT: [greet] Fixed SB:COMMENT_PROCESS (sanity check for unknown user was missing.) 1018) 2017-04-04 02:07:30 GMT: [core] Fixed MAKENUMBERLIST (missing variable initialization: $FINAL.) 1019) 2017-04-04 01:59:49 GMT: [credits] Updated CREDITS (bug finders.) 1020) 2017-04-03 00:18:57 GMT: [botmon] Fixed BOTMON GROUP MARKER (when the marker is being set to its actual value (no change), stop complaining that it's "already in use" and just move on.) 1021) 2017-04-03 00:07:09 GMT: [botmon] Fixed BOTMON (now allowing multi-character custom group keys.) 1022) 2017-04-02 21:55:12 GMT: [core] Fixed NUMBER::CLEAN (made decision re: multiple polarities: if first sign is negative, ignore all other signs and treat as negative, else: positive and ignore all other signs. Logic help by Elfman.) 1023) 2017-04-02 01:22:53 GMT: [core] Fixed SB:BOOTSTRAP, SB:DISPATCH_MSG, & (added) SB:DISPATCH_NOT (added ability to process /NOTICE commands, similar to /MSG commands. Responding to /NOTICE is considered bad netiquette, but ... I don't care. It's in SB7 and no one has died from it. In the variable section at the beginning, activate with: set ::stormbot_setup(@bindnot) 1.) 1024) 2017-04-01 23:46:52 GMT: [core] Fixed ALPHABET (re-arranged code to better handle SPLIT option. Also, changed params to flags with legacy code to accept param format.) 1025) 2017-04-01 23:26:58 GMT: [core] Fixed FINDINPROCS (cleaned up beginning of code: INFO COMMANDS returns non-PROCs.) 1026) 2017-04-01 07:13:42 GMT: [note] Fixed private/The Albatross (UNSEND CHECK mode was choking on the JOIN for the note text output; added a check and work-around.) 1027) 2017-04-01 02:07:50 GMT: [core] Fixed SB:MATCH_COMPONENTS (forced the -PRIVATE flag on by default.) 1028) 2017-03-31 10:25:23 GMT: === Version 6.2.002 - build 0009 === 1029) 2017-03-31 10:22:06 GMT: [fix] Fixed FIX -03 (needed data from option -02, since they were originally conjoined; now separated.) 1030) 2017-03-31 09:34:55 GMT: [fix] Fixed FIX -16 (-FORCE option now deletes users.) 1031) 2017-03-31 09:24:51 GMT: [fix] Fixed FIX (added -FORCE flag to work with REPAIR when it would normally not be recommended. Currently, only option -24 utilizes -FORCE; more to come.) 1032) 2017-03-31 09:18:06 GMT: [login] Fixed LOGIN* (added non-wildcard data stream registrations; FIX -25 wasn't seeing them with the wildcard for some reason.) 1033) 2017-03-31 09:15:15 GMT: [fix] Fixed FIX -25 (the LMAP command is a TCL 8.6 command; it fails on TCL 8.5.19 or before. Used an already existing hack as a workaround [GETFIRST].) 1034) 2017-03-31 08:16:16 GMT: [fix] Fixed FIX -13 (-SHOW code was missing. It's also missing for some of the earliest options; I'll get them as I go along.) 1035) 2017-03-31 08:04:39 GMT: [fix] Fixed FIX -23 (re-assigned -23 to check for "bad1" like entries in the userlist.) 1036) 2017-03-31 07:53:25 GMT: === Version 6.2.002 - build 0008 === 1037) 2017-03-31 07:26:24 GMT: [fix] Fixed FIX (cosmetic: tagged all output with whatever FIX flag is indicated; otherwise, when all options are selected, the contents are ambiguous (since some of the tests overlap or are similar in nature).) 1038) 2017-03-31 07:12:12 GMT: [fix] Fixed FIX (cleaned up flag usage throughout the command; some of it was redundant due to changes to previous version(s) of the commands where some scans were inter-dependant.) 1039) 2017-03-31 06:53:21 GMT: [fix] Fixed FIX LIST (cosmetic: (26) had too many parentheses.) 1040) 2017-03-31 04:40:14 GMT: [distro] Fixed DISTRO REL NEXT (the "file written ("count")" counter returned "2" when the phrase "all files" was the text (default).) 1041) 2017-03-31 04:35:12 GMT: [fix] Fixed FIX -25 (added data from the following variables (some deprecated): $::WHOIS-FIELDS, $::USERINFO-FIELDS, & $::OLDUSERINFO-FIELDS.) 1042) 2017-03-31 04:30:24 GMT: [core] fixed SB:BOTOSTRAP (registered "debuglevel" as a user data piece.) 1043) 2017-03-31 03:36:11 GMT: [chanset] Fixed CHANSET (in a recent change to variable registration (due to a few bad keypresses in NANO), one of the lines was bad [accidentally fused then improperly restored]. This caused a fatal cold-start error.) 1044) 2017-03-31 03:35:19 GMT: [chanset] Fixed CHANSET (in a recent change to BootStrap, I changed variable names ("q" -> "_"), ... except in one place, causing a fatal cold-start crash.) 1045) 2017-03-31 03:28:48 GMT: [core] Dixed SB:REGISTERVARIABLE (forced all data to lower-case for future matching issues.) 1046) 2017-03-31 03:21:33 GMT: [adduser] Fixed ADDUSER, ADDBOT, MODUSER, & ADMIN ADD (the "message" option variables were registered but never used. Added messages as appropriate.) 1047) 2017-03-31 03:19:09 GMT: [adduser] Fixed ADMIN MESSAGE (the temporary text for displaying the current message was pulling ADDUSER:MESSAGE instead of ADMIN:MESSAGE.) 1048) 2017-03-31 03:19:00 GMT: [adduser] Fixed MODUSER (cosmetic: a header for an error message had "ADDUSER" in it, undoubtedly copied from the ADDUSER code above.) 1049) 2017-03-31 03:13:35 GMT: [adduser] Fixed ADDBOT (port 0 was a valid port for a bot address (the error test range was 0-1024; the INWITHIN error test was 1-1024).) 1050) 2017-03-31 03:02:39 GMT: [adduser] Fixed ADDUSER* (abbreviations were set in separate commands [SB:ABBR ADD] instead of inline with the command registration command.) 1051) 2017-03-31 02:59:15 GMT: [fix] Fixed FIX -26 (removed "channel" and "user" data streams from consideration; they are processed in option -25; -26 is for global data only.) 1052) 2017-03-31 02:56:10 GMT: [op] Fixed SB:AUTOOP_JOIN (cosmetic: code text alignment wasn't necessary any more.) 1053) 2017-03-31 02:46:06 GMT: [chanset] Fixed CHANSET (removed birthday annouce global data (unused).) 1054) 2017-03-31 02:42:22 GMT: [chanset] Fixed CHANSET:BOOTSTRAP (data format change: SB5\