projects
/
citadel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
bf69443
)
Add modulo operator for the list iterator so the templates can do multi level list...
author
Wilfried Goesgens
<willi@arangodb.com>
Mon, 9 Nov 2015 20:02:35 +0000
(21:02 +0100)
committer
Wilfried Goesgens
<willi@arangodb.com>
Mon, 9 Nov 2015 20:02:35 +0000
(21:02 +0100)
webcit/subst.c
patch
|
blob
|
history
diff --git
a/webcit/subst.c
b/webcit/subst.c
index 7aa54bff8ad451b36691366c016413487941051a..e76044f48b5619685c8bff4bc3e4e084e831ee92 100644
(file)
--- a/
webcit/subst.c
+++ b/
webcit/subst.c
@@
-2242,10
+2242,20
@@
int conditional_ITERATE_FIRSTN(StrBuf *Target, WCTemplputParams *TP)
return Ctx->n == 0;
}
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);
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: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);
RegisterNamespace("ITERATE:ODDEVEN", 0, 0, tmplput_ITERATE_ODDEVEN, NULL, CTX_ITERATE);
RegisterNamespace("ITERATE:KEY", 0, 0, tmplput_ITERATE_KEY, NULL, CTX_ITERATE);