This is patch05 to PennMUSH 1.7.2. After applying this patch, you will
have version 1.7.2p5.
To apply this patch, save it to a file in your top-level MUSH directory,
and do the following:
patch -p0 < 1.7.2-patch05
make
If you use GNU patch 2.2, you probably want the above to be 'patch -b -p0',
not just 'patch -p0'.
Then @shutdown and restart your MUSH.
In this patch:
* Fixed a password encryption problem with SHS.
* Fixed a potential crash with @cloning objects on channels
* More bugfixes, mostly cosmetic or relatively minor.
- Alan/Javelin
Prereq: 1.7.2p4
Index: Patchlevel
*** Patchlevel.orig Tue, 24 Feb 1998 09:39:51 -0600 dunemush (pennmush/h/12_Patchlevel 1.5 640) 0.20
--- Patchlevel Mon, 02 Mar 1998 10:50:32 -0600 dunemush (pennmush/h/12_Patchlevel 1.5 640) 0.20(w)
***************
*** 1,2 ****
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.2p4
--- 1,2 ----
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.2p5
Index: CHANGES
*** CHANGES.orig Tue, 24 Feb 1998 09:39:51 -0600 dunemush (pennmush/h/9_CHANGES 1.9 640) 0.20
--- CHANGES Wed, 04 Mar 1998 09:49:31 -0600 dunemush (pennmush/h/9_CHANGES 1.9 640) 0.20(w)
***************
*** 15,20 ****
--- 15,46 ----
==========================================================================
+ Version 1.7.2 patchlevel 5 March 2, 1998
+
+ Fixes:
+ * @cloning an object on a channel could crash the MUSH. Report by
+ Mordak@ATS.
+ * You couldn't add 2 objects with the same name to a channel.
+ Report by Mordak@ATS.
+ * Help for inc() fixed. Brian@M*U*S*H
+ * On Win32, the text file indexes are now properly sorted,
+ and things work ok if you don't have a text file defined. [NJG]
+ * Wiz objects couldn't add players to channels. Report by Mike@M*U*S*H
+ * Compile problem with fork and win32 fixed. [TAP]
+ * You shouldn't get nospoof notification from your own emits. [TN]
+ * You no longer get nospoof notification from every @chat, only
+ from @cemit.
+ * @lock obj=here or @lock obj=exit failed. Report by Luke@M*U*S*H
+ * The MUSH announces where it's sending stderr when it starts up. [NJG]
+ * If there was nothing on the queue, and no user activity,
+ the MUSH could wait as long as 999 seconds before checking to
+ see if it should do anything (like a dump, a shutdown, idling
+ someone out, etc.) This has been changed to 5 seconds.
+ Report by NJG.
+ * Encryption buffer for SHS encryption was too small, could cause
+ password problems. [NJG]
+
+
Version 1.7.2 patchlevel 4 February 24, 1998
Fixes:
Index: options.h.dist
*** options.h.dist.orig Fri, 13 Feb 1998 14:31:28 -0600 dunemush (pennmush/d/36_options.h. 1.1 640) 0.20
--- options.h.dist Mon, 02 Mar 1998 12:06:32 -0600 dunemush (pennmush/d/36_options.h. 1.1 640) 0.20(w)
***************
*** 115,121 ****
/* If defined, use the info_slave to get information from identd and DNS,
* instead of having the MUSH do it directly. This may help reduce lag
! * from new logins.
*/
/* #define INFO_SLAVE /* */
--- 115,121 ----
/* If defined, use the info_slave to get information from identd and DNS,
* instead of having the MUSH do it directly. This may help reduce lag
! * from new logins. This does _not_ work under Win32.
*/
/* #define INFO_SLAVE /* */
Index: hdrs/extchat.h
*** hdrs/extchat.h.orig Wed, 18 Feb 1998 10:48:44 -0600 dunemush (pennmush/e/0_extchat.h 1.3 640) 0.20
--- hdrs/extchat.h Mon, 02 Mar 1998 11:16:11 -0600 dunemush (pennmush/e/0_extchat.h 1.3 640) 0.20(w)
***************
*** 174,180 ****
/* Some globals */
extern int num_channels;
! extern void channel_broadcast _((CHAN *channel, int checkquiet, const char *fmt,...));
extern CHANUSER *onchannel _((dbref who, CHAN *c));
extern void init_chatdb _((void));
extern int load_chatdb _((FILE * fp));
--- 174,180 ----
/* Some globals */
extern int num_channels;
! extern void channel_broadcast _((CHAN *channel, int flags, const char *fmt,...));
extern CHANUSER *onchannel _((dbref who, CHAN *c));
extern void init_chatdb _((void));
extern int load_chatdb _((FILE * fp));
Index: hdrs/version.h
*** hdrs/version.h.orig Tue, 24 Feb 1998 09:39:51 -0600 dunemush (pennmush/e/22_version.h 1.5 640) 0.20
--- hdrs/version.h Mon, 02 Mar 1998 10:50:44 -0600 dunemush (pennmush/e/22_version.h 1.5 640) 0.20(w)
***************
*** 1,2 ****
! #define VERSION "PennMUSH version 1.7.2 patchlevel 4 [2/24/98]"
! #define SHORTVN "PennMUSH 1.7.2p4"
--- 1,2 ----
! #define VERSION "PennMUSH version 1.7.2 patchlevel 5 [3/2/98]"
! #define SHORTVN "PennMUSH 1.7.2p5"
Index: src/boolexp.c
*** src/boolexp.c.orig Fri, 13 Feb 1998 14:32:30 -0600 dunemush (pennmush/e/29_boolexp.c 1.1 640) 0.20
--- src/boolexp.c Mon, 02 Mar 1998 10:17:06 -0600 dunemush (pennmush/e/29_boolexp.c 1.1 640) 0.20(w)
***************
*** 233,239 ****
b->type = BOOLEXP_CONST;
/* do the match */
! b->thing = match_result(parse_player, tbuf1, TYPE_THING, MAT_OBJECTS);
if (b->thing == NOTHING) {
notify(parse_player,
--- 233,239 ----
b->type = BOOLEXP_CONST;
/* do the match */
! b->thing = match_result(parse_player, tbuf1, TYPE_THING, MAT_EVERYTHING);
if (b->thing == NOTHING) {
notify(parse_player,
Index: src/bsd.c
*** src/bsd.c.orig Tue, 24 Feb 1998 09:39:51 -0600 dunemush (pennmush/e/30_bsd.c 1.5 640) 0.20
--- src/bsd.c Mon, 02 Mar 1998 12:07:27 -0600 dunemush (pennmush/e/30_bsd.c 1.5 640) 0.20(w)
***************
*** 24,29 ****
--- 24,32 ----
#define EWOULDBLOCK WSAEWOULDBLOCK
#define MAXHOSTNAMELEN 32
void shutdown_checkpoint _((void));
+ #ifdef INFO_SLAVE
+ #undef INFO_SLAVE
+ #endif
#else /* WIN32 */
#include <sys/file.h>
#ifdef I_SYS_TIME
***************
*** 410,415 ****
--- 413,419 ----
if (!newerr) {
fprintf(stderr, "Unable to open %s. Error output to stderr.\n", errlog);
} else {
+ fprintf(stderr, "Redirecting output to: %s\n", errlog);
if (!freopen(errlog, "a", stderr)) {
printf("Ack! Failed reopening stderr!");
exit(1);
***************
*** 887,899 ****
}
i = 0;
if (
! (newstate[TA_BOLD] && (newstate[TA_BOLD] != state[TA_BOLD])) ||
! (newstate[TA_REV] && (newstate[TA_REV] != state[TA_REV])) ||
! (newstate[TA_BLINK] && (newstate[TA_BLINK] != state[TA_BLINK])) ||
! (newstate[TA_ULINE] && (newstate[TA_ULINE] != state[TA_ULINE])) ||
! (color && newstate[TA_FGC] && (newstate[TA_FGC] != state[TA_FGC])) ||
! (color && newstate[TA_BGC] && (newstate[TA_BGC] != state[TA_BGC]))
! ) {
safe_chr(ESC_CHAR, t, &o);
safe_chr('[', t, &o);
i = 0;
--- 891,903 ----
}
i = 0;
if (
! (newstate[TA_BOLD] && (newstate[TA_BOLD] != state[TA_BOLD])) ||
! (newstate[TA_REV] && (newstate[TA_REV] != state[TA_REV])) ||
! (newstate[TA_BLINK] && (newstate[TA_BLINK] != state[TA_BLINK])) ||
! (newstate[TA_ULINE] && (newstate[TA_ULINE] != state[TA_ULINE])) ||
! (color && newstate[TA_FGC] && (newstate[TA_FGC] != state[TA_FGC])) ||
! (color && newstate[TA_BGC] && (newstate[TA_BGC] != state[TA_BGC]))
! ) {
safe_chr(ESC_CHAR, t, &o);
safe_chr('[', t, &o);
i = 0;
***************
*** 922,928 ****
}
if (state[TA_BOLD] || state[TA_REV] ||
state[TA_BLINK] || state[TA_ULINE] ||
! (color && (state[TA_FGC] || state[TA_BGC])))
safe_str(ANSI_NORMAL, t, &o);
break;
}
--- 926,932 ----
}
if (state[TA_BOLD] || state[TA_REV] ||
state[TA_BLINK] || state[TA_ULINE] ||
! (color && (state[TA_FGC] || state[TA_BGC])))
safe_str(ANSI_NORMAL, t, &o);
break;
}
***************
*** 1088,1094 ****
if ((flags & NA_PONLY) && (poutput != NA_PUEBLO))
continue;
! if (nsfunc && Nospoof(target)) {
if (!havespoof) {
nsfunc(nospoof, speaker, func, fdata);
havespoof = 1;
--- 1092,1098 ----
if ((flags & NA_PONLY) && (poutput != NA_PUEBLO))
continue;
! if (nsfunc && Nospoof(target) && (target != speaker)) {
if (!havespoof) {
nsfunc(nospoof, speaker, func, fdata);
havespoof = 1;
***************
*** 4119,4130 ****
#ifdef I_STDARG
void
! channel_broadcast(CHAN *channel, int checkquiet, const char *fmt,...)
#else
void
! channel_broadcast(channel, checkquiet, va_alist)
CHAN *channel;
! int checkquiet;
va_dcl
#endif
{
--- 4123,4134 ----
#ifdef I_STDARG
void
! channel_broadcast(CHAN *channel, int flags, const char *fmt,...)
#else
void
! channel_broadcast(channel, flags, va_alist)
CHAN *channel;
! int flags; /* 0x1 = checkquiet, 0x2 = nospoof */
va_dcl
#endif
{
***************
*** 4150,4157 ****
va_end(args);
nac.u = ChanUsers(channel);
! nac.checkquiet = checkquiet;
! notify_anything(orator, na_channel, &nac, ns_esnotify, 0, tbuf1);
}
void
--- 4154,4161 ----
va_end(args);
nac.u = ChanUsers(channel);
! nac.checkquiet = (flags & 0x1) ? 1 : 0;
! notify_anything(orator, na_channel, &nac, (flags & 0x2) ? ns_esnotify : NULL, 0, tbuf1);
}
void
Index: src/cque.c
*** src/cque.c.orig Fri, 13 Feb 1998 14:32:30 -0600 dunemush (pennmush/e/40_cque.c 1.1 640) 0.20
--- src/cque.c Tue, 03 Mar 1998 15:23:48 -0600 dunemush (pennmush/e/40_cque.c 1.1 640) 0.20(w)
***************
*** 485,491 ****
* queue when they have one second to go.
*/
! min = 1000;
for (point = qwait; point; point = point->next) {
curr = point->left - mudtime;
--- 485,491 ----
* queue when they have one second to go.
*/
! min = 5;
for (point = qwait; point; point = point->next) {
curr = point->left - mudtime;
Index: src/create.c
*** src/create.c.orig Fri, 13 Feb 1998 14:32:30 -0600 dunemush (pennmush/e/41_create.c 1.1 640) 0.20
--- src/create.c Wed, 04 Mar 1998 09:37:43 -0600 dunemush (pennmush/e/41_create.c 1.1 640) 0.20(w)
***************
*** 510,515 ****
--- 510,518 ----
if (can_pay_fees(player, OBJECT_DEPOSIT(Pennies(thing)))) {
clone = new_object();
memcpy(&db[clone], &db[thing], sizeof(struct object));
+ #ifdef CHAT_SYSTEM
+ Chanlist(clone) = NULL;
+ #endif
db[clone].name = NULL;
SET(db[clone].name, Name(thing));
s_Pennies(clone, Pennies(thing));
***************
*** 521,531 ****
add_lock(clone, ll->type, dup_bool(ll->key));
}
}
! db[clone].zone = db[thing].zone;
! db[clone].parent = db[thing].parent;
! db[clone].flags &= ~WIZARD;
#ifdef ROYALTY_FLAG
! db[clone].flags &= ~ROYALTY;
#endif
#ifdef USE_WARNINGS
db[clone].warnings = 0; /* zap warnings */
--- 524,534 ----
add_lock(clone, ll->type, dup_bool(ll->key));
}
}
! Zone(clone) = Zone(thing);
! Parent(clone) = Parent(thing);
! Flags(clone) &= ~WIZARD;
#ifdef ROYALTY_FLAG
! Flags(clone) &= ~ROYALTY;
#endif
#ifdef USE_WARNINGS
db[clone].warnings = 0; /* zap warnings */
***************
*** 535,543 ****
* other clone has, but update the creation time */
db[clone].creation_time = time((time_t *) 0);
#endif
! db[clone].powers = 0; /* zap powers */
! db[clone].contents = db[clone].location = db[clone].next = NOTHING;
notify(player, tprintf("Cloned: Object #%d.", clone));
moveto(clone, Location(player));
#ifdef LOCAL_DATA
--- 538,546 ----
* other clone has, but update the creation time */
db[clone].creation_time = time((time_t *) 0);
#endif
! Powers(clone) = 0; /* zap powers */
! Contents(clone) = Location(clone) = Next(clone) = NOTHING;
notify(player, tprintf("Cloned: Object #%d.", clone));
moveto(clone, Location(player));
#ifdef LOCAL_DATA
***************
*** 566,573 ****
add_lock(clone, ll->type, dup_bool(ll->key));
}
}
! db[clone].zone = Zone(thing);
! db[clone].parent = Parent(thing);
Flags(clone) = Flags(thing);
Flags(clone) &= ~WIZARD;
#ifdef ROYALTY_FLAG
--- 569,576 ----
add_lock(clone, ll->type, dup_bool(ll->key));
}
}
! Zone(clone) = Zone(thing);
! Parent(clone) = Parent(thing);
Flags(clone) = Flags(thing);
Flags(clone) &= ~WIZARD;
#ifdef ROYALTY_FLAG
***************
*** 576,582 ****
#ifdef USE_WARNINGS
db[clone].warnings = 0; /* zap warnings */
#endif
! db[clone].powers = 0; /* zap powers */
notify(player, "Exit cloned.");
#ifdef LOCAL_DATA
db[clone].local_data = NULL;
--- 579,585 ----
#ifdef USE_WARNINGS
db[clone].warnings = 0; /* zap warnings */
#endif
! Powers(clone) = 0; /* zap powers */
notify(player, "Exit cloned.");
#ifdef LOCAL_DATA
db[clone].local_data = NULL;
Index: src/extchat.c
*** src/extchat.c.orig Wed, 18 Feb 1998 10:48:44 -0600 dunemush (pennmush/e/45_extchat.c 1.4 640) 0.20
--- src/extchat.c Wed, 04 Mar 1998 09:49:08 -0600 dunemush (pennmush/e/45_extchat.c 1.4 640) 0.20(w)
***************
*** 496,502 ****
for (;
p->next && (strcasecmp(Name(CUdbref(p->next)), Name(CUdbref(user))) <= 0);
p = p->next) ;
! if (!strcasecmp(Name(CUdbref(p)), Name(CUdbref(user)))) {
/* Don't add the same user twice! */
mush_free((Malloc_t) user, "CHANUSER");
return 0;
--- 496,502 ----
for (;
p->next && (strcasecmp(Name(CUdbref(p->next)), Name(CUdbref(user))) <= 0);
p = p->next) ;
! if (CUdbref(p) == CUdbref(user)) {
/* Don't add the same user twice! */
mush_free((Malloc_t) user, "CHANUSER");
return 0;
***************
*** 722,731 ****
notify(player, "I don't recognize that channel.");
return;
}
- if (!Chan_Ok_Type(chan, player)) {
- notify(player, "Sorry, you're the wrong type of thing.");
- return;
- }
if (!strcasecmp(com, "who")) {
do_channel_who(player, chan);
return;
--- 722,727 ----
***************
*** 748,753 ****
--- 744,753 ----
notify(player, "Invalid target.");
return;
}
+ if (!Chan_Ok_Type(chan, victim)) {
+ notify(player, "Sorry, wrong type of thing for that channel.");
+ return;
+ }
if (!strcasecmp("on", com)) {
if (Guest(player)) {
notify(player, "Guests are not allowed to join channels.");
***************
*** 928,934 ****
notify(player, "What do you want to emit?");
return;
}
! channel_broadcast(chan, 0, "%s", msg);
if (!onchannel(player, chan))
notify(player, tprintf("Cemit to channel %s: %s",
ChanName(chan), msg));
--- 928,934 ----
notify(player, "What do you want to emit?");
return;
}
! channel_broadcast(chan, 2, "%s", msg);
if (!onchannel(player, chan))
notify(player, tprintf("Cemit to channel %s: %s",
ChanName(chan), msg));
***************
*** 1254,1260 ****
if (SUPPORT_PUEBLO)
sprintf(numusers, "%cA XCH_CMD=\"@channel/who %s\" XCH_HINT=\"See who's on this channel now\"%c%5ld%c/A%c", TAG_START, ChanName(c), TAG_END, ChanNumUsers(c), TAG_START, TAG_END);
else
! sprintf(numusers, "%5d", ChanNumUsers(c));
notify(player,
tprintf("%-30s %s %8d [%c%c%c%c%c%c %c%c%c%c%c%c] [%-3s %c%c]",
ChanName(c),
--- 1254,1260 ----
if (SUPPORT_PUEBLO)
sprintf(numusers, "%cA XCH_CMD=\"@channel/who %s\" XCH_HINT=\"See who's on this channel now\"%c%5ld%c/A%c", TAG_START, ChanName(c), TAG_END, ChanNumUsers(c), TAG_START, TAG_END);
else
! sprintf(numusers, "%5ld", ChanNumUsers(c));
notify(player,
tprintf("%-30s %s %8d [%c%c%c%c%c%c %c%c%c%c%c%c] [%-3s %c%c]",
ChanName(c),
Index: src/filecopy.c
*** src/filecopy.c.orig Mon, 16 Feb 1998 14:44:40 -0600 dunemush (pennmush/e/47_filecopy.c 1.2 640) 0.20
--- src/filecopy.c Tue, 03 Mar 1998 11:10:29 -0600 dunemush (pennmush/e/47_filecopy.c 1.2 640) 0.20(w)
***************
*** 49,54 ****
--- 49,58 ----
char *p;
+ /* If outputfile is an empty string, forget it. */
+ if (!outputfile || !*outputfile)
+ return FALSE;
+
// extract the directory from the path name
strcpy(directory, path);
***************
*** 237,254 ****
long indb_size, outdb_size, panicdb_size;
! ConcatenateFiles("txt\\hlp\\*.hlp", options.help_file);
! ConcatenateFiles("txt\\nws\\*.nws", options.news_file);
! ConcatenateFiles("txt\\evt\\*.evt", options.events_file);
! #ifdef RULES
ConcatenateFiles("txt\\rul\\*.rul", RULES_FILE);
! #endif
! makeindex(options.help_file, options.help_index);
! makeindex(options.news_file, options.news_index);
! makeindex(options.events_file, options.events_index);
! #ifdef RULES
makeindex(RULES_FILE, RULESINDX);
! #endif
indb_OK = CheckDatabase(options.input_db, &indb_time, &indb_size);
outdb_OK = CheckDatabase(options.output_db, &outdb_time, &outdb_size);
--- 241,256 ----
long indb_size, outdb_size, panicdb_size;
! ConcatenateFiles("txt\\hlp\\*.hlp", HELPTEXT);
! ConcatenateFiles("txt\\nws\\*.nws", NEWS_FILE);
! ConcatenateFiles("txt\\evt\\*.evt", EVENT_FILE);
ConcatenateFiles("txt\\rul\\*.rul", RULES_FILE);
! ConcatenateFiles("txt\\idx\\*.idx", INDEX_FILE);
! makeindex(HELPTEXT, HELPINDX);
! makeindex(NEWS_FILE, NEWSINDX);
! makeindex(EVENT_FILE, EVENTINDX);
makeindex(RULES_FILE, RULESINDX);
! makeindex(INDEX_FILE, INDEXINDX);
indb_OK = CheckDatabase(options.input_db, &indb_time, &indb_size);
outdb_OK = CheckDatabase(options.output_db, &outdb_time, &outdb_size);
Index: src/game.c
*** src/game.c.orig Mon, 23 Feb 1998 14:31:54 -0600 dunemush (pennmush/f/6_game.c 1.4 640) 0.20
--- src/game.c Mon, 02 Mar 1998 12:07:27 -0600 dunemush (pennmush/f/6_game.c 1.4 640) 0.20(w)
***************
*** 473,479 ****
--- 473,483 ----
nofork = 1;
else
nofork = !forking || (paranoid_dump == 2); /* Don't fork for dump/debug */
+ #ifdef WIN32
+ nofork = 1;
+ #endif
if (!nofork) {
+ #ifndef WIN32
child = fork();
if (child < 0) {
/* Oops, fork failed. Let's do a nofork dump */
***************
*** 492,497 ****
--- 496,502 ----
setpriority(PRIO_PROCESS, child, 8);
#endif
}
+ #endif
#endif
} else {
if (DUMP_NOFORK_MESSAGE && *DUMP_NOFORK_MESSAGE)
Index: src/mkindx.c
*** src/mkindx.c.orig Mon, 23 Feb 1998 14:31:54 -0600 dunemush (pennmush/f/17_mkindx.c 1.2 640) 0.20
--- src/mkindx.c Tue, 03 Mar 1998 11:13:05 -0600 dunemush (pennmush/f/17_mkindx.c 1.2 640) 0.20(w)
***************
*** 1,16 ****
/* mkindx.c */
! /* order the entries alphabetically - define this unless you
! * have memory problems This code by Pavel Kankovsky (PeaK)
! */
! #ifndef EMBEDDED_MKINDX
! #define ORDERED_INDEXFILE
! #endif
#ifdef EMBEDDED_MKINDX
#include "conf.h"
#endif
- #include "config.h"
#include <stdio.h>
#include <stdlib.h>
--- 1,11 ----
/* mkindx.c */
! #include "config.h"
! #include "copyrite.h"
#ifdef EMBEDDED_MKINDX
#include "conf.h"
#endif
#include <stdio.h>
#include <stdlib.h>
***************
*** 33,43 ****
} tlist;
tlist *top = NULL;
- #ifdef ORDERED_INDEXFILE
help_indx *topics = NULL;
unsigned num_topics = 0;
unsigned top_topics = 0;
- #endif
void write_topic _((FILE * out, long int p, int l));
void flush_topics _((FILE * out));
--- 28,36 ----
***************
*** 75,81 ****
int l;
{
tlist *cur, *nextptr;
- #ifdef ORDERED_INDEXFILE
help_indx *temp;
for (cur = top; cur; cur = nextptr) {
nextptr = cur->next;
--- 68,73 ----
***************
*** 96,115 ****
strcpy(temp->topic, cur->topic);
free(cur);
}
- #else
- help_indx temp;
- for (cur = top; cur; cur = nextptr) {
- nextptr = cur->next;
- temp.pos = p;
- temp.len = l;
- strcpy(temp.topic, cur->topic);
- if (fwrite(&temp, sizeof(help_indx), 1, out) < 1) {
- fprintf(stderr, "error writing\n");
- exit(-1);
- }
- free(cur);
- }
- #endif
top = NULL;
}
--- 88,93 ----
***************
*** 124,130 ****
top = cur;
}
- #ifdef ORDERED_INDEXFILE
static int topic_cmp _((const help_indx *s1, const help_indx *s2));
static int
topic_cmp(s1, s2)
--- 102,107 ----
***************
*** 134,152 ****
int k = strcasecmp(s1->topic, s2->topic);
return k;
}
- #endif
void
flush_topics(out)
FILE *out;
{
- #ifdef ORDERED_INDEXFILE
qsort(topics, num_topics, sizeof(help_indx), topic_cmp);
if ((Size_t) fwrite(topics, sizeof(help_indx), num_topics, out) < num_topics) {
fprintf(stderr, "error writing\n");
exit(-1);
}
- #endif
}
--- 111,126 ----
***************
*** 172,177 ****
--- 146,154 ----
#endif
#ifdef EMBEDDED_MKINDX
+ /* Quietly ignore null values for the file */
+ if (!inputfile || !*inputfile || !outputfile || !*outputfile)
+ return 0;
if ((rfp = fopen(inputfile, "rb")) == NULL) {
fprintf(stderr, "can't open %s for reading\n", inputfile);
exit(-1);
Index: src/mycrypt.c
*** src/mycrypt.c.orig Fri, 13 Feb 1998 14:32:30 -0600 dunemush (pennmush/f/19_mycrypt.c 1.1 640) 0.20
--- src/mycrypt.c Mon, 02 Mar 1998 10:17:24 -0600 dunemush (pennmush/f/19_mycrypt.c 1.1 640) 0.20(w)
***************
*** 36,42 ****
{
#if (CRYPT_SYSTEM == 2)
SHS_INFO shsInfo;
! static char crypt_buff[15];
#endif
#if (CRYPT_SYSTEM == 0)
--- 36,42 ----
{
#if (CRYPT_SYSTEM == 2)
SHS_INFO shsInfo;
! static char crypt_buff[70];
#endif
#if (CRYPT_SYSTEM == 0)
Index: game/mushcnf.dst
*** game/mushcnf.dst.orig Mon, 16 Feb 1998 15:51:40 -0600 dunemush (pennmush/g/28_mushcnf.ds 1.2 640) 0.20
--- game/mushcnf.dst Mon, 02 Mar 1998 12:06:43 -0600 dunemush (pennmush/g/28_mushcnf.ds 1.2 640) 0.20(w)
***************
*** 204,210 ****
# should I fork a concurrent process to do database dumps?
# If I do, your memory requirements will double during the dump.
# If I don't, the MUSH will pause while it dumps.
! # if you're low on memory, don't do this.
forking_dump yes
# If you're not forking, you get a bunch of messages that you
--- 204,211 ----
# should I fork a concurrent process to do database dumps?
# If I do, your memory requirements will double during the dump.
# If I don't, the MUSH will pause while it dumps.
! # If you're low on memory, don't do this.
! # If you're on Win32, don't do this; fork() is not defined.
forking_dump yes
# If you're not forking, you get a bunch of messages that you
Index: game/txt/hlp/pennfunc.hlp
*** game/txt/hlp/pennfunc.hlp.orig Sat, 14 Feb 1998 09:54:48 -0600 dunemush (pennmush/h/1_pennfunc.h 1.2 640) 0.20
--- game/txt/hlp/pennfunc.hlp Tue, 03 Mar 1998 11:14:23 -0600 dunemush (pennmush/h/1_pennfunc.h 1.2 640) 0.20(w)
***************
*** 999,1005 ****
inc(<integer>)
inc(<string-ending-in-integer>)
! Inc returns the integer minus 1. If given a string that ends in an integer,
it increments only the final integer portion. That is:
> think inc(3)
--- 999,1005 ----
inc(<integer>)
inc(<string-ending-in-integer>)
! Inc returns the integer plus 1. If given a string that ends in an integer,
it increments only the final integer portion. That is:
> think inc(3)
Index: game/txt/hlp/penntop.hlp
*** game/txt/hlp/penntop.hlp.orig Fri, 13 Feb 1998 14:34:10 -0600 dunemush (pennmush/h/4_penntop.hl 1.1 640) 0.20
--- game/txt/hlp/penntop.hlp Tue, 03 Mar 1998 11:15:30 -0600 dunemush (pennmush/h/4_penntop.hl 1.1 640) 0.20(w)
***************
*** 378,385 ****
has been maintaining this code.
Additional credits go to:
! Talek and Rhyanna: co-developers with Javelin
! Nick Gammon: win32 post
Pavel Kankovsky and Thorvald Natvig: rewrites of things
Naomi Novik: rewrite of the help files for 1.7.0
Ambar (PernMUSH): debugging and lots of other stuff (PernMUSH v1.14)
--- 378,386 ----
has been maintaining this code.
Additional credits go to:
! Talek and Trivian: co-developers with Javelin
! Rhyanna: former co-developer
! Nick Gammon: win32 port Sylvia: os2 port
Pavel Kankovsky and Thorvald Natvig: rewrites of things
Naomi Novik: rewrite of the help files for 1.7.0
Ambar (PernMUSH): debugging and lots of other stuff (PernMUSH v1.14)
Index: game/txt/hlp/pennvers.hlp
*** game/txt/hlp/pennvers.hlp.orig Tue, 24 Feb 1998 09:39:51 -0600 dunemush (pennmush/h/5_pennvers.h 1.5 640) 0.20
--- game/txt/hlp/pennvers.hlp Wed, 04 Mar 1998 10:06:54 -0600 dunemush (pennmush/h/5_pennvers.h 1.5 640) 0.20(w)
***************
*** 30,35 ****
--- 30,57 ----
1.50p11, 1.50p12, 1.50p13, 1.50p14, 1.50p15, 1.6.0, 1.6.1, 1.6.2,
1.6.3, 1.6.4, 1.6.5, 1.6.6, 1.6.7, 1.6.8, 1.6.9, 1.6.10, 1.7.0, 1.7.1
+ Version 1.7.2 patchlevel 5 March 2, 1998
+
+ Fixes:
+ * @cloning an object on a channel could crash the MUSH. Report by
+ Mordak@ATS.
+ * You couldn't add 2 objects with the same name to a channel.
+ Report by Mordak@ATS.
+ * Wiz objects couldn't add players to channels. Report by Mike@M*U*S*H
+ * Compile problem with fork and win32 fixed. [TAP]
+ * You shouldn't get nospoof notification when the speaker isn't
+ spoofing. [TN]
+ * You shouldn't get nospoof notification from @chat, only @cemit
+ * @lock obj=here or @lock obj=exit failed. Report by Luke@M*U*S*H
+ * The MUSH announces where it's sending stderr when it starts up. [NJG]
+ * If there was nothing on the queue, and no user activity,
+ the MUSH could wait as long as 999 seconds before checking to
+ see if it should do anything (like a dump, a shutdown, idling
+ someone out, etc.) This has been changed to 5 seconds.
+ Report by NJG.
+ * Encryption buffer for SHS encryption was too small, could cause
+ password problems. [NJG]
+
Version 1.7.2 patchlevel 4 February 24, 1998
Fixes: