From 22963c0b23a178529bc71e5879c7e4f9c3c9b7f9 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Tue, 28 Sep 2004 10:15:02 +0000 Subject: [PATCH] Reorganized header files so that a certain subset are public. These public files are stored in include/idzebra . Private ones are stored in include. --- data1/d1_absyn.c | 18 +- data1/d1_attset.c | 4 +- data1/d1_doespec.c | 4 +- data1/d1_espec.c | 4 +- data1/d1_expout.c | 4 +- data1/d1_grs.c | 4 +- data1/d1_handle.c | 4 +- data1/d1_if.c | 5 +- data1/d1_map.c | 4 +- data1/d1_marc.c | 4 +- data1/d1_prtree.c | 4 +- data1/d1_read.c | 4 +- data1/d1_soif.c | 4 +- data1/d1_sumout.c | 4 +- data1/d1_sutrs.c | 4 +- data1/d1_tagset.c | 4 +- data1/d1_varset.c | 10 +- data1/d1_write.c | 4 +- include/Makefile.am | 9 +- include/d1_absyn.h | 41 ++++ include/data1.h | 536 ------------------------------------------- include/idzebra/Makefile.am | 4 +- include/idzebra/data1.h | 507 ++++++++++++++++++++++++++++++++++++++++ include/idzebra/recctrl.h | 135 +++++++++++ include/idzebra/recgrs.h | 57 +++++ include/recctrl.h | 137 ----------- include/zebra_xpath.h | 3 + index/index.h | 6 +- index/main.c | 4 +- index/zinfo.h | 4 +- perl/IDZebra.i | 2 +- perl/zebra_perl.c | 6 +- recctrl/Makefile.am | 4 +- recctrl/danbibr.c | 6 +- recctrl/grsread.h | 55 ----- recctrl/marcread.c | 12 +- recctrl/perlread.c | 6 +- recctrl/perlread.h.in | 2 +- recctrl/recctrl.c | 4 +- recctrl/recgrs.c | 6 +- recctrl/rectext.c | 4 +- recctrl/regxread.c | 8 +- recctrl/sgmlread.c | 4 +- recctrl/xmlread.c | 5 +- util/xpath.c | 4 +- 45 files changed, 844 insertions(+), 820 deletions(-) create mode 100644 include/d1_absyn.h delete mode 100644 include/data1.h create mode 100644 include/idzebra/data1.h create mode 100644 include/idzebra/recctrl.h create mode 100644 include/idzebra/recgrs.h delete mode 100644 include/recctrl.h delete mode 100644 recctrl/grsread.h diff --git a/data1/d1_absyn.c b/data1/d1_absyn.c index f2a48ec..83d44ae 100644 --- a/data1/d1_absyn.c +++ b/data1/d1_absyn.c @@ -1,4 +1,4 @@ -/* $Id: d1_absyn.c,v 1.11 2004-08-24 14:29:09 adam Exp $ +/* $Id: d1_absyn.c,v 1.12 2004-09-28 10:15:02 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -27,11 +27,15 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include +#include #include +#include #define D1_MAX_NESTING 128 +#if PRIVATE_DATA1_ABSYN +#endif + struct data1_systag { char *name; char *value; @@ -501,6 +505,16 @@ int read_absyn_line(FILE *f, int *lineno, char *line, int len, return argc; } +data1_marctab *data1_absyn_getmarctab(data1_handle dh, data1_absyn *absyn) +{ + return absyn->marc; +} + +YAZ_EXPORT data1_element *data1_absyn_getelements(data1_handle dh, + data1_absyn *absyn) +{ + return absyn->main_elements; +} data1_absyn *data1_read_absyn (data1_handle dh, const char *file, int file_must_exist) diff --git a/data1/d1_attset.c b/data1/d1_attset.c index 4f3b032..2a3014a 100644 --- a/data1/d1_attset.c +++ b/data1/d1_attset.c @@ -1,4 +1,4 @@ -/* $Id: d1_attset.c,v 1.2 2002-10-22 13:19:50 adam Exp $ +/* $Id: d1_attset.c,v 1.3 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -26,7 +26,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include +#include data1_att *data1_getattbyname(data1_handle dh, data1_attset *s, char *name) { diff --git a/data1/d1_doespec.c b/data1/d1_doespec.c index d1cb8f3..4553949 100644 --- a/data1/d1_doespec.c +++ b/data1/d1_doespec.c @@ -1,4 +1,4 @@ -/* $Id: d1_doespec.c,v 1.2 2002-10-22 13:19:50 adam Exp $ +/* $Id: d1_doespec.c,v 1.3 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -25,7 +25,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include #include -#include +#include static int match_children(data1_handle dh, data1_node *n, Z_Espec1 *e, int i, Z_ETagUnit **t, diff --git a/data1/d1_espec.c b/data1/d1_espec.c index fba103f..606cacf 100644 --- a/data1/d1_espec.c +++ b/data1/d1_espec.c @@ -1,4 +1,4 @@ -/* $Id: d1_espec.c,v 1.2 2002-10-22 13:19:50 adam Exp $ +/* $Id: d1_espec.c,v 1.3 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -27,7 +27,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include #include -#include +#include static Z_Variant *read_variant(int argc, char **argv, NMEM nmem, const char *file, int lineno) diff --git a/data1/d1_expout.c b/data1/d1_expout.c index 26689cd..ca6862f 100644 --- a/data1/d1_expout.c +++ b/data1/d1_expout.c @@ -1,4 +1,4 @@ -/* $Id: d1_expout.c,v 1.2 2002-10-22 13:19:50 adam Exp $ +/* $Id: d1_expout.c,v 1.3 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -30,7 +30,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include +#include typedef struct { data1_handle dh; diff --git a/data1/d1_grs.c b/data1/d1_grs.c index b09be77..db9b5d0 100644 --- a/data1/d1_grs.c +++ b/data1/d1_grs.c @@ -1,4 +1,4 @@ -/* $Id: d1_grs.c,v 1.3 2003-03-27 21:57:01 adam Exp $ +/* $Id: d1_grs.c,v 1.4 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -27,7 +27,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include +#include #define D1_VARIANTARRAY 20 /* fixed max length on sup'd variant-list. Lazy me */ diff --git a/data1/d1_handle.c b/data1/d1_handle.c index f990653..6ae2041 100644 --- a/data1/d1_handle.c +++ b/data1/d1_handle.c @@ -1,4 +1,4 @@ -/* $Id: d1_handle.c,v 1.3 2002-12-16 20:27:18 adam Exp $ +/* $Id: d1_handle.c,v 1.4 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -24,7 +24,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include +#include struct data1_handle_info { WRBUF wrbuf; diff --git a/data1/d1_if.c b/data1/d1_if.c index 9ac8f3f..a58ce5b 100644 --- a/data1/d1_if.c +++ b/data1/d1_if.c @@ -1,4 +1,4 @@ -/* $Id: d1_if.c,v 1.2 2002-10-22 13:19:50 adam Exp $ +/* $Id: d1_if.c,v 1.3 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -25,12 +25,11 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include +#include #include #include - /* * Search for a token in the supplied string up to the supplied list of stop characters or EOL * At the end, return the character causing the break and fill pTokenBuffer with the token string so far diff --git a/data1/d1_map.c b/data1/d1_map.c index ff1aedc..c021cb4 100644 --- a/data1/d1_map.c +++ b/data1/d1_map.c @@ -1,4 +1,4 @@ -/* $Id: d1_map.c,v 1.3 2003-03-27 21:57:01 adam Exp $ +/* $Id: d1_map.c,v 1.4 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -28,7 +28,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include #include -#include +#include #include data1_maptab *data1_read_maptab (data1_handle dh, const char *file) diff --git a/data1/d1_marc.c b/data1/d1_marc.c index cc46e31..da28f8f 100644 --- a/data1/d1_marc.c +++ b/data1/d1_marc.c @@ -1,4 +1,4 @@ -/* $Id: d1_marc.c,v 1.6 2003-12-17 12:03:54 adam Exp $ +/* $Id: d1_marc.c,v 1.7 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003 Index Data Aps @@ -32,7 +32,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include #include -#include +#include data1_marctab *data1_read_marctab (data1_handle dh, const char *file) { diff --git a/data1/d1_prtree.c b/data1/d1_prtree.c index 1b65f2a..bea2c09 100644 --- a/data1/d1_prtree.c +++ b/data1/d1_prtree.c @@ -1,4 +1,4 @@ -/* $Id: d1_prtree.c,v 1.3 2003-09-08 10:26:26 adam Exp $ +/* $Id: d1_prtree.c,v 1.4 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003 Index Data Aps @@ -21,7 +21,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA */ #include -#include +#include static void pr_string (FILE *out, const char *str, int len) { diff --git a/data1/d1_read.c b/data1/d1_read.c index 742e170..1cd46bf 100644 --- a/data1/d1_read.c +++ b/data1/d1_read.c @@ -1,4 +1,4 @@ -/* $Id: d1_read.c,v 1.9 2004-08-04 08:35:22 adam Exp $ +/* $Id: d1_read.c,v 1.10 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -32,7 +32,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include #include -#include +#include data1_node *data1_get_root_tag (data1_handle dh, data1_node *n) { diff --git a/data1/d1_soif.c b/data1/d1_soif.c index f380106..4d4bc2a 100644 --- a/data1/d1_soif.c +++ b/data1/d1_soif.c @@ -1,4 +1,4 @@ -/* $Id: d1_soif.c,v 1.2 2002-10-22 13:19:50 adam Exp $ +/* $Id: d1_soif.c,v 1.3 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -28,7 +28,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA */ #include -#include +#include static int nodetoelement(data1_node *n, int select, char *prefix, WRBUF b) { diff --git a/data1/d1_sumout.c b/data1/d1_sumout.c index fc2aca5..4146d07 100644 --- a/data1/d1_sumout.c +++ b/data1/d1_sumout.c @@ -1,4 +1,4 @@ -/* $Id: d1_sumout.c,v 1.2 2002-10-22 13:19:50 adam Exp $ +/* $Id: d1_sumout.c,v 1.3 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -26,7 +26,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include +#include static int *f_integer(data1_node *c, ODR o) { diff --git a/data1/d1_sutrs.c b/data1/d1_sutrs.c index 96bbc09..77910b6 100644 --- a/data1/d1_sutrs.c +++ b/data1/d1_sutrs.c @@ -1,4 +1,4 @@ -/* $Id: d1_sutrs.c,v 1.2 2002-10-22 13:19:50 adam Exp $ +/* $Id: d1_sutrs.c,v 1.3 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -22,7 +22,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA /* converts data1 tree to SUTRS record */ -#include +#include #define NTOBUF_INDENT 2 #define NTOBUF_MARGIN 75 diff --git a/data1/d1_tagset.c b/data1/d1_tagset.c index e0a8570..89bf6bc 100644 --- a/data1/d1_tagset.c +++ b/data1/d1_tagset.c @@ -1,4 +1,4 @@ -/* $Id: d1_tagset.c,v 1.2 2002-10-22 13:19:50 adam Exp $ +/* $Id: d1_tagset.c,v 1.3 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -25,7 +25,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include +#include /* * We'll probably want to add some sort of hashed index to these lookup- diff --git a/data1/d1_varset.c b/data1/d1_varset.c index 4369cd8..06c47d2 100644 --- a/data1/d1_varset.c +++ b/data1/d1_varset.c @@ -1,4 +1,4 @@ -/* $Id: d1_varset.c,v 1.2 2002-10-22 13:19:50 adam Exp $ +/* $Id: d1_varset.c,v 1.3 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -25,7 +25,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include +#include data1_vartype *data1_getvartypebyct (data1_handle dh, data1_varset *set, char *zclass, char *type) @@ -47,6 +47,12 @@ data1_vartype *data1_getvartypebyct (data1_handle dh, data1_varset *set, return 0; } +data1_vartype *data1_getvartypeby_absyn (data1_handle dh, data1_absyn *absyn, + char *zclass, char *type) +{ + return data1_getvartypebyct(dh, absyn->varset, zclass, type); +} + data1_varset *data1_read_varset (data1_handle dh, const char *file) { NMEM mem = data1_nmem_get (dh); diff --git a/data1/d1_write.c b/data1/d1_write.c index e67e101..20b7b14 100644 --- a/data1/d1_write.c +++ b/data1/d1_write.c @@ -1,4 +1,4 @@ -/* $Id: d1_write.c,v 1.3 2003-02-25 21:50:27 adam Exp $ +/* $Id: d1_write.c,v 1.4 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -24,7 +24,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include -#include +#include #include #define IDSGML_MARGIN 75 diff --git a/include/Makefile.am b/include/Makefile.am index 7a8d48a..9e316c1 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1,8 +1,7 @@ -# $Id: Makefile.am,v 1.14 2004-09-01 17:08:45 adam Exp $ +# $Id: Makefile.am,v 1.15 2004-09-28 10:15:03 adam Exp $ noinst_HEADERS = bfile.h bset.h charmap.h d1_attset.h d1_map.h \ -data1.h dfa.h dict.h direntz.h isam-codec.h isamb.h isamc.h isamg.h \ -isams.h mfile.h passwddb.h recctrl.h \ -rset.h set.h sortidx.h str.h zebra-lock.h zebramap.h zebrautl.h \ -zebra_xpath.h +dict.h direntz.h isam-codec.h isamb.h isamc.h isamg.h \ +isams.h mfile.h passwddb.h dfa.h zebra_xpath.h d1_absyn.h \ +rset.h set.h sortidx.h str.h zebra-lock.h zebramap.h zebrautl.h SUBDIRS = idzebra diff --git a/include/d1_absyn.h b/include/d1_absyn.h new file mode 100644 index 0000000..771911a --- /dev/null +++ b/include/d1_absyn.h @@ -0,0 +1,41 @@ + +#ifndef D1_ABSYN_H +#define D1_ABSYN_H 1 + +#define ENHANCED_XELM 1 + +#include +#include +#include + +typedef struct data1_xpelement +{ + char *xpath_expr; +#ifdef ENHANCED_XELM + struct xpath_location_step xpath[XPATH_STEP_COUNT]; + int xpath_len; +#endif + struct DFA *dfa; + data1_termlist *termlists; + struct data1_xpelement *next; +} data1_xpelement; + +struct data1_absyn +{ + char *name; + oid_value reference; + data1_tagset *tagset; + data1_attset *attset; + data1_varset *varset; + data1_esetname *esetnames; + data1_maptab *maptabs; + data1_marctab *marc; + data1_sub_elements *sub_elements; + data1_element *main_elements; + struct data1_xpelement *xp_elements; /* pop */ + struct data1_systag *systags; + char *encoding; + int enable_xpath_indexing; +}; + +#endif diff --git a/include/data1.h b/include/data1.h deleted file mode 100644 index 94ce8a4..0000000 --- a/include/data1.h +++ /dev/null @@ -1,536 +0,0 @@ -/* $Id: data1.h,v 1.11 2004-08-25 09:23:35 adam Exp $ - Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 - Index Data Aps - -This file is part of the Zebra server. - -Zebra is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later -version. - -Zebra is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Zebra; see the file LICENSE.zebra. If not, write to the -Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. -*/ - -#ifndef DATA1_H -#define DATA1_H - -#define ENHANCED_XELM 1 - -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include /* pop */ -#include /* pop */ - -#define d1_isspace(c) strchr(" \r\n\t\f", c) -#define d1_isdigit(c) ((c) <= '9' && (c) >= '0') - -YAZ_BEGIN_CDECL - -#define data1_matchstr(s1, s2) yaz_matchstr(s1, s2) - -#define DATA1_MAX_SYMBOL 31 - -typedef struct data1_name -{ - char *name; - struct data1_name *next; -} data1_name; - -typedef struct data1_absyn_cache_info *data1_absyn_cache; -typedef struct data1_attset_cache_info *data1_attset_cache; - -typedef enum data1_datatype -{ - DATA1K_unknown, - DATA1K_structured, - DATA1K_string, - DATA1K_numeric, - DATA1K_bool, - DATA1K_oid, - DATA1K_generalizedtime, - DATA1K_intunit, - DATA1K_int, - DATA1K_octetstring, - DATA1K_null -} data1_datatype; - -typedef struct data1_marctab -{ - char *name; - oid_value reference; - - char record_status[2]; - char implementation_codes[5]; - int indicator_length; - int identifier_length; - char user_systems[4]; - - int length_data_entry; - int length_starting; - int length_implementation; - char future_use[2]; - - int force_indicator_length; - int force_identifier_length; - char leader[24]; /* Fixme! Need linear access to LEADER of MARC record */ - struct data1_marctab *next; -} data1_marctab; - -typedef struct data1_esetname -{ - char *name; - Z_Espec1 *spec; - struct data1_esetname *next; -} data1_esetname; - -/* - * Variant set definitions. - */ - -typedef struct data1_vartype -{ - char *name; - struct data1_varclass *zclass; - int type; - data1_datatype datatype; - struct data1_vartype *next; -} data1_vartype; - -typedef struct data1_varclass -{ - char *name; - struct data1_varset *set; - int zclass; - data1_vartype *types; - struct data1_varclass *next; -} data1_varclass; - -typedef struct data1_varset -{ - char *name; - oid_value reference; - data1_varclass *classes; -} data1_varset; - -/* - * Tagset definitions - */ - -struct data1_tagset; - -typedef struct data1_tag -{ - data1_name *names; -#define DATA1T_numeric 1 -#define DATA1T_string 2 - int which; - union - { - int numeric; - char *string; - } value; - data1_datatype kind; - - struct data1_tagset *tagset; - struct data1_tag *next; -} data1_tag; - -typedef struct data1_tagset data1_tagset; - -struct data1_tagset -{ - int type; /* type of tagset in current context */ - char *name; /* symbolic name */ - oid_value reference; - data1_tag *tags; /* tags defined by this set */ - data1_tagset *children; /* children */ - data1_tagset *next; /* sibling */ -}; - -typedef struct data1_termlist -{ - data1_att *att; - char *structure; - char *source; - struct data1_termlist *next; -} data1_termlist; - -/* - * abstract syntax specification - */ - -typedef struct data1_element -{ - char *name; - data1_tag *tag; - data1_termlist *termlists; - char *sub_name; - struct data1_element *children; - struct data1_element *next; -} data1_element; - -typedef struct data1_sub_elements { - char *name; - struct data1_sub_elements *next; - data1_element *elements; -} data1_sub_elements; - -/* pop */ -typedef struct data1_xpelement -{ - char *xpath_expr; -#ifdef ENHANCED_XELM - struct xpath_location_step xpath[XPATH_STEP_COUNT]; - int xpath_len; -#endif - struct DFA *dfa; - data1_termlist *termlists; - struct data1_xpelement *next; -} data1_xpelement; - -typedef struct data1_xattr { - char *name; - char *value; - struct data1_xattr *next; - unsigned short what; /* DATA1I_text, .. see data1_node.u.data */ -} data1_xattr; - -#if 0 -typedef struct data1_absyn data1_absyn; -#else -typedef struct data1_absyn -{ - char *name; - oid_value reference; - data1_tagset *tagset; - data1_attset *attset; - data1_varset *varset; - data1_esetname *esetnames; - data1_maptab *maptabs; - data1_marctab *marc; - data1_sub_elements *sub_elements; - data1_element *main_elements; - data1_xpelement *xp_elements; /* pop */ - struct data1_systag *systags; - char *encoding; - int enable_xpath_indexing; -} data1_absyn; -#endif -/* - * record data node (tag/data/variant) - */ - -typedef struct data1_node -{ - /* the root of a record (containing global data) */ -#define DATA1N_root 1 - /* a tag */ -#define DATA1N_tag 2 - /* some data under a leaf tag or variant */ -#define DATA1N_data 3 - /* variant specification (a triple, actually) */ -#define DATA1N_variant 4 - /* comment (same as data) */ -#define DATA1N_comment 5 - /* preprocessing instruction */ -#define DATA1N_preprocess 6 - int which; - union - { - struct - { - char *type; - data1_absyn *absyn; /* abstract syntax for this type */ - } root; - - struct - { - char *tag; - data1_element *element; - int no_data_requested; - int get_bytes; - unsigned node_selected : 1; - unsigned make_variantlist : 1; - data1_xattr *attributes; - } tag; - - struct - { - char *data; /* filename or data */ - int len; - /* text inclusion */ -#define DATA1I_inctxt 1 - /* binary data inclusion */ -#define DATA1I_incbin 2 - /* text data */ -#define DATA1I_text 3 - /* numerical data */ -#define DATA1I_num 4 - /* object identifier */ -#define DATA1I_oid 5 - /* XML text */ -#define DATA1I_xmltext 6 - unsigned what:7; - unsigned formatted_text : 1; /* newlines are significant */ - } data; - - struct - { - data1_vartype *type; - char *value; - } variant; - - struct - { - char *target; - data1_xattr *attributes; - } preprocess; - } u; - - void (*destroy)(struct data1_node *n); -#define DATA1_LOCALDATA 12 - char lbuf[DATA1_LOCALDATA]; /* small buffer for local data */ - struct data1_node *next; - struct data1_node *child; - struct data1_node *last_child; - struct data1_node *parent; - struct data1_node *root; -} data1_node; - -YAZ_EXPORT data1_handle data1_create (void); - -#define DATA1_FLAG_XML 1 -YAZ_EXPORT data1_handle data1_createx (int flags); - -YAZ_EXPORT void data1_destroy(data1_handle dh); -YAZ_EXPORT data1_node *get_parent_tag(data1_handle dh, data1_node *n); -YAZ_EXPORT data1_node *data1_read_node(data1_handle dh, const char **buf, - NMEM m); -YAZ_EXPORT data1_node *data1_read_nodex (data1_handle dh, NMEM m, - int (*get_byte)(void *fh), void *fh, - WRBUF wrbuf); -YAZ_EXPORT data1_node *data1_read_record(data1_handle dh, - int (*rf)(void *, char *, size_t), - void *fh, NMEM m); -YAZ_EXPORT data1_absyn *data1_read_absyn(data1_handle dh, const char *file, - int file_must_exist); -YAZ_EXPORT data1_tag *data1_gettagbynum(data1_handle dh, - data1_tagset *s, - int type, int value); -YAZ_EXPORT data1_tagset *data1_empty_tagset (data1_handle dh); -YAZ_EXPORT data1_tagset *data1_read_tagset(data1_handle dh, - const char *file, - int type); -YAZ_EXPORT data1_element *data1_getelementbytagname(data1_handle dh, - data1_absyn *abs, - data1_element *parent, - const char *tagname); -YAZ_EXPORT Z_GenericRecord *data1_nodetogr(data1_handle dh, data1_node *n, - int select, ODR o, - int *len); -YAZ_EXPORT data1_tag *data1_gettagbyname(data1_handle dh, data1_tagset *s, - const char *name); -YAZ_EXPORT void data1_free_tree(data1_handle dh, data1_node *t); -YAZ_EXPORT char *data1_nodetobuf(data1_handle dh, data1_node *n, - int select, int *len); -YAZ_EXPORT data1_node *data1_mk_tag_data_wd(data1_handle dh, - data1_node *at, - const char *tagname, NMEM m); -YAZ_EXPORT data1_node *data1_mk_tag_data(data1_handle dh, data1_node *at, - const char *tagname, NMEM m); -YAZ_EXPORT data1_datatype data1_maptype(data1_handle dh, char *t); -YAZ_EXPORT data1_varset *data1_read_varset(data1_handle dh, const char *file); -YAZ_EXPORT data1_vartype *data1_getvartypebyct(data1_handle dh, - data1_varset *set, - char *zclass, char *type); -YAZ_EXPORT Z_Espec1 *data1_read_espec1(data1_handle dh, const char *file); -YAZ_EXPORT int data1_doespec1(data1_handle dh, data1_node *n, Z_Espec1 *e); -YAZ_EXPORT data1_esetname *data1_getesetbyname(data1_handle dh, - data1_absyn *a, - const char *name); -YAZ_EXPORT data1_element *data1_getelementbyname(data1_handle dh, - data1_absyn *absyn, - const char *name); -YAZ_EXPORT data1_node *data1_mk_node2(data1_handle dh, NMEM m, - int type, data1_node *parent); - -YAZ_EXPORT data1_node *data1_mk_tag (data1_handle dh, NMEM nmem, - const char *tag, const char **attr, - data1_node *at); -YAZ_EXPORT data1_node *data1_mk_tag_n (data1_handle dh, NMEM nmem, - const char *tag, size_t len, - const char **attr, - data1_node *at); -YAZ_EXPORT void data1_tag_add_attr (data1_handle dh, NMEM nmem, - data1_node *res, const char **attr); - -YAZ_EXPORT data1_node *data1_mk_text_n (data1_handle dh, NMEM mem, - const char *buf, size_t len, - data1_node *parent); -YAZ_EXPORT data1_node *data1_mk_text_nf (data1_handle dh, NMEM mem, - const char *buf, size_t len, - data1_node *parent); -YAZ_EXPORT data1_node *data1_mk_text (data1_handle dh, NMEM mem, - const char *buf, data1_node *parent); - -YAZ_EXPORT data1_node *data1_mk_comment_n (data1_handle dh, NMEM mem, - const char *buf, size_t len, - data1_node *parent); - -YAZ_EXPORT data1_node *data1_mk_comment (data1_handle dh, NMEM mem, - const char *buf, data1_node *parent); - -YAZ_EXPORT data1_node *data1_mk_preprocess_n (data1_handle dh, NMEM nmem, - const char *target, size_t len, - const char **attr, - data1_node *at); - -YAZ_EXPORT data1_node *data1_mk_preprocess (data1_handle dh, NMEM nmem, - const char *target, - const char **attr, - data1_node *at); - -YAZ_EXPORT data1_node *data1_insert_preprocess_n (data1_handle dh, NMEM nmem, - const char *target, - size_t len, - const char **attr, - data1_node *at); - -YAZ_EXPORT data1_node *data1_insert_preprocess (data1_handle dh, NMEM nmem, - const char *target, - const char **attr, - data1_node *at); - -YAZ_EXPORT data1_node *data1_mk_root (data1_handle dh, NMEM nmem, - const char *name); -YAZ_EXPORT void data1_set_root(data1_handle dh, data1_node *res, - NMEM nmem, const char *name); - -YAZ_EXPORT data1_node *data1_mk_tag_data_zint (data1_handle dh, data1_node *at, - const char *tag, zint num, - NMEM nmem); -YAZ_EXPORT data1_node *data1_mk_tag_data_int (data1_handle dh, data1_node *at, - const char *tag, int num, - NMEM nmem); -YAZ_EXPORT data1_node *data1_mk_tag_data_oid (data1_handle dh, data1_node *at, - const char *tag, Odr_oid *oid, - NMEM nmem); -YAZ_EXPORT data1_node *data1_mk_tag_data_text (data1_handle dh, data1_node *at, - const char *tag, - const char *str, - NMEM nmem); -YAZ_EXPORT data1_node *data1_mk_tag_data_text_uni (data1_handle dh, - data1_node *at, - const char *tag, - const char *str, - NMEM nmem); - -YAZ_EXPORT data1_absyn *data1_get_absyn (data1_handle dh, const char *name); - -YAZ_EXPORT data1_node *data1_search_tag (data1_handle dh, data1_node *n, - const char *tag); -YAZ_EXPORT data1_node *data1_mk_tag_uni (data1_handle dh, NMEM nmem, - const char *tag, data1_node *at); -YAZ_EXPORT data1_attset *data1_get_attset (data1_handle dh, const char *name); -YAZ_EXPORT data1_maptab *data1_read_maptab(data1_handle dh, const char *file); -YAZ_EXPORT data1_node *data1_map_record(data1_handle dh, data1_node *n, - data1_maptab *map, NMEM m); -YAZ_EXPORT data1_marctab *data1_read_marctab (data1_handle dh, - const char *file); -YAZ_EXPORT char *data1_nodetomarc(data1_handle dh, data1_marctab *p, - data1_node *n, int selected, int *len); -YAZ_EXPORT char *data1_nodetoidsgml(data1_handle dh, data1_node *n, - int select, int *len); -YAZ_EXPORT Z_ExplainRecord *data1_nodetoexplain(data1_handle dh, - data1_node *n, int select, - ODR o); -YAZ_EXPORT Z_BriefBib *data1_nodetosummary(data1_handle dh, - data1_node *n, int select, - ODR o); -YAZ_EXPORT char *data1_nodetosoif(data1_handle dh, data1_node *n, int select, - int *len); -YAZ_EXPORT void data1_set_tabpath(data1_handle dh, const char *path); -YAZ_EXPORT void data1_set_tabroot (data1_handle dp, const char *p); -YAZ_EXPORT const char *data1_get_tabpath(data1_handle dh); -YAZ_EXPORT const char *data1_get_tabroot(data1_handle dh); - -YAZ_EXPORT WRBUF data1_get_wrbuf (data1_handle dp); -YAZ_EXPORT char **data1_get_read_buf (data1_handle dp, int **lenp); -YAZ_EXPORT char **data1_get_map_buf (data1_handle dp, int **lenp); -YAZ_EXPORT data1_absyn_cache *data1_absyn_cache_get (data1_handle dh); -YAZ_EXPORT data1_attset_cache *data1_attset_cache_get (data1_handle dh); -YAZ_EXPORT NMEM data1_nmem_get (data1_handle dh); -YAZ_EXPORT void data1_pr_tree (data1_handle dh, data1_node *n, FILE *out); -YAZ_EXPORT char *data1_insert_string (data1_handle dh, data1_node *res, - NMEM m, const char *str); -YAZ_EXPORT char *data1_insert_string_n (data1_handle dh, data1_node *res, - NMEM m, const char *str, size_t len); -YAZ_EXPORT data1_node *data1_read_sgml (data1_handle dh, NMEM m, - const char *buf); -YAZ_EXPORT data1_node *data1_read_xml (data1_handle dh, - int (*rf)(void *, char *, size_t), - void *fh, NMEM m); -YAZ_EXPORT void data1_absyn_trav (data1_handle dh, void *handle, - void (*fh)(data1_handle dh, - void *h, data1_absyn *a)); - -YAZ_EXPORT data1_attset *data1_attset_search_id (data1_handle dh, int id); - -YAZ_EXPORT char *data1_getNodeValue(data1_node* node, char* pTagPath); -YAZ_EXPORT data1_node *data1_LookupNode(data1_node* node, char* pTagPath); -YAZ_EXPORT int data1_CountOccurences(data1_node* node, char* pTagPath); - -YAZ_EXPORT FILE *data1_path_fopen (data1_handle dh, const char *file, - const char *mode); - -/* obsolete functions ... */ - -YAZ_EXPORT data1_node *data1_mk_node (data1_handle dh, NMEM m); -YAZ_EXPORT data1_node *data1_insert_taggeddata (data1_handle dh, - data1_node *root, - data1_node *at, - const char *tagname, NMEM m); -YAZ_EXPORT data1_node *data1_mk_node_type (data1_handle dh, NMEM m, int type); -YAZ_EXPORT data1_node *data1_add_taggeddata (data1_handle dh, data1_node *root, - data1_node *at, - const char *tagname, - NMEM m); - -YAZ_EXPORT data1_node *data1_get_root_tag (data1_handle dh, data1_node *n); - -YAZ_EXPORT int data1_iconv (data1_handle dh, NMEM m, data1_node *n, - const char *tocode, - const char *fromcode); - -YAZ_EXPORT const char *data1_get_encoding (data1_handle dh, data1_node *n); - -YAZ_EXPORT int data1_is_xmlmode(data1_handle dh); - -YAZ_EXPORT const char *data1_systag_lookup(data1_absyn *absyn, const char *tag, - const char *default_value); - -YAZ_EXPORT void data1_concat_text(data1_handle dh, NMEM m, data1_node *n); - -YAZ_EXPORT void data1_absyn_destroy(data1_handle dh); - -YAZ_END_CDECL - -#endif diff --git a/include/idzebra/Makefile.am b/include/idzebra/Makefile.am index c536bfd..4c20d40 100644 --- a/include/idzebra/Makefile.am +++ b/include/idzebra/Makefile.am @@ -1,4 +1,4 @@ -# $Id: Makefile.am,v 1.1 2004-08-25 09:23:36 adam Exp $ +# $Id: Makefile.am,v 1.2 2004-09-28 10:15:03 adam Exp $ -pkginclude_HEADERS=api.h version.h res.h +pkginclude_HEADERS=api.h version.h res.h recctrl.h data1.h recgrs.h diff --git a/include/idzebra/data1.h b/include/idzebra/data1.h new file mode 100644 index 0000000..81c579a --- /dev/null +++ b/include/idzebra/data1.h @@ -0,0 +1,507 @@ +/* $Id: data1.h,v 1.1 2004-09-28 10:15:03 adam Exp $ + Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 + Index Data Aps + +This file is part of the Zebra server. + +Zebra is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Zebra is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with Zebra; see the file LICENSE.zebra. If not, write to the +Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. +*/ + +#ifndef DATA1_H +#define DATA1_H + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#define d1_isspace(c) strchr(" \r\n\t\f", c) +#define d1_isdigit(c) ((c) <= '9' && (c) >= '0') + +YAZ_BEGIN_CDECL + +#define data1_matchstr(s1, s2) yaz_matchstr(s1, s2) + +#define DATA1_MAX_SYMBOL 31 + +typedef struct data1_name +{ + char *name; + struct data1_name *next; +} data1_name; + +typedef struct data1_absyn_cache_info *data1_absyn_cache; +typedef struct data1_attset_cache_info *data1_attset_cache; +typedef struct data1_absyn data1_absyn; + +typedef enum data1_datatype +{ + DATA1K_unknown, + DATA1K_structured, + DATA1K_string, + DATA1K_numeric, + DATA1K_bool, + DATA1K_oid, + DATA1K_generalizedtime, + DATA1K_intunit, + DATA1K_int, + DATA1K_octetstring, + DATA1K_null +} data1_datatype; + +typedef struct data1_marctab +{ + char *name; + oid_value reference; + + char record_status[2]; + char implementation_codes[5]; + int indicator_length; + int identifier_length; + char user_systems[4]; + + int length_data_entry; + int length_starting; + int length_implementation; + char future_use[2]; + + int force_indicator_length; + int force_identifier_length; + char leader[24]; /* Fixme! Need linear access to LEADER of MARC record */ + struct data1_marctab *next; +} data1_marctab; + +typedef struct data1_esetname +{ + char *name; + Z_Espec1 *spec; + struct data1_esetname *next; +} data1_esetname; + +/* + * Variant set definitions. + */ + +typedef struct data1_vartype +{ + char *name; + struct data1_varclass *zclass; + int type; + data1_datatype datatype; + struct data1_vartype *next; +} data1_vartype; + +typedef struct data1_varclass +{ + char *name; + struct data1_varset *set; + int zclass; + data1_vartype *types; + struct data1_varclass *next; +} data1_varclass; + +typedef struct data1_varset +{ + char *name; + oid_value reference; + data1_varclass *classes; +} data1_varset; + +/* + * Tagset definitions + */ + +struct data1_tagset; + +typedef struct data1_tag +{ + data1_name *names; +#define DATA1T_numeric 1 +#define DATA1T_string 2 + int which; + union + { + int numeric; + char *string; + } value; + data1_datatype kind; + + struct data1_tagset *tagset; + struct data1_tag *next; +} data1_tag; + +typedef struct data1_tagset data1_tagset; + +struct data1_tagset +{ + int type; /* type of tagset in current context */ + char *name; /* symbolic name */ + oid_value reference; + data1_tag *tags; /* tags defined by this set */ + data1_tagset *children; /* children */ + data1_tagset *next; /* sibling */ +}; + +typedef struct data1_termlist +{ + data1_att *att; + char *structure; + char *source; + struct data1_termlist *next; +} data1_termlist; + +/* + * abstract syntax specification + */ + +typedef struct data1_element +{ + char *name; + data1_tag *tag; + data1_termlist *termlists; + char *sub_name; + struct data1_element *children; + struct data1_element *next; +} data1_element; + +typedef struct data1_sub_elements { + char *name; + struct data1_sub_elements *next; + data1_element *elements; +} data1_sub_elements; + +typedef struct data1_xattr { + char *name; + char *value; + struct data1_xattr *next; + unsigned short what; /* DATA1I_text, .. see data1_node.u.data */ +} data1_xattr; + + +/* + * record data node (tag/data/variant) + */ + +typedef struct data1_node +{ + /* the root of a record (containing global data) */ +#define DATA1N_root 1 + /* a tag */ +#define DATA1N_tag 2 + /* some data under a leaf tag or variant */ +#define DATA1N_data 3 + /* variant specification (a triple, actually) */ +#define DATA1N_variant 4 + /* comment (same as data) */ +#define DATA1N_comment 5 + /* preprocessing instruction */ +#define DATA1N_preprocess 6 + int which; + union + { + struct + { + char *type; + struct data1_absyn *absyn; /* abstract syntax for this type */ + } root; + + struct + { + char *tag; + data1_element *element; + int no_data_requested; + int get_bytes; + unsigned node_selected : 1; + unsigned make_variantlist : 1; + data1_xattr *attributes; + } tag; + + struct + { + char *data; /* filename or data */ + int len; + /* text inclusion */ +#define DATA1I_inctxt 1 + /* binary data inclusion */ +#define DATA1I_incbin 2 + /* text data */ +#define DATA1I_text 3 + /* numerical data */ +#define DATA1I_num 4 + /* object identifier */ +#define DATA1I_oid 5 + /* XML text */ +#define DATA1I_xmltext 6 + unsigned what:7; + unsigned formatted_text : 1; /* newlines are significant */ + } data; + + struct + { + data1_vartype *type; + char *value; + } variant; + + struct + { + char *target; + data1_xattr *attributes; + } preprocess; + } u; + + void (*destroy)(struct data1_node *n); +#define DATA1_LOCALDATA 12 + char lbuf[DATA1_LOCALDATA]; /* small buffer for local data */ + struct data1_node *next; + struct data1_node *child; + struct data1_node *last_child; + struct data1_node *parent; + struct data1_node *root; +} data1_node; + +YAZ_EXPORT data1_handle data1_create (void); + +#define DATA1_FLAG_XML 1 +YAZ_EXPORT data1_handle data1_createx (int flags); + +YAZ_EXPORT void data1_destroy(data1_handle dh); +YAZ_EXPORT data1_node *get_parent_tag(data1_handle dh, data1_node *n); +YAZ_EXPORT data1_node *data1_read_node(data1_handle dh, const char **buf, + NMEM m); +YAZ_EXPORT data1_node *data1_read_nodex (data1_handle dh, NMEM m, + int (*get_byte)(void *fh), void *fh, + WRBUF wrbuf); +YAZ_EXPORT data1_node *data1_read_record(data1_handle dh, + int (*rf)(void *, char *, size_t), + void *fh, NMEM m); +YAZ_EXPORT data1_absyn *data1_read_absyn(data1_handle dh, const char *file, + int file_must_exist); +YAZ_EXPORT data1_tag *data1_gettagbynum(data1_handle dh, + data1_tagset *s, + int type, int value); +YAZ_EXPORT data1_tagset *data1_empty_tagset (data1_handle dh); +YAZ_EXPORT data1_tagset *data1_read_tagset(data1_handle dh, + const char *file, + int type); +YAZ_EXPORT data1_element *data1_getelementbytagname(data1_handle dh, + data1_absyn *abs, + data1_element *parent, + const char *tagname); +YAZ_EXPORT Z_GenericRecord *data1_nodetogr(data1_handle dh, data1_node *n, + int select, ODR o, + int *len); +YAZ_EXPORT data1_tag *data1_gettagbyname(data1_handle dh, data1_tagset *s, + const char *name); +YAZ_EXPORT void data1_free_tree(data1_handle dh, data1_node *t); +YAZ_EXPORT char *data1_nodetobuf(data1_handle dh, data1_node *n, + int select, int *len); +YAZ_EXPORT data1_node *data1_mk_tag_data_wd(data1_handle dh, + data1_node *at, + const char *tagname, NMEM m); +YAZ_EXPORT data1_node *data1_mk_tag_data(data1_handle dh, data1_node *at, + const char *tagname, NMEM m); +YAZ_EXPORT data1_datatype data1_maptype(data1_handle dh, char *t); +YAZ_EXPORT data1_varset *data1_read_varset(data1_handle dh, const char *file); +YAZ_EXPORT data1_vartype *data1_getvartypebyct(data1_handle dh, + data1_varset *set, + char *zclass, char *type); +YAZ_EXPORT data1_vartype *data1_getvartypeby_absyn(data1_handle dh, + data1_absyn *absyn, + char *zclass, char *type); +YAZ_EXPORT Z_Espec1 *data1_read_espec1(data1_handle dh, const char *file); +YAZ_EXPORT int data1_doespec1(data1_handle dh, data1_node *n, Z_Espec1 *e); +YAZ_EXPORT data1_esetname *data1_getesetbyname(data1_handle dh, + data1_absyn *a, + const char *name); +YAZ_EXPORT data1_element *data1_getelementbyname(data1_handle dh, + data1_absyn *absyn, + const char *name); +YAZ_EXPORT data1_node *data1_mk_node2(data1_handle dh, NMEM m, + int type, data1_node *parent); + +YAZ_EXPORT data1_node *data1_mk_tag (data1_handle dh, NMEM nmem, + const char *tag, const char **attr, + data1_node *at); +YAZ_EXPORT data1_node *data1_mk_tag_n (data1_handle dh, NMEM nmem, + const char *tag, size_t len, + const char **attr, + data1_node *at); +YAZ_EXPORT void data1_tag_add_attr (data1_handle dh, NMEM nmem, + data1_node *res, const char **attr); + +YAZ_EXPORT data1_node *data1_mk_text_n (data1_handle dh, NMEM mem, + const char *buf, size_t len, + data1_node *parent); +YAZ_EXPORT data1_node *data1_mk_text_nf (data1_handle dh, NMEM mem, + const char *buf, size_t len, + data1_node *parent); +YAZ_EXPORT data1_node *data1_mk_text (data1_handle dh, NMEM mem, + const char *buf, data1_node *parent); + +YAZ_EXPORT data1_node *data1_mk_comment_n (data1_handle dh, NMEM mem, + const char *buf, size_t len, + data1_node *parent); + +YAZ_EXPORT data1_node *data1_mk_comment (data1_handle dh, NMEM mem, + const char *buf, data1_node *parent); + +YAZ_EXPORT data1_node *data1_mk_preprocess_n (data1_handle dh, NMEM nmem, + const char *target, size_t len, + const char **attr, + data1_node *at); + +YAZ_EXPORT data1_node *data1_mk_preprocess (data1_handle dh, NMEM nmem, + const char *target, + const char **attr, + data1_node *at); + +YAZ_EXPORT data1_node *data1_insert_preprocess_n (data1_handle dh, NMEM nmem, + const char *target, + size_t len, + const char **attr, + data1_node *at); + +YAZ_EXPORT data1_node *data1_insert_preprocess (data1_handle dh, NMEM nmem, + const char *target, + const char **attr, + data1_node *at); + +YAZ_EXPORT data1_node *data1_mk_root (data1_handle dh, NMEM nmem, + const char *name); +YAZ_EXPORT void data1_set_root(data1_handle dh, data1_node *res, + NMEM nmem, const char *name); + +YAZ_EXPORT data1_node *data1_mk_tag_data_zint (data1_handle dh, data1_node *at, + const char *tag, zint num, + NMEM nmem); +YAZ_EXPORT data1_node *data1_mk_tag_data_int (data1_handle dh, data1_node *at, + const char *tag, int num, + NMEM nmem); +YAZ_EXPORT data1_node *data1_mk_tag_data_oid (data1_handle dh, data1_node *at, + const char *tag, Odr_oid *oid, + NMEM nmem); +YAZ_EXPORT data1_node *data1_mk_tag_data_text (data1_handle dh, data1_node *at, + const char *tag, + const char *str, + NMEM nmem); +YAZ_EXPORT data1_node *data1_mk_tag_data_text_uni (data1_handle dh, + data1_node *at, + const char *tag, + const char *str, + NMEM nmem); + +YAZ_EXPORT data1_absyn *data1_get_absyn (data1_handle dh, const char *name); + +YAZ_EXPORT data1_node *data1_search_tag (data1_handle dh, data1_node *n, + const char *tag); +YAZ_EXPORT data1_node *data1_mk_tag_uni (data1_handle dh, NMEM nmem, + const char *tag, data1_node *at); +YAZ_EXPORT data1_attset *data1_get_attset (data1_handle dh, const char *name); +YAZ_EXPORT data1_maptab *data1_read_maptab(data1_handle dh, const char *file); +YAZ_EXPORT data1_node *data1_map_record(data1_handle dh, data1_node *n, + data1_maptab *map, NMEM m); +YAZ_EXPORT data1_marctab *data1_read_marctab (data1_handle dh, + const char *file); +YAZ_EXPORT data1_marctab *data1_absyn_getmarctab(data1_handle dh, + data1_absyn *absyn); +YAZ_EXPORT data1_element *data1_absyn_getelements(data1_handle dh, + data1_absyn *absyn); +YAZ_EXPORT char *data1_nodetomarc(data1_handle dh, data1_marctab *p, + data1_node *n, int selected, int *len); +YAZ_EXPORT char *data1_nodetoidsgml(data1_handle dh, data1_node *n, + int select, int *len); +YAZ_EXPORT Z_ExplainRecord *data1_nodetoexplain(data1_handle dh, + data1_node *n, int select, + ODR o); +YAZ_EXPORT Z_BriefBib *data1_nodetosummary(data1_handle dh, + data1_node *n, int select, + ODR o); +YAZ_EXPORT char *data1_nodetosoif(data1_handle dh, data1_node *n, int select, + int *len); +YAZ_EXPORT void data1_set_tabpath(data1_handle dh, const char *path); +YAZ_EXPORT void data1_set_tabroot (data1_handle dp, const char *p); +YAZ_EXPORT const char *data1_get_tabpath(data1_handle dh); +YAZ_EXPORT const char *data1_get_tabroot(data1_handle dh); + +YAZ_EXPORT WRBUF data1_get_wrbuf (data1_handle dp); +YAZ_EXPORT char **data1_get_read_buf (data1_handle dp, int **lenp); +YAZ_EXPORT char **data1_get_map_buf (data1_handle dp, int **lenp); +YAZ_EXPORT data1_absyn_cache *data1_absyn_cache_get (data1_handle dh); +YAZ_EXPORT data1_attset_cache *data1_attset_cache_get (data1_handle dh); +YAZ_EXPORT NMEM data1_nmem_get (data1_handle dh); +YAZ_EXPORT void data1_pr_tree (data1_handle dh, data1_node *n, FILE *out); +YAZ_EXPORT char *data1_insert_string (data1_handle dh, data1_node *res, + NMEM m, const char *str); +YAZ_EXPORT char *data1_insert_string_n (data1_handle dh, data1_node *res, + NMEM m, const char *str, size_t len); +YAZ_EXPORT data1_node *data1_read_sgml (data1_handle dh, NMEM m, + const char *buf); +YAZ_EXPORT data1_node *data1_read_xml (data1_handle dh, + int (*rf)(void *, char *, size_t), + void *fh, NMEM m); +YAZ_EXPORT void data1_absyn_trav (data1_handle dh, void *handle, + void (*fh)(data1_handle dh, + void *h, data1_absyn *a)); + +YAZ_EXPORT data1_attset *data1_attset_search_id (data1_handle dh, int id); + +YAZ_EXPORT char *data1_getNodeValue(data1_node* node, char* pTagPath); +YAZ_EXPORT data1_node *data1_LookupNode(data1_node* node, char* pTagPath); +YAZ_EXPORT int data1_CountOccurences(data1_node* node, char* pTagPath); + +YAZ_EXPORT FILE *data1_path_fopen (data1_handle dh, const char *file, + const char *mode); + +/* obsolete functions ... */ + +YAZ_EXPORT data1_node *data1_mk_node (data1_handle dh, NMEM m); +YAZ_EXPORT data1_node *data1_insert_taggeddata (data1_handle dh, + data1_node *root, + data1_node *at, + const char *tagname, NMEM m); +YAZ_EXPORT data1_node *data1_mk_node_type (data1_handle dh, NMEM m, int type); +YAZ_EXPORT data1_node *data1_add_taggeddata (data1_handle dh, data1_node *root, + data1_node *at, + const char *tagname, + NMEM m); + +YAZ_EXPORT data1_node *data1_get_root_tag (data1_handle dh, data1_node *n); + +YAZ_EXPORT int data1_iconv (data1_handle dh, NMEM m, data1_node *n, + const char *tocode, + const char *fromcode); + +YAZ_EXPORT const char *data1_get_encoding (data1_handle dh, data1_node *n); + +YAZ_EXPORT int data1_is_xmlmode(data1_handle dh); + +YAZ_EXPORT const char *data1_systag_lookup(data1_absyn *absyn, const char *tag, + const char *default_value); + +YAZ_EXPORT void data1_concat_text(data1_handle dh, NMEM m, data1_node *n); + +YAZ_EXPORT void data1_absyn_destroy(data1_handle dh); + +YAZ_END_CDECL + +#endif diff --git a/include/idzebra/recctrl.h b/include/idzebra/recctrl.h new file mode 100644 index 0000000..b9f8d3c --- /dev/null +++ b/include/idzebra/recctrl.h @@ -0,0 +1,135 @@ +/* $Id: recctrl.h,v 1.1 2004-09-28 10:15:03 adam Exp $ + Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 + Index Data Aps + +This file is part of the Zebra server. + +Zebra is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Zebra is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with Zebra; see the file LICENSE.zebra. If not, write to the +Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. +*/ + + + +#ifndef RECCTRL_H +#define RECCTRL_H + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* single word entity */ +typedef struct { + int attrSet; + int attrUse; + unsigned reg_type; + char *string; + int length; + int seqno; + ZebraMaps zebra_maps; + struct recExtractCtrl *extractCtrl; +} RecWord; + +/* Extract record control */ +struct recExtractCtrl { + void *fh; /* File handle and read function */ + int (*readf)(void *fh, char *buf, size_t count); + off_t (*seekf)(void *fh, off_t offset); /* seek function */ + off_t (*tellf)(void *fh); /* tell function */ + void (*endf)(void *fh, off_t offset); /* end of record position */ + off_t offset; /* start offset */ + void (*init)(struct recExtractCtrl *p, RecWord *w); + void *clientData; + void (*tokenAdd)(RecWord *w); + ZebraMaps zebra_maps; + int flagShowRecords; + int seqno[256]; + void (*schemaAdd)(struct recExtractCtrl *p, Odr_oid *oid); + data1_handle dh; + void *handle; +}; + +/* Retrieve record control */ +struct recRetrieveCtrl { + /* Input parameters ... */ + Res res; /* Resource pool */ + ODR odr; /* ODR used to create response */ + void *fh; /* File descriptor and read function */ + int (*readf)(void *fh, char *buf, size_t count); + off_t (*seekf)(void *fh, off_t offset); + off_t (*tellf)(void *fh); + oid_value input_format; /* Preferred record syntax */ + Z_RecordComposition *comp; /* formatting instructions */ + char *encoding; /* preferred character encoding */ + zint localno; /* local id of record */ + int score; /* score 0-1000 or -1 if none */ + int recordSize; /* size of record in bytes */ + char *fname; /* name of file (or NULL if internal) */ + data1_handle dh; + + /* response */ + oid_value output_format; + void *rec_buf; + int rec_len; + int diagnostic; + char *message; +}; + +typedef struct recType *RecType; + +struct recType +{ + char *name; /* Name of record type */ + void *(*init)(Res res, RecType recType); /* Init function - called once */ + void (*config)(void *clientData, Res res, const char *args); /* Config */ + void (*destroy)(void *clientData); /* Destroy function */ + int (*extract)(void *clientData, + struct recExtractCtrl *ctrl); /* Extract proc */ + int (*retrieve)(void *clientData, + struct recRetrieveCtrl *ctrl); /* Retrieve proc */ +}; + +#define RECCTRL_EXTRACT_OK 0 +#define RECCTRL_EXTRACT_EOF 1 +#define RECCTRL_EXTRACT_ERROR_GENERIC 2 +#define RECCTRL_EXTRACT_ERROR_NO_SUCH_FILTER 3 + +typedef struct recTypeClass *RecTypeClass; +typedef struct recTypes *RecTypes; + +RecTypeClass recTypeClass_create (Res res, NMEM nmem); +void recTypeClass_destroy(RecTypeClass rtc); +void recTypeClass_info(RecTypeClass rtc, void *cd, + void (*cb)(void *cd, const char *s)); + +RecTypes recTypes_init(RecTypeClass rtc, data1_handle dh); +void recTypes_destroy(RecTypes recTypes); +void recTypes_default_handlers(RecTypes recTypes, Res res); + +RecType recType_byName(RecTypes rts, Res res, const char *name, + void **clientDataP); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/idzebra/recgrs.h b/include/idzebra/recgrs.h new file mode 100644 index 0000000..8658ddd --- /dev/null +++ b/include/idzebra/recgrs.h @@ -0,0 +1,57 @@ +/* $Id: recgrs.h,v 1.1 2004-09-28 10:15:03 adam Exp $ + Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 + Index Data Aps + +This file is part of the Zebra server. + +Zebra is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Zebra is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with Zebra; see the file LICENSE.zebra. If not, write to the +Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. +*/ + +#ifndef GRSREAD_H +#define GRSREAD_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct grs_read_info { + void *clientData; + int (*readf)(void *, char *, size_t); + off_t (*seekf)(void *, off_t); + off_t (*tellf)(void *); + void (*endf)(void *, off_t); + void *fh; + off_t offset; + NMEM mem; + data1_handle dh; +}; + +int zebra_grs_extract(void *clientData, struct recExtractCtrl *p, + data1_node *(*grs_read)(struct grs_read_info *)); + +int zebra_grs_retrieve(void *clientData, struct recRetrieveCtrl *p, + data1_node *(*grs_read)(struct grs_read_info *)); + + +int grs_extract_tree(struct recExtractCtrl *p, data1_node *n); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/recctrl.h b/include/recctrl.h deleted file mode 100644 index f134e3d..0000000 --- a/include/recctrl.h +++ /dev/null @@ -1,137 +0,0 @@ -/* $Id: recctrl.h,v 1.42 2004-09-27 10:44:48 adam Exp $ - Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 - Index Data Aps - -This file is part of the Zebra server. - -Zebra is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later -version. - -Zebra is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Zebra; see the file LICENSE.zebra. If not, write to the -Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. -*/ - - - -#ifndef RECCTRL_H -#define RECCTRL_H - -#include -#include -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* single word entity */ -typedef struct { - int attrSet; - int attrUse; - unsigned reg_type; - char *string; - int length; - int seqno; - ZebraMaps zebra_maps; - struct recExtractCtrl *extractCtrl; -} RecWord; - -/* Extract record control */ -struct recExtractCtrl { - void *fh; /* File handle and read function */ - int (*readf)(void *fh, char *buf, size_t count); - off_t (*seekf)(void *fh, off_t offset); /* seek function */ - off_t (*tellf)(void *fh); /* tell function */ - void (*endf)(void *fh, off_t offset); /* end of record position */ - off_t offset; /* start offset */ - void (*init)(struct recExtractCtrl *p, RecWord *w); - void *clientData; - void (*tokenAdd)(RecWord *w); - ZebraMaps zebra_maps; - int flagShowRecords; - int seqno[256]; - void (*schemaAdd)(struct recExtractCtrl *p, Odr_oid *oid); - data1_handle dh; - void *handle; -}; - -/* Retrieve record control */ -struct recRetrieveCtrl { - /* Input parameters ... */ - Res res; /* Resource pool */ - ODR odr; /* ODR used to create response */ - void *fh; /* File descriptor and read function */ - int (*readf)(void *fh, char *buf, size_t count); - off_t (*seekf)(void *fh, off_t offset); - off_t (*tellf)(void *fh); - oid_value input_format; /* Preferred record syntax */ - Z_RecordComposition *comp; /* formatting instructions */ - char *encoding; /* preferred character encoding */ - zint localno; /* local id of record */ - int score; /* score 0-1000 or -1 if none */ - int recordSize; /* size of record in bytes */ - char *fname; /* name of file (or NULL if internal) */ - data1_handle dh; - - /* response */ - oid_value output_format; - void *rec_buf; - int rec_len; - int diagnostic; - char *message; -}; - -typedef struct recType *RecType; - -struct recType -{ - char *name; /* Name of record type */ - void *(*init)(Res res, RecType recType); /* Init function - called once */ - void (*config)(void *clientData, Res res, const char *args); /* Config */ - void (*destroy)(void *clientData); /* Destroy function */ - int (*extract)(void *clientData, - struct recExtractCtrl *ctrl); /* Extract proc */ - int (*retrieve)(void *clientData, - struct recRetrieveCtrl *ctrl); /* Retrieve proc */ -}; - -#define RECCTRL_EXTRACT_OK 0 -#define RECCTRL_EXTRACT_EOF 1 -#define RECCTRL_EXTRACT_ERROR_GENERIC 2 -#define RECCTRL_EXTRACT_ERROR_NO_SUCH_FILTER 3 - -typedef struct recTypeClass *RecTypeClass; -typedef struct recTypes *RecTypes; - -RecTypeClass recTypeClass_create (Res res, NMEM nmem); -void recTypeClass_destroy(RecTypeClass rtc); -void recTypeClass_info(RecTypeClass rtc, void *cd, - void (*cb)(void *cd, const char *s)); - -RecTypes recTypes_init(RecTypeClass rtc, data1_handle dh); -void recTypes_destroy(RecTypes recTypes); -void recTypes_default_handlers(RecTypes recTypes, Res res); - -RecType recType_byName(RecTypes rts, Res res, const char *name, - void **clientDataP); - - -int grs_extract_tree(struct recExtractCtrl *p, data1_node *n); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/zebra_xpath.h b/include/zebra_xpath.h index fcaf727..20a876a 100644 --- a/include/zebra_xpath.h +++ b/include/zebra_xpath.h @@ -3,6 +3,8 @@ #ifndef ZEBRA_XPATH_H #define ZEBRA_XPATH_H +#include + #define XPATH_STEP_COUNT 10 struct xpath_predicate { int which; @@ -33,4 +35,5 @@ int zebra_parse_xpath_str(const char *xpath_string, void dump_xp_steps (struct xpath_location_step *xpath, int no); + #endif diff --git a/index/index.h b/index/index.h index d32ada4..cb934ec 100644 --- a/index/index.h +++ b/index/index.h @@ -1,4 +1,4 @@ -/* $Id: index.h,v 1.121 2004-09-27 10:44:49 adam Exp $ +/* $Id: index.h,v 1.122 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -38,8 +38,8 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include #include -#include -#include +#include +#include #include "recindex.h" #include #include "zinfo.h" diff --git a/index/main.c b/index/main.c index 392a7d4..2313a50 100644 --- a/index/main.c +++ b/index/main.c @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.115 2004-09-27 10:44:49 adam Exp $ +/* $Id: main.c,v 1.116 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -35,7 +35,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #endif -#include +#include #include char *prog; diff --git a/index/zinfo.h b/index/zinfo.h index 6f537bc..0332bdb 100644 --- a/index/zinfo.h +++ b/index/zinfo.h @@ -1,4 +1,4 @@ -/* $Id: zinfo.h,v 1.18 2004-08-25 09:23:38 adam Exp $ +/* $Id: zinfo.h,v 1.19 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -24,7 +24,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #ifndef ZINFO_H #define ZINFO_H -#include +#include #include #include "recindex.h" diff --git a/perl/IDZebra.i b/perl/IDZebra.i index 2d8f773..8b5f86e 100644 --- a/perl/IDZebra.i +++ b/perl/IDZebra.i @@ -5,7 +5,7 @@ %{ #include #include "zebra_perl.h" -#include "data1.h" +#include #include "yaz/odr.h" #include "yaz/cql.h" %} diff --git a/perl/zebra_perl.c b/perl/zebra_perl.c index 793c410..4d133aa 100644 --- a/perl/zebra_perl.c +++ b/perl/zebra_perl.c @@ -1,7 +1,3 @@ -#if 0 -#include "zebraapi.h" -#endif - #include "EXTERN.h" #include "perl.h" #include "XSUB.h" @@ -14,7 +10,7 @@ #include "zebra_perl.h" #include "../recctrl/perlread.h" -#include +#include NMEM handles; diff --git a/recctrl/Makefile.am b/recctrl/Makefile.am index 543bdc3..1a5e9fd 100644 --- a/recctrl/Makefile.am +++ b/recctrl/Makefile.am @@ -1,4 +1,4 @@ -## $Id: Makefile.am,v 1.12 2004-09-27 10:44:50 adam Exp $ +## $Id: Makefile.am,v 1.13 2004-09-28 10:15:03 adam Exp $ common_libs = libidzebra-recctrl.la \ ../data1/libidzebra-data1.la \ @@ -42,7 +42,7 @@ EXTRA_LTLIBRARIES = \ # The common library lib_LTLIBRARIES = libidzebra-recctrl.la -libidzebra_recctrl_la_SOURCES = recctrl.c recgrs.c sgmlread.c rectext.c grsread.h +libidzebra_recctrl_la_SOURCES = recctrl.c recgrs.c sgmlread.c rectext.c libidzebra_recctrl_la_LDFLAGS = -export-dynamic libidzebra_recctrl_la_LIBADD = $(STATIC_MODULE_OBJ) \ ../data1/libidzebra-data1.la \ diff --git a/recctrl/danbibr.c b/recctrl/danbibr.c index f01a94d..b79b4f3 100644 --- a/recctrl/danbibr.c +++ b/recctrl/danbibr.c @@ -1,4 +1,4 @@ -/* $Id: danbibr.c,v 1.5 2004-09-27 10:44:50 adam Exp $ +/* $Id: danbibr.c,v 1.6 2004-09-28 10:15:03 adam Exp $ Copyright (C) 2004 Index Data Aps @@ -26,11 +26,9 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include -#include "grsread.h" +#include #include -#include -#include #define READ_CHUNK 200 diff --git a/recctrl/grsread.h b/recctrl/grsread.h deleted file mode 100644 index 316178e..0000000 --- a/recctrl/grsread.h +++ /dev/null @@ -1,55 +0,0 @@ -/* $Id: grsread.h,v 1.15 2004-09-27 10:44:50 adam Exp $ - Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 - Index Data Aps - -This file is part of the Zebra server. - -Zebra is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later -version. - -Zebra is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with Zebra; see the file LICENSE.zebra. If not, write to the -Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. -*/ - -#ifndef GRSREAD_H -#define GRSREAD_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct grs_read_info { - void *clientData; - int (*readf)(void *, char *, size_t); - off_t (*seekf)(void *, off_t); - off_t (*tellf)(void *); - void (*endf)(void *, off_t); - void *fh; - off_t offset; - NMEM mem; - data1_handle dh; -}; - -int zebra_grs_extract(void *clientData, struct recExtractCtrl *p, - data1_node *(*grs_read)(struct grs_read_info *)); - -int zebra_grs_retrieve(void *clientData, struct recRetrieveCtrl *p, - data1_node *(*grs_read)(struct grs_read_info *)); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/recctrl/marcread.c b/recctrl/marcread.c index a651e05..96c9eea 100644 --- a/recctrl/marcread.c +++ b/recctrl/marcread.c @@ -1,4 +1,4 @@ -/* $Id: marcread.c,v 1.25 2004-09-27 10:44:50 adam Exp $ +/* $Id: marcread.c,v 1.26 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -27,7 +27,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include #include -#include "grsread.h" +#include #include "marcomp.h" #include "inline.h" @@ -101,7 +101,7 @@ static data1_node *grs_read_iso2709 (struct grs_read_info *p, int marc_xml) else res_top = data1_mk_tag (p->dh, p->mem, absynName, 0, res_root); - if ((marctab = res_root->u.root.absyn->marc)) + if ((marctab = data1_absyn_getmarctab(p->dh, res_root->u.root.absyn))) { memcpy(marctab->leader, buf, 24); memcpy(marctab->implementation_codes, buf+6, 4); @@ -662,7 +662,7 @@ static int is_empty(char *s) static void parse_data1_tree(struct grs_read_info *p, const char *mc_stmnt, data1_node *root) { - data1_marctab *marctab = root->u.root.absyn->marc; + data1_marctab *marctab = data1_absyn_getmarctab(p->dh, root->u.root.absyn); data1_node *top = root->child; data1_node *field; mc_context *c; @@ -743,7 +743,7 @@ data1_node *grs_read_marcxml(struct grs_read_info *p) if (!root) return 0; - for (e=root->u.root.absyn->main_elements; e; e=e->next) + for (e = data1_absyn_getelements(p->dh, root->u.root.absyn); e; e=e->next) { data1_tag *tag = e->tag; @@ -762,7 +762,7 @@ data1_node *grs_read_marc(struct grs_read_info *p) if (!root) return 0; - for (e=root->u.root.absyn->main_elements; e; e=e->next) + for (e = data1_absyn_getelements(p->dh, root->u.root.absyn); e; e=e->next) { data1_tag *tag = e->tag; diff --git a/recctrl/perlread.c b/recctrl/perlread.c index e52b534..ea8ac1e 100644 --- a/recctrl/perlread.c +++ b/recctrl/perlread.c @@ -1,4 +1,4 @@ -/* $Id: perlread.c,v 1.10 2004-09-27 10:44:50 adam Exp $ +/* $Id: perlread.c,v 1.11 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -31,9 +31,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include -#include -#include "grsread.h" +#include /* Constructor call for the filter object */ void Filter_create (struct perl_context *context) diff --git a/recctrl/perlread.h.in b/recctrl/perlread.h.in index c153d4e..d9e5888 100644 --- a/recctrl/perlread.h.in +++ b/recctrl/perlread.h.in @@ -9,7 +9,7 @@ #define GRS_PERL_MODULE_NAME_MAXLEN 255 -#include +#include /* Context information for the filter */ struct perl_context { diff --git a/recctrl/recctrl.c b/recctrl/recctrl.c index ddbfc64..0a9fc80 100644 --- a/recctrl/recctrl.c +++ b/recctrl/recctrl.c @@ -1,4 +1,4 @@ -/* $Id: recctrl.c,v 1.8 2004-09-28 08:44:48 adam Exp $ +/* $Id: recctrl.c,v 1.9 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -28,7 +28,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include +#include struct recTypeClass { RecType recType; diff --git a/recctrl/recgrs.c b/recctrl/recgrs.c index c879c25..e521d96 100644 --- a/recctrl/recgrs.c +++ b/recctrl/recgrs.c @@ -1,4 +1,4 @@ -/* $Id: recgrs.c,v 1.90 2004-09-27 10:44:50 adam Exp $ +/* $Id: recgrs.c,v 1.91 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -31,8 +31,8 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include -#include "grsread.h" +#include +#include #define GRS_MAX_WORD 512 diff --git a/recctrl/rectext.c b/recctrl/rectext.c index 9d8d165..aac5eec 100644 --- a/recctrl/rectext.c +++ b/recctrl/rectext.c @@ -1,4 +1,4 @@ -/* $Id: rectext.c,v 1.20 2004-09-27 10:44:50 adam Exp $ +/* $Id: rectext.c,v 1.21 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -26,7 +26,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include +#include struct text_info { char *sep; diff --git a/recctrl/regxread.c b/recctrl/regxread.c index 67f6510..04d621e 100644 --- a/recctrl/regxread.c +++ b/recctrl/regxread.c @@ -1,4 +1,4 @@ -/* $Id: regxread.c,v 1.53 2004-09-27 10:44:50 adam Exp $ +/* $Id: regxread.c,v 1.54 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -29,7 +29,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include #include -#include "grsread.h" +#include #if HAVE_TCL_H #include @@ -822,8 +822,8 @@ static void variantBegin (struct lexSpec *spec, #endif if (!(tp = - data1_getvartypebyct(spec->dh, parent->root->u.root.absyn->varset, - tclass, ttype))) + data1_getvartypeby_absyn(spec->dh, parent->root->u.root.absyn, + tclass, ttype))) return; if (parent->which != DATA1N_variant) diff --git a/recctrl/sgmlread.c b/recctrl/sgmlread.c index 948307e..7edfbdf 100644 --- a/recctrl/sgmlread.c +++ b/recctrl/sgmlread.c @@ -1,4 +1,4 @@ -/* $Id: sgmlread.c,v 1.12 2004-09-27 10:44:50 adam Exp $ +/* $Id: sgmlread.c,v 1.13 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -24,7 +24,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include "grsread.h" +#include struct sgml_getc_info { char *buf; diff --git a/recctrl/xmlread.c b/recctrl/xmlread.c index e680435..a5bd006 100644 --- a/recctrl/xmlread.c +++ b/recctrl/xmlread.c @@ -1,4 +1,4 @@ -/* $Id: xmlread.c,v 1.14 2004-09-27 10:44:50 adam Exp $ +/* $Id: xmlread.c,v 1.15 2004-09-28 10:15:03 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -32,11 +32,10 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include -#include "grsread.h" +#include #include #include -#include #include diff --git a/util/xpath.c b/util/xpath.c index 9007200..a932950 100644 --- a/util/xpath.c +++ b/util/xpath.c @@ -1,5 +1,5 @@ -/* $Id: xpath.c,v 1.3 2003-03-01 22:45:38 adam Exp $ - Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003 +/* $Id: xpath.c,v 1.4 2004-09-28 10:15:03 adam Exp $ + Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps This file is part of the Zebra server. -- 1.7.10.4