----------------------------------------------------------------------------- EPIC5 Projects... SUCCESSFULLY COMPLETED EPIC5 MAJOR PROJECTS ------------------------------------------- * Implement non-blocking connect()s. * Unified command/function/variable lookup tables * "Fix" the interaction between screens, windows, servers, and channels. * Re-evaluate the help system (replaced with a superior script) * Re-evaluate the /set implementation (/sets are now dynamic) * Top-of-the-window non-scrollable lines (/window toplines) * Permit /WHO to work with comma-seperated targets correctly. * Implied on creation for simple formatting. * Re-evalulate the history implementation (replaced with a superior script) * Nonblocking dns lookups for server connections * Re-evalulate normalizer/mangler (replace 15 /set's with /set mangle_display) * Automatic rebreaking of scrollback when window size changes WISHLIST ITEMS COMPLETED IN EPIC5 ---------------------------------- - Some way to /echo to a hiden window without flagging %F. - Unify levels for ignore, flood, lastlog, and windows - Unification of /window query and /window add - $hookctl() and $symbolctl(). - New passive event-driven i/o subsystem supporting pthreads, and kqueue - All scripts converted to 'pf' format - New math parser now the default math parser - Full 64-bit int support, including in math and dcc. - Implement dynamic run-time creation of window/lastlog levels. - (N)DBM support - Window scrollback buffer is completely purgable - Change CRAP window level to OTHER EPIC5 PROJECTS: --------------- * A way to split the screen vertically into left and right parts. * A way to turn off ipv6 at runtime. * Logically sized windows, not based on screen lines. * Some way to know if an /unload actually deleted anything. * Some way to overrule the default output for remote numerics * "Channel Issues" Channel key isnt stored on reconnects. Channel and window relationships is all whacked out. $C and $T still reflect old values after disconnect. Maybe a $next_channel() function? Allow multiple channels to be bound to a window at a time. Dont allow windows to change to channels theyre not bound to. Allow per-channel logging * package retention * Convert uses of Window-ptrs to Window_t refnums. * Dynamic loading of object modules, * Roll lastlog and scrollback buffers together * Abolish all uses of list.c (crypt.c, exec.c, screen.c, window.c) * Re-evaluate the security system * Re-evaluate the DCC system DCC CHAT collisions perhaps could be handled more gracefully (+) DCC progress meter to appear on "top non-active window" Reverse DCC? All of DCC? Some kind of non-line-oriented /dcc raw facility. Some way to "sign" a dcc send with a larger file. * Re-evaluate the irc protocol support Deal with KNOCKs. Implement DCC REVERSE Lossage when nicknames include special chars. (Not sure what to do) Dcc's to try userhost instead of handhake for broken mirc. Support $connect()ing to a Unix Domain Stream Socket * Cache low window refnums into an array for O(1) lookups * Save symbols in a giant array, and use indirect refnums to point to them. ----------------------------------------------------------------------------- EPIC4 Projects... SUCCESSFULLY COMPLETED EPIC4-1.0 MAJOR PROJECTS ------------------------------------------------ X (pre1) Local variable support X (pre1) Who queue, userhost caching. X (pre2) Notify does userhost lookups automatically X (pre2) ^C-attribute (``mirc type'') color support X (pre2) Begin complete rewrite of the screen handling stuff X (pre2) Real, safe, universal color support. X (pre2) Scratch Windows X (pre2) Massive CPU usage reduction X (pre2) /break, /continue, and /return commands. X (pre2) /package, and /unload commands. X (pre2) New iterative pattern matcher. X (pre2) Write or roll in a new math parser X (pre2) Different STATUS_FORMATs for each window. (k) X (pre2) Total overhaul of the keybinding system, no meta limits! X (pre2) $getopt()/$optind()/$optarg() function for aliases? (rb nutbar) X (pre2) Much needed overhaul of server stuff. X (pre2) Argument lists (with default args) for aliases SUCCESSFULLY COMPLETED FOR EPIC4-1.2.0 MAJOR PROJECTS ----------------------------------------------------- * $rewind(), $skip(), $seek() functions for $open()ed files. * Server groups * sub-second support for /pause and /timer * Implement the "redirect sink" ie, /redirect 0, to suppress output. * Add support to permit wserv screens to be resizeable. * ~/.epicrc support * Finish complete rewrite of the screen handling stuff (new attribute parser) * Permit the user to get at the logfile fd's. * /stack (push|pop) bind (wd) * A total replacement of the /bind system -- no more metas! (wd) * IPv6 support * Server side capabilities ("005 Numeric") support (ce) * Arc4random Random Number Generator (/set random_source 3) * New logging infrastructure (/LOG) * New, faster script /LOADer. * Rewrite irc protocol handling; be less forgiving of rogue servers. * Full, reasonable support for double quoted words * New /ignore, with timeouts and auto-delete * Timer-driven notify, clock, and mail checking ----------------------------------------------------------------------------- TABLED REQUESTS: ---------------- - Implement /set dcc_block_size (Not neccesary) - Built in file pager - $C should work in the context of the from_server, not just curr_win. - Console hack to do both ibmpc and latin-1 at the same time in linux. - $defined() built in function (Not neccesary) - Different status formats for non-current windows - Do something with %D? - Do something with mail checking (eg, remove it) - Function to return the number of mails last seen? - Have a special expando char that does arbitrary extensions. - Per-screen history rather than one global history? - $packages() function. - Some kind of $inputctl() type function for input buffer - Write a function ala $split() that puts results in a Karll array. - /xecho -x and -y - You can't use $0, $*, et al in @ var = [$"..."] - $winposition() function or something like it - Gracefully support empty words in word-lists. - When not connected to any server, maybe periodically retry to connect? - /window size should be able to resize from multiple windows - real arrays (i.e. replace Karll's arrays with a numerical array op), - case-sensitivity for input and comparisons (maybe a /set for this) - (Write logfiles are they appear on the screen -- eg -- wrapped) - Automatic expandos for current alias, parent alias, filename, line num... - Auto-restubbing aliases/assigns/whatever - ability to insert items at an arbitrary point in a Karll array. - ability to move existing elements around in a Karll array. - ability to use Karll array in normal variable names - cpp-like #define macro text and macro function abilities. - byte compiled scripts (violates the ircII principle) [end of file]