X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=data1%2Fd1_handle.c;h=e5c4eaad1afaa87d3facafcaa7913d646129c982;hp=7a37eac7def9cb309f31c24c3e2891467c03b329;hb=44621b084e8fdf06a45409754116e8810bd89664;hpb=519fefb91135ad52134b9fc4e82b3874f5525a2b diff --git a/data1/d1_handle.c b/data1/d1_handle.c index 7a37eac..e5c4eaa 100644 --- a/data1/d1_handle.c +++ b/data1/d1_handle.c @@ -1,15 +1,29 @@ -/* - * Copyright (c) 1995-2002, Index Data. - * See the file LICENSE for details. - * - * $Id: d1_handle.c,v 1.1 2002-10-22 12:53:33 adam Exp $ - */ +/* This file is part of the Zebra server. + Copyright (C) 1994-2010 Index Data + +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 this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*/ #include #include #include -#include +#include + +#define DATA1_FLAG_XML 1 struct data1_handle_info { WRBUF wrbuf; @@ -26,19 +40,13 @@ struct data1_handle_info { int map_len; NMEM mem; - int flags; }; -data1_handle data1_create (void) -{ - return data1_createx(0); -} - -data1_handle data1_createx (int flags) +data1_handle data1_create(void) { data1_handle p = (data1_handle)xmalloc (sizeof(*p)); if (!p) - return NULL; + return 0; p->tab_path = NULL; p->tab_root = NULL; p->wrbuf = wrbuf_alloc(); @@ -49,7 +57,6 @@ data1_handle data1_createx (int flags) p->absyn_cache = NULL; p->attset_cache = NULL; p->mem = nmem_create (); - p->flags = flags; return p; } @@ -72,7 +79,14 @@ void data1_destroy (data1_handle dh) { if (!dh) return; - wrbuf_free (dh->wrbuf, 1); + + /* *ostrich* + We need to destroy DFAs, in xp_element (xelm) definitions + pop, 2002-12-13 + */ + data1_absyn_destroy(dh); + + wrbuf_destroy(dh->wrbuf); if (dh->tab_path) xfree (dh->tab_path); if (dh->tab_root) @@ -94,14 +108,14 @@ WRBUF data1_get_wrbuf (data1_handle dp) char **data1_get_read_buf (data1_handle dp, int **lenp) { *lenp = &dp->read_len; - yaz_log (LOG_DEBUG, "data1_get_read_buf lenp=%u", **lenp); + yaz_log (YLOG_DEBUG, "data1_get_read_buf lenp=%u", **lenp); return &dp->read_buf; } char **data1_get_map_buf (data1_handle dp, int **lenp) { *lenp = &dp->map_len; - yaz_log (LOG_DEBUG, "data1_get_map_buf lenp=%u", **lenp); + yaz_log (YLOG_DEBUG, "data1_get_map_buf lenp=%u", **lenp); return &dp->map_buf; } @@ -133,12 +147,37 @@ const char *data1_get_tabroot (data1_handle dp) FILE *data1_path_fopen (data1_handle dh, const char *file, const char *mode) { + FILE *f; const char *path = data1_get_tabpath(dh); const char *root = data1_get_tabroot(dh); - return yaz_fopen (path, file, "r", root); + + yaz_log(YLOG_DEBUG, "data1_path_fopen path=%s root=%s " + "file=%s mode=%s", path ? path : "NULL", + root ? root : "NULL", file, mode); + if (!path || !*path) + return 0; + f = yaz_fopen(path, file, mode, root); + if (!f) + { + yaz_log(YLOG_WARN|YLOG_ERRNO, "Couldn't open %s", file); + if (root) + yaz_log(YLOG_LOG, "for root=%s", root); + if (path) + yaz_log(YLOG_LOG, "for profilePath=%s", path); + } + return f; } int data1_is_xmlmode(data1_handle dh) { - return dh->flags & DATA1_FLAG_XML; + return 1; } +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +