# HG changeset patch # User John "Elwin" Edwards # Date 1438608463 14400 # Node ID f4f6734771e0930139a89828346c55eb86b5e747 # Parent 7c552cbc6ad96d923e8f175ba2984b724fdbfe0f 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. diff -r 7c552cbc6ad9 -r f4f6734771e0 srogue/mdport.c --- 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) { diff -r 7c552cbc6ad9 -r f4f6734771e0 srogue/rip.c --- 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++) diff -r 7c552cbc6ad9 -r f4f6734771e0 srogue/rogue.h --- 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);