XRogue: add and use more md_ functions.

Portable md_fileno() and md_unlink() have been added to state.c.
This commit is contained in:
John "Elwin" Edwards 2015-08-13 15:15:21 -04:00
parent 7d750a4410
commit b2ebcf72c9
2 changed files with 39 additions and 12 deletions

View file

@ -85,6 +85,8 @@
#include <process.h>
#endif
int md_fileno(FILE *fp);
#define READSTAT ((format_error == 0) && (read_error == 0))
#define WRITESTAT (write_error == 0)
@ -2924,8 +2926,9 @@ rs_write_scorefile(FILE *savef, struct sc_ent *entries, int count)
rs_read_scorefile(FILE *savef, struct sc_ent *entries, int count)
{
int i,available = 0;
int sfd = md_fileno(savef);
rs_read_int(fileno(savef), &available);
rs_read_int(sfd, &available);
if (end_of_file)
return(-1);
@ -2935,15 +2938,15 @@ rs_read_scorefile(FILE *savef, struct sc_ent *entries, int count)
for(i = 0; i < count; i++)
{
rs_read_ulong(fileno(savef), &entries[i].sc_score);
rs_read(fileno(savef), entries[i].sc_name, sizeof(entries[i].sc_name));
rs_read(fileno(savef), entries[i].sc_system, sizeof(entries[i].sc_system));
rs_read(fileno(savef), entries[i].sc_login, sizeof(entries[i].sc_login));
rs_read_short(fileno(savef), &entries[i].sc_flags);
rs_read_short(fileno(savef), &entries[i].sc_level);
rs_read_short(fileno(savef), &entries[i].sc_ctype);
rs_read_short(fileno(savef), &entries[i].sc_monster);
rs_read_short(fileno(savef), &entries[i].sc_quest);
rs_read_ulong(sfd, &entries[i].sc_score);
rs_read(sfd, entries[i].sc_name, sizeof(entries[i].sc_name));
rs_read(sfd, entries[i].sc_system, sizeof(entries[i].sc_system));
rs_read(sfd, entries[i].sc_login, sizeof(entries[i].sc_login));
rs_read_short(sfd, &entries[i].sc_flags);
rs_read_short(sfd, &entries[i].sc_level);
rs_read_short(sfd, &entries[i].sc_ctype);
rs_read_short(sfd, &entries[i].sc_monster);
rs_read_short(sfd, &entries[i].sc_quest);
}
return(0);
@ -3469,3 +3472,25 @@ md_normaluser(void)
setgid(getgid());
#endif
}
int
md_fileno(FILE *fp)
{
#ifdef _WIN32
return( _fileno(fp) );
#else
return( fileno(fp) );
#endif
}
int
md_unlink(char *file)
{
#ifdef _WIN32
chmod(file, 0600);
return( _unlink(file) );
#else
return(unlink(file));
#endif
}