%module CLuceneWrap %{ #include "clucene_dll.h" %} // our definitions for CLucene variables and functions %include "clucene_perl.h" %include typemaps.i %include argv.i // helper functions where pointers to result buffers are expected // would be better done with a %typemap(out) if I knew enough about perlguts %inline %{ int val_len; char * val; int CL_GetField1(int resource, char * field) { return CL_GETFIELD(resource,field,&val,&val_len); } char errstr[256]; char * CL_ErrStr1(int resource) { errstr[0] = '\0'; CL_ERRSTR(resource, errstr, (sizeof errstr)-1); return errstr; } char * CL_ErrStrGlobal1() { errstr[0] = '\0'; CL_ERRSTRGLOBAL(errstr, (sizeof errstr)-1); return errstr; } char docinfobuf[2048]; char * CL_Document_Info1(int resource) { CL_DOCUMENT_INFO(resource, docinfobuf, (sizeof docinfobuf)-1); return docinfobuf; } char searchinfobuf[2048]; char * CL_Search_Info1(int resource) { CL_SEARCH_INFO(resource, searchinfobuf, (sizeof searchinfobuf)-1); return searchinfobuf; } int CL_SearchMultiFieldsFlagged1(int resource, char * query, char ** fields, const int num_fields, char * flags) { return CL_SEARCHMULTIFIELDSFLAGGED(resource,query,(const char **)fields,num_fields,(const unsigned char *)flags); } %}