# Copyright (C) 1995-1997, Index Data I/S
# All rights reserved.
# Sebastian Hammer, Adam Dickmeiss
-# $Id: Makefile,v 1.33 1997-09-01 08:47:18 adam Exp $
+# $Id: Makefile,v 1.34 1997-09-05 09:50:55 adam Exp $
# Uncomment the lines below to enable mOSI communcation.
#ODEFS=-DUSE_XTIMOSI
wc:
wc `find . -name '*.[ch]'`
-
+
/*
- * Copyright (c) 1995-1996, Index Data.
+ * Copyright (c) 1995-1997, Index Data.
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation, in whole or in part, for any purpose, is hereby granted,
* OF THIS SOFTWARE.
*
* $Log: data1.h,v $
- * Revision 1.24 1997-09-01 09:30:39 adam
+ * Revision 1.25 1997-09-05 09:50:55 adam
+ * Removed global data1_tabpath - uses data1_get_tabpath() instead.
+ *
+ * Revision 1.24 1997/09/01 09:30:39 adam
* Added include of yaz-util.h.
*
* Revision 1.23 1997/09/01 08:58:04 adam
#define data1_matchstr(s1, s2) yaz_matchstr(s1, s2)
-extern char *data1_tabpath; /* global path for tables */
-
#define DATA1_MAX_SYMBOL 31
typedef struct data1_name
#define DATA1N_data 3
/* variant specification (a triple, actually) */
#define DATA1N_variant 4
- /* ISO2709 indicator */
-#define DATA1N_indicator 5
int which;
union
} data1_node;
YAZ_EXPORT data1_node *get_parent_tag(data1_node *n);
-YAZ_EXPORT data1_node *data1_read_node(char **buf, data1_node *parent, int *line,
- data1_absyn *absyn, NMEM m);
+YAZ_EXPORT data1_node *data1_read_node(char **buf, data1_node *parent,
+ int *line, data1_absyn *absyn, NMEM m);
YAZ_EXPORT data1_node *data1_read_record(int (*rf)(void *, char *, size_t),
- void *fh, NMEM m);
+ void *fh, NMEM m);
YAZ_EXPORT data1_absyn *data1_read_absyn(char *file);
YAZ_EXPORT data1_tag *data1_gettagbynum(data1_tagset *s, int type, int value);
YAZ_EXPORT data1_tagset *data1_read_tagset(char *file);
YAZ_EXPORT data1_element *data1_getelementbytagname(data1_absyn *abs,
- data1_element *parent, char *tagname);
-YAZ_EXPORT Z_GenericRecord *data1_nodetogr(data1_node *n, int select, ODR o, int *len);
+ data1_element *parent,
+ char *tagname);
+YAZ_EXPORT Z_GenericRecord *data1_nodetogr(data1_node *n, int select, ODR o,
+ int *len);
YAZ_EXPORT data1_tag *data1_gettagbyname(data1_tagset *s, char *name);
YAZ_EXPORT void data1_free_tree(data1_node *t);
YAZ_EXPORT char *data1_nodetobuf(data1_node *n, int select, int *len);
-YAZ_EXPORT data1_node *data1_insert_taggeddata(data1_node *root, data1_node *at,
- char *tagname, NMEM m);
+YAZ_EXPORT data1_node *data1_insert_taggeddata(data1_node *root,
+ data1_node *at,
+ char *tagname, NMEM m);
YAZ_EXPORT data1_datatype data1_maptype(char *t);
YAZ_EXPORT data1_varset *data1_read_varset(char *file);
-YAZ_EXPORT data1_vartype *data1_getvartypebyct(data1_varset *set, char *zclass, char *type);
+YAZ_EXPORT data1_vartype *data1_getvartypebyct(data1_varset *set,
+ char *zclass, char *type);
YAZ_EXPORT Z_Espec1 *data1_read_espec1(char *file, ODR o);
YAZ_EXPORT int data1_doespec1(data1_node *n, Z_Espec1 *e);
YAZ_EXPORT data1_esetname *data1_getesetbyname(data1_absyn *a, char *name);
-YAZ_EXPORT data1_element *data1_getelementbyname(data1_absyn *absyn, char *name);
+YAZ_EXPORT data1_element *data1_getelementbyname(data1_absyn *absyn,
+ char *name);
YAZ_EXPORT data1_node *data1_mk_node(NMEM m);
YAZ_EXPORT data1_absyn *data1_get_absyn(char *name);
YAZ_EXPORT data1_maptab *data1_read_maptab(char *file);
-YAZ_EXPORT data1_node *data1_map_record(data1_node *n, data1_maptab *map, NMEM m);
+YAZ_EXPORT data1_node *data1_map_record(data1_node *n, data1_maptab *map,
+ NMEM m);
YAZ_EXPORT data1_marctab *data1_read_marctab(char *file);
-YAZ_EXPORT char *data1_nodetomarc(data1_marctab *p, data1_node *n, int selected, int *len);
+YAZ_EXPORT char *data1_nodetomarc(data1_marctab *p, data1_node *n,
+ int selected, int *len);
YAZ_EXPORT char *data1_nodetoidsgml(data1_node *n, int select, int *len);
-YAZ_EXPORT Z_ExplainRecord *data1_nodetoexplain(data1_node *n, int select, ODR o);
-YAZ_EXPORT Z_BriefBib *data1_nodetosummary(data1_node *n, int select, ODR o);
-YAZ_EXPORT char *data1_nodetosoif(data1_node *n, int select, int *len);
+YAZ_EXPORT Z_ExplainRecord *data1_nodetoexplain(data1_node *n, int select,
+ ODR o);
+YAZ_EXPORT Z_BriefBib *data1_nodetosummary(data1_node *n, int select,
+ ODR o);
+YAZ_EXPORT char *data1_nodetosoif(data1_node *n, int select,
+ int *len);
YAZ_EXPORT void data1_set_tabpath(const char *path);
YAZ_EXPORT const char *data1_get_tabpath(void);
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: d1_absyn.c,v $
- * Revision 1.10 1997-05-14 06:54:01 adam
+ * Revision 1.11 1997-09-05 09:50:55 adam
+ * Removed global data1_tabpath - uses data1_get_tabpath() instead.
+ *
+ * Revision 1.10 1997/05/14 06:54:01 adam
* C++ support.
*
* Revision 1.9 1997/02/19 14:46:15 adam
data1_termlist *all = 0;
int level = 0;
- if (!(f = yaz_path_fopen(data1_tabpath, file, "r")))
+ if (!(f = yaz_path_fopen(data1_get_tabpath(), file, "r")))
{
logf(LOG_WARN|LOG_ERRNO, "%s", file);
return 0;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: d1_attset.c,v $
- * Revision 1.5 1996-05-09 07:27:43 quinn
+ * Revision 1.6 1997-09-05 09:50:56 adam
+ * Removed global data1_tabpath - uses data1_get_tabpath() instead.
+ *
+ * Revision 1.5 1996/05/09 07:27:43 quinn
* Multiple local attributes values supported.
*
* Revision 1.4 1996/02/21 15:23:36 quinn
data1_att **attp;
FILE *f;
- if (!(f = yaz_path_fopen(data1_tabpath, file, "r")))
+ if (!(f = yaz_path_fopen(data1_get_tabpath(), file, "r")))
{
logf(LOG_WARN|LOG_ERRNO, "%s", file);
return 0;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: d1_espec.c,v $
- * Revision 1.7 1997-05-14 06:54:02 adam
+ * Revision 1.8 1997-09-05 09:50:56 adam
+ * Removed global data1_tabpath - uses data1_get_tabpath() instead.
+ *
+ * Revision 1.7 1997/05/14 06:54:02 adam
* C++ support.
*
* Revision 1.6 1996/07/06 19:58:34 quinn
char *argv[50], line[512];
Z_Espec1 *res = odr_malloc(o, sizeof(*res));
- if (!(f = yaz_path_fopen(data1_tabpath, file, "r")))
+ if (!(f = yaz_path_fopen(data1_get_tabpath(), file, "r")))
{
logf(LOG_WARN|LOG_ERRNO, "%s", file);
return 0;
continue;
}
- res->elementSetNames = odr_malloc(o, sizeof(char*)*nnames);
+ res->elementSetNames = odr_malloc(o, sizeof(char**)*nnames);
for (i = 0; i < nnames; i++)
{
res->elementSetNames[i] = odr_malloc(o, strlen(argv[i+1])+1);
char *path = argv[1];
char *ep;
int num, i = 0;
-
+
if (!res->elements)
- res->elements = odr_malloc(o, size_esn = 24*sizeof(*er));
- else if (res->num_elements >= size_esn)
+ res->elements = odr_malloc(o, size_esn = 24*sizeof(er));
+ else if (res->num_elements >= size_esn/sizeof(er))
{
size_esn *= 2;
- res->elements = o ? odr_malloc(o, size_esn) :
- xrealloc(res->elements, size_esn);
+ if (o)
+ {
+ Z_ElementRequest **oe = res->elements;
+
+ res->elements = odr_malloc (o, size_esn*sizeof(er));
+ memcpy (res->elements, oe, size_esn/2);
+ }
+ else
+ res->elements =
+ xrealloc(res->elements, size_esn*sizeof(er));
}
if (argc < 2)
{
logf(LOG_WARN, "%s: Empty simpleelement directive", file);
continue;
}
-
+
res->elements[res->num_elements++] = er =
odr_malloc(o, sizeof(*er));
er->which = Z_ERequest_simpleElement;
/*
* Parse the element selector.
*/
- for (num = 1, ep = path; (ep = strchr(ep, '/')); num++, ep++);
+ for (num = 1, ep = path; (ep = strchr(ep, '/')); num++, ep++)
+ ;
tp->tags = odr_malloc(o, sizeof(Z_ETagUnit*)*num);
-
- for ((ep = strchr(path, '/')) ; path ; (void)((path = ep) &&
- (ep = strchr(path, '/'))))
+
+ for ((ep = strchr(path, '/')) ; path ;
+ (void)((path = ep) && (ep = strchr(path, '/'))))
{
if (ep)
ep++;
-
+
assert(i<num);
tp->tags[tp->num_tags++] = read_tagunit(path, o);
}
-
+
if (argc > 2 && !strcmp(argv[2], "variant"))
se->variantRequest= read_variant(argc-3, argv+3, o);
}
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: d1_map.c,v $
- * Revision 1.9 1996-06-10 08:56:02 quinn
+ * Revision 1.10 1997-09-05 09:50:56 adam
+ * Removed global data1_tabpath - uses data1_get_tabpath() instead.
+ *
+ * Revision 1.9 1996/06/10 08:56:02 quinn
* Work on Summary.
*
* Revision 1.8 1996/05/01 12:45:31 quinn
data1_mapunit **mapp;
int local_numeric = 0;
- if (!(f = yaz_path_fopen(data1_tabpath, file, "r")))
+ if (!(f = yaz_path_fopen(data1_get_tabpath(), file, "r")))
{
logf(LOG_WARN|LOG_ERRNO, "%s", file);
return 0;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: d1_marc.c,v $
- * Revision 1.6 1997-09-04 13:51:58 adam
+ * Revision 1.7 1997-09-05 09:50:57 adam
+ * Removed global data1_tabpath - uses data1_get_tabpath() instead.
+ *
+ * Revision 1.6 1997/09/04 13:51:58 adam
* Added data1 to marc conversion with indicators.
*
* Revision 1.5 1997/09/04 13:48:04 adam
char line[512], *argv[50];
int argc;
- if (!(f = yaz_path_fopen(data1_tabpath, file, "r")))
+ if (!(f = yaz_path_fopen(data1_get_tabpath(), file, "r")))
{
logf(LOG_WARN|LOG_ERRNO, "%s", file);
return 0;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: d1_read.c,v $
- * Revision 1.14 1997-05-14 06:54:04 adam
+ * Revision 1.15 1997-09-05 09:50:57 adam
+ * Removed global data1_tabpath - uses data1_get_tabpath() instead.
+ *
+ * Revision 1.14 1997/05/14 06:54:04 adam
* C++ support.
*
* Revision 1.13 1996/10/29 13:35:38 adam
#include <log.h>
#include <data1.h>
-char *data1_tabpath = 0; /* global path for tables */
+static char *data1_tabpath = 0; /* global path for tables */
void data1_set_tabpath(const char *p)
{
return data1_tabpath;
}
-#if 0
-static data1_node *freelist = 0;
-#endif
/*
* get the tag which is the immediate parent of this node (this may mean
{
data1_node *r;
-#if 0
- if ((r = freelist))
- freelist = r->next;
- else
- if (!(r = xmalloc(sizeof(*r))))
- abort();
-#else
r = nmem_malloc(m, sizeof(*r));
-#endif
r->next = r->child = r->last_child = r->parent = 0;
r->num_children = 0;
r->destroy = 0;
return r;
}
-#if 0
-static void fr_node(data1_node *n)
-{
- n->next = freelist;
- freelist = n;
-}
-#endif
-
void data1_free_tree(data1_node *t)
{
data1_node *p = t->child, *pn;
}
if (t->destroy)
(*t->destroy)(t);
-#if 0
- fr_node(t);
-#endif
}
/*
{
int len = 0;
char *data = *buf, *pp = *buf;
-#if 0
- data1_node *partag = get_parent_tag(parent);
-#endif
if (!parent) /* abort if abstract syntax is undefined */
return 0;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: d1_tagset.c,v $
- * Revision 1.4 1995-11-13 09:27:38 quinn
+ * Revision 1.5 1997-09-05 09:50:57 adam
+ * Removed global data1_tabpath - uses data1_get_tabpath() instead.
+ *
+ * Revision 1.4 1995/11/13 09:27:38 quinn
* Fiddling with the variant stuff.
*
* Revision 1.3 1995/11/01 16:34:58 quinn
data1_tag **tagp;
FILE *f;
- if (!(f = yaz_path_fopen(data1_tabpath, file, "r")))
+ if (!(f = yaz_path_fopen(data1_get_tabpath(), file, "r")))
{
logf(LOG_WARN|LOG_ERRNO, "%s", file);
return 0;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: d1_varset.c,v $
- * Revision 1.4 1997-05-14 06:54:04 adam
+ * Revision 1.5 1997-09-05 09:50:58 adam
+ * Removed global data1_tabpath - uses data1_get_tabpath() instead.
+ *
+ * Revision 1.4 1997/05/14 06:54:04 adam
* C++ support.
*
* Revision 1.3 1995/11/01 16:34:58 quinn
res->reference = VAL_NONE;
res->classes = 0;
- if (!(f = yaz_path_fopen(data1_tabpath, file, "r")))
+ if (!(f = yaz_path_fopen(data1_get_tabpath(), file, "r")))
{
logf(LOG_WARN|LOG_ERRNO, "%s", file);
return 0;