CVS log for epic5/source/window.c |
![]() |
Request diff between arbitrary revisions
* Add some support in configure for sun's compiler which uses -mt for threads * Make the status bar redraw after /window discon (nb zlonix)
* 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.
* Fix make_window_current() to use the main_screen if all else fails.
* Roll forward portability changes from epic4-2.10 (larne) * This also includes term.h -> termx.h -- Make sure you rerun configure!
* Put 'sig.inc' in include rather than source to fix build for r/o srcdir * #undef strtoimax() if we are going to define our own to fix build * Fix printf() qualification for syserr() * Fix $write(@W<num> ...) so uppercase W works * Nix strip_control() which isn't used any more. * Make #define WINDOW_CREATE go away -- it's now mandatory. * Reorganize do_screens() in prep for future work
Add $2 as the /window command in /on window_command
* 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 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)...
* Refactor all lastlog stuff to use a global lastlog buffer. Yay! * Comment out per-window lastlog stuff
* 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!
--- 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.
* Added $serverctl(get/set -1 realname/default_realname). * $Y now is a synonym for $serverctl(get -1 realname). * Added $xform(iconv fromcode/tocode ...) wrapper around iconv(3). With this epic5 takes babysteps towards supporting Unicode.
* Don't want to regfree() a failed attempt to regcomp(). (rb larne)
* Add $windowctl(GET refnum CHANNELS) for black.
Changes suggested by gcc-4.2. No changes in behavior.
* 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)
* Add arg to panic() controlling whether panic is sent via QUIT (rb black)
* Fix null deref in set_input() via reset_line() via ^U (rb kitambi)
* Stage 2 -- start eliminating "optimizations", use update_input() for redraw
* Don't unconditionally set who_level to NONE in /window. * Set and reset message_from() info around each /window operation. * This fixes /window <refnum> echo "<string>" so the line is added to lastlog. * Fix $ruby(puts 0.4.0) by calling rb_rescue2() to catch /all/ exceptions. * Fix /window add/query so they auto-remove nicks from other wins first. * Fix build on non-ipv6 systems. (bruns)
* 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)
Fix inability to /query an /exec'd process.
This is the start of a major project to normalize the behavior of word handling in built in functions. The project involves stipulating that every place that handles a "word list" define what a "word" is and use it consistenly, and to output the same type of "words" that it accepts as input. This leverages /xdebug dword to control optional support for dwords in many built in functions.
* Fix cross-matching of ctcp-over-dcc with queries. YAY! (nullie) * Fix crash when you received ssl-encrypted msgs and you don't have ssl.
Fix some bugs with /window query that kreca found.
* 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)
* Fixes for two memory leaks from nullie * New /on, /ON WINDOW_SERVER, from nullie who needs to write a blurb.
* Fix valgrind bugs that nullie found (yay!) * Fix bug with '' in the new math parser being NULL instead of empty string * Add support for @#chan via notices to show up in #chan's window
Make /window foo kill be considered an option, so it doesn't turn into /window describe, requested by nullie.
* Desupport dwords in a lot of builtin functions (see updates) [nullie] * Make /window foo kill fail for want of 'foo' (see updates)
* Fix breakage for solaris found by zlonix
* Fix %{2}+ so it behaves like %+ and not like %{1}+, as per the docs.
* Add /set mail_type (MBOX or MAILDIR) to control what we check for mail. * Make rebuild-scrollback a toggle flag instead of an operation. * Teach update_all_windows() how to rebuild scrollback * Write some preliminary code for the unified lastlog
* Lay the foundations for nonblocking ssl connection (not supported yet) * Change SEND_LINE to do SCROLL_FORWARD if we're in scrollback mode * Add support for maildir mailboxes. * Fix crash with 042 numeric.
* Add provisional support for renumbering windows with channels/logs/timers
* Fix $windowctl(GET <win> TOPLINE <num>) -- <num> is numbered from 1, not 0.
* 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. :/
* 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.
* Switch users of LEVEL_CRAP to LEVEL_OTHER. yay! * Whack some unused functions and decls, make *toa() funcs return const. * Roll get_window_by_name() into get_window_by_desc(), it's only user.
* 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!
* Fix /away -all so it doesn't error on gaps in server list (weirdo) * Fix bogon in /xecho. doh. * Fix /who -real so it matches both with and without the hopcount. * Convert all uses of message_to() to message_setall(). yay!
* Nix some func decls in windows.h that don't exist any more * Add message_setall(), lets you save to_window on the message_from stack. * Replace users of message_to() with message_setall(). * Replace direct users of to_window with message_setall(). yay! * /XECHO got rewritten as part of this. See UPDATES * Fix various compiler warnings.
* 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.
* Add the idea of a "visible" and "invisible" lastlog entry * Always skip "invisible" lastlog entries, handle them when trimming, etc. * Rename remove_from_lastlog() to trim_lastlog() and have it do looping * Unconditionally keep every item in the lastlog, even if it's "hidden". * When screen changes width, purge+recreate all window's scrollback * Add /window rebuild_scrollback to manually invoke this process. * For now, auto-recreate unholds all, and cancels scrollback * Add /window auto_scrollback to opt-out of auto-recreate feature * Store each window's width individually, don't refer to server * Use each window's personal width to re-break lines (more on this later) * Fix so "/window lastlog foo" doesn't delete your lastlog!
* Add /window flush_scrollback, see UPDATES
* Improve /dcc get * Fix warnings
Fix bogon. The less said, the better.
Add support for per-window activity levels.
* When a window is resized, make sure scrollback is bigger than new size. * Add multiple stricmp tables, "ascii" and "rfc1459" * Make all string insensitive compares use "ascii" * Add black's ornamentation on the addset script. * Fix some regression scripts * Fix pf bugs with various scripts. * Add the [$func](args) capability to the new math parser. * Add the === and !== literal equivalence (case sensitive) operators. * Sort of set the case sensitive mapping to use in the 005 handler (hack!) * Fix error recovery of ssl connections.
* Implement $windowctl(SET .. NOTIFY_NAME) for howl. * Fix a few things with the dns helper. * In /on type '<pattern>', Set $* so <pattern> can match against itself.
* Fix up do_server() so anything that happens is wrapped in message_from()s. * Show the server list for /window server instead of an error.
New builtins, very preliminary support for nonblocking dns.
No functional changes in this commit, just some source cleanup before I go through and wrangle the screen recalculation code into submission.
* 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.
GC a bunch of stuff no longer in use.
* 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
* Add $windowctl(GET <win> DISPLAY_SIZE), same as $winsize() * Add $windowctl(GET <win> SCREEN), same as $winscreen() * Add $windowctl(GET <win> LINE <num>), same as $winline()
Permit /set -new_server_lastlog_level and /set -old_server_lastlog_level which prevents epic from changing the window's level when you're connected to a server or when a level collision occurs after a /server. Use these with caution, I don't know what might happen!
* Round one of blackjac's 'builtins' script. * Comment out a ton of now-scripted sets. Will GC it later.
* Refactor the error stuff by eliminating my_strerror() and dgets_errno. * Error messages are now delivered on multiple levels as info is available. * This may get annoying, but it's a lot more accurate now! * Change inet_* functions to return int's since their retval is unused. * Add a new internal "syserr()" function that generates formatted errors. * Syserr's look like say()s but they act like yell()s. (can hook with /on yell) * Keep an counter in the server stuff so we can count off as addrs are used. * So the error message in /ON DCC_LOST is always just "ERROR" now. * Fix various compiler warnings and stuff. * Add $hookctl(GET HOOK <ref> STRING), return /load'able format of ON * Fix some debugging outbound in switch_hostname(), doh! * Roll set_socket_options() into a new Socket() function. * Roll connections to AF_UNIX sockets into the mainline stuff. * Roll nonblocking/connect/nonblocking into Connect(). * Add AF_UNIX support to Getnameinfo() to remove annoying errors. * When doing recovery from EBADF in select, only check fd's we're using * Just puke if configured for kqueue() and kqueue() fails. * Don't puke on default 353 output if the userlist arg is missing. (for ratbox) * Permit doing /window name to change case of window's name.
* 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 /window <refnum> scroll_[forwards/backwards]
* Fix compile bugs for non-ipv6 users with the dual-vhost stuff. * Fix null deref with /window flush when not in hold mode.
Add %{3}S, to show the server's groupname.
Fix a raging bogon that redrew the status for every tie through io()
* 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.
* Fix bug that brought up all servers at once. * Fix /window topline so it doesn't chop/wrap-off last word.
* 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
* New internal function set_mask_by_winref() allows changing window's level. * Make /xdebug regex_debug outputs privileged yell()s, just for sanity. * Change /set new_server_lastlog_level to take effect on 001 (see UPDATES) * Refactor window_check_servers() to work with server's current window only.
Add $winquery() and $hookctl(), written by howl.
* Reset "from_server" after every window operation * If /window doesn't change current_window, revert from_server to orig value * If /window changes current_window, reset from_server to cur_win->serv;
* Fix dcc compile error with --without-ipv6 * Add $windowctl(GET ref TOPLINE num) and $windowctl(GET ref TOPLINES)
Don't allow /window toplines to be a negative number!
* Add /window toplines <N>, reserve N lines as nonscrollable on top of window * Add /window topline <N> "<str>" change the Nth topline to <str> * You can have 1 to 9 toplines.
Add very rough proof of concept /window topline "...." feature. Use /window topline - to remove it.
* Nix calls to dcc_connected(<fd>, 0) which were always bogus. * Create print_arglist() for printing alias arglists, natch. * Fix crash from /queue -del <name> <num> for <num> = <items> + 1 (rb black) * Show arglist when creating and listing aliases. * Fix memory leaks of buckets when user grabs /on set. * Add a "alternate names" bucket to server data. * Create a whole new api for querying and creating server refnums. * Fix crash with /dump on (/dump all) * Add $serverctl(GET|SET <refnum> ALIAS) get and set server alternate desigs * Add $serverctl(GET|SET <refnum> ALIASES) get and set entire list. * Fix memory leak with /on set
Fix typo that caused crash.
* Nix /save and pray nobody notices. * Implement pmatch_* stuff in alias.c to use the unified symbol table. * Commands, functions, and expandos now 100% integrated. HUZZAH! * Reimplement $get(set|command|function)s() to use the pmatch_* stuff. * So they now pick up changes at runtime. HUZZAH! * Allow built in /set to be conditionally added to the "set bucket" * Don't put user-created /set's in the bucket * Allow user to replace one user-created /sets but not builtin sets. * Allow mangling of ALT_CHAR -- how did this ever get missed? * Fix $currchans() so it works the way the documentation says it does. * Fix some const correctness issues, introduce others. bleh.
Fix bogon.
* Implement /window notify_name for %{1}F, for howl (irssi-like status notify)
* Make $getsets() work again. * Fix alloca() warning for freebsd-current * Fix warnings about static variables not used * Fix /set notify_level, which is supposed to cascade to /window notify_level * Fix /set lastlog_level, same thing.
* Make stripcrap(ALL) exclude "ALL_OFF", so I can... * Fix bug with $stripcrap(ALL,-BOLD ^B^B^Btest). (rb BlackJac) * Make the #define Char const char thing global to all of epic now. * Whack /set scroll. * Create a "/set data" type (VARIABLE) which is union of (int) and (char *). * Expose VARIABLE and variable types in vars.h for others to use. * Break init of /set's into two parts, one to malloc() the set data * The second part is to init the default values once command line is done. * Fix some warnings from --with-warns * Fix all /set callbacks to accept a (void *)(VARIABLE *) variable * /Set callbacks can now directly modify the /set via that variable! * So don't allow direct setting of /set's from outside vars.c. * Everybody must use set_var_value() which is the backend to /set. * Whack the /IRCNAME and /REALNAME variable -- use /SET REALNAME, eh! * Hack up /xecho -x to bide my time until i whack all those /sets it uses. * Don't call set_input_prompt() in main() any more, it's handled elsewhere. * Whack /set logfile callback, since nobody seems to have missed it. * Whack the "number" (float) data in /set since i wasn't gonna use it. * Whack the "GLOBAL/CHANGED" tracking in /set's. Tell me if you miss this. * Unify output of /set values as "[New|Current] value of <var> is <val>" * Don't limit the size of /set continued_line, this will be revisited soon. * Quick and dirty hack to work around adm's bug, will fix this later.
* Add /set old_server_lastlog_level, for when you merge windows to servers.
* Add %{2}W status expando for black, shows /set status_window in all windows.
Add /window kill_all_hidden for rain.
* Move some defines from comands.h to where they belong * Add and remove func decls in header files as necessary. * Add /wait =<fd> which returns when a nonblocking dcc connection finishes * Make all keybinding funcs/decls use the BUILT_IN_KEYBINDING macro. * Make the BUILT_IN_KEYBINDING macro use unsigned chars. * Hide (struct Key) inside keys.c, and use (void *) to hold state. * Make the input line use (unsigned char), not (char), huzzah! * Make the "othername" ($3 in /on dcc_raw "E") the port number. * Avoid a NULL deref with "parse_command" keybinding.
Fix /window channel. Reported by wc.
GC a bunch of useless cruft and stuff.
* 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>.
* Add a counter to WNickList, for tracking queries * Each window gets a "current query counter", to find it's current query. * Adding nicks with /window add <A>gives them query counters of 0 * Adding nicks with /window query <A> gives them next higher query counter. * Removing query with /window query, still removes <A> from nick list! * New binding "SWITCH_QUERY" to switch between queries, duh! * Nix "query_list" in Window, totaly dynamic now, huzzah! * Fix places using "query_list" to use "get_equery_by_refnum()" * Refactor add_to_screen(). wheee! * Change "Update %H on status bar..." to "Update %B on status bar..." * So $windowctl(... QUERY_NICK ...) returns empty string now.
* Move Lastlog definition to lastlog.c, leave stub behind for window.h * Add window_all_channels(), return all windows for channel from names.c * Change boolean vartype for windows and status: int -> short. * Add do_short_boolean(), like do_boolean(), but it takes a short. * Make the default server quit message "Leaving" * Have /window describe show all the channels in a window. * Have /window describe show nicks, channels in flat list, not one per line. * Make sure to use the server's default quit message when closing it. * Create a prototype of atoll() for compat systems.
* Revamp /window describe so it includes a lot more useful info.
* Make sure that servers go through SERVER_EOF state on eof! * Track waiting/pending channels using a nicklist per window. * Nix $winbound() and all the other stuff relating to bound channels * Fix bug with binding/initializing the 255 key * Fix bug with TOGGLE_STOP_SCREEN keybinding.
* Make dcc connections ($connect, /dcc get, /dcc chat) nonblocking * /DCC RESUME is totaly broken by this. Will fix later, maybe ;-) * Add $startupfile(), which returns the epicrc/ircrc file that was loaded * Offer unknown ctcp requests through /on ctcp_request before /on ctcp. * Fix /window level none and other such breakages (adm)
* Reduce the size of level masks to 1 byte, to save cpu. * Add turn_on_level() and turn_off_level(), for reasons that escape me. * Nix the /help command, make howl's scripted replacement the default. * Add $cofilter() entry so you can use it (it was already written)
Well, at least it compiles again, but I think i still need at least one or two sweeps of the code to make sure I got everything proper.
*********** DONT RUN THIS -- IT'S WORK IN PROGRESS -- DONT RUN THIS *********** * Import epic4 commits 674 through 692, inclusive. * Import epic4 commits 693 through 710, inclusive (epic4-2.0 final) * Change _X and _Y macros to LEVEL and LEVELMASK for linux (sigh) * Add a searchbuf() 8 bit clean byte-finder for future use. * Convert flood checking, ignore checking, lastlog, logfiles to int masks. * Convert message_from to int masks. *********** DONT RUN THIS -- IT'S WORK IN PROGRESS -- DONT RUN THIS ***********
Merge changes from epic4 commits 674 to 692, inclusive.
* Make /reconnect work on servers that are not already open. * Don't just cavalierly change window's servers. * Prefer close_server(i, NULL); over change_window_server(i, NOSERV); * Allow windows to stay connected to closed servers. * Nix window's "old server", now they're unnecessary. HUZZAH! * Mop up channel stuff that coped with window-old-server. * Break backwards compatability and make /window +<server> reconnect to ser. * Break backwards compatability and make /window -<server> disconnect from serv * Hide a bunch more debugging output behind /xdebug server_connect * Refactor change_window_server(). * Make /window discon the same as /window noserv, total disconnection.
* Be careful what modes we add to modestr in update_channel_mode. * GC some old epic4 macros which we don't use * Fix a typo that b0rked /on server_status * Force output for a server connection to go to its connected window. * Make /server reset server's status, so it can be reconnected to.
* 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.
Make 'empty_string' (const char []). Now we're cooking with gas!
EPIC5-0.0.1! Huzzah!
* Remove /set beep_on_msg, a half-broken feature which can be scripted. * Nix /set beep_when_away, a 1-line scriptable feature. * Add new noise level %, (/ON %TYPE); like ^ but doesn't turn off display and other stuff as well.
Make message_from() work off of a stack; use panics to guard against unmatched message_from()s, and other wackiness.
* Make inet_vhostsockaddr() extern so dcc can use it * Make dcc_open() use inet_vhostsockaddr() to bind /hostname to dcc conns * Don't allow -b and -q, or -b -and -s, as they cause deadlocks/panics * Fix casting error that caused $urlencode() of high bit chars to segfault * If swapping in a window that has no room for double status, recalculate all * If double-on in a window that has no room for it, recalculate all
* Fixes to 'less' script from howl * New 'help' script from howl * Add /WINDOW SCROLLADJ.
Why do I know i'm goign to regret this...
* Add /ON WINDOW_BEFOREKILL
* Another iteration of the 'notify' script, hooks the system's /ONs now! =)
* Put a space in place of a newline in the PF loader.
* Always ignore spaces after semicolons in parse_line (the {} parser).
* Some compiler warning fixes from rain.
* Make the output-window-searcher ignore from_server for LOG_DCC * Make status_hold and status_hold_lines use scrollback numbers too. * Make add_to_scrollback() redraw status bar if output while scrollbacking.
Don't swap in windows on /window kill unless it's the last non-frozen window.
* Fix /window next, /window prev (SWAP_NEXT_WINDOW/SWAP_PREV_WINDOW) to skip non-swappable windows.
* Add /SET STATUS_NOSWAP
* Fix #define DEBUG_EXTRACTW_DEBUG/LASTLOG
* Add -o and -O command line options to turn off IEXTEN termio() options
* Add /WINDOW SWAPPABLE (defaults to on)
* Add %{1}W status expando, expands to /SET STATUS_NOSWAP if SWAPPABLE OFF
* Don't allow windows to be swapped in or out if SWAPPABLE OFF
* Don't allow windows to be shown or hidden if SWAPPABLE OFF
* Do allow windows to be swapped in with WINDOW KILL even if SWAPPABLE OFF
* Add $windowctl(GET <refnum> SWAPPABLE)
* Fix a couple of minor compiler nits EPIC4-1.2.1!
* Fix a NULL deref if you do /window when there is no current window (!) * Update notify script from nsx, add sping script from nsx.
* 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
Fix a variety of problems found by nsx -- particularly a panic occured when you did "/window <refnum> double on" where <refnum> was a window that was hidden (in certain circumstances)
* Fix /window query, it was a victim of larneproofing. Ooops! (Bugref 6) * Hook in $windowctl(), just for fun for now. * Enclose a few more dcc outputs in the target nick context.
From previous commit... * Fix urldecode * /lastlog -msgs 3 is obliged to skip back 3 msgs, not just 3 lastlog entries. * Fix warnings in gailib.h From this commit... * Fix some const correctness issues * Make message_to() take an (int) and not (unsigned) so we can pass in -1. * Fix some arglist regression tests to reflect new extractw semantics. * Fix uninitialized variable in ok_to_output() that caused panics.
Fix a typo. Noticed by blackjac.
Fix /window scrollback 0 so it doesn't crash.
Commit 600 -- Huzzah! * New tabkey.jm script from nsx. * Set the window's waiting channel before sending out the JOIN * Let <pagedown> and <end> work on hold mode as well as scrollback.
Fix UNSTOP_ALL_WINDOWS keybinding, rb ce.
* 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.