diff --git a/src/custom.h.in b/src/custom.h.in index 2090830c..e37bc116 100644 --- a/src/custom.h.in +++ b/src/custom.h.in @@ -178,7 +178,7 @@ /*---------------------------------------------------------------------*/ /* How many attempts to resolve a weird date spec? */ /*---------------------------------------------------------------------*/ -#define TRIG_ATTEMPTS 50 +#define TRIG_ATTEMPTS 500 /*---------------------------------------------------------------------*/ /* How many global omits of the form YYYY MM DD do we handle? */ diff --git a/src/globals.h b/src/globals.h index 63cc98c2..a9c3185b 100644 --- a/src/globals.h +++ b/src/globals.h @@ -88,6 +88,7 @@ EXTERN INIT( unsigned int IfFlags, 0); EXTERN INIT( int LastTriggerDate, 0); EXTERN INIT( int LastTrigValid, 0); EXTERN INIT( int LastTriggerTime, 0); +EXTERN INIT( int TrigAttempts, 0); EXTERN INIT( int ShouldCache, 0); EXTERN char const *CurLine; EXTERN INIT( int NumTriggered, 0); diff --git a/src/trigger.c b/src/trigger.c index ebe1f2fe..79f38ec2 100644 --- a/src/trigger.c +++ b/src/trigger.c @@ -426,7 +426,10 @@ int ComputeTrigger(int today, Trigger *trig, int *err, int save_in_globals) result; trig->expired = 0; - if (save_in_globals) LastTrigValid = 0; + if (save_in_globals) { + LastTrigValid = 0; + TrigAttempts = 0; + } /* Assume everything works */ *err = OK; @@ -448,6 +451,9 @@ int ComputeTrigger(int today, Trigger *trig, int *err, int save_in_globals) while (nattempts++ < TRIG_ATTEMPTS) { + if (save_in_globals) { + TrigAttempts = nattempts; + } result = GetNextTriggerDate(trig, start, err, &nextstart); /* If there's an error, die immediately */ diff --git a/src/var.c b/src/var.c index bec2e9df..5350c691 100644 --- a/src/var.c +++ b/src/var.c @@ -612,6 +612,7 @@ static SysVar SysVarArr[] = { {"T", 0, SPECIAL_TYPE, trig_date_func, 0, 0 }, {"Td", 0, SPECIAL_TYPE, trig_day_func, 0, 0 }, {"TimeSep", 1, SPECIAL_TYPE, time_sep_func, 0, 0 }, + {"TrigAttempts", 0, INT_TYPE, &TrigAttempts, 0, 0 }, {"Tm", 0, SPECIAL_TYPE, trig_mon_func, 0, 0 }, {"Tw", 0, SPECIAL_TYPE, trig_wday_func, 0, 0 }, {"Ty", 0, SPECIAL_TYPE, trig_year_func, 0, 0 },