void (*wcs_function)(void); /**< funcion hook ???*/
} wcsubst;
+#define TYPE_STR 1
+#define TYPE_LONG 2
+#define MAXPARAM 10
+typedef struct _TemplateParam {
+ const char *Start;
+ int Type;
+ long len;
+ long lvalue;
+} TemplateParam;
+
+typedef struct _TemplateToken {
+ const char *pTokenStart;
+ size_t TokenStart;
+ size_t TokenEnd;
+ const char *pTokenEnd;
+ int IsGettext;
+
+ const char *pName;
+ size_t NameEnd;
+
+ int HaveParameters;
+ int nParameters;
+ TemplateParam *Params[MAXPARAM];
+} WCTemplateToken;
+
+typedef void (*WCHandlerFunc)(StrBuf *Target, int nArgs, WCTemplateToken **Tokens);
+
/**
* \brief Values for wcs_type
*/
extern time_t if_modified_since;
extern int follow_xff;
extern HashList *HandlerHash;
+extern HashList *PreferenceHooks;
+extern HashList *WirelessTemplateCache;
+extern HashList *WirelessLocalTemplateCache;
+extern HashList *TemplateCache;
+extern HashList *LocalTemplateCache;
+extern HashList *GlobalNS;
void InitialiseSemaphores(void);
void begin_critical_section(int which_one);
const char *Bstr(char *key, size_t keylen);
void urlescputs(char *);
+void hurlescputs(char *);
void jsesc(char *, size_t, char *);
void jsescputs(char *);
void output_headers( int do_httpheaders,
void SVCallback(char *keyname, size_t keylen, var_callback_fptr fcn_ptr);
#define svcallback(a, b) SVCallback(a, sizeof(a) - 1, b)
-void do_template(void *templatename);
+void DoTemplate(const char *templatename, long len);
+#define do_template(a) DoTemplate(a, sizeof(a) -1);
int lingering_close(int fd);
void initialize_locales(void);
void ShutdownLocale(void);
#endif
+void TmplGettext(StrBuf *Target, int nTokens, WCTemplateToken *Token);
extern char *months[];
extern char *days[];