return false;
}
-/* Returns true if file with name NAME exists. */
+/* Returns true if file with name NAME exists, and that file is not a
+ directory */
bool
fn_exists (const char *name)
{
struct stat temp;
- return stat (name, &temp) == 0;
+ if ( stat (name, &temp) != 0 )
+ return false;
+
+ return ! S_ISDIR (temp.st_mode);
}
\f
/* Environment variables. */
static FILE *
safety_violation (const char *fn)
{
- msg (SE, _("Not opening pipe file `%s' because SAFER option set."), fn);
+ msg (SE, _("Not opening pipe file `%s' because %s option set."), fn, "SAFER");
errno = EPERM;
return NULL;
}
return fclose (f);
}
-/* Creates a new file named FN with the given PERMISSIONS bits,
- and returns a stream for it or a null pointer on failure.
- MODE should be "w" or "wb". */
-FILE *
-create_stream (const char *fn, const char *mode, mode_t permissions)
-{
- int fd;
- FILE *stream;
-
- fd = open (fn, O_WRONLY | O_CREAT | O_TRUNC, permissions);
- if (fd < 0)
- return NULL;
-
- stream = fdopen (fd, mode);
- if (stream == NULL)
- {
- int save_errno = errno;
- close (fd);
- errno = save_errno;
- }
-
- return stream;
-}
/* A file's identity: