X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=webcit%2Fsubst.c;fp=webcit%2Fsubst.c;h=e76044f48b5619685c8bff4bc3e4e084e831ee92;hp=7aa54bff8ad451b36691366c016413487941051a;hb=f4b016bdea7281682d9031c905e0f9ae4c92f685;hpb=bf69443eb3c3fad842877f046eeb15f213613306 diff --git a/webcit/subst.c b/webcit/subst.c index 7aa54bff8..e76044f48 100644 --- a/webcit/subst.c +++ b/webcit/subst.c @@ -2242,10 +2242,20 @@ int conditional_ITERATE_FIRSTN(StrBuf *Target, WCTemplputParams *TP) return Ctx->n == 0; } +int conditional_ITERATE_ISMOD(StrBuf *Target, WCTemplputParams *TP) +{ + IterateStruct *Ctx = CTX(CTX_ITERATE); + + return Ctx->n == 0; +} + int conditional_ITERATE_LASTN(StrBuf *Target, WCTemplputParams *TP) { IterateStruct *Ctx = CTX(CTX_ITERATE); - return Ctx->LastN; + + long divisor = GetTemplateTokenNumber(Target, TP, 2, 1); + long expectRemainder = GetTemplateTokenNumber(Target, TP, 2, 1); + return Ctx->n % divisor == expectRemainder; } @@ -2978,6 +2988,9 @@ InitModule_SUBST RegisterConditional("COND:ITERATE:FIRSTN", 2, conditional_ITERATE_FIRSTN, CTX_ITERATE); + RegisterConditional("COND:ITERATE:ISMOD", 3, + conditional_ITERATE_ISMOD, + CTX_ITERATE); RegisterNamespace("ITERATE:ODDEVEN", 0, 0, tmplput_ITERATE_ODDEVEN, NULL, CTX_ITERATE); RegisterNamespace("ITERATE:KEY", 0, 0, tmplput_ITERATE_KEY, NULL, CTX_ITERATE);