changeset 190:f4f6734771e0

srogue: add and use md_fdopen(). The implementation was copied from rogue4. Using fdopen() is necessary because the scorefile needs both encread() and encwrite(). For some reason I have failed to discover, one of them uses FILE *'s and the other uses file descriptors.
author John "Elwin" Edwards
date Mon, 03 Aug 2015 09:27:43 -0400
parents 7c552cbc6ad9
children fb25a62680c7
files srogue/mdport.c srogue/rip.c srogue/rogue.h
diffstat 3 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/srogue/mdport.c	Mon Aug 03 09:05:15 2015 -0400
+++ b/srogue/mdport.c	Mon Aug 03 09:27:43 2015 -0400
@@ -358,6 +358,16 @@
 #endif
 }
 
+FILE *
+md_fdopen(int fd, char *mode)
+{
+#ifdef _WIN32
+    return( _fdopen(fd, mode) );
+#else
+    return( fdopen(fd, mode) );
+#endif
+}
+
 int
 md_chmod(const char *filename, int mode)
 {
--- a/srogue/rip.c	Mon Aug 03 09:05:15 2015 -0400
+++ b/srogue/rip.c	Mon Aug 03 09:27:43 2015 -0400
@@ -145,7 +145,7 @@
 	 */
 	if ((fd = scorefd) < 0)
 		return;
-	outf = (FILE *) fdopen(fd, "w");
+	outf = (FILE *) md_fdopen(fd, "w");
 	for (scp = top_ten; scp <= &top_ten[9]; scp++) {
 		scp->sc_score = 0;
 		for (i = 0; i < 80; i++)
--- a/srogue/rogue.h	Mon Aug 03 09:05:15 2015 -0400
+++ b/srogue/rogue.h	Mon Aug 03 09:27:43 2015 -0400
@@ -40,6 +40,7 @@
 char	*md_crypt(const char *key, const char *salt);
 int	md_dsuspchar(void);
 int	md_erasechar(void);
+FILE *	md_fdopen(int fd, char *mode);
 char	*md_gethomedir(void);
 char	*md_getusername(void);
 uid_t	md_getuid(void);