diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/calcurse.h | 1 | ||||
-rw-r--r-- | src/day.c | 3 | ||||
-rw-r--r-- | src/io.c | 25 | ||||
-rw-r--r-- | src/todo.c | 3 |
4 files changed, 32 insertions, 0 deletions
diff --git a/src/calcurse.h b/src/calcurse.h index 4b28039..0a306f0 100644 --- a/src/calcurse.h +++ b/src/calcurse.h @@ -696,6 +696,7 @@ void io_stop_psave_thread (void); void io_set_lock (void); unsigned io_dump_pid (char *); unsigned io_get_pid (char *); +int io_file_is_empty (char *); /* keys.c */ void keys_init (void); @@ -1085,6 +1085,9 @@ day_edit_note (char *editor) (void)snprintf (fullname, BUFSIZ, "%s%s", path_notes, p->note); wins_launch_external (fullname, editor); + if (io_file_is_empty (fullname)) + erase_note (&p->note, ERASE_FORCE); + date = calendar_get_slctd_day_sec (); switch (p->type) { @@ -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; +} @@ -503,6 +503,9 @@ todo_edit_note (char *editor) } (void)snprintf (fullname, BUFSIZ, "%s%s", path_notes, i->note); wins_launch_external (fullname, editor); + + if (io_file_is_empty (fullname)) + erase_note (&i->note, ERASE_FORCE); } /* View a note previously attached to a todo */ |