diff -BbupN --recursive circle30bpl13/ChangeLog circle30bpl13a/ChangeLog --- circle30bpl13/ChangeLog Wed May 27 16:46:19 1998 +++ circle30bpl13a/ChangeLog Thu Jun 4 10:16:26 1998 @@ -1,6 +1,8 @@ Release history: +Version 3.00 beta pl13 release: June 1, 1998 +Version 3.00 beta pl12 release: October 29, 1997 Version 3.00 beta pl12 release: October 29, 1997 Version 3.00 beta pl11 release: April 14, 1996 Version 3.00 beta pl10 release: March 11, 1996 @@ -1705,3 +1707,11 @@ change. 5/27/98 -- gg - act.wizard.c: do_set(): Added 'age' to "set." + +6/4/98 + +-- gg - shop.c: Extraneous log() statement was missed during sprintf()+log() + conversions. + +-- gg - comm.c: reap(): Added to take care of fork() with core_dump_unix(). + diff -BbupN --recursive circle30bpl13/src/comm.c circle30bpl13a/src/comm.c --- circle30bpl13/src/comm.c Wed Apr 1 11:30:59 1998 +++ circle30bpl13a/src/comm.c Wed Jun 3 19:44:32 1998 @@ -128,7 +128,9 @@ char *make_prompt(struct descriptor_data void check_idle_passwords(void); void heartbeat(int pulse); int set_sendbuf(socket_t s); - +#if defined(POSIX) +sigfunc *my_signal(int signo, sigfunc * func); +#endif /* extern fcnts */ void reboot_wizlists(void); @@ -1653,6 +1655,14 @@ RETSIGTYPE unrestrict_game(int sig) #ifdef CIRCLE_UNIX +/* clean up our zombie kids to avoid defunct processes */ +RETSIGTYPE reap(int sig) +{ + while (waitpid(-1, NULL, WNOHANG) > 0); + + my_signal(SIGCHLD, reap); +} + RETSIGTYPE checkpointing(int sig) { if (!tics) { @@ -1734,6 +1744,7 @@ void signal_setup(void) /* just to be on the safe side: */ my_signal(SIGHUP, hupsig); + my_signal(SIGCHLD, reap); #endif /* CIRCLE_MACINTOSH */ my_signal(SIGINT, hupsig); my_signal(SIGTERM, hupsig); diff -BbupN --recursive circle30bpl13/src/shop.c circle30bpl13a/src/shop.c --- circle30bpl13/src/shop.c Mon Mar 30 23:41:43 1998 +++ circle30bpl13a/src/shop.c Thu Jun 4 10:16:38 1998 @@ -569,7 +569,6 @@ struct obj_data *get_selling_obj(struct default: log("SYSERR: Illegal return value of %d from trade_with() (%s)", result, __FILE__); /* Someone might rename it... */ - log(buf); sprintf(buf, "%s An error has occurred.", GET_NAME(ch)); break; } diff -BbupN --recursive circle30bpl13/src/utils.h circle30bpl13a/src/utils.h --- circle30bpl13/src/utils.h Thu May 21 01:40:54 1998 +++ circle30bpl13a/src/utils.h Thu Jun 4 21:51:24 1998 @@ -173,7 +173,7 @@ void update_pos(struct char_data *victim /* Subtle bug, but works well for now. */ #define CHECK_PLAYER_SPECIAL(ch, var) \ - (((ch)->player_specials == &dummy_mob) ? (log("SYSERR: Mob using '"#var"' at %s:%d.", __FILE__, __LINE__), (var)) : (var)) + (*(((ch)->player_specials == &dummy_mob) ? (log("SYSERR: Mob using '"#var"' at %s:%d.", __FILE__, __LINE__), &(var)) : &(var))) #define MOB_FLAGS(ch) ((ch)->char_specials.saved.act) #define PLR_FLAGS(ch) ((ch)->char_specials.saved.act) @@ -292,7 +292,7 @@ void update_pos(struct char_data *victim #define GET_LAST_TELL(ch) CHECK_PLAYER_SPECIAL((ch), ((ch)->player_specials->last_tell)) #define GET_SKILL(ch, i) CHECK_PLAYER_SPECIAL((ch), ((ch)->player_specials->saved.skills[i])) -#define SET_SKILL(ch, i, pct) do { CHECK_PLAYER_SPECIAL((ch), (ch)->player_specials->saved.skills[i] = pct); } while(0) +#define SET_SKILL(ch, i, pct) do { CHECK_PLAYER_SPECIAL((ch), (ch)->player_specials->saved.skills[i]) = pct; } while(0) #define GET_EQ(ch, i) ((ch)->equipment[i])