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 *Token, void *Context);
+
+void RegisterNS(const char *NSName, long len, int nMinArgs, int nMaxArgs, WCHandlerFunc HandlerFunc);
+
/**
* \brief Values for wcs_type
*/
void SVCallback(char *keyname, size_t keylen, var_callback_fptr fcn_ptr);
#define svcallback(a, b) SVCallback(a, sizeof(a) - 1, b)
-void DoTemplate(const char *templatename, long len);
-#define do_template(a) DoTemplate(a, sizeof(a) -1);
+void DoTemplate(const char *templatename, long len, void *Context);
+#define do_template(a, b) DoTemplate(a, sizeof(a) -1, b);
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[];