aboutsummaryrefslogtreecommitdiffstats
path: root/src/io.c
diff options
context:
space:
mode:
authorLukas Fleischer <calcurse@cryptocrack.de>2011-04-11 15:12:50 +0200
committerLukas Fleischer <calcurse@cryptocrack.de>2011-04-12 12:02:23 +0200
commitb9c1969126bc772a4ec34b56cd0de9b6fc4e44f5 (patch)
treee148be2f9d6ca6fd487634b86dce77d5c069ce7c /src/io.c
parent1140feaabf7bf826b52d21643885fb1bd94702ed (diff)
downloadcalcurse-b9c1969126bc772a4ec34b56cd0de9b6fc4e44f5.tar.gz
calcurse-b9c1969126bc772a4ec34b56cd0de9b6fc4e44f5.zip
Drop empty notes after editing.
Keeping empty notes doesn't make sense here. Also, there doesn't seem to be a simple way to erase notes yet. This will make calcurse delete any notes that are empty (meaning that they are either 0-byte files or contain nothing but a newline character) when returning from the editor. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
Diffstat (limited to 'src/io.c')
-rw-r--r--src/io.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/io.c b/src/io.c
index 7619696..04ad99f 100644
--- a/src/io.c
+++ b/src/io.c
@@ -3040,3 +3040,28 @@ io_get_pid (char *file)
return pid;
}
+
+/*
+ * Check whether a file is empty.
+ */
+int
+io_file_is_empty (char *file)
+{
+ FILE *fp;
+
+ if (file && (fp = fopen (file, "r")))
+ {
+ if (fgetc (fp) == '\n' || feof (fp))
+ {
+ fclose (fp);
+ return 1;
+ }
+ else
+ {
+ fclose (fp);
+ return 0;
+ }
+ }
+
+ return 1;
+}