X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=ncurses%2Fbase%2Flib_screen.c;fp=ncurses%2Flib_screen.c;h=3038393c226676bb3957f43c7a72642a3794e61e;hb=0eb88fc5281804773e2a0c7a488a4452463535ce;hp=f12b2dec4ed4a1cb3b26da12630c2a77accf0010;hpb=661078ddbde3ce0f3b06e95642fbb9b5fef7dca1;p=ncurses.git diff --git a/ncurses/lib_screen.c b/ncurses/base/lib_screen.c similarity index 94% rename from ncurses/lib_screen.c rename to ncurses/base/lib_screen.c index f12b2dec..3038393c 100644 --- a/ncurses/lib_screen.c +++ b/ncurses/base/lib_screen.c @@ -38,7 +38,7 @@ #include #include /* exit_ca_mode, non_rev_rmcup */ -MODULE_ID("$Id: lib_screen.c,v 1.11 1998/02/11 12:13:56 tom Exp $") +MODULE_ID("$Id: lib_screen.c,v 1.15 1999/07/24 20:05:29 tom Exp $") static time_t dumptime; @@ -125,11 +125,12 @@ int putwin(WINDOW *win, FILE *filep) int scr_restore(const char *file) { - FILE *fp; + FILE *fp = 0; T((T_CALLED("scr_restore(%s)"), _nc_visbuf(file))); - if ((fp = fopen(file, "rb")) == 0) + if (_nc_access(file, R_OK) < 0 + || (fp = fopen(file, "rb")) == 0) returnCode(ERR); else { @@ -142,11 +143,12 @@ int scr_restore(const char *file) int scr_dump(const char *file) { - FILE *fp; + FILE *fp = 0; T((T_CALLED("scr_dump(%s)"), _nc_visbuf(file))); - if ((fp = fopen(file, "wb")) == 0) + if (_nc_access(file, W_OK) < 0 + || (fp = fopen(file, "wb")) == 0) returnCode(ERR); else { @@ -159,17 +161,16 @@ int scr_dump(const char *file) int scr_init(const char *file) { - FILE *fp; + FILE *fp = 0; struct stat stb; T((T_CALLED("scr_init(%s)"), _nc_visbuf(file))); -#ifdef exit_ca_mode if (exit_ca_mode && non_rev_rmcup) returnCode(ERR); -#endif /* exit_ca_mode */ - if ((fp = fopen(file, "rb")) == 0) + if (_nc_access(file, R_OK) < 0 + || (fp = fopen(file, "rb")) == 0) returnCode(ERR); else if (fstat(STDOUT_FILENO, &stb) || stb.st_mtime > dumptime) returnCode(ERR);