Fix up /load to honor the /return command so you can abort early from
within a /load'ed file.  See 'pf-loader' for details on why you would
want to do this.
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
Commit 556
* Change #define DEFAULT_CPU_SAVER_EVERY to 60, it needs not be 0.
* Create 'clock.c', to hold clock generation, system timers, cpu saver watchdog
* Create notion of "sys(tem)timers", callbacks for mail, notify, clock gen.
* Add 'system_timer', generalized callback for all of the system timers.
* Fix add_timer() so the 'command' argument does what the docs say it does.
* Extern 'timer_exists' so we don't try to remove_timer() and invalid timer
* Redo dependancies because clock.h exists.
* Add code to bootstrap mail systimer with /set mail
* Add code to bootstrap clock generation with /set clock
* Add code to bootstrap notify handling with /set notify_interval.
* Start enforcing "NOTIFY_INTERVAL" again in do_notify() to avoid excess flood.
Maybe I fixed a bug, maybe I didn't.
Commit 558
* Don't allow user to /window number in a window with a channel (avoid panic)
* Make check_mail return a (const char *), fix status_mail().
* Modularize/reorganize mail checking, with mbox reference implementation.
* Automatically /set mail 0 if the user's mbox can't be found.
* Fix time functions to take (const Timeval) if they don't change the arg.
* Create a special handler for /squit to avoid sending QUIT * to server.
* Protect some IPv6 stuff i added recently to dcc with #ifdef INET6.  Ooops.
* Hack up $repeat(<num><space><space>) so it works again. ugh.
* Hack up /set <variable><space><space> so it works again.  ugh.
* Dont allow /timer -repeat -1 0 because that busy-loops.
* Add shell of $windowctl() which will be filled in going forward.
Unbork 'make installhelp'
* Don't prohibit universal_next_arg_count() from returning empty_string.
* Rework the bug report form to point people to the bugs website
* Add /lastlog -target.
I forgot to update the commit id.
Avoid panic if you try to /dcc when not connected to a server.
* Protect against panic if /set mail 0 is off by default
* Add "ON/OFF" toggle set variable to the system timer data.
* Create 'update_system_timer' which uses the "toggle" var to run or stop timer
* Merge '(start|stop)_system_timer' into 'update_system_timer'
* Nix #define MINIMUM_(NOTIFY|CLOCK|MAIL)_INTERVAL since we can't stop that.
* Do not enforce minimums for /SET *_INTERVAL since user could get around it.
* Track "last event" time, maybe I'll use that in the future
* Reset "now" global variable before calling timer callback.
* Fix null deref bug with $($$)
* Add default binding to ^G to "self_insert" for beeps.
* Do not enforce MINIMUM_NOTIFY_INTERVAL in do_notify()
* Don't include exec.h from screen.c
* Add 'number' (floating point) field to /set's
* Add FLOAT_TYPE_VAR type for /set's, using 'number' field
* Update all the /set entries to include a default 'number' field.
* Add get_float_var() to get the 'number' field in a set.
* Add set_float_var() to set the 'number' field in a set.
* Teach set_variable() about FLOAT_TYPE_VAR sets.
* Teach save_variables() about FLOAT_TYPE_VAR sets.
* Teach get_string_variable() about FLOAT_TYPE_VAR sets.
Teach all the /set callbacks to take a (const void *).
This fixes a bad-c problem with /set!
Fix some bugs that can be attributed solely to a total lack of testing
on my part.  I'm rather embarrased about this.
* Fix $<num> to not have leading or trailing spaces, cause zinx said so. ;-)
Fix a really stupid bug I made last night.  :/
Add nsx's 'tabkey.jm' script.
Updated version fo nsx's tabkey script.
Make some compile warnings go away by using (intptr_t).  I hope this
doesn't bite me -- every system I checked has (intptr_t)..