aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLukas Fleischer <calcurse@cryptocrack.de>2011-11-11 10:16:50 +0100
committerLukas Fleischer <calcurse@cryptocrack.de>2011-11-14 11:08:15 +0100
commitf77f4647d12bcf06e501ab00c892f44c78e9ace5 (patch)
treeb44fcea351ca889be52f52bf5bfe3dd8dffd7d0a /src
parent349bd3f88b094d3e17a84308f9ae4cf0a16d6727 (diff)
downloadcalcurse-f77f4647d12bcf06e501ab00c892f44c78e9ace5.tar.gz
calcurse-f77f4647d12bcf06e501ab00c892f44c78e9ace5.zip
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 <calcurse@cryptocrack.de>
Diffstat (limited to 'src')
-rw-r--r--src/args.c79
-rw-r--r--src/utils.c61
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
@@ -183,58 +183,6 @@ status_arg (void)
}
/*
- * 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.
* If priority is < 0, all todos 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;