CVS log for epic4/source/expr2.c |
![]() |
Request diff between arbitrary revisions
* Fix space-related panic. See UPDATES for all the gruesome details. * Add ALT_CHAR to the list of things that can be mangled.
More compiler nits fixed. Nothing worth fretting over.
* Fix raw listen DCCs not obey /SET DCC_TIMEOUT. * Added outputting of long long ints to new math parser.
Unconditionally do (long long) integer math in the new math parser if your system supports (long long). I suppose on some systems this will make math slower, but that seems like a small price to pay for having integers that will actually support IP addresses! $info(o) will inclue the letter 'l' if the host client is working with 64 bit integers in the new math parser. Please note that the old math parser has not changed, and still only supports 32 bit integers, and that won't change for backwards compatability. If you really really really need 64 bit integers, think about changing to the new math parser.
* 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)
* 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.
typedef the integer type used in the new math parser, so CE can putter around with using 'long long's.
Overhaul of malloced string handling functions: * Convert m_[s]c3cat[_s]() to malloc_strcat_wordlist_c() * Nix m_e3cat(), m_s3cat(), m_s3cat_s(), m_3cat() * Nix m_ec3cat(), m_sc3cat(), m_sc3cat_s(), m_c3cat(). * Convert m_dupchar() to malloc_dupchar(). * Convert m_strndup() to malloc_strndup(). * Make malloc_strcpy/malloc_strcat/malloc_strcat2/malloc_strcat_wordlist macros * Convert m_2dup() to malloc_strdup2(). * Convert m_3cat() to malloc_strcat2[_c](). * Convert m_3dup() to malloc_strdup3(). * Convert m_ec3cat() to malloc_strcat2_c() * Use strlcat_c() in $repeat() instead of strlcpy(). whee! * Sanity check first arg to $regcomp(), to avoid crashes. * Don't pass NULL to bsearch(), even if 'nmem' is 0 [$remws()] * Nix the original malloc_strcpy (supplanted by malloc_strcpy_c) * Comment out all the deprecated functions
Commit 548 * Nix channel_window, duplicate of get_winref_by_channame() * Make arglist processor panic if it sees an argtype that doesn't exist. * Fix bug with * operator in exprs like (a ? b : *c) in new expression parser. * Fix theoretical crash with deleting hooks from /on window. Bleh. * General cleanups in if.c. * Fix /timer -list acting all wacky. * Fix compilation warnings, you know the deal...
* Convert parse_line_with_return() to call_lambda_function().
Convert m_strdup() to malloc_strdup().
Cut over m_sprintf() to malloc_sprintf().
* 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!
Nominally remove all uses of "unsafe" functions: (Commit 506)
* Convert all uses of strcpy() to strlcpy()
* Convert all uses of strcat() to strlcat()
* Convert all uses of strmcpy() to strlcpy()
* Convert all uses of strmcat() to strlcat()
* Convert all uses of sprintf() to snprintf()
* As much as possible, use 'sizeof var' in snprintf/strlcpy/strlcat.
* Qualify the size of some global vars so we can sizeof() them.
* Nuke strmcpy(), strmcat(), strmcat_ue(), strmccat(),
* Change strmopencat() to strlopencat().
* Change strmpcat() to strlpcat().
* Fix switch_hostname so it doesn't return a (const) string.
* Fix TimerTimeout so it doesn't return a (const) Timeval.
* Change things like (ret) to do ret while (0); for when "ret" is "{}".
* Fix initialization for load_level
* Stop passing in static strings into io(), so we can modify them.
* Make messages passed to io() more informative to the user.
* Fix CTCP FINGER handler not to assume (struct pw) strings can be overwritten.
* Use (socklen_t) and not an (int) for socket sizes.
* Don't return a value in a void function...
* Don't use return value of process_dcc_chat_ctcps() for assignment.
* Don't put semicolons after function bodies
* Fix $getopt() to save 'input_size' so we can use it with strl*().
* Convert all uses of stpcpy() to strlcat() and strlopencat().
* Nix checks for stpcpy() in configure -- regen configure.
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
Another merge.
* Explicitly set "mask" to 0 in cs_alist_hash(), so it is initialized * Change type() to typecmd() to avoid name conflicts. * Change 'dot' to 'dotlocl' to avoid name conflicts. * Change 'op' to 'reduce' to avoid name conflicts. * Fix a typo in the error message from /window kill. * Add a panic to detect larne's recent bug that I fixed, just in case. * Constify the "path" argument to uzfopen(). * Make sure return value of strlen() is assigned to a 'size_t' not an 'int'. * Split load() into load() and load1(), load1() reads a file opened by load(). * Now load() is "interpretation-free", and load1() can be replaced. * Fix various minor compile-time issues. * Change %P status line expando to give more useful information.
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
* Update copyright notices. erf. * Fix short circuiting in new math parser not to spuriously error * #ifdef out all uses of bogus 'ceiling_of_display' for now. * Pull "initial" part of resize_window_display() into new_window() * Then forcibly call resize_window_display() to update old_display_size. * And then call make_window_current() last to make sure window updates there. * But I think that calling recalc_win_curs_and_disp_ip might be bogus there. * Make notes that calling make_window_current() can kill the window.
Add $joinstr() and let $jot() work on floating point variables.
No functional changes, just removal of unecessary whitespace at the end of lines. From adm.
Initial import into CVS
Initial revision
| CVS Admin |
Powered by ViewCVS 0.9.2 |