]> code.citadel.org Git - citadel.git/blobdiff - webcit/webcit.h
* Templatize IGNet Node Config
[citadel.git] / webcit / webcit.h
index 2d0f29f8b5215bbdfdc2c4bb827d32beb4ba47c5..5d678c3f6b098835c2932ccbeae8563b5502e579 100644 (file)
@@ -283,6 +283,8 @@ typedef struct _TemplateParam {
 } TemplateParam;
 
 typedef struct _TemplateToken {
+       StrBuf *FlatToken;
+       long Line;
        const char *pTokenStart;
        size_t TokenStart;
        size_t TokenEnd;
@@ -318,16 +320,16 @@ void RegisterConditional(const char *Name, long len,
 
 
 
-typedef void (*SubTemplFunc)(StrBuf *TemplBuffer, void *Context);
-typedef HashList *(*RetrieveHashlistFunc)(void);
-typedef void (*HashDestructorFunc) (HashList *KillMe);
-void RegisterITERATOR(const char *Name, long len, 
+typedef void (*SubTemplFunc)(StrBuf *TemplBuffer, void *Context, WCTemplateToken *Token);
+typedef HashList *(*RetrieveHashlistFunc)(WCTemplateToken *Token);
+typedef void (*HashDestructorFunc) (HashList **KillMe);
+void RegisterITERATOR(const char *Name, long len,
+                     int AdditionalParams, 
                      HashList *StaticList, 
                      RetrieveHashlistFunc GetHash, 
                      SubTemplFunc DoSubTempl,
                      HashDestructorFunc Destructor);
-#define RegisterIterator(a, b, c, d, e) RegisterITERATOR(a, sizeof(a)-1, b, c, d, e)
-
+#define RegisterIterator(a, b, c, d, e, f) RegisterITERATOR(a, sizeof(a)-1, b, c, d, e, f)
 
 /**
  * \brief Values for wcs_type
@@ -470,6 +472,7 @@ struct wcsession {
        StrBuf *HBuf;                           /**< Our HeaderBuffer */
 
        HashList *ServCfg;                      /**< cache our server config for editing */
+       HashList *InetCfg;                      /**< Our inet server config for editing */
 };
 
 /** values for WC->current_iconbar */
@@ -674,13 +677,15 @@ void SVCALLBACK(char *keyname, var_callback_fptr fcn_ptr);
 void SVCallback(char *keyname, size_t keylen,  var_callback_fptr fcn_ptr);
 #define svcallback(a, b) SVCallback(a, sizeof(a) - 1, b)
 
-void SVPUTBuf(const char *keyname, int keylen, StrBuf *Buf, int ref);
+void SVPUTBuf(const char *keyname, int keylen, const StrBuf *Buf, int ref);
 #define SVPutBuf(a, b, c); SVPUTBuf(a, sizeof(a) - 1, b, c)
 
 void DoTemplate(const char *templatename, long len, void *Context, StrBuf *Target);
 #define do_template(a, b) DoTemplate(a, sizeof(a) -1, b, NULL);
 void url_do_template(void);
 
+int CompareSubstToToken(TemplateParam *ParamToCompare, TemplateParam *ParamToLookup);
+int CompareSubstToStrBuf(StrBuf *Compare, TemplateParam *ParamToLookup);
 
 int lingering_close(int fd);
 char *memreadline(char *start, char *buf, int maxlen);