--- (IN PROGRESS)
+Add function ZOOM_scanset_display_term.
+
+For Scan yaz-client shows displayTerm if present.
+
Utility yaz-iconv is now installed by default along with the man page
yaz-iconv.1.
-<!-- $Id: frontend.xml,v 1.18 2003-11-03 10:46:52 adam Exp $ -->
+<!-- $Id: frontend.xml,v 1.19 2003-11-19 19:07:26 adam Exp $ -->
<chapter id="server"><title>Generic server</title>
<sect1><title>Introduction</title>
The above for the Apache 1.3 series.
</para>
</example>
- <example><title>Running a aerver with local access only</title>
+ <example><title>Running a server with local access only</title>
<para>
Servers that is only being accessed from the local host should listen
on UNIX file socket rather than a Internet socket. To listen on
-<!-- $Id: zoom.xml,v 1.33 2003-11-17 15:00:41 mike Exp $ -->
+<!-- $Id: zoom.xml,v 1.34 2003-11-19 19:07:26 adam Exp $ -->
<chapter id="zoom"><title>ZOOM</title>
<para>
&zoom; is an acronym for 'Z39.50 Object-Orientation Model' and is
const char * ZOOM_scanset_term(ZOOM_scanset scan, size_t pos,
int *occ, size_t *len);
+ const char * ZOOM_scanset_display_term(ZOOM_scanset scan, size_t pos,
+ int *occ, size_t *len);
void ZOOM_scanset_destroy (ZOOM_scanset scan);
<para>
The scan set is created by function
<function>ZOOM_connection_scan</function> which performs a scan
- operation on the connection and start term given.
+ operation on the connection using the specified startterm.
If the operation was successful, the size of the scan set can be
retrieved by a call to <function>ZOOM_scanset_size</function>.
Like result sets, the items are numbered 0,..size-1.
To obtain information about a particular scan term, call function
<function>ZOOM_scanset_term</function>. This function takes
a scan set offset <literal>pos</literal> and returns a pointer
- to an actual term or <literal>NULL</literal> if non-present.
+ to a <emphasis>raw term</emphasis> or <literal>NULL</literal> if
+ non-present.
If present, the <literal>occ</literal> and <literal>len</literal>
are set to the number of occurrences and the length
of the actual term respectively.
+ <function>ZOOM_scanset_display_term</function> is similar to
+ <function>ZOOM_scanset_term</function> except that it returns
+ the <emphasis>display term</emphasis> rather than the raw term.
+ In a few cases, the term is different from display term. Always
+ use the display term for display and the raw term for subsequent
+ scan operations (to get more terms, next scan result, etc).
+ </para>
+ <para>
A scan set may be freed by a call to function
<function>ZOOM_scanset_destroy</function>.
Functions <function>ZOOM_scanset_option_get</function> and
/*
* Public header for ZOOM C.
- * $Id: zoom.h,v 1.18 2003-04-28 11:04:52 adam Exp $
+ * $Id: zoom.h,v 1.19 2003-11-19 19:07:26 adam Exp $
*/
#include <yaz/yconfig.h>
ZOOM_scanset_term(ZOOM_scanset scan, size_t pos,
int *occ, int *len);
+ZOOM_API(const char *)
+ZOOM_scanset_display_term(ZOOM_scanset scan, size_t pos,
+ int *occ, int *len);
+
ZOOM_API(size_t)
ZOOM_scanset_size(ZOOM_scanset scan);
* Copyright (c) 2000-2003, Index Data
* See the file LICENSE for details.
*
- * $Id: zoom-c.c,v 1.3 2003-11-17 16:01:12 mike Exp $
+ * $Id: zoom-c.c,v 1.4 2003-11-19 19:07:26 adam Exp $
*
* ZOOM layer for C, connections, result sets, queries.
*/
impver = ZOOM_options_get (c->options, "implementationVersion");
ireq->implementationVersion =
- (char *) odr_malloc (c->odr_out, strlen("$Revision: 1.3 $") + 2 +
+ (char *) odr_malloc (c->odr_out, strlen("$Revision: 1.4 $") + 2 +
(impver ? strlen(impver) : 0));
strcpy (ireq->implementationVersion, "");
if (impver)
strcat (ireq->implementationVersion, impver);
strcat (ireq->implementationVersion, "/");
}
- strcat (ireq->implementationVersion, "$Revision: 1.3 $");
+ strcat (ireq->implementationVersion, "$Revision: 1.4 $");
*ireq->maximumRecordSize =
ZOOM_options_get_int (c->options, "maximumRecordSize", 1024*1024);
ZOOM_API(const char *)
ZOOM_scanset_term (ZOOM_scanset scan, size_t pos,
- int *occ, int *len)
+ int *occ, int *len)
{
const char *term = 0;
size_t noent = ZOOM_scanset_size (scan);
}
ZOOM_API(const char *)
+ZOOM_scanset_display_term (ZOOM_scanset scan, size_t pos,
+ int *occ, int *len)
+{
+ const char *term = 0;
+ size_t noent = ZOOM_scanset_size (scan);
+ Z_ScanResponse *res = scan->scan_response;
+
+ *len = 0;
+ *occ = 0;
+ if (pos >= noent)
+ return 0;
+ if (res->entries->entries[pos]->which == Z_Entry_termInfo)
+ {
+ Z_TermInfo *t = res->entries->entries[pos]->u.termInfo;
+
+ if (t->displayTerm)
+ {
+ term = (const char *) t->term->u.general->buf;
+ *len = strlen(term);
+ }
+ else if (t->term->which == Z_Term_general)
+ {
+ term = (const char *) t->term->u.general->buf;
+ *len = t->term->u.general->len;
+ }
+ *occ = t->globalOccurrences ? *t->globalOccurrences : 0;
+ }
+ return term;
+}
+
+ZOOM_API(const char *)
ZOOM_scanset_option_get (ZOOM_scanset scan, const char *key)
{
return ZOOM_options_get (scan->options, key);