extern void strbuf_reserve(strbuf_t *, int);
extern void strbuf_empty(strbuf_t *);
extern void strbuf_nl_to_crlf(strbuf_t *);
-extern char *nonconst(const char *, char *);
+extern char *nonconst(const char *, char *, size_t);
extern int swapbits(int, int, int);
extern void shuffle_int_array(int *, int);
/* note: the snprintf CPP wrapper includes the "fmt" argument in "..."
}
char *
-nonconst(const char *str, char *buf)
+nonconst(const char *str, char *buf, size_t bufsz)
{
char *retval = emptystr;
if (str && buf)
- if ((int) strlen(str) < BUFSZ - 1) {
+ if (strlen(str) < (bufsz - 1)) {
Strcpy(buf, str);
retval = buf;
}
static boolean md_stop(coord *, coord *);
static boolean md_rush(struct monst *, int, int);
static void newmail(struct mail_info *);
+#if defined(SIMPLE_MAIL) || defined(SERVER_ADMIN_MSG)
+static void read_simplemail(char *mbox, boolean adminmsg);
+#endif
#if !defined(UNIX) && !defined(VMS)
int mustgetmail = -1;
#ifdef SERVER_ADMIN_MSG
static struct stat ost,nst;
static long lastchk = 0;
+ char adminbuf[BUFSZ];
if (g.moves < lastchk + SERVER_ADMIN_MSG_CKFREQ) return;
lastchk = g.moves;
if (!stat(SERVER_ADMIN_MSG, &nst)) {
if (nst.st_mtime > ost.st_mtime)
- read_simplemail(SERVER_ADMIN_MSG, TRUE);
+ read_simplemail(nonconst(SERVER_ADMIN_MSG, adminbuf,
+ sizeof adminbuf), TRUE);
ost.st_mtime = nst.st_mtime;
}
#endif /* SERVER_ADMIN_MSG */