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>
This commit is contained in:
parent
1140feaabf
commit
b9c1969126
@ -696,6 +696,7 @@ void io_stop_psave_thread (void);
|
|||||||
void io_set_lock (void);
|
void io_set_lock (void);
|
||||||
unsigned io_dump_pid (char *);
|
unsigned io_dump_pid (char *);
|
||||||
unsigned io_get_pid (char *);
|
unsigned io_get_pid (char *);
|
||||||
|
int io_file_is_empty (char *);
|
||||||
|
|
||||||
/* keys.c */
|
/* keys.c */
|
||||||
void keys_init (void);
|
void keys_init (void);
|
||||||
|
@ -1085,6 +1085,9 @@ day_edit_note (char *editor)
|
|||||||
(void)snprintf (fullname, BUFSIZ, "%s%s", path_notes, p->note);
|
(void)snprintf (fullname, BUFSIZ, "%s%s", path_notes, p->note);
|
||||||
wins_launch_external (fullname, editor);
|
wins_launch_external (fullname, editor);
|
||||||
|
|
||||||
|
if (io_file_is_empty (fullname))
|
||||||
|
erase_note (&p->note, ERASE_FORCE);
|
||||||
|
|
||||||
date = calendar_get_slctd_day_sec ();
|
date = calendar_get_slctd_day_sec ();
|
||||||
switch (p->type)
|
switch (p->type)
|
||||||
{
|
{
|
||||||
|
25
src/io.c
25
src/io.c
@ -3040,3 +3040,28 @@ io_get_pid (char *file)
|
|||||||
|
|
||||||
return pid;
|
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);
|
(void)snprintf (fullname, BUFSIZ, "%s%s", path_notes, i->note);
|
||||||
wins_launch_external (fullname, editor);
|
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 */
|
/* View a note previously attached to a todo */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user