Module Name:    src
Committed By:   dholland
Date:           Sat Apr 24 00:56:14 UTC 2010

Modified Files:
        src/games/larn: scores.c

Log Message:
Handle the "diedtime" field of the player log (which is not the high
scores file, the append-only log of all games) as int32_t instead of
time_t. Log files from before the 64-bit time_t change can now be read
again; however, log files from the last year of -current are hosed.
All none of you who play larn, take note...


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/games/larn/scores.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/games/larn/scores.c
diff -u src/games/larn/scores.c:1.19 src/games/larn/scores.c:1.20
--- src/games/larn/scores.c:1.19	Fri Apr  2 21:40:00 2010
+++ src/games/larn/scores.c	Sat Apr 24 00:56:14 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: scores.c,v 1.19 2010/04/02 21:40:00 christos Exp $	*/
+/*	$NetBSD: scores.c,v 1.20 2010/04/24 00:56:14 dholland Exp $	*/
 
 /*
  * scores.c			 Larn is copyrighted 1986 by Noah Morgan.
@@ -26,7 +26,7 @@
  */
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: scores.c,v 1.19 2010/04/02 21:40:00 christos Exp $");
+__RCSID("$NetBSD: scores.c,v 1.20 2010/04/24 00:56:14 dholland Exp $");
 #endif				/* not lint */
 #include <sys/types.h>
 #include <sys/times.h>
@@ -64,7 +64,7 @@
 
 struct log_fmt {		/* 102 bytes struct for the log file 				 */
 	long            score;	/* the players score 								 */
-	time_t          diedtime;	/* time when game was over 							 */
+	int32_t          diedtime;	/* time when game was over 							 */
 	short           cavelev;/* level in caves 									 */
 	short           diff;	/* difficulty player played at 						 */
 #ifdef EXTRA
@@ -774,6 +774,8 @@
 	char  *p;
 	static char  q[] = "?";
 	struct stat     stbuf;
+	time_t t;
+
 	lcreat((char *) 0);
 	if (lopen(logfile) < 0) {
 		lprintf("Can't locate log file <%s>\n", logfile);
@@ -785,7 +787,8 @@
 	}
 	for (n = stbuf.st_size / sizeof(struct log_fmt); n > 0; --n) {
 		lrfill((char *) &logg, sizeof(struct log_fmt));
-		if ((p = ctime(&logg.diedtime)) == NULL)
+		t = logg.diedtime;
+		if ((p = ctime(&t)) == NULL)
 			p = q;
 		else {
 			p[16] = '\n';

Reply via email to