diff --git a/src/dorem.c b/src/dorem.c index afbf5e28..2fa77d6a 100644 --- a/src/dorem.c +++ b/src/dorem.c @@ -916,6 +916,11 @@ int TriggerReminder(ParsePtr p, Trigger *t, TimeTrig *tim, int dse, int is_queue msg_command = QueuedMsgCommand; } + /* A null command is no command */ + if (msg_command && !*msg_command) { + msg_command = NULL; + } + int red = -1, green = -1, blue = -1; int is_color = 0; diff --git a/src/dosubst.c b/src/dosubst.c index dc016ba0..f326d9f9 100644 --- a/src/dosubst.c +++ b/src/dosubst.c @@ -196,7 +196,7 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, mode != CAL_MODE && mode != ADVANCE_MODE && t->typ != RUN_TYPE && - !MsgCommand) { + !(MsgCommand && *MsgCommand)) { if (DBufPutc(dbuf, '\n') != OK) return E_NO_MEM; } break; @@ -794,7 +794,7 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, break; case '_': - if (PsCal == PSCAL_LEVEL2 || PsCal == PSCAL_LEVEL3 || (mode != CAL_MODE && mode != ADVANCE_MODE && !MsgCommand)) { + if (PsCal == PSCAL_LEVEL2 || PsCal == PSCAL_LEVEL3 || (mode != CAL_MODE && mode != ADVANCE_MODE && !(MsgCommand && *MsgCommand))) { snprintf(s, sizeof(s), "%s", NL); } else { snprintf(s, sizeof(s), " "); diff --git a/src/init.c b/src/init.c index f937a310..69f51f16 100644 --- a/src/init.c +++ b/src/init.c @@ -602,13 +602,9 @@ void InitRemind(int argc, char const *argv[]) case 'K': if (*arg == ':') { arg++; - if (*arg) { - QueuedMsgCommand = arg; - } + QueuedMsgCommand = arg; } else { - if (*arg) { - MsgCommand = arg; - } + MsgCommand = arg; } while (*arg) arg++; /* Chew up remaining chars in this arg */ break; diff --git a/src/sort.c b/src/sort.c index aa7613ba..8db57ad0 100644 --- a/src/sort.c +++ b/src/sort.c @@ -135,7 +135,7 @@ void IssueSortedReminders(void) next = cur->next; switch(cur->typ) { case MSG_TYPE: - if (MsgCommand) { + if (MsgCommand && *MsgCommand) { DoMsgCommand(MsgCommand, cur->text); } else { if (cur->trigdate != olddate) {