From 4f0c71585d9dfe09060ee750a6528c44ddd2c1b9 Mon Sep 17 00:00:00 2001
From: Frederic Culot <calcurse@culot.org>
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(-)

(limited to 'src')

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