From 4f0c71585d9dfe09060ee750a6528c44ddd2c1b9 Mon Sep 17 00:00:00 2001 From: Frederic Culot Date: Mon, 27 Jul 2009 21:00:41 +0000 Subject: io_file_exist(): new function --- src/io.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'src/io.c') diff --git a/src/io.c b/src/io.c index ed4266f..094042b 100755 --- a/src/io.c +++ b/src/io.c @@ -1,4 +1,4 @@ -/* $calcurse: io.c,v 1.74 2009/07/26 20:26:15 culot Exp $ */ +/* $calcurse: io.c,v 1.75 2009/07/27 21:00:41 culot Exp $ */ /* * Calcurse - text-based organizer @@ -1499,14 +1499,30 @@ check_directory (char *dir, int *missing) (*missing)++; } -void -io_check_file (char *file, int *missing) +unsigned +io_file_exist (char *file) { FILE *fd; + + if (!file) + return 0; + + if ((fd = fopen (file, "r")) == 0) + return 0; + (void)fclose (fd); + + return 1; +} + +void +io_check_file (char *file, int *missing) +{ errno = 0; - if ((fd = fopen (file, "r")) == NULL) + if (!io_file_exist (file)) { + FILE *fd; + if (missing) (*missing)++; if ((fd = fopen (file, "w")) == NULL) @@ -1515,8 +1531,8 @@ io_check_file (char *file, int *missing) file, strerror (errno)); exit_calcurse (EXIT_FAILURE); } + file_close (fd, __FILE_POS__); } - file_close (fd, __FILE_POS__); } /* -- cgit v1.2.3-54-g00ecf