CVS log for epic5/UPDATES |
![]() |
Request diff between arbitrary revisions
* Add $serverctl(READ_FILE filename) to add servers from a servers file. * Add some preliminary code for sending a /msg to a logfile. * Make scrollback_start/end use "scroll up/down 999,999 lines" * This is for future consolidation of the scrollback code.
Uh, forgot to fix this.
* Add support for /ignore'ing a server (for undernet) * Add --without-wserv flag to configure (see UPDATES) * Add checks in configure for posix-like job control * Add support so no job control -> no wserv support.
* Fix hitting ^C twice so it sends SIGUR2 instead of SIGLARLM * This is because we don't use alarm() any more, and ^C^C stops infinite loop * Fix some compiler nits that larne found on strict compilers.
Revamped input line a little. Added indicator for text scrolled off the left of our input line.
Added /on. /ON WINDOW_NOTIFED.
Fix signal handling for SIG_IGN and SIG_DFL so SIGPIPE doesn't cause crash.
New epic!
* Fixed an apparent typo in getnrolitems in data_array. * Fixed a bug in autoget where it wasn't actually starting a download. * Fixed yet another bug in commandqueues involving double quote dequoting. * This covers for an apparent bug in $shift() which should automatically dequote quotes (unfixed). * Added USER1 - USER10, OPERWALL and SYSERR levels to the ignore system. * Added ":" hack to /notify as per UPDATES.
* Add /on signal (pegasus) * Fix build on interix (twincest) * Fix compile warnings and a c99-ism * Fix another panic() causable by /echo. ugh.
Add $2 as the /window command in /on window_command
* Fix new math parser comparison operators to work properly with numbers. * Add function $check_code(), looks for unmatched parens or braces in string.
* Make /xecho -w -1 go to the current window, for compat with epic4 (rb Black) * Make the /server list show the vhost you're using. * /LOADing an executable file results in a warning and not an error. * Fix input line so it doesn't display hidden contents after ^L (rb wjr) * Add a $strptime() function, but I still need a strptime() compat version. * Add $ignorectl(SUSPEND) and $ignorectl(UNSUSPEND) to turn off ignores.
* $info(o) now includes 'r' for libarchive, and 'x' for iconv support
* Unconditinally unset GREP_OPTIONS in configure (rb Pegasus)
* Fix /oper password being shown because term_echo() not called. (rb wjr)
* Properly handle multiple spaces between protocol tokens (rb Krisp)
* Fix crash with standard_warning_level() when you do /window level nonsense.
* Support /input "prompt" (args) {code}. See UPDATES. (rb kreca) (fusion)
* Everything below is from fusion (Alexander Grotewohl) * If libarchive is present, support zip/tar files in /load and $open() * Create a new "epic load file" data type that wraps FILE or libarchive. * Extend uzfopen() to use the new "epic load file" data type. * Extend the loader to honor the new "epic load file" data type * Extend $open() [read only for now] to honor the epic load file data type * Not all operations are supported on zip files. * Add new function $fix_width() returns string with a guaranteed printable len * End of things contributed by fusion (Alexander Grotewohl)
* Add /lastlog -window for fusion.
* Create aliases for [url|b64][en|de]code, sedcrypt, and sha256 into builtins. * Comment out builtin [url|b64][en|de]code, sedcrypt, sha256 builtin functions. * Change /xquote -u to use xform() instead of urldecode(). * Change dcc_url[en|de]code to use xform() instead of urldecode(). * Change /on ssl_server_cert to use xform() isntead of urldecode(). * This allows me to comment out old urldcode/base64decode stuff. yay!
* Add split_string() which converts a general delimited string to (char **) * Add $splitw(delim string) which converts delimited string into a dword list * Use $unsplit() to convert $splitw() into a uword list (see UPDATES) * Fix ./configure --without-ipv6 to allow compiling on opensewer.
* Add new status expando %{1}H which expands when in hold mode and not holding.
* Add /set status_holdmode which controls %{1}H
* Add %{1}H to the default status format.
* Added function $is8bit(). Intended to be used to discover 8-bit characters. $is8bit() will return the index number of the first character with the eight bit set, or -1 if nothing is found.
--- This is a bunch of stuff I've been sitting on while I wait for howl to finish what he was doing. --- * Add support for ./configure --localdir * Add support for ./configure --with-iconv=/usr/local * Add support for looking for iconv in configure in various places * Make configure check for nanosleep(). * Add function decls for [sg]et_server_realname() * New version of screen.e * Change "filename" to "local_filename" in dcc's, in prep of further work. * Un-revert a few minor things.
* Add /SET DEFAULT_REALNAME and DEFAULT_USERNAME * Add scripted /set realname and /ircuser in builtins for backwards compat.
* Add /lastlog -rewrite (see UPDATES) * Add /set lastlog_rewrite as a special favor for larne.
* Add $windowctl(GET refnum CHANNELS) for black.
* Fix hookctl(set list ... implied {...}) to work as intended (rb zlonix)
* Add new level SYSERR (see UPDATES) * Add a server refnum to syserr() to send the syserr to the proper window. * Add a server refnum to new_open() so we can pass it to syserr(). * Add new flag to /XECHO, /XECHO -AS (output to all windows on server) * This should make syserrs go to the "correct window" most of the time (larne)
* Fix it so it compiles without ssl support again. * Add "ALL" $xform() encoder, returns all valid xforms
* Allow encryption $xform() handlers to reformat their keys, so we can... * Add SHA256/AES/AESSHA $xform() encoders
* Fix happykey(). Sometimes, I just don't pay enough attention. * Don't trim 1 too many chars on incoming encrypted messages. Important! * Fix buffer sizes being too small to hold buffer for enc/dec short strings. * Add $xform() handlers for blowfish and cast5 * Whip the $xform() callback functions into usable shape. * Fix base64 encoding both via $xform() and $b64encode(). * Rewrite $xform(), see UPDATES. Strong crypto now supported! YAY!
* Add the ** unary operator -- double expand. See UPDATES * Comment what I'm going to mangle xform into.
* Add dccctl(DEFAULT_PORT <string>) [see UPDATES] * Add /on dcc_lost case for cant-bind-port [see UPDATES] * Add 'dcc_ports' script [see UPDATES]
* Change /say (or the empty command) to send to channel first, query second * Add $dccctl(SET|GET ref WANT_PORT) to set the -p flag. * Change tabkey.jm to use /msg -serv/nick instead of /msg serv:nick
* Add ^Vs to the start of DEFAULT_STATUS_FORMAT* in config.h * Comment out code for /set reverse_status_line pending removal later. * GC the code for -f/-F/-o/-O command line arguments * Fix the serverctl() comment for howl
* Add /xecho -t <target> which outputs to a target, for kreca
* Add $serverctl(ALLGROUPS) for kreca
* Fix fulldesc handling code to put []s around ipv6 p-addrs. oops! * GC the if 0'd decls from before the switch to ServerInfos * Add $serverctl(GET <refnum> FULLDESC) for kreca.
Various and sundry fixes, including allowing you to ignore operwalls.
* Change startup code so it outputs the pid of the bot process for -b. * Fix $info(o) bug. rb zlonix * Output the errno value ret by failed nonblocking server connects on error. * Add auto-close boolean flag for server (see UPDATES)
Add code to do threaded stdout (from larne)
Add /userhost -extra for nullie
* Normalize $shift() and $unshift() in the same way as $push() and $pop(). * Fix /eval echo $func($*) at the input prompt causing "add is NULL" panic.
Add new function $curcmd(), the currently executing command (nullie)
* Change last_arg() so it dequotes the retval according to the word type * Change $pop() so it only takes an lvalue * Change $revw() to use the last_arg() improvements * Improve /xdebug so it takes a block as an argument * Improve $push() so it pushes the hole argument as dword
Add a new field to server descriptions, 'vhost' to allow you to specify a per-server virtual host. All the usual caveats apply.
* Teach history script to use parsekey reset_line (nullie) * Fix one bogon (still others left!) in map script * Improvements to 'save' script (blackjac) * Change /on unknown_command to include // prefix if that was used (nullie) * Fix behavior of /set old_server_lastlog_level (rb larne, fixed by nullie)
Add /on unknown_command, from nullie (thanks!)
Fix bug. doh!
Add /set reset_line to replace your input line all in one fell swoop w/o mangling the cutbuffer. Requested by nullie.
Document the new 'protocol' field.
* New 'builtins' from blackjac, more modern format, /whowas improvements * Refactor the serverinfo stuff * Allow skipping of fields in server descs (see UPDATES)
* Desupport dwords in a lot of builtin functions (see updates) [nullie] * Make /window foo kill fail for want of 'foo' (see updates)
* Fix finite()/isfinite() madness. * Look for clock_gettime() in -lrt for ubuntu. * Automatic reconnect from nullie. yay! * Change /xecho -v to always output to current window if it's visible. * Fix /on's with arglists, so lower serial nums don't corrupt $*. [rb nullie] * Fix memory leak with $url(en|de)code() [rb nullie] * Change /server - so it calls disconnect() directly * Fix const correctness problems with sha2.c
* Add $serverctl(GET refnum ADDRSLEFT) (see UPDATES)
* Add /on operwall and operwall window level for black. * Fix $levelwindow()
* Add server states CREATED and DELETED for nullie.
New EPIC!
Fix external crypto script support.
* Add SEDSHA cipher type, which is better than SED, and always available. * Add my_sleep|isreadable|iswritable() funcs to phase out rogue selects()h * Add support for multiple concurrent servers to /encrypt. yay! * Store the length of the Crypt key within the key itself. * This moves us closer to being able to decrypt arbitrary data. * Test all of the cipher types, incl. compat of CAST with ircII. All set!
___ WARNING ___ This stuff is all wildly un(der)tested. I will get to that soon! But I'm too excited about this to sit on it. * Add AESSHA256 support (AES256 using the SHA256 digest of your passkey) * Rename "EXTCRYPT" to "PROGCRYPT" * Migrate SED support from crypt.c to crypto.c * Integrate SED and extprog support into the mainline [de]cipher_message() * Refactor [de]cipher_message() to be less lame. * Support "anycrypt" support (AESSHA, AES, BLOWFISH, CAST5, SED, PROG) * Include sha256 implementation from Karll. Thanks Karll! * Unify the ctcp handling of all crypto ctcps * Add $sha256() function to test sha support (digest) * Make funcs in crypto.c static and just expose [de]crypt_msg(). * This finishes the divide between crypt.c (front end) and crypto.c (back end) * Fix a gazillion compiler warnings and sort out const/unsigned char issues.
AES support!
* Support cast5/blowfish encryption a la ircII. * Fix build for non-ssl users.
* Add /ON NUMERIC which is thrown if you don't hook the numeric specifically.
* Rework configure mojo for perl, ruby, tcl to autogrok compile stuff. * Run make depend again. * Update the DCC "last time" value regularly.
Fix up the url encoders to encode the + char.
* Add /window indent, allowing you to overrule /set indent per-window basis. * Make window breaking use /window indent * But /set indent still overrules any /window indent's you've set. :/
* Add partial implementation of $xform() (see UPDATES) * Add shell of implementation of new_send_text() which i hope to finish... * Fix bug in $b64decode()
Add /on keybinding. (*gulp*)
* Add a pd implementation of sdbm, make $dbmctl() use it. * Make configure warn harder if it looks like termcap/terminfo not found.
* Check for <ndbm.h> in configure, don't do DBM if it is absent. * $dbmctl() always no-ops, returns empty string if dbm not available. * Add 'd' to $info(o) if DBM support is included * Add a check for solaris cc, moxy up the CFLAGS for larne. * Fix compile breakage if both tparm() and base64() are missing. doh. * Fail when maximum number of levels have been added. * Note a few places the window refnum is changed.
DBM (hash table) support. See UPDATES.
* New file, levels.c, holds all the Mask and window level manip stuff. * Move level_to_str/str_to_level, mask_to_str/str_to_mask to levels.c * Change #define LEVEL_*'s into (int)s * Use BIT_VALID() instead of NUMBER_OF_LEVELS, whack NUMBER_OF_LEVELS. * Whack hardcoded level_types char array. yay! * Change users of "LEVEL_CURRENT" into "LEVEL_NONE" and whack "LEVEL_CURRENT" * Add "OTHER" window level, as replacement for "CRAP" * Continue to honor "CRAP" as a synonym for "OTHER". * New function $levelctl(), to add/query window levels. * Window/lastlog levels can now be added at runtime. HUZZAH!
Wrap up documentation (i hope)
* Make the new math parser not slurp up function param lists in lvalues
* Make function calling a full blown operator in the new math parser.
* Call remove_brackets() in call_function
* All this will permit $foo[bar](args) to work as well as ${foo[bar](args)}.
* Remove some unused global variables
* Handle \f as a special case in new_normalize_string for the status bar. * Do some re-org in screen.c, screen.h * Roll window_disp() into its only caller, add_to_window(). * Change create_new_screen() into a void function
Remove all these evil /set's that i have hated for years and years! * Fix /xecho -x * Remove /set alt_charset, blink_video, bold_video, color, display_ansi * Remove /set display_pc_characters, inverse_video, underline_video. HUZZAH!
* Change all the builtin functions to use new_normalize_string(). * Change the input prompt to use new_normalize_string(). * Add /set mangle_display. HUZZAH! * Change the display stuff to new_normalize_string() and /set mangle_display * Whack the now unused normalize_string(). HUZZAH! HUZZAH! HUZZAH! * Change the seperator of the mangler-type-parser to be spaces and not commas. * Start keeping a monotonically increasing refnum for all lastlog items * Change add_to_lastlog() to return the lastlog refnum * Change add_to[_window]_scrollback]() to take the lastlog refnum * Cross-link scrollback items with the corresponding lastlog refnum. * Save scrollback/hold position across scrollback rebuilds * This means rebuilding doesn't affect scrollback/hold users! HUZZAH! * Whack the now unnecessary /window auto_scrollback (mis)feature. * Don't unconditionally unclear after rebuild, if everything still fits.
* Fix bug with comma operator in new math parser that crazyeddy found. * Whack support for 7 bit terminals (8 bit support is now assumed) * Whack support for /set eight_bit_characters * Whack support for /set beep_max, tab, tab_max, and nd_space_max
* Add /window flush_scrollback, see UPDATES
* Fix "ALL" mangle level to not include "UNPRINTABLE" * Fix /on 367 in 2.8script, from larne.
* Improve /dcc get * Fix warnings
Add support for per-window activity levels.
Catch up on my documentation...
$userhost() and $shiftbrace() as per UPDATES.
* Move 'addset', 'delset' from 'builtins' to its own script. * Remove commented out obsolete stuff from 'functions' script. * Pf-ify the 'help' script. * Desupport a bunch of scripts. See UPDATES.
* Don't offer non-"TELLUSER" ctcps via /on ctcp_reply (ACTION/SED/UTC)
* Don't do LOCAL_COPY within an infinite loop, leads to stack exahustion. * Support new signal, SIGUSR2 which throws "system_exception". * Teach the block commands about "system_exception" so they can be stopped. * Whack a bunch of unused timers from vars.c. (see UPDATES) * Sync up config.h, vars.h, and vars.c with each other. * Add "domains" to timers, server timers, window timer, general timers * When timers go off, latch back to their domain * Allow timers to self-cancel if their latched item has gone away * Add /timer -general to set a general timer. * Make /timer -win or /timer -serv set a window or serv timer especially.
* By default, <hostname> as server, defaults to port 0 * By default, port 0 changes to irc_port (6667) for a new server * This means any use of <hostname> in a server context picks up 1st <hostname> * The -B command line option (load startup file before connect) is now default.
* Add /window killable to allow you to make windows unkillable * Nickname rejections are handled through /on new_nickname solely now.
Implement $windowctl(SET <ref> TOPLINE <line> <stuff>)
* Fix $windowctl(GET * QUERY_NICK) * Don't do WHO on anonymous channels (channel mode +a) (for ircnet users) * Don't set server's default nickname until we first try to connect.
Add $serverctl(GET * LOCALPORT) [fudd]
* Change /on leave to /on part. * Only ever do one io event per call through select() or poll() * Do put_echo() and not add_to_screen() in /window echo so it can be logged
Comment out /set -create, now that /addset is mature.
* Make /xdebug new_math the default, you can /xdebug old_math to go back. * Make /xdebug new_math and /xdebug -new_math no-ops. * Don't do %#p in printf formats, since it has no effect. (%p is better).
One more round of altchan.bj, and a bunch of final documentation.
I just know this I am going to rue this day... * Add $dccctl(UPDATES_STATUS [0|1]), returns old value * Add $dccctl([SET|GET] <refnum> UPDATES_STATUS [0|1]). * Allow /on ^dcc_activity * # to suppress status bar redrawing.
* New versions of loadformats and tabkey.ce from fudd. * Document everything up before the release.
* Check for arc4random() in configure, don't use compat.c version if possible. * GC "fill_it_out" code which has been deactive for a while. * Fix translation casting error for zlonix * Allow current_package() to return NULL, handle that as special case. * Refactor the startup loading stuff * Move a couple of loads out of basical and into global.
Add blackjac's history script. This is phase 1 of the cutover to scripted history recall. Phase 2 is in the next commit.
* Change "ERROR --" to "INFO --" to not alarm people as much. * Change a few other warnings to not be so alarming. * Change new_realloc() to not move ptr if it is big enough to hold new size. * Fix all the status_* sub-formats to not have any hardcoded size limits.
Prep documentation getting ready for epic5-0.0.4 release.
* Keep timestamps along with lastlog entries. * Add $line(<num> -TIME), return the timestamp when <num> was added to lastlog. * Remove some #define's from config.h that are not referenced any longer. * Remove #define QUIT_ON_OPERATOR_KILL because 1 line of script defeats it.
* Add $hookctl(SET LIST <type> IMPLIED <string>) though it's off by default. * If you do turn it on, it shows up as 'h' in $info(o) * Sort logfiles by refnum, so new refnums always go at the end of the list. * Fix up 338 again, oops!
Documentation nits, etc.
* Add --with-multiplex=[select|poll|kqueue|pthread] to configure
* Check thread-safety of SSL in configure when using pthreads.
* Don't unconditionally skip leading :'s in symbol names.
* When calling functions, handle skipping leading :'s specially.
* Add support for pthread locking for ssl to ssl.c
* Add %{2}+ and %{3}+ status expandos that only show the mode string.
* Use AI_ADDRCONFIG flag to tell getaddrinfo() we only want addrs we can use.
* Implement a proper built in /INVITE command. See UPDATES * Revert 2.8script change. * Add "subpackage" command, which i'll document later. * Package up 'global', and '2.8script' and 'basical' so they can be /unload'ed. * Don't load "global" if user has their own startup script. * Don't load "global" if the -q option is set, either. * Thus, the "global" script acts as a default "epicrc" for those without one. * THIS IS BACKWARDS INCOMPATABLE. SEE UPDATES FOR IMPORTANT INFORMATION. * Nix the "loading_global" variable, only used by hooks. * Fix /on 005 so it shows the /on 005's and not all numeric hooks. * If Accept() fails, tell the user straight-way so I can debug this. * Fix /window name - so it redraws the status bar.
* Fix /dmsg =<numeric> again, fix compiler warnings. * Whack dgets() into submission regarding incomplete unbuffered lines. * Revamp how partial lines from an /exec process are handled.
* Fix $symbolctl(pmatch <incorrect> *) crash
* Auto-create server's first altname, make %S and %{1}S use it.
* Don't add mode types 2, 3, or 4 (takes-args) to the channel mode string.
* This makes ircnet's +R not show up on the status bar.
* Fix /dmsg =<ircnet-numeric-nick>, for Q.
* Add $serverctl(GET <refnum> PROTOCOL), returns IRC or IRC-SSL
Add %{3}S, to show the server's groupname.
Fix a raging bogon that redrew the status for every tie through io()
EPIC5-0.0.3!
* Fix /dump * Add $symbolctl(), huzzah!
* Fix add_to_screen() so /query nick catches /dcc chat nick. (rb adm) * Fix /away -all which sends a bogus string to the server. (rb rain)
* Hide ArgListT in alias.h to only those who need it, to save numbers.c * Fix up a lot of compile warnings all over the place. * Some changes to $hookctl() might need feedback from howl... * Fix vhost support so we can do inbound sockets again.
Add $logctl(CURRENT) which returns the current operative logfile. For zlonix.
* Refactor window_check_servers() to work with server's current window only. * Roll forward all the rest of changes from epic4 (i think) * Add /ON NEW_NICKNAME, when epic needs a new nickname from you. * Run 'make depend', fix compile errors, fix 'environment' script
* After connect()ing to a server, save the remote peername * This fixes $serverctl(GET <num> PORT) * This also fixes $servports(), which should work as (not) documented. * Fix for notify_signon default handler, from larne. thanks! * Add $serverctl(GET <num> ADDRFAMILY), returns "ipv4", "ipv6" or "unix" * Allow /hostname <ipv4>/<ipv6>, separately set v4/v6 vhosts! (see UPDATES)
Include documentation from howl about his hook-related changes. Thanks to him for this.
* New /ISON bells and whistles as per UPDATES. * Changes to /reconnect, /server -a, /on server_established and remove_from_comma_list() as per KNOWNBUGS.
* Add %{3}W which is like %W but it's active for all input windows.
* Minor changes to dcc loss processing and the commandqueues script. * Applied Howls shebang patch.
Withdrew the -L patch.
Added -L and -S command line options as documented in UPDATES.
Get UPDATES up to date. (*gulp*) i hope i didn't forget anything.
* Numerous new and changed features as per UPDATES. * Better handling of damaged /who x,y responses.
* Userhost updating for NICK messages as per UPDATES. * Delayed ISON requests as per UPDATES.
* Split (Window)->miscflags into "notify_when_hidden" and "notified" * Add $windowctl(... NOTIFY ...) and $windowctl(... NOTIFIED ...) * Change $windowctl(GET <refnum> MISCFLAGS) to always return 0. * Make /window notify and /window notified take ON|OFF|TOGGLE. * New function, $strtol(<base> <num>), convert <num> in base <base> to base 10. * New function, $tobase(<base> <num>), convert <num> in base 10 to base <base>.
Document everything (i hope)
* Fix some compiler issues and so forth * Nix the NOTE level. * Move load_ircrc() to irc.c, nix "startup_file" global var. * Always change server state using set_server_status(), because... * Add /ON SERVER_STATUS, $0 is refnum, $1 is old state, $2 is new state * Delete /on widelist, no longer used * Prototype mode string manipulation functions * Reorganize names.h to reflect new realities * Prototype (Get|Free)addrinfo() now that server.c uses them. * Nix /window bind, rebind, unbound; $windowctl(* BIND_CHANNEL *)
* Allow client_connect() to be nonblocking * Allow Getaddrinfo() and Freeaddrinfo() to be called extern. * Track writable sockets in 'global_max_fd' too. * Keep a list of AI's for server addresses in the server code * When server connection lost before registration, use the next AI * Implement set_server_status(), which controls where server is in lifetime * Nix reconnect(), which is replaced by close_server + set_server_status(). * Nix server_reconnects_to(), we no longer reconnect to servers. * Make /xdebug server_connect the default for this commit at least * Call window_check_servers() every time through io(), because... * Make window_check_servers() look for disconnected servers and restart them. * Add add_mode_to_str() which adds a channel or usermode to a string (sorted) * Make usermodes use add_mode_to_str() * Make channel modes use add_mode_to_str() * Now modes are not stored in bitmasks, not hard-coded at compile time. HUZZAH! * Nix "inactive" field in channels, channels are thrown away at disconnect * Don't allow channels to move between servers, natch. * Nix all the code to handle disconnected channels and such. * Use change_window_server() to move windows to new servers, because... * Make window_check_servers() auto-close windowless servers. * Make change_window_server(<server>, NOSERV) cause a disconnect from <server> * Don't honor /set auto_reconnect, we don't ever reconnect. * Fix printf() error in /on kick default output * Add new server state, SERVER_RECONNECT which means "i can be connected" * So now SERVER_CLOSED means "don't reconnect me" * Allow /server, /window server, and /reconnect to change CLOSED -> RECONNECT * Make server connections nonblocking. * Server connections are now nonrecursive, nonblocking, multi-protocol. HUZZAH! * GC a bunch of server code dealing with reconnection we don't use now. * Don't call window_check_servers() other than io() for sanity reasons. * Make /window server just change server, let w_c_s() bootstrap connection * Remove many window->channel->server sanity checks.
EPIC5-0.0.1! Huzzah!
Change default of /SET AUTO_REJOIN to OFF.
* Fixes to 'less' script from howl * New 'help' script from howl * Add /WINDOW SCROLLADJ.
* The last argument to open_file_for_write() needs to be lowercase. * Add $numlines() from fudd. EPIC4-1.2.3!
* Fix /window kill so it doesn't swap in a window too early. * Make NOTICEs from servers to channels (on ircnet) go to that channel's win. EPIC4-1.2.2!
* Update tabkey.jm one last time * Add 'notify' script, a replacement for the notify command. * Fix $windowctl(GET <refnum> DOUBLE) * Make /on window_command give two refnums, the before and after refnums.
* Add $windowctl(GET <refnum> DOUBLE) * Support inbound double quoted filenames in dcc handshakes. bleh. * Fix NULL deref when you kill hidden windows (ie, /window killswap)
(*gulp*) Some changes for fudd. * Add /ON WINDOW_COMMAND, hooked after every /window command, $* is refnum. * Add concept of "fixed" or "frozen" windows when you SKIP ON FIXED ON * Fix /window kill to not kill the last "non-fixed" window * Fix /window hide to not hide the last "non-fixed" window * Allow /window kill to kill a "fixed" window, but not the last window. * (*gulp*) I hope all of the above works! * Fix $windowctl(REFNUM ...) it was out of order with REFNUMS * Make /xecho -l override the "who_from" target and a