CVS log for epic5/UPDATES |
![]() |
Request diff between arbitrary revisions
* Don't test for /usr/local/lib/libiconv.a because os x doesn't have it * Prototype malloc_vsnprintf().
* Split the notion of "iv size" and "blocksize" in crypto support * This is needed because FiSH does not use an IV, being an ECB cipher * It's also needed because the notion that the IV *must* be blocksize is lame. * Add notion of "trimmable bytes" to end of crypto message * Again, this is for FiSH, because it doesn't trim bytes on last packet. * Support for assissting valgrind in helping us find memory leaks (caf) * Fix memory leaks found by valgrind (caf) * GC function_[en|de]code() and function_sha256 (superceded by $xform()) * GC unused [en|de]code(), enquote_it, dequote_it, and dequote_buffer().
* Finish $xform() for +fish64 and -fish64, verified against actual FiSH code * Try to make the perl configure check more robust for non-working perls.
* Fix bug where /window number could lead to confused lastlogs * Generalize base64 encoding so it doesn't hardcode the base64 string. * Add $xform(+FISH64 ...) which does FiSH's base64 encoding.
* This adds a new function: $iconvctl(), and new functionality to $xform(iconv), namely that you can refer to pre-defined iconv identifiers, by doing: $xform(iconv +ID). See UPDATES for documentation.
* Don't lamely malloc_strcpy() over non-malloced strings in hookctl.
* Clear RUBYDOTOH if ruby is found but it isn't usable (rb Zoopee) * Rewrite checks for (intmax_t) for systems w/o strtoimax(). (rb JailBird) * Define NSIG as _NSIG or 32 if it's not defined (rb JailBird) * Broaden what you can specify for the server "proto" field (see UPDATES) * Fix figure_out_address() to properly identify a server name * This fixes /ignore user@host.com which was lamely broken. * Make /window channel output all channels in the window * Don't call update_all_status() if /set -status_clock (by Oliver Fromme)
New EPIC!
* Fix compile error using #ifdef in new_free() arglist (rb KainX) Why must gcc get more and more painful?
* Have configure check whether perl/tcl/ruby actually work the way we use them * This should prevent compile errors if the apis change in the future.
Add $chanlimit() for fusion.
Fix brain-damaged semantics of /set new_server_lastlog_level. What was I thinking?
New epic!
* Add /window scroll_lines, which overrules /set scroll_lines (see updates)
* New /SET, /SET DCC_CONNECT_TIMEOUT (see UPDATES)
New script! 'topicbar'. I hope you like it.
* Add stub code for a scrollback indicator in the future (rb twincest) * Add stub code for a ucs32 input line in the future. * Reformat all of the /set creation code in vars.c
* 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 always send to the level
Document $windowctl().
* Fix /lastlog <number> for kanan.
Unconditionally do (long long) integer math in the new math parser if your system supports (long long). I suppose on some systems this will make math slower, but that seems like a small price to pay for having integers that will actually support IP addresses! $info(o) will inclue the letter 'l' if the host client is working with 64 bit integers in the new math parser. Please note that the old math parser has not changed, and still only supports 32 bit integers, and that won't change for backwards compatability. If you really really really need 64 bit integers, think about changing to the new math parser.
* Numerous updates/changes/fixes to DCC, functions, scripts, /EXEC, the new math parser, as per UPDATES and KNOWNBUGS. One potential incompatibility is in the change to $open(). (as per UPDATES)
Add sanity checking to avoid cross-family dcc problems, where we bind() a listening socket in one family and send out a dcc handshake for another family. Oops! Noticed by rain.
Add /on dcc_activity, a hook for scripters to create a %D-workalike.
* Allow $serverctl(SET <refnum> UMODES)
EPIC4-1.1.13!
* Add $servernick(<global>) to return the client's global nickname * Update tabkey.jm to latest version * Add new ircII-compatable /window hold_mode thingee. * Add /set hold_slider, /window hold_slider * Add 'hold_mode' script, implements ircII-like /set hold_mode[_interval] * /XEVAL -- ends eval option processing, like how /xecho does it.
Add $servernick(<global>) which returns the client's global current nickname.
* New script features, cleanups, docs, etc as per KNOWNBUGS and UPDATES.
Update nsx's tabkey script.
* Rework the bug report form to point people to the bugs website * Add /lastlog -target.
Commit #555: * Add #define MINIMUM_CLOCK_INTERVAL and MINIMUM_MAIL_INTERVAL in config.h * Add #define DEFAULT_CLOCK_INTERVAL and DEFAULT_MAIL_INTERVAL in config.h * Add reset_system_timers(), do_update_clock(), and set_cpu_saver_after() * Add time_to_next_interval(), general form of time_to_next_minute(). * Add get_clock() and reset_clock() to replace update_clock(). * Make remove_timer() an extern function so i can delete timers. ;-) * Add /SET CLOCK_INTERVAL and /SET MAIL_INTERVAL * Make $T use the static clock. * Reorganize system timers 1 and 2 into four timers: * - CPU SAVER timer, checks for idleness, to turn on cpu saver * - CLOCK timer, updates the status bar clock periodically * - MAIL timer, checks for new mail periodically * - NOTIFY timer, checks for others on irc periodically * The above three honor "cpu saver" mode. * Nix the old "do_every_minute" timer. * Reorganize the clock generation stuff into "reset_*_clock" functions * Generate the clock statically; only update it from the CLOCK timer * Add reset_system_timers() which regenerates all four system timers. * Don't set system timers in main, call reset_system_timers() instead. * Don't enforce "notify interval" in do_notify(), handle that in NOTIFY timer. * Comment stuff in words.c
* Add $dccctl([GET|SET] <refnum> OFFERADDR), the address in the handshake. Larne requested this.
* Add "creation time", "last used time" and "usage counter" features to ignore. This was specifically asked for, but I don't know who asked for it (i don't have it written down here), so please forgive me for not crediting you with the idea. =)
Commit 529. Change this to reflect how the code really behaves.
Document the new ignore stuff.
Add the 'paste' script that i wrote for anguzhawk.
Truncate these files after epic4-1.1.12.
COMMIT 523 Add $serverwin().
Documentation updates. Nearing the release!
Commit 512 * Add $levelwindow() * Change default for /set new_server_lastlog_level to ALL,-DCC to prevent multiple servers having level dcc until i figure out why the code to handle this isn't working. This value is more sensible anyways.
Add $outputinfo(), to help the scripter know what the output level/target is. Garbage Collect some now unused code.
These are relatively minor changes except for the $prefix() fix. * commandqueues as per UPDATES. * $prefix() fix and regression test as per KNOWNBUGS. * /exec and nick rolling as per KNOWN bugs.
Add %{1}+ status expando.
Documentation updates for previous commit.
Purge these files after 1.1.11.
Document the stuff ce just commited. Fix a userhost caching bug.
Another merge.
Document all the rest of the stuff. Whew. what a day. I'm all done I think.
* Add window_scroll_(backward|forward|backwards_lines|forwards_line) * Add /WINDOW SCROLL_BACKWARD, /WINDOW SCROLL_FORWARD * Add /WINDOW SCROLL_START, /WINDOW SCROLL_END
* Add "loader" info to "load_level" data; It's $2 in $loadinfo(). * /LOAD now takes -std and -pf arguments to specify which loader you want. * Implement the "PF" (preformatted) loader. /LOAD -PF <filename> * Set the "loader type" within each /LOADer
* $dccctl() changes as per UPDATES. * Misc bug fixes as per KNOWNBUGS.
Yikes. Merged to become consistent with HEAD. Sorry for all the commits, I'll be quiet again soon. :) -wd
* CTCP-over-DCC fix. There are some things that confuse me about the inner
workings here, so I'm not sure if this fix was done properly, but I did
a few tests including a DCC send over a SED encrypted DCC and everything
seems to tick over well.
* Unix socket configure tests as per KNOWNBUGS.
* /set flood_ignore defaulted to off.
* Tuned commandqueues.
* The 324 hook is now called for joins as well.
* %{1}D status setting as per UPDATES.
* DCC hold mode as per UPDATES.
* "Word Philosophy" alterations, /alias leak, flood checking, $glob(),
tabkey.ce, regression tests, autoget, /fe, /fec, safe_new_next_arg, as
per KNOWNBUGS.
* $findws(), functions (script), ${i}finditems(), $dccctl(), as per
UPDATES.
* New aliases for script/functions as per UPDATES. * A tentative solution for the $glob() problem as per KNOWNBUGS. * A leak fix for /list as per KNOWNBUGS. * $timerctl() tuning as per UPDATES.
Commit 452 * Add new script, "suppressmotd" to implemenet /set suppress_server_motd
Commit 451 * Add $logctl(REFNUMS [ACTIVE|INACTIVE|ALL]), return all log refnums, for wd. * Add an "activity timer" to logfiles to indicate last time written to. * Add /LOG <refnum> ACTIVITY which updates activity timer w/o writing to log. * Add $logctl([GET|SET] <refnum> ACTIVITY) to get or set the activity timer.
Commit 449. New feature added * Split NOTIFY stuff off into its own timer * Add #define MINIMUM_NOTIFY_INTERVAL in config.h * Add set_notify_interval, force that /SET NOTIFY_INTERVAL >= MIN_NOT_INT
* Added Tyraks /stack patch as per KNOWNBUGS. * $afterw(), $beforew(), $fromw(), $tow() as per UPDATES. *potential bug* * Regress tests as per KNOWNBUGS. * ERROR hook fix as per KNOWNBUGS. * autoget script as per KNOWNBUGS. * $serverctl() as per UPDATES. * $writeb() as per UPDATES. * /sleep as per UPDATES.
The last commit was meant to commit to the documentation tree, so just ignore the comments for it. :-) These comments apply to the changes made in it. * /exec, /redir, $xdebug tuned as per UPDATES. * /set FLOATING_POINT_PRECISION added as per UPDATES. * next_in_comma_list converted to next_in_div_list, div argument added.
Truncate KNOWNBUGS and UPDATES.
Document KEY_INTERVAL
* Use server_list_size() and not number_of_servers outside of server.c * Use NOSERV and not -1 for "no server" * Use (Timeval) and not (struct timeval) * Fix (get|set)_server_sent_*() et al to take server refnum. * Use parse_server_index() and not my_atol() to parse server refnums * re-indent quotecmd * Rename is_server_connected() to is_server_registered * Make /quote work as long as server is open (not registered) * Use send_to_aserver() when it can avoid setting from_server unecessarily * Change sent_to_server and clear_sent_to_server to (set|get)server_sent(). * Change doing_* to get_server_doing_*. * Use (unsigned short) and not (u_short) * Use (unsigned long) and not (u_long) * Make output_reject_ctcp() take a refnum * Lock a dcc while we are connecting it, just in case. ;-) * Fix /dcc send -p <port> * Store protocol enforcements as (get|set)_server_protocol_state(). * Use (Stat) and not (struct stat) * Rewrite $timerctl() so it works like $logctl() * Rename is_server_connected() to is_server_registered() * Fix an off-by-one error with /FOR ... IN ... * Keep track of both readable and writable fd's with newio stuff. * Convert server_list to an array of pointers * When user /server -delete's, leave a gap, don't change refnums around. * Nix code that handles deleting server refnums. * New function, new_open_for_writing(), for when we do nonblocking connects. * Change new_open() to deregister fd as "writable" * Renovate the notify stuff to take refnums and not just use from_server. * Renovate /WHO, /ISON, /USERHOST to take refnums and not just use from_server. * Make everything that uses server_list[] use get_server() instead. * Make everything capable of dealing with "gaps" in server_list[]. * Use a bunch of macros, to handle with getting and setting server attrs. * Make as much as possible use refnums as params and not from_server. * And a lot of other stuff...
* Added functions $asciiq() $chrq() $exec() $timerctl() $tcl() $winline() and $floodinfo(). * Altered the two argument version of $read() to ctcp quote the strings it returns. * Added sets FLOOD_RATE_PER and FLOOD_MASKUSER. * Altered the "accept" mode of the dcc_raw and dcc_connect hooks to refer to the local port instead of the remote port. * Added a "-closein %proc" switch to /exec. * Altered the arg list mode of /alias to use extractw instead of next_arg. * Added the documented "words" argument to the above. * Tuned autoget, mudirc, tabkey.ce and commandqueues. * Altered /pretend to not chop the string. * Set about rewriting the flood detection and then decided that it's better off being a script. * Moved the function macros to their own file (functions.h) and replaced all the copies that are strewn throughout the source with an #include. The exception is array.c which broke when I tried it. * Moved the ctcp enquoting/dequoting functions to ircaux.c. * Added some command/function ordering checks to funcs/regress, and a check for all the functions that are undocumented. * Rewrote function chanmodetype() so that it doesn't have all those flakey buffering things. Hopefully it's readable now. The significant change is that if a mode character appears twice in CHANMODES, the first one is returned instead of the last. * Added EPIC::call() in the perl routines and an equivalent under tcl. this is designed to call a $function() directly, but it isn't really that fast, so I might rip them out again. * The /wait internals used to store a few other settings, which were taken out, so I put them back. * Fixed a few problems with normalize_filename() around the place. * Fixed a bug with /timer in which it would never show the timers after a callback.
Uncripple CPU_SAVER mode. yea!
* Change do_input_timeouts() to a timer callback. * Nuke the now unused global /wait stuff * Revamp timer.c so you can add/change/delete/update timers during a timer * Change add_timer() so it takes a winref not a window pointer. * Make the "key timeout" thing happen on demand instead of a recurring timer * Remove the recurring "key timeout" timer. * Remove the 'key timeout' thing from io(), also 'first time' stuff. * Call get_time() after select() in io(). * Fix two compile bugs found by larne. * Fix bug when you did /flush on a /clear window.
Another round of epic5 changes... * Make $B, $., $,, $:, $;, $I, /WAIT stuff server specific, from epic5 * Make tracking of doing_(privmsg|notice|ctcp) server specific, from epic5 * Fixes for Const Correctness.
Backport some changes from EPIC5... * Fix /WINDOW NAME so it takes extended-words (/window name "foo bar") * Add 'get_geom_by_winref()' for $geom(), 'const'ify a few things... * Fix $geom() so it can take a window refnum as an argument. * Replace $center() with a better one from epic5.
Document $logctl() in UPDATES, allow setting/getting of TYPE in $logctl().
Ach. Here goes nothing. Major commit which does many things, but the most prominent of which is the final integration of the scrollback buffer with the hold buffer. This fixes several annoying "features" and introduces a small truckload of new features which have been requested recently. Please see the KNOWNBUGS or UPDATES file for more info, since I don't want this message to be ridiculously long.
Document the /LOG command.
Truncate these files.
New keybindings system coming through. Details can be found in doc/keys and in a few other places. :) -wd
I forgot to truncate this file when 1.1.4 was released. "oops".
Update documentation prior to epic4-1.1.6 release Add "HAVE_GETSERVBYNAME" check to configure stuff. Remove /SET RANDOM_LOCAL_PORTS which has gone away. Fix some layout issues with gailib.c and change two function names. Fix comment issue with ircsig.c Fix uninitialized variable issue with keys.c Remove mention of /SET RANDOM_LOCAL_PORTS in network.c
Added /STACK ... BIND (per discussion w/ hop) -wd
Huge major commit #1 in the great IPv6 support addition... Rather than include all of the changes here, read KNOWNBUGS changes.
Update docs for EPIC4-1.1.4
Document everything undocumented as of right now!
Document $serverctl().
Make the last changes (i think) to UPDATES -- this should pretty well finish things off!
Document some more stuff. Almost done!
* Misc updates to UPDATES. * small bugfix for commandqueues.
Document some more stuff.
Document some more stuff. It would be a great help to me if someone would try to document some of this stuff that I didn't write.
Continue to document some more... Hopefully i'll finish today! Documenting stuff is boring. ;-)
Bulk commit:
1) Fix typos in KNOWNBUGS
2) Flesh out the things in UPDATES that need documenting
3) Add target_file_write() to files.[ch] for send_text()'s use.
4) Create "reg.h", to hold protos for reg.c
5) Add some missing protos.
6) If /redirect'ing to 0 or to @<fd>, don't output to the screen.
7) Messages sent to target 0 are dropped (/redirect 0 now actually sends
to target 0, and epic drops it.) You can /query 0 now if you want.
8) Messages sent to @NUMBER get sent to the NUMBER file, where NUMBER is
returned by $open(). For example, to paste stuff to log but not to screen:
@fd = open(FILE w)
query @$fd
<paste some stuff>
query
@close($fd)
or
@fd = open(FILE w)
redirect @$fd lastlog foo
@close($fd)
9) Add a function to reg.c to compile a pattern into a regex -- experimental.
10) Fix some compile warnings regarding ssl.
The whole ROM_CHAR thing was an accident waiting to happen. Removed. Add /SET ALLOW_C1_CHARS to protect from the ascii char 128-159 attacks upon XTerm and GNU Screen users. Defaults to OFF.
Thanks go to crazyeddy and zinx for working on this in my absence. Add /set rom_char (defaults to off) which determines whether ^R rom_char sequences will be honored or dishonored by epic. Dishonored sequences are not removed; they are just mangled. This will help you detect those who might try to use this feature for less than noble purposes. Re-set the ^R character to "mode 5" processing; it had been set to "mode 6" as a stop-gap measure.
~/.epicrc support! kb should like this.
This is the new highlight/attribute renderer. It is a "true renderer" because it actually renders things to look like what you say. No longer does turning on some attributes (color) turn others off, nor does turning some off (bold) turn others off. Some things may break with this, please let me know, or feel free to pitch in and fix them. Zinx will be happy to know that i did NOT use the epic5 "prepare_display" routine because he was right, i did totaly break it. I used the epic4 prepare_display function but just made it aware of the new attribute stuff.
Implement the "redirect sink", which instead of sending all output to another irc server, drops the output entirely. This is used by /flush (which is now safe to use again) and can be used by the user via /redirect 0 to execute a server query but suppress it's output.
Update the docs, fix the sorting in the functions list (oops).
Let the work on 1.1.2 commence!
This is a bulk commit -- it includes $unsplit(), a new built in function, as well as documentation updates. This is the last of the work before epic4-1.1.1. If any of you want to make any more changes, please make them right away. Please feel free to test this over the weekend, because EPIC4-1.1.1 will be released as an alpha release next monday.
(barely) Documented the new Perl features and $igetrmatches(), but I'm not quite sure if $igetrmatches() is the function in question.
Start documenting some of the stuff in 1.1.1. Change comments for /lastlog to reflect recent changes. Once I finish the "KNOWNBUGS" file, unless there are any issues i am made aware of, I will release epic4-1.1.1 as an alpha release.
I started working on the updates file. I may want to work on this this weekend, so I'm committing it to know what i need to work on.
Commit #49 -- Add /xecho -v (echo to a visible window) and add $sin(), $cos(), and $tan() functions. This is epic4-0.9.16-12.
Add the /for <var> in (<list>) {<commands>} command
Add the /for <var> from <min> to <max> {<commands>} command
Implement "break_args" that breaks argument lists to commands to an array.
Implement "skip_spaces" which skips leading spaces in a string.
This is commit #46, isn't it?
Commit #35 -- Update the KNOWNBUGS file since 0.9.15 Update the UDPATES file since last september (sheesh)
Initial import into CVS
Initial revision
| CVS Admin |
Powered by ViewCVS 0.9.2 |