#define TYPE_INTDEFINE 8
#define MAXPARAM 20
+#define IS_NUMBER(a) ((a == TYPE_LONG) || (a == TYPE_PREFINT) || (a == TYPE_INTDEFINE))
/*
* \brief Values for wcs_type
#define CTX_MIME_ATACH 10
#define CTX_FILELIST 11
#define CTX_STRBUF 12
-#define CTX_LONGVECTOR 13
-#define CTX_ROOMS 14
-#define CTX_FLOORS 15
-#define CTX_ITERATE 16
-#define CTX_ICAL 17
-#define CTX_DAVNS 18
+#define CTX_STRBUFARR 13
+#define CTX_LONGVECTOR 14
+#define CTX_ROOMS 15
+#define CTX_FLOORS 16
+#define CTX_ITERATE 17
+#define CTX_ICAL 18
+#define CTX_DAVNS 19
-#define CTX_UNKNOWN 19
+#define CTX_UNKNOWN 20
/**
*/
typedef int (*WCConditionalFunc)(StrBuf *Target, WCTemplputParams *TP);
+typedef enum _eBitMask {
+ eNO = 0,
+ eOR,
+ eAND
+}eBitMask;
typedef struct _TemplateParam {
/* are we a string or a number? */
long len;
/* if we're a number: */
long lvalue;
+ eBitMask MaskBy;
} TemplateParam;
-#define do_template(a, b) DoTemplate(a, sizeof(a) -1, NULL, &NoCtx);
+#define do_template(a, b) DoTemplate(a, sizeof(a) -1, NULL, &NoCtx)
const StrBuf *DoTemplate(const char *templatename, long len, StrBuf *Target, WCTemplputParams *TP);
void url_do_template(void);