summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/io.c26
-rwxr-xr-xsrc/io.h3
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);