diff --git a/src/region.c b/src/region.c index 0a9f86f5b..e89822141 100644 --- a/src/region.c +++ b/src/region.c @@ -891,7 +891,7 @@ long ttl; boolean expire_gas_cloud(p1, p2) genericptr_t p1; -genericptr_t p2; /* unused here */ +genericptr_t p2 UNUSED; { NhRegion *reg; int damage; diff --git a/src/restore.c b/src/restore.c index d62dc2c7f..ad027e1df 100644 --- a/src/restore.c +++ b/src/restore.c @@ -523,10 +523,10 @@ unsigned int *stuckid, *steedid; /* STEED */ #endif struct obj *otmp, *tmp_bc; char timebuf[15]; - int uid; + unsigned long uid; mread(fd, (genericptr_t) &uid, sizeof uid); - if (uid != getuid()) { /* strange ... */ + if (uid != (unsigned long)getuid()) { /* strange ... */ /* for wizard mode, issue a reminder; for others, treat it as an attempt to cheat and refuse to restore this file */ pline("Saved game was not yours."); @@ -701,7 +701,7 @@ STATIC_OVL int restlevelfile(fd, ltmp) register int fd; xchar ltmp; -#if defined(macintosh) && (defined(__SC__) || defined(__MRC__)) +#if defined(macintosh) && (defined(__SC__) || defined(__MRC__)) && !defined(MFLOPPY) # pragma unused(fd) #endif { @@ -901,6 +901,7 @@ register int fd; return(1); } +/*ARGSUSED*/ STATIC_OVL void rest_levl(fd, rlecomp) int fd; diff --git a/src/save.c b/src/save.c index 9e9078310..302b430d0 100644 --- a/src/save.c +++ b/src/save.c @@ -302,11 +302,12 @@ STATIC_OVL void savegamestate(fd, mode) register int fd, mode; { - int uid; + unsigned long uid; + #ifdef MFLOPPY count_only = (mode & COUNT_SAVE); #endif - uid = getuid(); + uid = (unsigned long)getuid(); bwrite(fd, (genericptr_t) &uid, sizeof uid); bwrite(fd, (genericptr_t) &context, sizeof(struct context_info)); bwrite(fd, (genericptr_t) &flags, sizeof(struct flag)); @@ -725,9 +726,9 @@ register unsigned num; { /* lint wants the 3rd arg of write to be an int; lint -p an unsigned */ #if defined(BSD) || defined(ULTRIX) || defined(WIN32) || defined(_MSC_VER) - failed = (write(fd, loc, (int)num) != (int)num); + failed = ((long)write(fd, loc, (int)num) != (long)num); #else /* e.g. SYSV, __TURBOC__ */ - failed = (write(fd, loc, num) != num); + failed = ((long)write(fd, loc, num) != (long)num); #endif } @@ -1190,33 +1191,31 @@ int fd; STATIC_OVL void save_msghistory(fd, mode) -register int fd, mode; +int fd, mode; { - char *msg, buf[BUFSZ]; - int msgcount = 0, msglen = 0; + char *msg; + int msgcount = 0, msglen; int minusone = -1; boolean init = TRUE; - /* Ask window port for each message in sequence */ - while ((msg = getmsghistory(init)) != 0) { + if (perform_bwrite(mode)) { + /* ask window port for each message in sequence */ + while ((msg = getmsghistory(init)) != 0) { init = FALSE; msglen = strlen(msg); - if (msglen < (BUFSZ-1)) - Strcpy(buf, msg); - else { - /* impossible */ - (void)strncpy(buf, msg, (BUFSZ - 1)); - buf[BUFSZ-1] = '\0'; - msglen = strlen(buf); - } + /* sanity: truncate if necessary (shouldn't happen); + no need to modify msg[] since terminator isn't written */ + if (msglen > BUFSZ - 1) msglen = BUFSZ - 1; bwrite(fd, (genericptr_t)&msglen, sizeof(msglen)); bwrite(fd, (genericptr_t)msg, msglen); ++msgcount; + } + bwrite(fd, (genericptr_t) &minusone, sizeof(int)); } - bwrite(fd, (genericptr_t) &minusone, sizeof(int)); #ifdef DEBUG_MSGCOUNT pline("Stored %d messages into savefile.", msgcount); #endif + /* note: we don't attempt to handle release_data() here */ } void