#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;
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
{
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
{
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);