CVS log for epic5/include/alias.h |
![]() |
Request diff between arbitrary revisions
Fix compiler warnings, should not be any functional changes.
* Eliminate the third argument to expand_alias(), the statement spanner. * Rename parse_line() to parse_block() to better reflect its duties. * Make parse_block() static. Everything needs to call runcmds() now. * Eliminate the local-stack-creating feature of parse_block(), callers do this. * Rename 'line' to 'stmt' in parse_statement(). * Sort of forget to re-implement /set cmdchars. The / is the cmdchar. * Try to optimize parse_statement() and next_statement() some.
Add a /perl command, just for laughs Fix some compiler warnings.
* Constify get_*_alias(), so lookups can't modify the actual alias this way. * Rename parse_command() to parse_statement(). * Create a next_statement() to figure out how long the next stmt is. * Stop using expand_alias() to rip apart statements. yay! * Refactor parse_command and parse_statement to better define their roles. * Push responsibility for expansion to parse_statement, someday, to cmds! * Push responsibility for handling block statements to parse_statement. * "Forget" to re-implement /set input_aliases. I wonder if anyone will notice. * Change the name of "hist_flag" to "interactive" to reflect its purpose. * Change /load -std to use parse_statement() instead of parse_line()
* Add flush_all_symbols() which does a total cleanup of symbols at exit-time. * Fix a few bugs * Use flush_all_symbols() instead of /dump to catch memory leaks.
* Change "ERROR --" to "INFO --" to not alarm people as much. * Change a few other warnings to not be so alarming. * Change new_realloc() to not move ptr if it is big enough to hold new size. * Fix all the status_* sub-formats to not have any hardcoded size limits.
* Fix /dump * Add $symbolctl(), huzzah!
* 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.
* Add arglists to hooks (by howl, who I will pester to document this). Woot! * Finish $hookctl(), by howl.
* 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.
* 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 a "saved" list item off of the Symbol type to store /stack'ed stuff. * Implement stack push|pop|list for all 6 symbol types. * Nix the "line/global" tracking for symbols * Rename "filename" tracking for symbols to "package" * Create clone_arglist() to clone an arglist, duh. * Change "user_variable_stub" symbol field to be an integer * Stash the stubbed filename in "user_variable" if stub is set.
* Begin massive refactorization of alias.c, redefining "Alias" as "Symbol" * Refactor parse_line() with a bunch of front end call_* functions. * And a general parse_line() front end, "runcmds()". * Roll builtin expandos in with the user variables * Roll variables and commands together into one name space. HUZZAH! * Nix the caches for the global name space, for now. * I definitely broke /stack alias|assign here. I'll fix it later. * Inline expandos are now officially strings instead of a single char. * Fix bug with $unshift() that popped up. * Move after_expando() to ircaux.c. I think it belongs there more.
Unify functions with commands/aliases. HUZZAH!
Optimize some stuff.
* Fix up parse_command() to get aliases and built in commands from aliases. * This unifies commands and alias name spaces. HUZZAH!
*** WARNING **** WARNING *** WARNING *** WARNING *** This project is half finished. I think this stuff works, but I can't be held responsible if something breaks. Please wait until I finish the rest of this project before getting unhappy with me for breaking stuff. *** WARNING **** WARNING *** WARNING *** WARNING *** * Split alias item to hold commands and variables separately * Nix COMMAND_COMPLETION keybinding. Script replacement forthcoming. * Nix "Use your nickname as alias for /me" feature. * Nix automatic command completion (ie, /whoi no longer expands to /whois) * Work towards not using 'command' var in builtin commands. * This will allow me to get rid of 'server_func' in builtin command data type * Nix the 'flags' var in builtin command data type. * Nix the 'serv_command' var in builtin command data type. * Create 'init_builtin_commands' to run at startup, add commands to alias * Shimmy find_cmd_alias to ignore built in commands for now. Not for long! * So built in commands should be hung off of aliases now. * Create 'builtins' script that aliases some previously builtin commands. * Load this script from global. Don't forget to alarm users.
* Nix auto-append-of-$* feature (args_flag to expand_alias/parse_inline) * Fix provided scripts to add $* when necessary. * Fix up Makefile, configure, et al, to use epic5/ directories.
Implement infinite recursion detector and thwarter. It requires a #define in config.h, the future of which I have not decided yet.
* Numerous updates/changes/fixes to DCC, functions, scripts, /EXEC, the new math parser, as per UPDATES and KNOWNBUGS. One potential incompatibility is in the change to $open(). (as per UPDATES)
Fix bug 5 -- panic when you do $push(:foo ) [and $unshift() too]
* Convert parse_line_with_return() to call_lambda_function().
* Rename 'dcc()' to 'dcc_cmd()' so we can use dcc as variable
* Garbage collect unused 'irc_path' global variable.
* Add --with-warns to configure to do FreeBSD "WARNS" like compiler checks
* Many hundreds of changes to improve the "quality of code" in epic, including:
* - Treat all literal strings as (const char *) and fix const correctness.
* - Mopping up all remaining const-correctness issues
* - Do not "launder" a (const char *) to a (char *) in string searches, (ala
strchr) but rather return a ssize_t offset value.
* - Particular, MatchingBracket() returns (ssize_t) and not (char *).
* - Eliminate all "shadow" variable names by changing them to something else.
* - Eliminate most function decls that do not include a prototype list.
* - Add prototypes for all extern functions that are missing them.
* - Ensure most function pointers include a prototype list.
* - In term.c, most of those (char *)'s are really (const char *)'s.
* - Explicitly specify 'static' functions as 'static'
* - Ensure every function is either 'static' or has a prototype.
* - Eliminate (unsigned) < (signed) type comparisons.
* Hopefully you should not notice any changes!
A lot more cleanup. Namespace scope changing within aliases now works. -wd
Okay. User input is now handled specially, and parse_command() will not accept incomplete command names anymore. -wd
Getting ready for a branch merge (don't worry, I'm merging epic's HEAD on to my tree, not the other way around! :) -wd
Whee. Preliminary work is done. I've converted things to use hash tables instead of alists (if this doesn't work out, I'll go back to alists). Namespaces exist, but are not yet addable. That will come. I'm very sure things are still a bit unstable, but the absolute basics of adding variables/functions and executing/retrieving them works. That was my first milestone. -wd
Add $joinstr() and let $jot() work on floating point variables.
Fix typo, increment commit_id which I forgot to do. :) -wd
Initial import into CVS
Initial revision
| CVS Admin |
Powered by ViewCVS 0.9.2 |