#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_TAB 20
+#define CTX_VCARD 21
-#define CTX_UNKNOWN 19
+#define CTX_UNKNOWN 22
/**
*/
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;
int N,
const char **Value,
long *len);
+/**
+ * @return whether @ref GetTemplateTokenString would be able to give you a string
+ */
+int HaveTemplateTokenString(StrBuf *Target,
+ WCTemplputParams *TP,
+ int N,
+ const char **Value,
+ long *len);
*/
#define REGISTERTokenParamDefine(a) RegisterTokenParamDefine(#a, sizeof(#a) - 1, a);
+/**
+ * @brief retrieve the long value of a registered string define
+ * @param Name The name of the define
+ * @param len length of Name
+ * @param Value the value to return if not found
+ */
+long GetTokenDefine(const char *Name,
+ long len,
+ long DefValue);
+
+
#define IT_NOFLAG 0
#define IT_FLAG_DETECT_GROUPCHANGE (1<<0)
#define RegisterIterator(a, b, c, d, e, f, g, h, i) RegisterITERATOR(a, sizeof(a)-1, b, c, d, e, f, g, h, i)
CompareFunc GroupChange,
long ContextType);
-
-
-
void dbg_print_longvector(long *LongVector);
-
-
-
-
-#define do_template(a, b) DoTemplate(a, sizeof(a) -1, NULL, &NoCtx);
+#define do_template(a) DoTemplate(a, sizeof(a) -1, NULL, &NoCtx)
const StrBuf *DoTemplate(const char *templatename, long len, StrBuf *Target, WCTemplputParams *TP);
void url_do_template(void);
-
-
-
int CompareSubstToToken(TemplateParam *ParamToCompare, TemplateParam *ParamToLookup);
int CompareSubstToStrBuf(StrBuf *Compare, TemplateParam *ParamToLookup);
-
-void SVPut(char *keyname, size_t keylen, int keytype, char *Data);
-#define svput(a, b, c) SVPut(a, sizeof(a) - 1, b, c)
-void SVPutLong(char *keyname, size_t keylen, long Data);
-#define svputlong(a, b) SVPutLong(a, sizeof(a) - 1, b)
-void svprintf(char *keyname, size_t keylen, int keytype, const char *format,...) __attribute__((__format__(__printf__,4,5)));
-void SVPRINTF(char *keyname, int keytype, const char *format,...) __attribute__((__format__(__printf__,3,4)));
-void SVCALLBACK(char *keyname, WCHandlerFunc fcn_ptr);
-void SVCallback(char *keyname, size_t keylen, WCHandlerFunc fcn_ptr);
-#define svcallback(a, b) SVCallback(a, sizeof(a) - 1, b)
-
-void SVPUTBuf(const char *keyname, int keylen, const StrBuf *Buf, int ref);
-#define SVPutBuf(a, b, c); SVPUTBuf(a, sizeof(a) - 1, b, c)