📄 xmlschemasetvaliderrors_chdl.c
字号:
#include <libxml/xmlschemas.h>
#include <libxml/globals.h>
#include <ch.h>
static ChInterp_t interp;
static xmlSchemaValidityErrorFunc err_chdl_funarg(void *ctx, const char *msg, ...);
static void *err_chdl_funptr;
static xmlSchemaValidityWarningFunc warn_chdl_funarg(void *ctx, const char *msg, ...);
static void *warn_chdl_funptr;
EXPORTCH void xmlSchemaSetValidErrors_chdl(void *varg) {
va_list ap;
xmlSchemaValidCtxtPtr ctxt;
xmlSchemaValidityErrorFunc err, err_ch=NULL;
xmlSchemaValidityWarningFunc warn, warn_ch=NULL;
void *ctx;
Ch_VaStart(interp, ap, varg);
ctxt = Ch_VaArg(interp, ap, xmlSchemaValidCtxtPtr);
err = Ch_VaArg(interp, ap, xmlSchemaValidityErrorFunc);
if(err){
err_chdl_funptr = err;
err_ch = err_chdl_funarg;
}
warn = Ch_VaArg(interp, ap, xmlSchemaValidityWarningFunc);
if(warn){
warn_chdl_funptr= warn;
warn_ch = warn_chdl_funarg;
}
ctx = Ch_VaArg(interp, ap, void *);
xmlSchemaSetValidErrors(ctxt, err_ch, warn_ch, ctx);
Ch_VaEnd(interp, ap);
}
static xmlSchemaValidityErrorFunc err_chdl_funarg(void *ctx, const char *msg, ...){
va_list ap_ch, ap_c;
int num;
va_start(ap_c, msg);
ap_ch = Ch_VarArgsCreate(interp);
num = getvariables(ap_c, &ap_ch);
Ch_CallFuncByAddr(interp, err_chdl_funptr, NULL, ctx, msg, ap_ch);
Ch_VarArgsDelete(interp, ap_ch);
}
static xmlSchemaValidityWarningFunc warn_chdl_funarg(void *ctx, const char *msg, ...){
va_list ap_ch, ap_c;
int num;
va_start(ap_c, msg);
ap_ch = Ch_VarArgsCreate(interp);
num = getvariables(ap_c, &ap_ch);
Ch_CallFuncByAddr(interp, warn_chdl_funptr, NULL, ctx, msg, ap_ch);
Ch_VarArgsDelete(interp, ap_ch);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -