mirror of
https://salsa.debian.org/dskoll/remind.git
synced 2026-05-02 13:57:07 +02:00
Make "SPECIAL MSG" the same as "MSG" and same for MSF, RUN, PS and PSFILE
This lets us use variables to set the type of a REM command:
SET t "MSG"
REM SPECIAL [t] A message
SET t "CAL"
REM SPECIAL [t] A calendar message
SET t "RUN"
REM SPECIAL [t] /bin/some_cmd
This commit is contained in:
@@ -1830,6 +1830,10 @@ static int DoCalRem(ParsePtr p, int col)
|
|||||||
DBufFree(&buf);
|
DBufFree(&buf);
|
||||||
}
|
}
|
||||||
trig.typ = tok.val;
|
trig.typ = tok.val;
|
||||||
|
|
||||||
|
/* Convert some SPECIALs back to plain types */
|
||||||
|
FixSpecialType(&trig);
|
||||||
|
|
||||||
if (trig.typ == MSG_TYPE ||
|
if (trig.typ == MSG_TYPE ||
|
||||||
trig.typ == CAL_TYPE ||
|
trig.typ == CAL_TYPE ||
|
||||||
trig.typ == MSF_TYPE) {
|
trig.typ == MSF_TYPE) {
|
||||||
|
|||||||
+29
-2
@@ -123,8 +123,12 @@ int DoRem(ParsePtr p)
|
|||||||
}
|
}
|
||||||
StrnCpy(trig.passthru, DBufValue(&buf), PASSTHRU_LEN);
|
StrnCpy(trig.passthru, DBufValue(&buf), PASSTHRU_LEN);
|
||||||
DBufFree(&buf);
|
DBufFree(&buf);
|
||||||
}
|
}
|
||||||
trig.typ = tok.val;
|
trig.typ = tok.val;
|
||||||
|
|
||||||
|
/* Convert some SPECIALs back to plain types */
|
||||||
|
FixSpecialType(&trig);
|
||||||
|
|
||||||
dse = LastTriggerDate;
|
dse = LastTriggerDate;
|
||||||
if (!LastTrigValid || PurgeMode) {
|
if (!LastTrigValid || PurgeMode) {
|
||||||
FreeTrig(&trig);
|
FreeTrig(&trig);
|
||||||
@@ -370,6 +374,7 @@ int ParseRem(ParsePtr s, Trigger *trig, TimeTrig *tim, int save_in_globals)
|
|||||||
}
|
}
|
||||||
StrnCpy(trig->passthru, DBufValue(&buf), PASSTHRU_LEN);
|
StrnCpy(trig->passthru, DBufValue(&buf), PASSTHRU_LEN);
|
||||||
}
|
}
|
||||||
|
FixSpecialType(trig);
|
||||||
parsing = 0;
|
parsing = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1466,3 +1471,25 @@ static int ShouldTriggerBasedOnWarn(Trigger *t, int dse, int *err)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FixSpecialType(Trigger *t)
|
||||||
|
{
|
||||||
|
if (t->typ != PASSTHRU_TYPE) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Convert SPECIAL MSG / MSF / RUN / CAL to just plain MSG / MSF / etc */
|
||||||
|
if (!StrCmpi(t->passthru, "MSG")) {
|
||||||
|
t->typ = MSG_TYPE;
|
||||||
|
} else if (!StrCmpi(t->passthru, "MSF")) {
|
||||||
|
t->typ = MSF_TYPE;
|
||||||
|
} else if (!StrCmpi(t->passthru, "RUN")) {
|
||||||
|
t->typ = RUN_TYPE;
|
||||||
|
} else if (!StrCmpi(t->passthru, "CAL")) {
|
||||||
|
t->typ = CAL_TYPE;
|
||||||
|
} else if (!StrCmpi(t->passthru, "PS")) {
|
||||||
|
t->typ = PS_TYPE;
|
||||||
|
} else if (!StrCmpi(t->passthru, "PSFILE")) {
|
||||||
|
t->typ = PSF_TYPE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -177,6 +177,7 @@ int push_call(char const *filename, char const *func, int lineno);
|
|||||||
void clear_callstack(void);
|
void clear_callstack(void);
|
||||||
int print_callstack(FILE *fp);
|
int print_callstack(FILE *fp);
|
||||||
void pop_call(void);
|
void pop_call(void);
|
||||||
|
void FixSpecialType(Trigger *trig);
|
||||||
#ifdef REM_USE_WCHAR
|
#ifdef REM_USE_WCHAR
|
||||||
#define _XOPEN_SOURCE 600
|
#define _XOPEN_SOURCE 600
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
|
|||||||
Reference in New Issue
Block a user