Mercurial > hg > early-roguelike
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);