[Pkg-nethack-devel] nethack/patches 13_simple_mail.dpatch,NONE,1.1 00list,1.15,1.16 14_common_config.dpatch,1.4,1.5
Joshua Kwan
joshk-guest@quantz.debian.org
Mon, 05 Jan 2004 10:40:52 +0000
Update of /cvsroot/pkg-nethack/nethack/patches
In directory quantz:/tmp/cvs-serv6871/patches
Modified Files:
00list 14_common_config.dpatch
Added Files:
13_simple_mail.dpatch
Log Message:
3.4.3-3 final - add 13_simple_mail.dpatch for future use with dgamelaunch
- does not break existing games.
Index: 00list
===================================================================
RCS file: /cvsroot/pkg-nethack/nethack/patches/00list,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- 00list 22 Dec 2003 09:49:21 -0000 1.15
+++ 00list 5 Jan 2004 10:40:50 -0000 1.16
@@ -7,6 +7,7 @@
09_use_gnu_source
10_gnome_add_quiver
12_lisp_windowing
+13_simple_mail
14_common_config
15_recover_errormsg
16_pixmapdir
--- NEW FILE: 13_simple_mail.dpatch ---
#! /bin/sh -e
## 13_simple_mail.dpatch by Joshua Kwan <joshk@triplehelix.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Simple mail
if [ $# -ne 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch) patch -f --dry-run -p1 < $0 && patch -f --no-backup-if-mismatch -p1 < $0;;
-unpatch) patch -f --dry-run -R -p1 < $0 && patch -f --no-backup-if-mismatch -R -p1 < $0;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1;;
esac
exit 0
diff -urN orig/nethack-3.4.3/include/decl.h nethack-3.4.3/include/decl.h
--- orig/nethack-3.4.3/include/decl.h 2003-12-07 15:39:13.000000000 -0800
+++ nethack-3.4.3/include/decl.h 2004-01-03 15:57:34.000000000 -0800
@@ -385,6 +385,10 @@
};
#endif /* AUTOPICKUP_EXCEPTIONS */
+#ifdef SIMPLE_MAIL
+E int mailckfreq;
+#endif
+
#undef E
#endif /* DECL_H */
diff -urN orig/nethack-3.4.3/include/flag.h nethack-3.4.3/include/flag.h
--- orig/nethack-3.4.3/include/flag.h 2003-12-07 15:39:13.000000000 -0800
+++ nethack-3.4.3/include/flag.h 2004-01-03 15:57:34.000000000 -0800
@@ -175,6 +175,9 @@
uchar bouldersym; /* symbol for boulder display */
boolean travel1; /* first travel step */
coord travelcc; /* coordinates for travel_cache */
+#ifdef SIMPLE_MAIL
+ boolean simplemail; /* simple mail format $NAME:$MESSAGE */
+#endif
#ifdef WIZARD
boolean sanity_check; /* run sanity checks */
boolean mon_polycontrol; /* debug: control monster polymorphs */
diff -urN orig/nethack-3.4.3/include/unixconf.h nethack-3.4.3/include/unixconf.h
--- orig/nethack-3.4.3/include/unixconf.h 2003-12-07 15:39:13.000000000 -0800
+++ nethack-3.4.3/include/unixconf.h 2004-01-03 15:57:34.000000000 -0800
@@ -193,7 +193,6 @@
# endif
#endif
-#define MAILCKFREQ 50
#endif /* MAIL */
diff -urN orig/nethack-3.4.3/src/mail.c nethack-3.4.3/src/mail.c
--- orig/nethack-3.4.3/src/mail.c 2003-12-07 15:39:13.000000000 -0800
+++ nethack-3.4.3/src/mail.c 2004-01-03 16:07:21.000000000 -0800
@@ -5,6 +5,8 @@
#include "hack.h"
#ifdef MAIL
+#include <fcntl.h>
+#include <errno.h>
#include "mail.h"
/*
@@ -36,6 +38,8 @@
STATIC_DCL boolean FDECL(md_rush,(struct monst *,int,int));
STATIC_DCL void FDECL(newmail, (struct mail_info *));
+int mailckfreq = 0;
+
extern char *viz_rmin, *viz_rmax; /* line-of-sight limits (vision.c) */
#ifdef OVL0
@@ -464,11 +468,15 @@
void
ckmailstatus()
{
+#ifdef SIMPLE_MAIL
+ if (mailckfreq == 0)
+ mailckfreq = (iflags.simplemail ? 5 : 10);
+#else
+ mailckfreq = 10;
+#endif
+
if(!mailbox || u.uswallow || !flags.biff
-# ifdef MAILCKFREQ
- || moves < laststattime + MAILCKFREQ
-# endif
- )
+ || moves < laststattime + mailckfreq)
return;
laststattime = moves;
@@ -501,9 +509,67 @@
readmail(otmp)
struct obj *otmp;
{
-# ifdef DEF_MAILREADER /* This implies that UNIX is defined */
+#ifdef DEF_MAILREADER
register const char *mr = 0;
+#endif /* DEF_MAILREADER */
+#ifdef SIMPLE_MAIL
+ if (iflags.simplemail)
+ {
+ FILE* mb = fopen(mailbox, "r");
+ char curline[80], *msg;
+ boolean seen_one_already = FALSE;
+ struct flock fl = { 0 };
+
+ fl.l_type = F_RDLCK;
+ fl.l_whence = SEEK_SET;
+ fl.l_start = 0;
+ fl.l_len = 0;
+
+ if (!mb)
+ goto bail;
+
+ /* Allow this call to block. */
+ if (fcntl (fileno (mb), F_SETLKW, &fl) == -1)
+ goto bail;
+
+ errno = 0;
+
+ while (fgets(curline, 80, mb) != NULL)
+ {
+ fl.l_type = F_UNLCK;
+ fcntl (fileno(mb), F_UNLCK, &fl);
+
+ pline("There is a%s message on this scroll.",
+ seen_one_already ? "nother" : "");
+
+ msg = strchr(curline, ':');
+
+ if (!msg)
+ goto bail;
+
+ *msg = '\0';
+ msg++;
+
+ pline ("This message is from '%s'.", curline);
+
+ msg[strlen(msg) - 1] = '\0'; /* kill newline */
+ pline ("It reads: \"%s\".", msg);
+
+ seen_one_already = TRUE;
+ errno = 0;
+
+ fl.l_type = F_RDLCK;
+ fcntl(fileno(mb), F_SETLKW, &fl);
+ }
+ fl.l_type = F_UNLCK;
+ fcntl(fileno(mb), F_UNLCK, &fl);
+
+ fclose(mb);
+ return;
+ }
+# endif /* SIMPLE_MAIL */
+# ifdef DEF_MAILREADER /* This implies that UNIX is defined */
display_nhwindow(WIN_MESSAGE, FALSE);
if(!(mr = nh_getenv("MAILREADER")))
mr = DEF_MAILREADER;
@@ -512,15 +578,21 @@
(void) execl(mr, mr, (char *)0);
terminate(EXIT_FAILURE);
}
-# else
-# ifndef AMS /* AMS mailboxes are directories */
+# else
+# ifndef AMS /* AMS mailboxes are directories */
display_file(mailbox, TRUE);
-# endif /* AMS */
-# endif /* DEF_MAILREADER */
+# endif /* AMS */
+# endif /* DEF_MAILREADER */
/* get new stat; not entirely correct: there is a small time
window where we do not see new mail */
getmailstatus();
+ return;
+
+#ifdef SIMPLE_MAIL
+bail:
+ pline("It appears to be all gibberish."); /* bail out _professionally_ */
+#endif
}
# endif /* UNIX */
@@ -587,10 +659,7 @@
static int laststattime = 0;
if(u.uswallow || !flags.biff
-# ifdef MAILCKFREQ
- || moves < laststattime + MAILCKFREQ
-# endif
- )
+ || moves < laststattime + mailckfreq)
return;
laststattime = moves;
diff -urN orig/nethack-3.4.3/sys/unix/unixmain.c nethack-3.4.3/sys/unix/unixmain.c
--- orig/nethack-3.4.3/sys/unix/unixmain.c 2003-12-07 15:39:13.000000000 -0800
+++ nethack-3.4.3/sys/unix/unixmain.c 2004-01-03 15:57:34.000000000 -0800
@@ -54,7 +54,9 @@
register char *dir;
#endif
boolean exact_username;
-
+#ifdef SIMPLE_MAIL
+ char* e_simple = NULL;
+#endif
#if defined(__APPLE__)
/* special hack to change working directory to a resource fork when
running from finder --sam */
@@ -84,6 +86,12 @@
}
#endif
+#ifdef SIMPLE_MAIL
+ /* figure this out early */
+ e_simple = nh_getenv("SIMPLEMAIL");
+ iflags.simplemail = (e_simple ? 1 : 0);
+#endif
+
hname = argv[0];
hackpid = getpid();
(void) umask(0777 & ~FCMASK);
Index: 14_common_config.dpatch
===================================================================
RCS file: /cvsroot/pkg-nethack/nethack/patches/14_common_config.dpatch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- 14_common_config.dpatch 19 Dec 2003 06:10:54 -0000 1.4
+++ 14_common_config.dpatch 5 Jan 2004 10:40:50 -0000 1.5
@@ -117,13 +117,14 @@
# endif
/*
-@@ -214,7 +213,8 @@
+@@ -214,7 +213,9 @@
* since the user might create files in a directory of his choice.
* Of course SECURE is meaningful only if HACKDIR is defined.
*/
-/* #define SECURE */ /* do setuid(getuid()) after chdir() */
+#define SECURE /* do setuid(getuid()) after chdir() */
+#define PIXMAPDIR "/usr/share/pixmaps/nethack/"
++#define SIMPLE_MAIL
/*
* If it is desirable to limit the number of people that can play Hack