From a79a33e8f4da016e4ae42b061db8400337d5a580 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Tue, 17 Jan 2012 00:41:19 +0100 Subject: Split note file generation into separate function We currently use this in one place only but might reuse this a couple of times later (when migrating to libical). Signed-off-by: Lukas Fleischer --- src/calcurse.h | 1 + src/ical.c | 15 +++------------ src/note.c | 19 +++++++++++++++++++ 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/calcurse.h b/src/calcurse.h index 5b4bffe..5104d45 100644 --- a/src/calcurse.h +++ b/src/calcurse.h @@ -779,6 +779,7 @@ void mem_stats (void); #endif /* CALCURSE_MEMORY_DEBUG */ /* note.c */ +char *generate_note (const char *); void edit_note (char **, char *); void view_note (char *, char *); void erase_note (char **); diff --git a/src/ical.c b/src/ical.c index a40f94a..8d1735b 100644 --- a/src/ical.c +++ b/src/ical.c @@ -37,7 +37,6 @@ #include #include "calcurse.h" -#include "sha1.h" #define ICALDATEFMT "%Y%m%d" #define ICALDATETIMEFMT "%Y%m%dT%H%M%S" @@ -866,9 +865,7 @@ static char * ical_read_note (char *line, unsigned *noskipped, ical_vevent_e item_type, const int itemline, FILE *log) { - char *sha1 = mem_malloc (SHA1_DIGESTLEN * 2 + 1); - char *p, *notestr, fullnotename[BUFSIZ]; - FILE *fdo; + char *p, *notestr, *note; if ((p = strchr (line, ':')) != NULL) { @@ -888,15 +885,9 @@ ical_read_note (char *line, unsigned *noskipped, ical_vevent_e item_type, } else { - sha1_digest (notestr, sha1); - snprintf (fullnotename, BUFSIZ, "%s%s", path_notes, sha1); - fdo = fopen (fullnotename, "w"); - EXIT_IF (fdo == NULL, _("Warning: could not open %s, Aborting..."), - fullnotename); - fprintf (fdo, "%s", notestr); - file_close (fdo, __FILE_POS__); + note = generate_note (notestr); mem_free (notestr); - return sha1; + return note; } } else diff --git a/src/note.c b/src/note.c index e5595fc..2686dd7 100644 --- a/src/note.c +++ b/src/note.c @@ -46,6 +46,25 @@ struct note_gc_hash { HTABLE_ENTRY (note_gc_hash); }; +/* Create note file from a string and return a newly allocated string that + * contains its name. */ +char * +generate_note (const char *str) +{ + char *sha1 = mem_malloc (SHA1_DIGESTLEN * 2 + 1); + char notepath[BUFSIZ]; + FILE *fp; + + sha1_digest (str, sha1); + snprintf (notepath, BUFSIZ, "%s%s", path_notes, sha1); + fp = fopen (notepath, "w"); + EXIT_IF (fp == NULL, _("Warning: could not open %s, Aborting..."), notepath); + fputs (str, fp); + file_close (fp, __FILE_POS__); + + return sha1; +} + /* Edit a note with an external editor. */ void edit_note (char **note, char *editor) -- cgit v1.2.3-70-g09d2