From f77f4647d12bcf06e501ab00c892f44c78e9ace5 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Fri, 11 Nov 2011 10:16:50 +0100 Subject: print_*(): Add format specifier to print notes * Move print_notefile() from "src/args.c" to "src/utils.c". * Add a "%N" format specifier to print_*(). This invokes print_notefile() and prints the content of an item's note file. * src/args.c: Use the new format specifier instead of print_notefile() everywhere. Signed-off-by: Lukas Fleischer --- src/args.c | 79 +++++++------------------------------------------------------ src/utils.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 70 deletions(-) diff --git a/src/args.c b/src/args.c index 9ace459..3e92290 100644 --- a/src/args.c +++ b/src/args.c @@ -182,58 +182,6 @@ status_arg (void) puts (_("calcurse is not running\n")); } -/* - * Display note contents if one is asociated with the currently displayed item - * (to be used together with the '-a' or '-t' flag in non-interactive mode). - * Each line begins with nbtab tabs. - * Print "No note file found", if the notefile does not exists. - * - * (patch submitted by Erik Saule). - */ -static void -print_notefile (FILE *out, char *filename, int nbtab) -{ - char path_to_notefile[BUFSIZ]; - FILE *notefile; - char linestarter[BUFSIZ]; - char buffer[BUFSIZ]; - int i; - int printlinestarter = 1; - - if (nbtab < BUFSIZ) - { - for (i = 0; i < nbtab; i++) - linestarter[i] = '\t'; - linestarter[nbtab] = '\0'; - } - else - linestarter[0] = '\0'; - - snprintf (path_to_notefile, BUFSIZ, "%s/%s", path_notes, filename); - notefile = fopen (path_to_notefile, "r"); - if (notefile) - { - while (fgets (buffer, BUFSIZ, notefile) != 0) - { - if (printlinestarter) - { - fputs (linestarter, out); - printlinestarter = 0; - } - fputs (buffer, out); - if (buffer[strlen (buffer) - 1] == '\n') - printlinestarter = 1; - } - fputs ("\n", out); - file_close (notefile, __FILE_POS__); - } - else - { - fputs (linestarter, out); - fputs (_("No note file found\n"), out); - } -} - /* * Print todo list and exit. If a priority number is given, then only todo * then only todo items that have this priority will be displayed. @@ -271,9 +219,7 @@ todo_arg (int priority, int print_note, regex_t *regex) if (priority == 0) { DISPLAY_TITLE; - print_todo ("%p. %m\n", todo); - if (print_note && todo->note) - print_notefile (stdout, todo->note, 1); + print_todo (print_note ? "%p. %m\n%N" : "%p. %m\n", todo); } } else @@ -281,9 +227,7 @@ todo_arg (int priority, int print_note, regex_t *regex) if (priority < 0 || todo->id == priority) { DISPLAY_TITLE; - print_todo ("%p. %m\n", todo); - if (print_note && todo->note) - print_notefile (stdout, todo->note, 1); + print_todo (print_note ? "%p. %m\n%N" : "%p. %m\n", todo); } } } @@ -379,9 +323,7 @@ app_arg (int add_line, struct date *day, long date, int print_note, arg_print_date (today); print_date = 0; } - print_recur_event (" * %m\n", today, re); - if (print_note && re->note) - print_notefile (stdout, re->note, 2); + print_recur_event (print_note ? " * %m\n%N" : " * %m\n", today, re); } LLIST_FIND_FOREACH_CONT (&eventlist, today, event_inday, i) @@ -401,9 +343,7 @@ app_arg (int add_line, struct date *day, long date, int print_note, arg_print_date (today); print_date = 0; } - print_event (" * %m\n", today, ev); - if (print_note && ev->note) - print_notefile (stdout, ev->note, 2); + print_event (print_note ? " * %m\n%N" : " * %m\n", today, ev); } /* Same process is performed but this time on the appointments. */ @@ -456,9 +396,8 @@ app_arg (int add_line, struct date *day, long date, int print_note, arg_print_date (today); print_date = 0; } - print_apoint (" - %S -> %E\n\t%m\n", today, apt); - if (print_note && apt->note) - print_notefile (stdout, apt->note, 2); + print_apoint (print_note ? " - %S -> %E\n\t%m\n%N" : + " - %S -> %E\n\t%m\n", today, apt); i = LLIST_TS_FIND_NEXT (i, today, apoint_inday); } else if (ra) @@ -475,9 +414,9 @@ app_arg (int add_line, struct date *day, long date, int print_note, print_date = 0; } recur_apoint_find_occurrence (ra, today, &occurrence); - print_recur_apoint (" - %S -> %E\n\t%m\n", today, occurrence, ra); - if (print_note && ra->note) - print_notefile (stdout, ra->note, 2); + print_recur_apoint (print_note ? " - %S -> %E\n\t%m\n%N" : + " - %S -> %E\n\t%m\n", today, + occurrence, ra); apt = NULL; j = LLIST_TS_FIND_NEXT (j, today, recur_apoint_inday); } diff --git a/src/utils.c b/src/utils.c index f2f6305..21190f0 100644 --- a/src/utils.c +++ b/src/utils.c @@ -954,6 +954,58 @@ press_any_key (void) fputs ("\r\n", stdout); } +/* + * Display note contents if one is asociated with the currently displayed item + * (to be used together with the '-a' or '-t' flag in non-interactive mode). + * Each line begins with nbtab tabs. + * Print "No note file found", if the notefile does not exists. + * + * (patch submitted by Erik Saule). + */ +static void +print_notefile (FILE *out, char *filename, int nbtab) +{ + char path_to_notefile[BUFSIZ]; + FILE *notefile; + char linestarter[BUFSIZ]; + char buffer[BUFSIZ]; + int i; + int printlinestarter = 1; + + if (nbtab < BUFSIZ) + { + for (i = 0; i < nbtab; i++) + linestarter[i] = '\t'; + linestarter[nbtab] = '\0'; + } + else + linestarter[0] = '\0'; + + snprintf (path_to_notefile, BUFSIZ, "%s/%s", path_notes, filename); + notefile = fopen (path_to_notefile, "r"); + if (notefile) + { + while (fgets (buffer, BUFSIZ, notefile) != 0) + { + if (printlinestarter) + { + fputs (linestarter, out); + printlinestarter = 0; + } + fputs (buffer, out); + if (buffer[strlen (buffer) - 1] == '\n') + printlinestarter = 1; + } + fputs ("\n", out); + file_close (notefile, __FILE_POS__); + } + else + { + fputs (linestarter, out); + fputs (_("No note file found\n"), out); + } +} + /* Print a formatted appointment to stdout. */ void print_apoint (const char *format, long day, struct apoint *apt) @@ -990,6 +1042,9 @@ print_apoint (const char *format, long day, struct apoint *apt) case 'n': printf ("%s", apt->note); break; + case 'N': + print_notefile (stdout, apt->note, 1); + break; case '\0': return; break; @@ -1021,6 +1076,9 @@ print_event (const char *format, long day, struct event *ev) case 'n': printf ("%s", ev->note); break; + case 'N': + print_notefile (stdout, ev->note, 1); + break; case '\0': return; break; @@ -1082,6 +1140,9 @@ print_todo (const char *format, struct todo *todo) case 'n': printf ("%s", todo->note); break; + case 'N': + print_notefile (stdout, todo->note, 1); + break; case '\0': return; break; -- cgit v1.2.3-70-g09d2