CVS log for epic5/include/vars.h |
![]() |
Request diff between arbitrary revisions
Revamped input line a little. Added indicator for text scrolled off the left of our input line.
* 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 /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 ^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
* Pass double ptr to remove_bindings_recurse() to fix exit-time memory leak. * Remove /set bad_style, input_aliases, security, (unused) * Remove /set ssl_certfile, ssl_keyfile, and ssl_path (unused) * Add a (ServerInfo) object to (Server), switch to using it. * Remove a bunch of unused thingees in (Server) while i'm here. * Restore /set reverse_status_line to a builtin. oh well.
* Fixes for two memory leaks from nullie * New /on, /ON WINDOW_SERVER, from nullie who needs to write a blurb.
* Finish implementation of /stack push|pop set with symbol table, rb nullie. * Preliminary work making @#chan public show up in #chan's window.
* Finally whack unused /set status_truncate_rhs * New versions of autojoin and reconnect from nullie * Fix /xecho -l for larne. yay!
* 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
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 /set old_math_parser, to turn on the old math parser (don't do this! :P)
* 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.
GC a bunch of stuff no longer in use.
Oh yea, wasn't I supposed to not nix /set show_channel_names?
* Round one of blackjac's 'builtins' script. * Comment out a ton of now-scripted sets. Will GC it later.
Commit the last changes.
* Fix compile error for #define UNAME_HACK * Fix crash when you do $open(/file/doesnt/exist R) * Add an /on 338 default handler. * Fix integer underflow with log file refnums * Rename STATUS_USER0 to STATUS_USER for backwards compat. oops! * Whack BRACE_LOAD_HACK, it's been unsupported for a while. PF loader rules! * Don't allow /botmode if #define NO_BOTS * Fix DCC connections instantly "timing out"? (Check on this) * Whack FLOATING_POINT_SUPPORT and depend only on /set floating_point_math
* Fix /dump * Add $symbolctl(), huzzah!
* 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.
* Refactor IrcVariable to not depend on having the varname. * This will lead to multiple hard links to the same /set value in the future. * Nix the 'name' and 'hash' values in IrcVariable, no longer needed. * Make all uses of "realname" use the /set realname variable (rb adm) * Nix the global "realname" variable, use /set realname for all. * Fix bug with free_bucket() * Fix compile warnings in vars.c * Store built in variable xref table in a bucket. * When changing a user-created /set, start calling the user's scriptback * Allow the user's scriptback to call /set to override the user's value. * Tell the user that they created a new /set.
* Add the rest of funcs to do builtin var support in unified symbol table.
* Change the unified data type for builtin funcs to (IrcVariable *).
* Implement "buckets", for O(N) scans of the unified symbol table.
* Change DEFAULT_USERINFO to DEFAULT_USER_INFORMATION to match the /set.
* Make the *_VAR stuff in vars.h 'int's.
* Change USER_INFO_VAR to USER_INFORMATION_VAR to match the /set.
* Change CLIENTINFO_VAR to CLIENT_INFORMATION_VAR to match the /set.
* Change STATUS_NICK_VAR to STATUS_NICKNAME_VAR to match the set.
* Put the defn of (struct IrcVariable) in vars.h, to expose to unified table.
* Convert all uses of now defunct (enum VAR_TYPES) to (int)
* Create "make_string_var_bydata", converts (IrcVariable *) to malloc string
* Change get_var_alias() to return (IrcVariable *)
* In that function that outputs set values, use make_string_var_bydata().
* Change hardcoded *_VAR uses into pointers to *_VAR, for deref at runtime.
* Major revamp of vars.c, to wholly create built in vars at runtime.
* Built in variables are stored in unified symbol table and vars.c xref array.
* *_VAR values now point through xref array to the actual variable data.
* Nix the now unnecessary get_variable_index().
* Add create_user_set(), backend for /SET -CREATE
* Add /SET -CREATE <name> <type> [{<code>}]
* Need to go back and implement the {<code>} thing.
* Revamp how /set works, using buckets, to implement auto-completion.
* $getsets() is not implemented yet, do that too.
* When looking up $<setname>, use the unified symbol table. HUZZAH!
* 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.
* 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.
Merge changes from epic4 commits 674 to 692, inclusive.
* 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.
* 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)
* Add /set wserv_type, either "xterm" or "screen". * Add malloc_strcat_word_c, add a single word to word list, with "" support * Convert a bunch of stuff to use malloc_strcat_word_c to honor ""s right. * GC a bunch of unused code.
* 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.
Teach all the /set callbacks to take a (const void *). This fixes a bad-c problem with /set!
* Protect against panic if /set mail 0 is off by default
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
Metric clock support!
* New /set, /SET SWITCH_CHANNELS_BETWEEN_WINDOWS * C language issues (const correctness, integer size correctness) * Revamp channel structure to hold window refnum and not window pointer * Add "current channel counter" to channel structure. * Determine "current channel" by election. * Garbage collect a lot of now unnecessary code. * Add get_echannel_by_refnum(), returns window's "elected" current channel * Add internal function is_waiting_for_channel() * Add internal function move_waiting_channel() * Add internal function get_winref_by_bound_channel() * Add internal function get_bound_channel_by_refnum() * Convert uses of get_channel_by_refnum() to get_echannel_by_refnum() * Fix $winbound() to work when given a window refnum * Fix valgrind issue with $regcomp() * Remove sanity checks from traverse_all_channels(); handled elsewhere now * Change traverse_all_channels() with "this server" or "not this server" arg * Nuke (Window *)->current_channel. Handled by channels now. HUZZAH! * Implement /ON SWITCH_WINDOWS again.
Yikes. Merged to become consistent with HEAD. Sorry for all the commits, I'll be quiet again soon. :) -wd
* "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.
Documented /exec features.
Note: The -line* switches for the %proc mode are new and haven't been
commited yet.
* 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.
* Remove /set suppress_server_motd which didn't really work anyways. * Add function decls for bsd_arc4* to ircaux.c * Always check (window->hold_mode || window->autohold) together! * Unhold_window()s only if both hold_mode and autohold are off! * unhold_window()s instead of doing scrollback_end for robustness. * Attempt to recover from the "output is below bottom of window" bug, whine.
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.
New keybindings system coming through. Details can be found in doc/keys and in a few other places. :) -wd
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
* Rolled the $getsets() and $getcommands() code into macros and added $getfunctions(). * Added a server_established hook. This is called before anything is sent to the server, and it is intended that for ssl connections, stuff can be quoted and hooked in plain text until the hook returns, although, it is difficult to verify that this will actually work. * Made it so that when all variables are erased, the low level array that contains the variables is erased. This is intended to make it easier to profile the memory use. * Copyright notice added to perl.c. * Minor stuff for tabkey.ce.
* New STATUS_HALFOP setting which acts much the same way as STATUS_CHANOP. * New function $getcommands() which acts much the same way as $getsets(). The internals for these two functions probably need to be rolled together. * Cleanups and minor updates to tabkey.ce.
Applied the SSL patch from ay-ar. Details are in README.SSL. This works well at this point, but there may be teething problems.
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.
Resizable wserv support! No, really! Backported from epic5. I have to go through term.c again and make sure there are no unintended casualties of the merge. We should also start testing the resize handlers to make sure they're happy. I don't promise they'll all work first time, but this is a good place to start!
Add /set auto_rejoin_connect -- this controls whether epic will try to rejoin your channels when you are disconnected from a server *AND EPIC WOULD ORDINARILY TRY TO REJOIN YOUR CHANNELS*. This has *ABSOLUTELY NO EFFECT AT ALL* in those cases where epic has thrown away your channels and has no intentions of rejoining them. This is only a way for you to reduce current functionality, there are no bugs fixed with this.
Translation table support. I pulled this from ircII-2.8.2. Re-added by incessant requests from russian users. This adds /set translation and /set translation_path. The translation path is not hardcoded into the binary, it is $IRCLIB/translation, where IRCLIB is determined at runtime. You can of course always /set it to whatever you want. I am not making the translation tables available with epic. They are available in zillions of places, and i'll probably create a tarfile that contains them.
Two things: * Remove /set notify_handler which didn't do anything. * Rewrite /lastlog so i understand how it works. Big new feature, -regex, to support regex searching on lastlog! * Commit #75.
Initial import into CVS
Initial revision
| CVS Admin |
Powered by ViewCVS 0.9.2 |