diff --git a/arogue7/mdport.c b/arogue7/mdport.c index 2b519b5..71e3c2f 100644 --- a/arogue7/mdport.c +++ b/arogue7/mdport.c @@ -175,6 +175,26 @@ md_unlink(char *file) #endif } +FILE * +md_fdopen(int fd, char *mode) +{ +#ifdef _WIN32 + return( _fdopen(fd, mode) ); +#else + return( fdopen(fd, mode) ); +#endif +} + +int +md_fileno(FILE *fp) +{ +#ifdef _WIN32 + return( _fileno(fp) ); +#else + return( fileno(fp) ); +#endif +} + int md_creat(char *file, int mode) { diff --git a/arogue7/rogue.h b/arogue7/rogue.h index d8c74a7..152e2aa 100644 --- a/arogue7/rogue.h +++ b/arogue7/rogue.h @@ -1303,3 +1303,5 @@ extern struct delayed_action f_list[MAXFUSES]; extern int demoncnt, fusecnt, between, chance; #define CCHAR(x) ( (char) (x & A_CHARTEXT) ) extern char *md_gethostname(), *md_getusername(), *md_gethomedir(), *md_getroguedir(), *md_crypt(); +extern FILE * md_fdopen(int fd, char *mode); +extern int md_fileno(FILE *fp); diff --git a/arogue7/save.c b/arogue7/save.c index 8dd8863..545e4d1 100644 --- a/arogue7/save.c +++ b/arogue7/save.c @@ -111,7 +111,7 @@ gotfile: */ if (save_file(savefd) == FALSE) { msg("Cannot create save file."); - unlink(file_name); + md_unlink(file_name); return(FALSE); } else return(TRUE); @@ -160,7 +160,7 @@ register int savefd; num_written = ENCWRITE(version, num_to_write, savefd); sprintf(prbuf,"%d x %d\n", LINES, COLS); ENCWRITE(prbuf,80,savefd); - savef = (FILE *) fdopen(savefd,"wb"); + savef = (FILE *) md_fdopen(savefd,"wb"); ret = rs_save_file(savef); fclose(savef); if (num_to_write == num_written && ret == 0) return(TRUE); diff --git a/arogue7/state.c b/arogue7/state.c index 8a8d6ee..b30bd35 100644 --- a/arogue7/state.c +++ b/arogue7/state.c @@ -79,7 +79,7 @@ rs_write(FILE *savef, void *ptr, size_t size) if (write_error) return(WRITESTAT); - if (encwrite(ptr, size, fileno(savef)) != size) + if (encwrite(ptr, size, md_fileno(savef)) != size) write_error = 1; return(WRITESTAT);