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.
This commit is contained in:
parent
e857a2cec6
commit
00142507db
3 changed files with 12 additions and 1 deletions
|
|
@ -358,6 +358,16 @@ md_unlink(char *file)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FILE *
|
||||||
|
md_fdopen(int fd, char *mode)
|
||||||
|
{
|
||||||
|
#ifdef _WIN32
|
||||||
|
return( _fdopen(fd, mode) );
|
||||||
|
#else
|
||||||
|
return( fdopen(fd, mode) );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
md_chmod(const char *filename, int mode)
|
md_chmod(const char *filename, int mode)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -145,7 +145,7 @@ int amount, aflag;
|
||||||
*/
|
*/
|
||||||
if ((fd = scorefd) < 0)
|
if ((fd = scorefd) < 0)
|
||||||
return;
|
return;
|
||||||
outf = (FILE *) fdopen(fd, "w");
|
outf = (FILE *) md_fdopen(fd, "w");
|
||||||
for (scp = top_ten; scp <= &top_ten[9]; scp++) {
|
for (scp = top_ten; scp <= &top_ten[9]; scp++) {
|
||||||
scp->sc_score = 0;
|
scp->sc_score = 0;
|
||||||
for (i = 0; i < 80; i++)
|
for (i = 0; i < 80; i++)
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ int md_chmod(const char *filename, int mode);
|
||||||
char *md_crypt(const char *key, const char *salt);
|
char *md_crypt(const char *key, const char *salt);
|
||||||
int md_dsuspchar(void);
|
int md_dsuspchar(void);
|
||||||
int md_erasechar(void);
|
int md_erasechar(void);
|
||||||
|
FILE * md_fdopen(int fd, char *mode);
|
||||||
char *md_gethomedir(void);
|
char *md_gethomedir(void);
|
||||||
char *md_getusername(void);
|
char *md_getusername(void);
|
||||||
uid_t md_getuid(void);
|
uid_t md_getuid(void);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue