Support todo items with an undefined priority

In addition to priorities 1-9, support todo items without any specific
priority, internally represented by priority 0.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
This commit is contained in:
Lukas Fleischer 2016-01-17 22:54:12 +01:00
parent beea88e5fe
commit e3ac5542aa
2 changed files with 8 additions and 13 deletions

View File

@ -1054,11 +1054,10 @@ ical_read_todo(FILE * fdi, FILE * log, int list, unsigned *notodos,
unsigned *noskipped, char *buf, char *lstore,
unsigned *lineno)
{
const int LOWEST = 9;
const int ITEMLINE = *lineno;
struct {
char *mesg, *note;
int has_priority, priority;
int priority;
int completed;
} vtodo;
int skip_alarm;
@ -1077,8 +1076,6 @@ ical_read_todo(FILE * fdi, FILE * log, int list, unsigned *notodos,
}
if (starts_with_ci(buf, "END:VTODO")) {
if (!vtodo.has_priority)
vtodo.priority = LOWEST;
if (!vtodo.mesg) {
ical_log(log, ICAL_VTODO, ITEMLINE,
_("could not retrieve item summary."));
@ -1093,12 +1090,10 @@ ical_read_todo(FILE * fdi, FILE * log, int list, unsigned *notodos,
if (starts_with_ci(buf, "PRIORITY:")) {
sscanf(buf, "%d", &vtodo.priority);
if (vtodo.priority >= 1 && vtodo.priority <= 9) {
vtodo.has_priority = 1;
} else {
if (vtodo.priority < 0 || vtodo.priority > 9) {
ical_log(log, ICAL_VTODO, ITEMLINE,
_("item priority is not acceptable "
"(must be between 1 and 9)."));
_("item priority is invalid "
"(must be between 0 and 9)."));
}
} else if (starts_with_ci(buf, "STATUS:COMPLETED")) {
vtodo.completed = 1;

View File

@ -50,13 +50,13 @@ void ui_todo_add(void)
int ch = 0;
const char *mesg = _("Enter the new TODO item:");
const char *mesg_id =
_("Enter the TODO priority [1 (highest) - 9 (lowest)]:");
_("Enter the TODO priority [0 (none), 1 (highest) - 9 (lowest)]:");
char todo_input[BUFSIZ] = "";
status_mesg(mesg, "");
if (getstring(win[STA].p, todo_input, BUFSIZ, 0, 1) ==
GETSTRING_VALID) {
while ((ch < '1') || (ch > '9')) {
while ((ch < '0') || (ch > '9')) {
status_mesg(mesg_id, "");
ch = wgetch(win[KEY].p);
}
@ -259,8 +259,8 @@ void ui_todo_chg_priority(int diff)
int id = item->id + diff;
struct todo *item_new;
if (id < 1)
id = 1;
if (id < 0)
id = 0;
else if (id > 9)
id = 9;