📄 xmlsax2setdocumentlocator_chdl.c
字号:
#include <libxml/SAX2.h>
#include <ch.h>
static ChInterp_t interp;
static xmlChar * getPublicId_chdl_funarg(void *ctx);
static void * getPublicId_chdl_funptr;
static xmlChar * getSystemId_chdl_funarg(void *ctx);
static void * getSystemId_chdl_funptr;
static int getLineNumber_chdl_funarg(void *ctx);
static void * getLineNumber_chdl_funptr;
static int getColumnNumber_chdl_funarg(void *ctx);
static void * getColumnNumber_chdl_funptr;
EXPORTCH void xmlSAX2SetDocumentLocator_chdl(void *varg) {
va_list ap;
void *ctx;
xmlSAXLocatorPtr loc;
xmlSAXLocator loc_tmp;
Ch_VaStart(interp, ap, varg);
ctx = Ch_VaArg(interp, ap, void *);
loc = Ch_VaArg(interp, ap, xmlSAXLocatorPtr);
if( loc != NULL ){
loc_tmp = *loc;
if(loc->getPublicId){
getPublicId_chdl_funptr = (void *)loc->getPublicId;
loc_tmp.getPublicId = getPublicId_chdl_funarg;
}else{
loc_tmp.getPublicId = NULL;
}
if(loc->getSystemId){
getSystemId_chdl_funptr = (void *)loc->getSystemId;
loc_tmp.getSystemId = getSystemId_chdl_funarg;
}else{
loc_tmp.getSystemId = NULL;
}
if(loc->getLineNumber){
getLineNumber_chdl_funptr = (void *)loc->getLineNumber;
loc_tmp.getLineNumber = getLineNumber_chdl_funarg;
}else{
loc_tmp.getLineNumber = NULL;
}
if(loc->getColumnNumber){
getColumnNumber_chdl_funptr = (void *)loc->getColumnNumber;
loc_tmp.getColumnNumber = getColumnNumber_chdl_funarg;
}else{
loc_tmp.getColumnNumber = NULL;
}
}
xmlSAX2SetDocumentLocator(ctx, &loc_tmp);
Ch_VaEnd(interp, ap);
}
static xmlChar * getPublicId_chdl_funarg(void *ctx){
xmlChar *retval;
Ch_CallFuncByAddr(interp, getPublicId_chdl_funptr, &retval, ctx);
return retval;
}
static xmlChar * getSystemId_chdl_funarg(void *ctx){
xmlChar *retval;
Ch_CallFuncByAddr(interp, getSystemId_chdl_funptr, &retval, ctx);
return retval;
}
static int getLineNumber_chdl_funarg(void *ctx){
int retval;
Ch_CallFuncByAddr(interp, getLineNumber_chdl_funptr, &retval, ctx);
return retval;
}
static int getColumnNumber_chdl_funarg(void *ctx){
int retval;
Ch_CallFuncByAddr(interp, getLineNumber_chdl_funptr, &retval, ctx);
return retval;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -