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 +++++++++++++++++++++----- src/io.h | 3 ++- 2 files changed, 23 insertions(+), 6 deletions(-) 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__); } /* diff --git a/src/io.h b/src/io.h index b68d11a..a22ca55 100755 --- a/src/io.h +++ b/src/io.h @@ -1,4 +1,4 @@ -/* $calcurse: io.h,v 1.25 2009/07/26 20:26:15 culot Exp $ */ +/* $calcurse: io.h,v 1.26 2009/07/27 21:00:41 culot Exp $ */ /* * Calcurse - text-based organizer @@ -74,6 +74,7 @@ void io_save_cal (conf_t *, io_save_display_t); void io_load_app (void); void io_load_todo (void); void io_load_keys (char *); +unsigned io_file_exist (char *); void io_check_file (char *, int *); int io_check_data_files (void); void io_startup_screen (unsigned, int); -- cgit v1.2.3-70-g09d2