EPIC5 Projects, Bugs, and other Errata: KNOWN ERRATA (eg, bugs, or unresolved requests): ------------------------------------------------ ISSUES OF INTEREST ------------------ * Howl wants a temporary hold mode that expires when you reach bottom. * Pegasus wants a way to send italics (^I) * What about pastes with "rogue characters" like ³ (alt-3, ie, ^[3) ? * Kreca mentions that word manip functions strip extraneous spaces. * The way dcc filenames are handled is bad; you should be able to seamlessly rewrite filenames both outbound and inbound. URL encoding should auto-detect * Rewrite the input prompt to use a linked list instead of a C string. * Everybody wants utf8 support -- but who will volunteer to help me? * Normalize 'proto', 'type', and 'addrfamily' values with server stuff. * There should be an /on send_encrypted_msg, /on send_encrypted_public, etc. * You should be able to move lastlog items between windows, split, merge. * IRCII supports "default" fg/bg colors, which looks intriguing. * Larne would like to use 256-color-support for xterm. * I would like to be able to /load zip files and put them into LOAD_PATH. * UPnP support (http://miniupnp.free.fr) would fix dcc-behind-firewall dilema. * If @ var = [encode] you should be able to do $($var)(args) to call it. * Output rules * Undernet's CPRIVMSG and CNOTICE allow chanops to msg members w/o penalty * /CTCPs over /DCCs don't match up with their queries very well. (nullie) * Larne wants suppression of duplicated lines (like syslog maybe?) * Remove all the hardcoded uses of select() so it isn't mandatory. * Shattah would like something like /window omit to remove stuff. * Kanan wants support for jabber * Zlonix wants a way to be notified when window geometry changes * Zlonix would like me to commit his /on signal patch * Zlonix would like per-screen toplines * How about base85 support for $xform() ? * Larne would like to have a shadow display for "ignored" stuff * Larne would like a ==== that appears at his last scrollback ponit. [See http://www.epicsol.org/PROJECTS for things to come in the future] [See http://www.epicsol.org/CHANGELOG5 for things that changed in the past] THE CHANGELOG SINCE THE LAST RELEASE: ------------------------------------- * Change 'wserv4' to 'epic5-wserv4' to avoid conflicting with epic4. * Fix output of /disconnect when disconnected to be less confusing. * Some changes to tabkey.jm to see if we can get it working. * Move some functions out of input.c to better places. * Fix normalization bug via $stripcrap(all ^C0@^Otest) (from kitambi) * Fix denormalization bug via $leftpc(9 ^C0@^Otest) (from kitambi) * Make the activity script use its own /package. * Enhance prntdump() to convert unprintable chars to hex. * Change /set -word_break so it pretends you set it to " \t" (rb kitambi) * Add socks5p.h from epic4 so we can build with socks5 again. * Remember, it's ./configure --with-socks5=/usr/local/lib * Make update_input() take a screen as an argument, to update one screen only. * Make /window create screen's input lines work again (rb kitambi) * Fix crash from /parsekey type_text * 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 * 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 dccctl(DEFAULT_PORT ) [see UPDATES] * Add /on dcc_lost case for cant-bind-port [see UPDATES] * Add 'dcc_ports' script [see UPDATES] * Add mask_to_(positive|negative)_str to convert masks to shorter strings * So now mask_to_str() returns strings like "ALL -DCC" if it's shorter! * Fix a couple of bugs rb zlonix * When doing /stack pop set ... the callback (if any) should be invoked. * Add a server param to what_channel() so i can use it in send_text() later. * Add length of 'meta' arg to ciphers so 'meta' doesn't have to be c string * Fix highlight script so it pf-loads * Add the ** unary operator -- double expand. See UPDATES * Comment what I'm going to mangle xform into. * 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! * Allow encryption $xform() handlers to reformat their keys, so we can... * Add SHA256/AES/AESSHA $xform() encoders * Fix it so it compiles without ssl support again. * Add "ALL" $xform() encoder, returns all valid xforms * Fix infinite recursion if you load a script as a formats file. * Release epic5-0.3.4 (Solicitude) (1480) * Fix bug that kept implied on hooks from working (important fix!) * 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 hookctl(set list ... implied {...}) to work as intended (rb zlonix) * Add $windowctl(GET refnum CHANNELS) (rb Black) * Eliminate u_* type bsd-isms so we can compile with -ansi on linux. * Add /lastlog -rewrite (see UPDATES) * Add /set lastlog_rewrite as a special favor for larne. * Fix a bug with /lastlog (in previous commit) * Add dyanmic support for $xform()s, which I'll be using very soon. * Fix configure so --with-threaded-stdout pulls in -pthread * Include some commented out code that I'm ruminating over for input line * Create CURSOR_LEFT and CURSOR_RIGHT macros to avoid assigning LOGICAL_CURSOR * Default xforms now don't need to be ordered, or have default refnums. * Fix BACKWARD_WORD or PREVIOUS_WORD or whatever it's called. * Add /SET DEFAULT_REALNAME and DEFAULT_USERNAME * Add scripted /set realname and /ircuser in builtins for backwards compat. * Don't want to regfree() a failed attempt to regcomp(). (rb larne) * Add $serverctl(get -1 default_realname) and $serverctl(get -1 realname). * Change $Y to reflect current realname for current server. * Add $xform(iconv fromcode/tocode ...) wrapper around iconv (3). * 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. * Don't use NULL in configure; use 0 instead. * Fix missing NULL for $hookctl(list ...) [rb howl] * Fix various other issues that valgrind found (yay!) * Commit a 'url.irc' script that I don't know where it came from... * Apparantly solaris 9 doesn't have , intmax_t, or strtoimax. ick. * Begin "fixing" protected implied hooks. Must test above examples. * The sequence we delete stuff on shutdown actually does matter. (Fix crash) * OK. The implied hook, and protected implied hook stuff works now * Make a note in UPDATES about *0 being an rval instead of lval, and *(*0). * Begin a refactoring of dcc to make my life easier * Simplify register_dcc_offer(), removing unnecessary args. * Also, register_dcc_offer() will only take url-encoded filenames now. * Fix up the ctcp handler do_ctcp to urlencode offered filenames. * Change the DCC_FILE* macros to DCC_SEND and DCC_GET to stop confusing me * Add a "offer_filename" variable to dcc's for next round of work * GC some unused code * Break dcc_message_transmit() into dcc_raw_transmit() and dcc_chat_transmit() * Drastically simplify those two functions * Fix up dcc_raw_transmit() so the hostname isn't required * This means /dcc raw ignores . yay! * Add $is8bit(). See UPDATES. * Change $tobase(). Now $tobase(b i) should support negative integers (i). * Revert commit 1498 (the dcc stuff) -- it was half baked. * Fix warnings found with --with-warns. * The dot (".") and tilde ("~") are unreserved characters in rfc3986 (urlencode) * Fix panic when you call :func() and there is a builtin, but no alias. * 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. * 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. * Fix apparantly bogus test that prevented .files from being /load'ed (rb wjr) * Release epic5-0.3.5 (Alacrity) (1509) * 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 a "rejects" variable to str_to_mask() * Make str_to_mask() shut up. Callers should handle error output * Create a standard_level_warning() handler callers can use. * Make the consumers of str_to_mask() handle their own error messages. yay! * Refactor all lastlog stuff to use a global lastlog buffer. Yay! * Comment out per-window lastlog stuff. * Add a bunch of functions to move lastlog items between windows. * No way for the user to use them yet (still thinking about it) * Add $windowctl(NEW) and $windowctl(NEW_HIDE)... * New versions of builtins, dump, and history from black * Fixed builtins to not return spaces at end of $xform() functions. * Fixed commented out lines in commandqueues for backward compatibility. * FINALLY cleaned up code in data_array. * Added some /assign handling functions to data_struct. * Fixed $chhops(), $nochhops(), $chvoices() $chnovoices() in script/functions. * Changed tabkey.ce to _also_ complete from notify list by default. * Changed tabkey.ce to complete recursed commands without a leading slash. * Updated $shift() and $pop() with multiple args to work with dword but left it #ifdef'd out as per UDPATES. Also updated regress/funcs to test these. * Added current package to end of $loadinfo(). * Changed /reconnect to jump to the next server in the address list if possible. * If epic crashes and /xdebug crash is set, sleep and wait for a debugger. * Change /on listings so they tell you if a hook is "disabled". * Add forgotten code to move lastlog items between windows for /window number * Fix bug where default numeric output wouldn't go to a channel's window. * Remove a superfluous message_from() when parsing server stuff. * Add /lastlog -window for fusion. * New version of /load dump from black. * Add support for libarchive to configure * 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) * Change builtins script so it doesn't /xecho -w for who replies. * Fix typos in dcc_ports * New version of tabkey.ce from fudd. * Make /dcc list output go to level OTHER by special request of kreca. * Fix build (rb zlonix) * $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) * Fix $write(w[number] anything) crash (rb ce) * Add a new internal function prepare_display2() a reduced version of p_d(). * Add a new internal function fix_string_width(), the guts of $fix_string() * Fix /set indent to use prepare_display2(). Now you can use ^C codes. yay! * Fix fd leak if fork() fails for /exec. * Fix window toplines so they extend the width of the screen like statusbars. * 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. * Fix new math parser comparison operators to work properly with numbers. * Add function $check_code(), looks for unmatched parens or braces in string.