]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/base/lib_screen.c
ncurses 5.0
[ncurses.git] / ncurses / base / lib_screen.c
similarity index 94%
rename from ncurses/lib_screen.c
rename to ncurses/base/lib_screen.c
index f12b2dec4ed4a1cb3b26da12630c2a77accf0010..3038393c226676bb3957f43c7a72642a3794e61e 100644 (file)
@@ -38,7 +38,7 @@
 #include <time.h>
 #include <term.h>      /* 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);