diff options
author | Lars Henriksen <LarsHenriksen@get2net.dk> | 2020-11-15 09:21:47 +0100 |
---|---|---|
committer | Lukas Fleischer <lfleischer@calcurse.org> | 2020-11-15 12:11:27 -0500 |
commit | e3dd92ef71ecd06ef2a3ef2ef49beccb5d22cc0f (patch) | |
tree | c3b670ef7c5c8a79167926965d138acdf0c1bc48 | |
parent | e1b5580bdf323959b08054cceec01174b9d33ded (diff) | |
download | calcurse-e3dd92ef71ecd06ef2a3ef2ef49beccb5d22cc0f.tar.gz calcurse-e3dd92ef71ecd06ef2a3ef2ef49beccb5d22cc0f.zip |
Do not remove an empty note file after edit session
Signed-off-by: Lars Henriksen <LarsHenriksen@get2net.dk>
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
-rw-r--r-- | src/calcurse.h | 1 | ||||
-rw-r--r-- | src/ical.c | 4 | ||||
-rw-r--r-- | src/io.c | 16 | ||||
-rw-r--r-- | src/note.c | 4 |
4 files changed, 4 insertions, 21 deletions
diff --git a/src/calcurse.h b/src/calcurse.h index c1ca2ef..4dc5968 100644 --- a/src/calcurse.h +++ b/src/calcurse.h @@ -936,7 +936,6 @@ void io_set_lock(void); unsigned io_dump_pid(char *); unsigned io_get_pid(char *); int io_files_equal(const char *, const char *); -int io_file_is_empty(char *); int io_file_cp(const char *, const char *); void io_unset_modified(void); void io_set_modified(void); @@ -213,8 +213,10 @@ static void ical_export_note(FILE *stream, char *name) int has_desc, has_prop, i; asprintf(¬e_file, "%s/%s", path_notes, name); - if (!(fp = fopen(note_file, "r"))) + if (!(fp = fopen(note_file, "r")) || ungetc(getc(fp), fp) == EOF) { + fclose(fp); return; + } string_init(¬e); while (fgets(lbuf, BUFSIZ, fp)) string_catf(¬e, "%s", lbuf); @@ -1579,22 +1579,6 @@ unsigned io_get_pid(char *file) } /* - * Check whether a file is empty. - */ -int io_file_is_empty(char *file) -{ - FILE *fp; - int ret = -1; - - if (file && (fp = fopen(file, "r"))) { - ret = (fgetc(fp) == '\n' && fgetc(fp) == EOF) || feof(fp); - fclose(fp); - } - - return ret; -} - -/* * Check whether two files are equal. */ int io_files_equal(const char *file1, const char *file2) @@ -94,9 +94,7 @@ void edit_note(char **note, const char *editor) const char *arg[] = { editor, tmppath, NULL }; wins_launch_external(arg); - if (io_file_is_empty(tmppath) > 0) { - erase_note(note); - } else if ((fp = fopen(tmppath, "r"))) { + if ((fp = fopen(tmppath, "r"))) { sha1_stream(fp, sha1); fclose(fp); *note = sha1; |