+
+--- 1.8.7 2002/05/22
+
+On Windows ZOOM functions are of type __stdcall rather than __cdecl, so
+that they can be used directly from Visual Basic. You must recompile
+your windows APP if you're using ZOOM.
+
+Character Set and Language Negotiation(3) for ZOOM API and YAZ client.
+Commands "lang" and "charset" sets language and character set respectively.
+Options "lang" and "charset" is interpreted by the ZOOM API. Note, these
+are not part of the official ZOOM spec) All is due to Oleg Kolobov.
+
+Attributes from multiple CCL fields may be OR'ed rather than merged
+using directive "@field or". Fields are still merged by default -
+equivalent to "@field merge".
+
+Fixed bug in ZOOM connect that occurred on OpenBSD (maybe others). Patch
+by Oleg Kolobov.
+
+Fixed bug in zget for parameter ExtendedServicesResponse.
+
+Fix OID for ILL.
+
+--- 1.8.6 2002/03/25
+
+Added PQF feature: '@attr type=value' may be written as '@type=value'.
+
+Client displays USR.1:SearchResult-1 (hits per term).
+
+Additional Search Info for search in Generic Frontend Server.
+
+Fixed CCL parsing of "field=s".
+
+WIN32 installer - using the excellent NSIS software from nullsoft.
+
+Fixed CCL parsing of "field = - <number>".
+
+Added function yaz_marc_decode that decodes MARC for line mode
+display or XML (similar to that used by JZKit).
+
+Fixed BER decoding of OPTIONAL CHOICE. The bug didn't affect the
+Z39.50. But ISO/ILL was, however.
+
+Added patch by Rustam T. Usmanov that implements Z39.50 duplicate
+detection service (Z39.50-1995 Amendment 2) and Language Negotiation (3).
+See:
+ http://lcweb.loc.gov/z3950/agency/amend/am2.html
+ http://lcweb.loc.gov/z3950/agency/defns/charneg-3.html
+
+--- 1.8.5 2002/02/03
+
+New YAZ client features: Command completion and new commands:
+push_command, set_apdufile, set_marcdump, set_cclfields, register_oid.
+Code provided by Jacob Poulsen.
+
+New call oid_trav, that visits all registered OIDs via callback.
+
+Function ZOOM_record_get now returns const char pointer rather than
+void pointer. It saves a lot of type casts.
+
+For YAZ client, command "auth" now allows you to set authentication
+in IdPass style. It is enabled when three tokens are given - order
+is user, group and password.
+
+Fix memory leaks in MARC record handling for ZOOM.
+
+New option for YAZ client, -k <kilobytes> that sets
+maximum record size. Similar to -k option for generic frontend
+server and yaz-ztest.
+
+More fixes for scan. Non-zero stepSize handled. OID's fixes.
+
+Prefix query parser reports "fail" when bad attribute set is given.
+
+Fix in MARC decoder. Proximity logging. Fix for attribute set
+in scan handler for server. Patches by Shigeru Ishida.
+
+SSL/COMSTACK updates. cs_rcvconnect completes SSL handshake. ZOOM
+works with SSL.
+
+Configure option --with-openssl=<dir> now works when a directory is
+specified. Patch provided by Morten Bøgeskov.
+
+New option for YAZ client, -u <auth>, that sets authentication.
+
+ZOOM fix: error information was sometimes "missing", since error
+was cleared/reset too when it shouldn't.
+
+ZOOM_record_get returns ISO2709 buffer when "raw" is given.
+
+--- 1.8.4 2002/01/04
+
+Scan for ZOOM API. New object ZOOM_scanset. New functions
+ZOOM_connection_scan, ZOOM_scanset_size, ZOOM_scanset_term and
+ZOOM_scanset_destroy.
+
+New ZOOM function, ZOOM_connection_last_event, that returns type
+of last event (such as "receive data", "send data", "apdu received",
+etc.
+
+New ZOOM option, schema, that specifies shema OID for retrieval.
+
+New CCL feature. Qualifiers can be aliases for one or more
+other qualifiers (if more than one is given, OR is used).
+
+ZOOM uses named result sets if target supports it.
+
+Two new YAZ client commands: . (dot, which sources a script of YAZ
+client commands), and ! (to execute shell command.). Implemented
+by Jacob Poulsen.
+
+Working on Debian packages.
+
+--- 1.8.3 2001/11/19
+
+YAZ client enables named result sets only if target supports it.
+
+*** ZOOM. Prefix for ZOOM definitions changed from Z3950_ to ZOOM_.
+
+* ZOOM. Removed Z3950_connection_host. Use Z3950_connection_option_get
+with key="host" to get same result.
+
+* ZOOM. Added Z3950_record_clone and removed Z3950_resultset_get.
+Function Z3950_resultset_record(s) returns references to records
+"owned" by resultset. To become owner use Z3950_record_clone.
+
+Function z_ext_record handles Extended Services. Thanks to
+Irina Dijour.
+
+--- 1.8.2 2001/11/12
+
+CCL Parser fix: ignore token comma when dealing with and-lists.
+
+Documentation updates for COMSTACK.
+
+* ZOOM changes. Query object renamed from Z3950_search to Z3950_query.
+Changed prototype Z3950_records. For some functions, int parameters
+were changed to size_t.
+
+TCP/IP COMSTACK no longer uses getprotobyname to avoid memory leak
+on some Unices.
+
+New MARC decode/display function, marc_display_exl, which properly rejects
+non-ISO2709 records. YAZ client uses it.
+
+--- 1.8.1 2001/10/29
+
+Fix bug: local attribute set wasn't set correctly in PQF strings.
+
+--- 1.8 2001/10/25
+
+* Old Z39.50 codecs no longer supported.
+
+Added ZOOM C binding. See http://zoom.z3950.org/
+
+Renamed states for COMSTACKs to avoid confusion with events.
+
+Implemented cs_look and proper cs_rcvconnect.
+
+Fixed COMSTACK error that occurred on HPUX. Fix by Giannis Kosmas.
+
+Configure detects POSIX threads on OpenBSD.
+
+When sort flag 'i' was specified in yaz-client the caseSensitivy flag
+was set to a wrong value. Thanks to Robert Sanderson for reporting this.
+
+When error is returned from present handler, non-surrogate diagnostic
+is returned in present response (and fetch handler is no longer called).
+
+* Minor adjustments to pquery parser (PQF). Token characters may be
+escaped by using backslash (C-style).
+
+PQF parser allows string attribute values to be specified. For @attr,
+non-numeric characters after the equal-sign are treated as strings
+(e.g. @attr 9=title).
+
+CCL trunction character may be defined (@truncation in file)
+
+* function zget_ExtendedServicesRequest sets waitAction to
+ waitIfPossible (was wait).
+
+Added cs_set_blocking to set change blocking mode of a COMSTACK. Thanks
+to Matthew Carey.
+
+CCL operator names may be set in field definition files (CCL_bibset).
+See ccl/bib1 for an example.
+
+Fixes in ASN.1 compiler for C++ compatibility.
+
+* Renamed members "and" and "or" in struct Z_Operator to "op_and"
+and "op_or" to avoid conflict with C++.
+
+Fixed problem with GNU readline detection on Redhat 7.0.
+
+Added step-size for Scan backend handler.
+
+Fixed bug that made the frontend server crash when no attribute
+set was specified for scan.
+
+Front-end server automatically switches to original working directory
+when installed as an NT service. Previously -w had to be specified to
+make it work.
+
+Added extended attributes for retrieval module (data1), so that data1
+records carry d1_readXML/SGML attributes. d1_read also supports
+null-data rules ( <tag/>)
+
+On UNIX when POSIX threads are available, a separate library libyazthread
+is created. Programmers should link with that library and the yaz library
+when using threads. The reason for the split was that some applications
+on Linux, such as Apache, doesn't work well when using shared objects that
+relies on threads.
+
+Added SSL support for the COMSTACK. You start yaz-client and yaz-ztest
+(or any frontend server) in SSL mode by specifying ssl: followed by
+address. Only tested on UNIX.
+
+Added feature for CCL module. Virtual structure s=al or s=ol generates
+and-list and or-list respectively instead of phrase search.
+
+Added some OID's.
+
+* Added prefix "yaz_" for the functions log_init.., log_file.. and
+log_mask_str. This was done to avoid name conflicts with other libraries
+(such as other PHP extensions).
+
+Added raw OID member for preferred record syntax (request_format_raw)
+and returned record syntax (output_format_raw) for backend fetch method.
+
+Config file yaz-config now accepts options so that it returns specific
+compile settings, etc. Thanks to Morten Bøgeskov <morten@bogeskov.dk>
+
+Shared library support for UNIX using GNU libtool.
+
+* Modified backend interface. Request/Response struct's replaced by
+one read/write C struct. For example bend_fetchrequest and
+bend_fetchresult have been replaced by single bend_fetch_rr struct.
+Every handler - even search has to be registered in bend_init
+handler. This means that the YAZ library no longer refers to
+external functions and it makes it possible to make the whole
+thing a single DLL/SO.
+
+Added Segment handler for backend server.
+
+Added Zmbol/Zebra administrative functions to YAZ client.
+
+Threaded frontend server on UNIX (when POSIX Threads are available).
+Starting the server with option -T enables multi-threading.
+
+--- 1.6 2000/03/03
+
+Added configure option --enable-comp/disable-comp to control use
+of YAZ ASN.1 compiler. Use --disable-comp to use the old *coders
+located in sub directory asn.
+
+YAZ ASN.1 compiler renamed to yaz-comp in sub directory. It's installed
+in ${exec_prefix}/bin along with the other programs yaz-client and
+yaz-ztest.
+
+GNU automake used to maintain makefiles.
+
+Added several OID's.
+
+Changed retrieval module so that we can load records with no abstract
+syntax defined. Tagpaths in these records are fully composed of string
+tags.
+
+Implemented ISO ILL protocol. Refer to stuff in sub directory ill.
+
+--- 1.5 1999/12/10
+
+On UNIX, the generated makefile now supports a proper 'make install'.
+The prefix can be set via GNU configure to set the install location
+(default is /usr/local).
+
+* YAZ programs client and ztest were renamed to yaz-client and
+yaz-ztest to avoid conflicts when users install YAZ in "standard"
+locations, such as /usr/bin,/usr/local/bin,etc.
+
+* YAZ Header files were moved from include to include/yaz. YAZ Header
+files are referred to as include <yaz/log.h> rather than <log.h>.
+The YAZ include path (-I ..) is therefore the same as before. Programmers
+should update their #include statements or use -Ipath/include/yaz
+instead. The main motivation for doing this change is that YAZ header files
+can be installed in "standard" locations /usr/include,/usr/local/include
+without introducing conflicts, since ALL YAZ header files are stored
+in subdirectory yaz (under /usr/include for example).
+
+Compilation of YAZ for WIN32 is now handled by an nmake-style makefile
+rather than project/workspace files. We switched because project files
+are incompatible between Visual C++ 5 and 6. Refer to windows.txt for
+details.
+
+Changed name of logging function, logf, to yaz_log, to prevent name
+clash with some math-log functions. The YAZ header log.h defines logf
+to yaz_log (#define) so there should be no incompatibilities by this
+modification.
+
+Added bend_start/bend_stop handlers for server. These handler are
+called on start/stop of server. For windows they are called whenever
+a service is started/stopped.
+
+* YAZ now auto-generates decoders/encoders for the Z39.50 protocol using
+a fairly small ASN.1 compiler written in Tcl. The compiler is located
+in util/yc.tcl. The auto-generated C code structures are, in a few
+cases, incompatible with the old decoders. There are differences in the
+following C structures Z_DiagRec, Z_External, Z_SortRequest, Z_SortResponse,
+Z_AttributesPlusTerm, Z_ProximityOperator, Z_DefaultDiagFormat.
+The preprocessor variable ASN_COMPILED is defined when the compiled
+ASN.1 is being used. Encoder/decoder routines as well as the Z39.50
+protocol ASN.1 is located sub directory <tt>z39.50</tt>. If you
+wish to use the old encoders/decoders you can specify --disable-yc
+for configure.
+
+Assigned OID for old DB Update (VAL_DBUPDATE0). Updated YAZ compiled
+version so that it supports both new - and old version of DB Update
+
+* Added 'name' parameter to ODR encoder/decoder routines to facilitate
+pretty ODR print. Updated whole Z39.50 encoder/decoder to reflect the
+change. The name parameter can be set to 0 in which no name is specified
+for the construction. The macros odr_implicit and odr_explicit sets name
+parameter to zero for the construction involved. New macros
+odr_implicit_tag and odr_explicit_tag are similar to the others,
+except that a name parameter is added. For programmers' that don't use
+ODR they probably only need to change the call to z_APDU and z_External.
+
+Added access control facility by interfacing the TCP wrapper library.
+YAZ automatically attempts to find the TCP wrapper Library (-lwrap) and
+tcpd.h on Unix systems. For the server, option -d<daemon> specifies the
+name of the daemon and enables the access control as specified in
+hosts.allow/hosts.deny. Refer to man pages tcpd(8) and hosts_access(5).
+
+Fixed memory leak in ccl_find_str and ccl_qual_rm. Thanks to Hans van
+den Dool <H.M.vdnDool@kub.nl>.
+
+Added reference ID parameter to most functions in server API - refer
+to backend.h. Thanks to Hans van den Dool <H.M.vdnDool@kub.nl>.
+
+Changed name of ccl library to libccl.a (was ccl.a).
+
+Fixed bug in decoder for Explain (Category TargetInfo).
+
+Added support for GNU readline in client. Thanks to Jacob Poulsen
+<ja7@dbc.dk>. GNU configure attempts to detect if readline is available.
+
+* CHANGED DEFINITION OF ES: UPDATE (INCLUDING THE OID) to reflect the
+new definition from the ZIG. NOTE THIS IF YOU HAVE AN UPDATE
+IMPLEMENTATION! This change was made to the development version before
+the ZIG decided to retract the amendment. If any users MUST be
+compatible with the original Update definition, PLEASE CONTACT US, and
+we will include a separate definition corresponding to the old Update
+ES. Note that because of the change to the ASN.1 of the
+TaskPackageRecordStructure we cannot define a single structure that
+will support both versions.
+
+* Added const modifier to buffer parameter for some ODR/BER encoding
+routines: ber_dectag, ber_declen, odp_more_chunks, completeBER,
+completeWAIS, odr_dumpBER.
+
+Fixed bug in client.c which caused a crash when a scanResponse didn't
+contain positionOfTerm.
+
+* Fixed inconsistency in the ScanResponse/ListEntries protocol. This
+* will cause an error in a client if a non-YAZ target sends both a
+* list of Scan entries and non-surrogate diagnostics.
+
+Retrieval module enhancements. Tag sets may be typed in the reference
+to it. From the .abs-file the "tagset" directive takes a third optional
+integer type for the tag set referenced. From a .tag-file the "include"
+directive takes a third optional type as well. The old "type" directive
+in the tag set itself is still recognized but acts as the default type
+for the tag set.
+
+Backend interface change. Individual Scan terms returned from bend_scan
+may also be tagged as Surrogate Diagnostics. Refer to struct scan_entry
+in include/backend.h.
+
+Retrieval module enhancements. Multiple tag sets and attribute sets may
+be specified in abstract syntax specs. Revised the error/warning for
+logging messages reported by the retrieval module when reading the
+various spec files.
+
+Object Identifier system (oid_..) changed. The API is backwards
+compatible but the oid-routines now allocates new OID's when needed.
+Raw OID's may be specified in oid_getvalbyname.
+
+YAZ now uses GNU configure to generate Makefile(s).
+
+* Minor changes in some of the member names of DeleteResultSetRequest and
+DeleteResultSetResponse. See include/proto.h.
+
+* Changed some C definitions regarding EXPLAIN record syntax (prt-exp.h)
+and added member 'languages' in TargetInfo (which was missing).
+
+Changed the way attribute sets are handled in the retrieval
+module. These are now cached, just like the abstract syntaxes
+(schemas).
+
+Changed YAZ so that it links with compiled ASN.1.
+
+Added Explain-schema definitions and mapping routines. The following
+Explain categories have been implemented: AttributeDetails,
+AttributeSetInfo, DatabaseInfo, CategoryList and TargetInfo.
+
+Fixed minor bug in Windows version of Server Library.
+
+--- 1.4pl2+ 1998/4/17 (Released with Zebra)
+
+Added Extended Services to server (backend.h). Thanks to Charles Woodfield.
+
+Added EXTERNAL: UNIverse Resource Report (non-standard).
+
+Implemened odr_enum and odr_set_of functions to handle ASN.1 types
+ENUMERATED and SET OF.
+
+* Added 'const' to some of the char pointer arguments for the
+functions, data1_read_node, data1_getelementbytagname,
+data1_insert_taggeddata, data1_getesetbyname, data1_getelementbyname,
+data1_get_absyn.
+
+Fixed bug in data1_insert_taggeddata - the last_child member of
+parent wasn't initialised.
+
+* Changed data1_read_record and data1_read_node so that the supplied
+"SGML"-buffer is read-only. In particular the resulting data1 - tree
+doesn't refer to any parts of the "SGML"-buffer.
+
+Fixed bug in server library (Windows version of statserv_remove).
+
+* Changed code so that it compiles as C++. The type definition
+of Odr_fun which is a member of Odr_arm was changed. The result is,
+that an explicit typecast is needed for the fun pointer when
+using Odr_arm - as in:
+ {1, -1, -1, Z_IdAuthentication_idPass, (Odr_fun)z_IdPass},
+
+Updated TagSet-G and -M definitions (tagsetm.tag and tagsetg.tag).
+
+Implemented the new structured date and time definition as approved
+by the ZIG. Added schemaId element to the specificTag in Espec-1
+(also approved at the last ZIG). Thanks to RVDM.
+
+Added some Object identifiers (RVDM).
+
+Changed the Update Extended Service (RVDM).
+
+Added command "refid" to client which specifies referenceId for
+the following requests.
+
+Implemented extended service handling for server. See ztest.c
+for an example as well as backend.h. New handlers are registerd
+in the Init handler.
+
+* Changed interface for sort in server.
+
+Added new members to statserv_options_block. It allows a server
+to read options from another source than just the command line. Thanks
+to Charles Woodfield.
+
+* Changed definition of Z_Triple in file prt-grs.h - member boolean
+renamed to zboolean. Some C++ compilers complained about the name.
+
+Minor changes to gils.abs. Added index 's' (sort) on title
+and date/time-last-modified.
+
+--- 1.4pl2 1998/1/30
+
+Fixed bug in server library regarding inetd mode (-i). This bug
+was introduced by release 1.4.
+
+--- 1.4pl1 1998/1/29
+
+Added sort facility in client and backend server interface.
+
+Fixed problem with dependencies in Makefile(s).
+
+Fixed bugs for encoders/decoders of extended services and
+SearchInfoReport.
+
+Implemented sub-tree feature for schemas. Sub-trees are
+referenced in *.abs-files. See explain.abs for an example
+of the use of this feature.
+
+Modified bib1.att; local attributes for ANY didn't include
+ANY itself (only affects use of the retrieval module).
+
+Fixed bug in plain SGML reader in function data1_read_node:
+tags with prefix "var" was incorrectly interpreted as variants.
+
+Added feature "sub-schemas" to enable references to - and definitions
+of - group of elements.
+
+* Removed member parent from type data1_element (in data1.h).
+
+Implemented function odr_nullval() that returns the value of
+ODR_NULLVAL.
+
+* Removed member num_children from data1_node (in data1.h).
+
+Made NT service interface part of the server library. The
+function statserv_main uses the NT service when required and
+calls the statserv_start / statserv_close routines.
+
+Routine zget_SearchRequest and zget_PresentRequest fills
+resultSetName/Id member with "default" instead of "Default".
+
+Fixed memory leak in server. Request queue member wasn't freed.
+
+Fixed nmem_exit so that memory is freed.
+
+--- 1.4 1997/10/2
+
+Revised the CCL parser utility to be thread safe.
+
+Added function, oid_ent_to_oid, to replace the function
+oid_getoidbyent, which is not thread safe.
+
+* Added nmem_init and nmem_exit to initialize and release
+NMEM resources. Function nmem_init should be called once in the
+initial thread before NMEM/ODR is used. statserv.c and client.c
+have been changed accordingly. The change was necessary to make
+NMEM thread safe. The NMEM memory pool is shared amongst threads
+in a process. Unix-based applications will still work fine without
+calling this.
+
+Added NT Services interface for the the Z39.50 (statserv) Server.
+Refer to the ztest.c source on the usage.
+
+Windows 95/NT port using MSVC5.0. Project files are included in the
+distribution.
+
+* Defined new 'global' handle for the retrieval (data1) system. The
+new handled, data1_handle, describes the state of the data1 system.
+This handle is passed as first argument to virtually all
+data1 related routines. The functions data1_create and data1_destroy
+creates and destroys a data1 handle respectively.
+
+Added ODR encode stream member to all backend request structures
+init, search, scan etc. This stream should be used to allocate all
+memory used for the response when thread safe operation is needed.
+
+Changed the comstack utility, cs_addstr, to be thread safe. The
+returned hostname string returned by the function is now part the
+COMSTACK instance.
+
+Added comstack utility, cs_straddr, which replaces the tcpip_strtoaddr
+function. The cs_straddr takes a COMSTACK handle as argument, so this
+function must be used after cs_create and before bind/connect.
+This function is thread safe.