From: Adam Dickmeiss Date: Wed, 1 Nov 2000 14:47:00 +0000 (+0000) Subject: Added CCL support for WIN32. X-Git-Tag: YAZ.1.8~168 X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=commitdiff_plain;h=e0fea214f3bf8b0a75ae18c0e9c97c6d5e22df5f;hp=0bbcf1f8447a9d6514bc66e7390993c01d6ca0e3 Added CCL support for WIN32. --- diff --git a/include/yaz/ccl.h b/include/yaz/ccl.h index 08d6542..d800412 100644 --- a/include/yaz/ccl.h +++ b/include/yaz/ccl.h @@ -46,7 +46,10 @@ * CCL - header file * * $Log: ccl.h,v $ - * Revision 1.6 2000-10-17 19:50:28 adam + * Revision 1.7 2000-11-01 14:47:00 adam + * Added CCL support for WIN32. + * + * Revision 1.6 2000/10/17 19:50:28 adam * Implemented and-list and or-list for CCL module. * * Revision 1.5 2000/05/02 17:19:58 adam @@ -123,11 +126,10 @@ #ifndef CCL_H #define CCL_H +#include #include -#ifdef __cplusplus -extern "C" { -#endif +YAZ_BEGIN_CDECL /* CCL error numbers */ #define CCL_ERR_OK 0 @@ -268,85 +270,83 @@ struct ccl_parser { typedef struct ccl_parser *CCL_parser; /* Generate tokens from command string - obeys all CCL opererators */ -struct ccl_token *ccl_parser_tokenize (CCL_parser cclp, +YAZ_EXPORT struct ccl_token *ccl_parser_tokenize (CCL_parser cclp, const char *command); -struct ccl_token *ccl_tokenize (const char *command); +YAZ_EXPORT struct ccl_token *ccl_tokenize (const char *command); /* Generate tokens from command string - oebeys only simple tokens and quoted strings */ -struct ccl_token *ccl_token_simple (const char *command); +YAZ_EXPORT struct ccl_token *ccl_token_simple (const char *command); /* Delete token list */ -void ccl_token_del (struct ccl_token *list); +YAZ_EXPORT void ccl_token_del (struct ccl_token *list); /* Parse CCL Find command - NULL-terminated string */ -struct ccl_rpn_node *ccl_find_str (CCL_bibset bibset, +YAZ_EXPORT struct ccl_rpn_node *ccl_find_str (CCL_bibset bibset, const char *str, int *error, int *pos); /* Parse CCL Find command - Tokens read by ccl_tokenize */ -struct ccl_rpn_node *ccl_find (CCL_bibset abibset, struct ccl_token *list, +YAZ_EXPORT struct ccl_rpn_node *ccl_find (CCL_bibset abibset, struct ccl_token *list, int *error, const char **pos); /* Parse CCL Find command */ -struct ccl_rpn_node *ccl_parser_find (CCL_parser cclp, struct ccl_token *list); +YAZ_EXPORT struct ccl_rpn_node *ccl_parser_find (CCL_parser cclp, struct ccl_token *list); /* Set various OPs */ -void ccl_parser_set_op_and (CCL_parser p, const char *op); -void ccl_parser_set_op_or (CCL_parser p, const char *op); -void ccl_parser_set_op_not (CCL_parser p, const char *op); -void ccl_parser_set_op_set (CCL_parser p, const char *op); +YAZ_EXPORT void ccl_parser_set_op_and (CCL_parser p, const char *op); +YAZ_EXPORT void ccl_parser_set_op_or (CCL_parser p, const char *op); +YAZ_EXPORT void ccl_parser_set_op_not (CCL_parser p, const char *op); +YAZ_EXPORT void ccl_parser_set_op_set (CCL_parser p, const char *op); -void ccl_parser_set_case (CCL_parser p, int case_sensitivity_flag); +YAZ_EXPORT void ccl_parser_set_case (CCL_parser p, int case_sensitivity_flag); /* Return english-readable error message */ -const char *ccl_err_msg (int ccl_errno); +YAZ_EXPORT const char *ccl_err_msg (int ccl_errno); /* Delete RPN tree returned by ccl_find */ -void ccl_rpn_delete (struct ccl_rpn_node *rpn); +YAZ_EXPORT void ccl_rpn_delete (struct ccl_rpn_node *rpn); /* Dump RPN tree in readable format to fd_out */ -void ccl_pr_tree (struct ccl_rpn_node *rpn, FILE *fd_out); +YAZ_EXPORT void ccl_pr_tree (struct ccl_rpn_node *rpn, FILE *fd_out); /* Add CCL qualifier */ -void ccl_qual_add (CCL_bibset b, const char *name, int no, int *attr); +YAZ_EXPORT void ccl_qual_add (CCL_bibset b, const char *name, int no, int *attr); /* Read CCL qualifier list spec from file inf */ -void ccl_qual_file (CCL_bibset bibset, FILE *inf); +YAZ_EXPORT void ccl_qual_file (CCL_bibset bibset, FILE *inf); /* Add CCL qualifier by using single-line spec */ -void ccl_qual_fitem (CCL_bibset bibset, const char *cp, const char *qual_name); +YAZ_EXPORT void ccl_qual_fitem (CCL_bibset bibset, const char *cp, const char *qual_name); /* Make CCL qualifier set */ -CCL_bibset ccl_qual_mk (void); +YAZ_EXPORT CCL_bibset ccl_qual_mk (void); /* Delete CCL qualifier set */ -void ccl_qual_rm (CCL_bibset *b); +YAZ_EXPORT void ccl_qual_rm (CCL_bibset *b); /* Char-to-upper function */ extern int (*ccl_toupper)(int c); /* String utilities */ -int ccl_stricmp (const char *s1, const char *s2); -int ccl_memicmp (const char *s1, const char *s2, size_t n); +YAZ_EXPORT int ccl_stricmp (const char *s1, const char *s2); +YAZ_EXPORT int ccl_memicmp (const char *s1, const char *s2, size_t n); /* Search for qualifier 'name' in set 'b'. */ -struct ccl_rpn_attr *ccl_qual_search (CCL_parser cclp, const char *name, +YAZ_EXPORT struct ccl_rpn_attr *ccl_qual_search (CCL_parser cclp, const char *name, size_t len); /* Create CCL parser */ -CCL_parser ccl_parser_create (void); +YAZ_EXPORT CCL_parser ccl_parser_create (void); /* Destroy CCL parser */ -void ccl_parser_destroy (CCL_parser p); +YAZ_EXPORT void ccl_parser_destroy (CCL_parser p); #ifndef ccl_assert #define ccl_assert(x) ; #endif -#ifdef __cplusplus -} -#endif +YAZ_END_CDECL #endif diff --git a/win/makefile b/win/makefile index 0d20519..3353ff0 100644 --- a/win/makefile +++ b/win/makefile @@ -1,5 +1,5 @@ # makefile.mak - makefile for MS NMAKE -# $Id: makefile,v 1.17 2000-10-06 12:01:12 adam Exp $ +# $Id: makefile,v 1.18 2000-11-01 14:47:00 adam Exp $ # # Programmed by # HL: Heikki Levanto, Index Data @@ -23,7 +23,7 @@ ############### Parameters ########################################################### -DEBUG=1 # 0 for release, 1 for debug +DEBUG=0 # 0 for release, 1 for debug NEW_Z3950=1 # 0= use old asn files # 1= generate files from *.asn (needs tcl) @@ -58,6 +58,7 @@ ZUTILDIR=$(SRCDIR)\ZUTIL RETDIR=$(SRCDIR)\RETRIEVAL Z3950DIR=$(SRCDIR)\Z39.50 ILLDIR=$(SRCDIR)\ill +CCLDIR=$(SRCDIR)\ccl CLIENTDIR=$(SRCDIR)\CLIENT SERVERDIR=$(SRCDIR)\SERVER @@ -96,6 +97,7 @@ proto_h: $(PROTOH) COMMON_C_OPTIONS= \ /nologo /W3 /GX /FD /c \ /D "WIN32" /D "_WINDOWS" \ + /D "CCL2RPN=1" \ /FR"$(OBJDIR)\\" \ /Fo"$(OBJDIR)\\" \ /Fd"$(OBJDIR)\\" @@ -198,6 +200,15 @@ ZTEST_OBJS= \ "$(OBJDIR)\read-grs.obj" \ "$(OBJDIR)\ztest.obj" +YAZ_CCL_OBJS= \ + $(OBJDIR)\cclerrms.obj \ + $(OBJDIR)\cclfind.obj \ + $(OBJDIR)\cclptree.obj \ + $(OBJDIR)\cclqfile.obj \ + $(OBJDIR)\cclqual.obj \ + $(OBJDIR)\cclstr.obj \ + $(OBJDIR)\ccltoken.obj + YAZ_ASN_OBJS= \ $(OBJDIR)\proto.obj \ $(OBJDIR)\prt-acc.obj \ @@ -326,8 +337,9 @@ COMMON_YAZ_OBJS= \ $(YAZ_ODR_OBJS) \ $(YAZ_COMSTACK_OBJS) \ $(YAZ_ZUTIL_OBJS) \ + $(YAZ_CCL_OBJS) \ $(YAZ_RET_OBJS) \ - $(YAZ_SERVER_OBJS) + $(YAZ_SERVER_OBJS) !if $(NEW_Z3950) YAZ_OBJS= \ @@ -508,6 +520,9 @@ generated_files: \ {$(ILL_C_DIR)}.c{$(OBJDIR)}.obj: @$(CPP) $(COPT) $< +{$(CCLDIR)}.c{$(OBJDIR)}.obj: + @$(CPP) $(COPT) $< + ############### ASN-generated files !if $(HAVE_TCL) @@ -660,7 +675,10 @@ $(PROTOH): $(GENERATED_C_FILES) $(GENERATED_H_FILES) ########################################################### # # $Log: makefile,v $ -# Revision 1.17 2000-10-06 12:01:12 adam +# Revision 1.18 2000-11-01 14:47:00 adam +# Added CCL support for WIN32. +# +# Revision 1.17 2000/10/06 12:01:12 adam # Updates regarding ASN-code generation (mostly). # # Revision 1.16 2000/05/05 13:48:15 adam