diff srogue/rip.c @ 173:78fa1d0e5d25

srogue: open the score and log files when the program starts. Super-Rogue can now use the same privilege-dropping scheme as the other games.
author John "Elwin" Edwards
date Sat, 01 Aug 2015 15:12:11 -0400
parents 458df24e973d
children f4f6734771e0
line wrap: on
line diff
--- a/srogue/rip.c	Thu Jul 23 19:28:12 2015 -0400
+++ b/srogue/rip.c	Sat Aug 01 15:12:11 2015 -0400
@@ -47,6 +47,9 @@
 
 #define RIP_LINES (sizeof rip / (sizeof (char *)))
 
+extern int scorefd;
+extern FILE *logfile;
+
 char	*killname();
 void writelog(int amount, int aflag, char monst);
 
@@ -140,7 +143,7 @@
 	/*
 	 * Open file and read list
 	 */
-	if ((fd = open(scorefile, O_RDWR | O_CREAT, 0666)) < 0)
+	if ((fd = scorefd) < 0)
 		return;
 	outf = (FILE *) fdopen(fd, "w");
 	for (scp = top_ten; scp <= &top_ten[9]; scp++) {
@@ -221,11 +224,12 @@
 {
 	char logmessage[220], ltemp[80], mlev[40];
 	char *killer;
-	FILE *logfi;
 
 	if (waswizard)
 		return;
 #ifdef LOGFILE
+	if (logfile == NULL)
+		return;
 	sprintf(logmessage, "%d %d %s %d ", time(NULL), amount, whoami,
 		him->s_lvl);
 	if (amulet)
@@ -247,11 +251,8 @@
 	else
 		return;
 	strcat(logmessage, ltemp);
-	logfi = fopen(LOGFILE, "a");
-	if (logfi == NULL)
-		return;
-	fprintf(logfi, "%s", logmessage);
-	fclose(logfi);
+	fprintf(logfile, "%s", logmessage);
+	fclose(logfile);
 #endif
 	return;
 }