diff -rcN epic4-0.9.5/KNOWNBUGS epic4-0.9.6/KNOWNBUGS *** epic4-0.9.5/KNOWNBUGS Wed Aug 16 11:09:00 2000 --- epic4-0.9.6/KNOWNBUGS Wed Aug 16 19:50:17 2000 *************** *** 2,12 **** KNOWN ERRATA (eg, bugs, or unresolved requests): ------------------------------------------------ ! * Zinx wants me to add $aliasctl(* getpackage *), still pending on the list. [See http://www.epicsol.org/PROJECTS for things to come in the future] [See http://www.epicsol.org/CHANGELOG for things that changed in the past] THE CHANGELOG SINCE THE LAST RELEASE: ------------------------------------- ! * Fix bugs where a channel could be current on more than one window. --- 2,14 ---- KNOWN ERRATA (eg, bugs, or unresolved requests): ------------------------------------------------ ! [See http://www.epicsol.org/PROJECTS for things to come in the future] [See http://www.epicsol.org/CHANGELOG for things that changed in the past] THE CHANGELOG SINCE THE LAST RELEASE: ------------------------------------- ! * Fix bug where /window channel just plain didn't do the right thing. ! * Fix bug where set_channel_window had a line in the wrong place. ! * Fix bug where destroy_call_stack() didn't reset wind_index to -1. diff -rcN epic4-0.9.5/doc/SILLINESS epic4-0.9.6/doc/SILLINESS *** epic4-0.9.5/doc/SILLINESS Tue Aug 15 12:42:46 2000 --- epic4-0.9.6/doc/SILLINESS Wed Aug 16 19:47:29 2000 *************** *** 27,30 **** epic4-0.9.2 Exacerbate epic4-0.9.3 Persnickety epic4-0.9.4 Harangue ! --- 27,31 ---- epic4-0.9.2 Exacerbate epic4-0.9.3 Persnickety epic4-0.9.4 Harangue ! epic4-0.9.5 Lollygag ! epic4-0.9.6 Serendipity diff -rcN epic4-0.9.5/source/alias.c epic4-0.9.6/source/alias.c *** epic4-0.9.5/source/alias.c Wed Aug 16 11:14:24 2000 --- epic4-0.9.6/source/alias.c Wed Aug 16 18:31:51 2000 *************** *** 2239,2245 **** */ void destroy_call_stack (void) { ! wind_index = 0; new_free((char **)&call_stack); } --- 2239,2245 ---- */ void destroy_call_stack (void) { ! wind_index = -1; new_free((char **)&call_stack); } diff -rcN epic4-0.9.5/source/irc.c epic4-0.9.6/source/irc.c *** epic4-0.9.5/source/irc.c Wed Aug 16 10:50:32 2000 --- epic4-0.9.6/source/irc.c Wed Aug 16 18:55:13 2000 *************** *** 13,26 **** /* * irc_version is what $J returns, its the common-name for the version. */ ! const char irc_version[] = "EPIC4-0.9.5"; ! const char useful_info[] = "epic4 0 9 5"; /* * internal_version is what $V returns, its the integer-id for the * version, and corresponds to the date of release, YYYYMMDD. */ ! const char internal_version[] = "20000816"; /* * As a way to poke fun at the current rage of naming releases after --- 13,26 ---- /* * irc_version is what $J returns, its the common-name for the version. */ ! const char irc_version[] = "EPIC4-0.9.6"; ! const char useful_info[] = "epic4 0 9 6"; /* * internal_version is what $V returns, its the integer-id for the * version, and corresponds to the date of release, YYYYMMDD. */ ! const char internal_version[] = "20000817"; /* * As a way to poke fun at the current rage of naming releases after *************** *** 28,34 **** * reality, I have decided to start doing that with EPIC. These names * are intentionally and maliciously silly. Complaints will be ignored. */ ! const char ridiculous_version_name[] = "Lollygag"; #define __need_putchar_x__ #include "status.h" --- 28,34 ---- * reality, I have decided to start doing that with EPIC. These names * are intentionally and maliciously silly. Complaints will be ignored. */ ! const char ridiculous_version_name[] = "Serendipity"; #define __need_putchar_x__ #include "status.h" diff -rcN epic4-0.9.5/source/names.c epic4-0.9.6/source/names.c *** epic4-0.9.5/source/names.c Wed Aug 16 10:47:31 2000 --- epic4-0.9.6/source/names.c Wed Aug 16 18:08:20 2000 *************** *** 325,334 **** --- 325,352 ---- if ((new_c = find_channel(name, server))) { was_window = new_c->window; + + /* + * Defensive panics to make sure we don't do anything + * that will lead to a crash later. + */ + if (was_current && was_window == NULL) + panic("Channel [%s] is current but it's not " + "on a window!", name); + if (was_current && my_stricmp(name, was_window->current_channel)) + panic("Channel [%s] is current, but not in " + "the window it thinks it is!", name); + if (!was_current && !my_stricmp(name, was_window->current_channel)) + panic("Channel [%s] is not current, but it's window " + "thinks that it is!", name); + destroy_channel(new_c); malloc_strcpy(&(new_c->channel), name); new_c->server = server; } + else if (was_current) + panic("Channel [%s] is current but it couldn't find it!", + name); else new_c = create_channel(name, server); *************** *** 337,342 **** --- 355,364 ---- if (was_current) { + if (was_window == NULL) + panic("Channel [%s] cannot be both current " + "and windowless!", name); + new_c->window = was_window; set_channel_by_refnum(was_window->refnum, name); update_all_windows(); *************** *** 1418,1425 **** "another server. This is probably a bug. " "[%s] [%d] [%d]", channel, tmp->server, window->server); - tmp->window = window; } } /* --- 1440,1447 ---- "another server. This is probably a bug. " "[%s] [%d] [%d]", channel, tmp->server, window->server); } + tmp->window = window; } /* .