+For SRU responses allow Content-Type application/xml as well as text/xml.
+
+--- 3.0.4 2007/05/21
+
+Fixed bug in character set conversion of BER strings. Bug introduced
+in 3.0.0.
+
+--- 3.0.2 2007/05/08
+
+For OIDs use Odr_oid type everywhere, i.e. do not assume Odr_oid=int.
+
+For OID class, use oid_class consistently.
+
+Fixed external handling for SUTRS and Explain records (bug appeared in 3.0
+series).
+
+Added partial support for ISO5428-1984, which is the "Greek alphabet coded
+character set for bibliographic information interchange". By Giannis Kosmas.
+
+Added documentation on new OID API.
+
+--- 3.0.0 2007/05/02
+
+Changes to generic frontend server interface: added new member
+'query_charset' for bend_initrequest structure. A backend init handler
+should set this member to its native character set for query terms.
+When defined, the frontend server logic will announce this character set
+to a client if the negotiationModel bit is set by the client. All server
+implementors are encouraged to specify this. If a backend server does not
+specify this a warning is issued using yaz_log(YLOG_WARN,..).
+
+Added CCL utility to remove terms (stop words) from resulting RPN
+tree. This is handled by functions with prefix ccl_stop_words_ .
+
+New ZOOM C option, "rpnCharset", which allows client-side conversion of
+terms in RPN queries.
+
+Clean-up the CCL API. Moved some internal structures from ccl.h to
+private header cclp.h. Changed ccl_parser_create so that a Bibset must
+be supplied. Removed tokenize API from ccl.h - including ccl_parser_find.
+This is replaced by ccl_parser_find_str which takes a string instead.
+
+Split YAZ library into two libs : libyaz.la and libyaz_server.la.
+libyaz.la is the core of YAZ except the generic frontend server and
+does not depend on POSIX threads anymore. libyaz_server.la is the
+generic frontend server facilities and uses POSIX thread functionality
+if available. The libyaz.la no longer depends on POSIX threads because
+the number of global structures is limited. NMEM no longer re-uses blocks
+between threads ; it simply free's memory immediately but allocates in
+"large" chunks as usual. We don't expect any performance penalties
+because of this. The yaz_log system is still using a global log_level so
+caution must be taken when modifying it with yaz_log_init_.. +
+yaz_log_mask_str. This, however, should not cause any trouble because
+these functions are called during initialization of application code
+anyway. `yaz-config --libs server` returns libs for server applications;
+`yaz-config --libs` returns libs for non-server applications.
+
+New OID database - with public definitions in oid_db.h. Removed old OID
+database including the head oid.h and definitions such as enum oid_value
+and struct oident. The new OID database uses the same string names as
+before but the 'protocol' is gone. There are now only two representations
+raw OID (int *) and string. Functions with prefix yaz_string_to_oid
+converts from string to OID; functions with prefix yaz_oid_to_string
+converts the other way.
+
+Change to emit_term() in CQL-to-PQF query translation: when a term has
+the /regexp relation modifier, do not process it for leading and
+trailing "^" and "*", which have quite different meanings in regular
+expressions.
+
+Attempted fix of bug #976: Segfault in yaz_iconv. The yaz_iconv function
+write handlers no longer carries a 'last' parameter. This will make
+yaz_iconv flush "less" characters. A flush is performed by call to
+yaz_iconv(cd, 0, 0, &outbut, &outbytesleft) .
+
+Definition of wrbuf_diags moved to querytowrbuf.h. Function wrbuf_put_zquery
+removed, because function yaz_query_to_wrbuf does the same.
+
+API changes to WRBUF. wrbuf_free removed; replaced by wrbuf_destroy. And
+wrbuf_puts no longer appends '\0'. Use wrbuf_cstr to get C-string out.
+
+Deprecated MARC utility functions removed.
+
+Changed prototype of yaz_marc_decode_buf: const char for result and size_t
+for rsize.
+
+Branch split: YAZ_2_1_55_branch
+
+--- 2.1.54 2007/03/16
+
+Fix to ZOOM-C so that transparent reconnection is properly handled on
+connections that are in asynchronous mode.
+
+Fixed compilation on OpenBSD 4.0.
+
+Large strings in GRS-1 records are now properly displayed in yaz-client.
+
+Added character conversion support for "advancegreek"; based on patch from
+Giannis Kosmas.
+
+Fixed yaz_iconv to return YAZ_ICONV_EINVAL if an incomplete MARC-8 combo
+sequence is met. Before the error was not set so it would be unknown.
+
+Adjust yaz-marcdump MARC reader so that it skips until record separator
+is read
+
+--- 2.1.52 2007/03/07
+
+ZOOM-C: Removed hardcoded limit of 1024 sockets in ZOOM_event_sys_poll().
+Note that ZOOM_event_sys_select() still has the limit due to the fixed-size
+fd_set structure used as a bitmask for the FDs to be selected on.
+
+Using ACX_PTHREAD macro to check for POSIX threads.
+
+Fixed have-vsnprintf check.
+
+--- 2.1.50 2007/02/23
+
+Fixes for configure on BSD. Bug #900.
+
+Added snprintf/vsnprintf wrappers for systems that don't have
+limits (heavens forbid).
+
+Fixed bug in ZOOM-C's event and task handling. If a ZOOM task was
+created before all previous tasks were completed and removed from the
+task queue, the new task could be removed by a mistake.
+
+Fixed bug #615: Document retrievalInfo facilities for Frontend Server.
+
+Implemented pass-through CQL-to-PQF conversions. Bug #861.
+
+Fixed bug #832: Problem with MARC/charset in yaz-client.
+
+Fixed bug #668: save command line history for yaz-client.
+
+Fixed bug #830: pkg-config support.
+
+--- 2.1.48 2007/01/23
+
+Extended ZOOM result set options with two options that may be read by
+a client: resultSetStatus and presentStatus with values as specified for
+the ASN.1. See:
+http://www.loc.gov/z3950/agency/markup/04.html#Search-status
+
+Fixed bug #827: Using SSL fails on Debian etch.
+
+Fixed bug #826: Weird looking chars for set of MARC records.
+
+Implemented alternative Item Order package for ZOOM. If option "doc" is set,
+that is treated as an ItemOrder with itemRequest being an XML document
+external. The value of "doc" is the content.
+
+Extended the GFS search facility. New member of bend_search_rr
+'estimated_hit_count' signals that hits is known to be an estmate
+(higher or lower than real hit count). New member 'partial_resultset'
+signals that the search was partial (hit count is lower or equal than
+real hit count). For Z39.50, the information is stored in resultSetStatus
+member of SearchResponse APDU. For SRU, the information is signalled
+via SRU diagnostic 59: "Result set created with valid partial results
+available".
+
+Switched from jade/pdfjdaetex to dblatex for Docbook documentation in PDF.
+
+--- 2.1.46 2007/01/13
+
+Implemented bug #806: Deal with HTTP clients sending LF in HTTP headers.
+
+Added ZOOM_connection_peek_event.
+
+Implemented Generic select hook for ZOOM (bug #803). This is achieved with
+the following new functions:
+ ZOOM_event_nonblock, ZOOM_connection_process,
+ ZOOM_connection_get_{socket,mask,timeout},
+ ZOOM_connection_fire_event_{timeout,socket}.
+The existing blocking event handler, ZOOM_event, is a wrapper for the
++ blocking ZOOM_event_sys_{poll,select}.
+
+Implemented function ccl_xml_config which parses XML version of CCL
+configuration (bug #798).
+
+Fixed bug #797: yaz_marc_write_xml does not honor character conversion.
+
+Added timings utility (yaz/timing.h)
+
+--- 2.1.44 2007/01/03
+
+Added yaz_marc_write_xml which creates MARCXML/MarcXchange record as
+Libxml2 tree.
+
+Fixed bug #779: Rotation of apdu.log fails.
+
+Fixed for character set conversions:
+ Unicode to MARC-8 conversion for certain less preferred UTF-8 sequences.
+ Honor G1 set in MARC-8 decoding.
+
+--- 2.1.42 2006/12/17
+
+Fixed bug #775: char conversion does not handle Alternative UTF-8
+sequences.
+
+Implemented function yaz_marc_read_line which parses MARC line format
+records. There is a wealth of formats out there. So far, this function
+reads line records produced by yaz_marc_write_line.
+
+yaz-marcdump's options -x, -X, -I, -e have been replaced with the
+more generic and easier to remember(!) options: -i format and -o format
+which specifies input format and output format respectively - where
+format is one of "marc", "marcxml", "line", "marcxchange".
+
+Added 'check only' option for MARC utilities. Option -n for yaz-marcdump
+does not print anything except warnings for records.
+
+For yaz-marcdump, added support for MARC split into files (-s) with a given
+chunk size (-C).
+
+Changed the SRU update structures and codecs to reflect the SRU pre 1.0
+spec, at http://www.loc.gov/standards/sru/record-update/
+This has changed the binary layout of the following structs:
+Z_SRW_extra_record, Z_SRW_updateRequest, Z_SRW_updateResponse and
+bend_update_rr . Patch by Ko van der Sloot.
+
+Added GFS utility function bend_assoc_is_alive which returns 1 if
+association is still alive (client is connected); 0 otherwise (client
+closed connection). This allows busy servers to stop working for
+impatient clients.
+
+Added ziffy: the promiscuous Z39.50 APDU sniffer. until now, ziffy has
+been a separate piece of software. This version of ziffy has been modified
+to fit with YAZ. ziffy is copyright Rocco Carbone and covered by GPL v2.
+
+Fixed bug #740: Handle SRU records referring to xmlns's outside recordData.
+
+Fixed bug #722: Allow Z39.50 Init Options to be specified / retrieved.
+Client code may now interrogate options such as "init_opt_sort" to
+find out whether the server claims to support various options.
+
+--- 2.1.40 2006/11/27
+
+Added utilities yaz_{set,get}_esn to set/get element set name from
+record composition.
+
+Removed the build of libyazthread.la. The libyaz.so is the threaded version
+of YAZ and has been so since YAZ 2.1.10.
+
+Implemented ZOOM_record_error which returns error information for
+record (surrogate diagnostic).
+
+--- 2.1.38 2006/10/31
+
+Updates for SRU Update by Ko van der Sloot:
+1. Changed name from "operation" to "action"
+2. Fixed that that "recordIdentifier" was called "recordId". Kept the old
+versions in the code, marked as 'backward compatible'.
+3. Added diagnostics for SRU Update.
+
+Fixed bug #709: Records are fetched in wrong format when tasks are queued.
+
+Fixed bug #707: CQL->RPN ignores lines with leading spaces.
+
+Fixed bug #706: XML hex encoding UTF-8 chars out of range 0-255.
+
+For GFS, fixed problem with SRU diagnostic 'First record position out of
+range' being issued for 0 hits.
+
+zoomtst10 part of Windows Build.
+
+--- 2.1.36 2006/10/13
+
+Implemented yaz_filepath_comp which splits a path into file path
+components (required by Zebra 2.0.3+).
+
+Change wording of YAZ license to the 'Revised BSD License'. YAZ has used a
+BSD inspired license until now so this should not have any real impact on
+anybody. See http://www.opensource.org/licenses/bsd-license.php
+
+Fixed bug #687: Missing log lines.
+
+Fixed bug #678: CQL to PQF translation does not preserve double-quote
+escaping.
+
+Fixed bug #689: SRU diagnostics to be added.
+
+Implemented new ZOOM function, ZOOM_connection_is_idle, which checks
+whether a connection is idle (no more work do do).
+
+--- 2.1.34 2006/10/04
+
+Change type of optval from long to int for invocation of setsockopt with
+the SO_REUSEADDR option. Thanks to Ateeq A. Altaf, Talis.
+
+Added support for specifying the max log file size for the Generic
+Frontend Server. The size is given with option -r.
+
+--- 2.1.32 2006/09/21
+
+Fix problem introduced in YAZ 2.1.28 WRT unix sockets in the ZOOM code.
+
+--- 2.1.30 2006/09/17
+
+Fixes for getaddrinfo use, Bugs #655 + #660. These bugs were introduced
+in YAZ 2.1.28.
+
+Fixed bug in Generic Frontend Server that could cause a server to stop
+accepting new connections. Bug only seen on dual CPU Windows 2003 server.
+
+For the generic frontend server, the maximum record size is used as maximum
+size of incoming packages (SRU + Z39.50). The value until was previously
+only used in Z39.50 Init negotiation and, later, in a session controlled
+sizes of records returned. This is controlled using -k option. It can be
+specified, per server, with element maximumrecordsize in YAZ' GFS XML config.
+
+--- 2.1.28 2006/09/04
+
+TCP/IP comstack uses getaddrinfo now to resolve names. It should be IPV6
+friendly now.
+
+Fixed bug #644: Using Non Reentrant gethostbyname causes SIGSEGV.
+
+New option for yaz-marcdump -lpos=value which allows setting a portion
+of MARC header to a certain value.
+
+Fixes for MARC generation when encoded as MARC-8 (bug 642, 643).
+
+ZOOM-C reads option extraArgs. If set the value of extraArgs is appended to
+SRU URI (POST/GET). Value must be URL encoded, such as x-id-a=v1&x-id-b=v2 .
+
+--- 2.1.26 2006/08/15
+
+Fixed problem with SRU mode type (soap, get, post) for yaz-client
+and ZOOM-C.
+
+Fixed problem another problem with ZOOM_EVENT_RECV_RECORD . Bug #626.
+
+--- 2.1.24 2006/08/08
+
+Fixed MARC ISO2709 encoding routines to deal with character set
+conversion.
+
+Minor changes to GFS logging. Database included in search request log
+line.
+
+Fixes for ZOOM-C: event ZOOM_EVENT_RECV_RECORD was not generated for
+cached/multiple records.
+
+Shared libraries are built by default on Unix+configure.
+
+Changed cql2pqf transformation to use a different evaluation order. The
+new order is: always, relation, structure, position, truncation, index
+and relationModifier. Old order was: always, relation, relationModifier,
+structure, index, position, truncation. Note that the the latter ones
+override former ones for identical attributes.. The new scheme means that
+it is possible to override any existing attribute with a relationModifier.
+And also that it is possible to override everything for the index rule
+(except the ones listed in relationModifier). No order is perfect but this
+one, we believe, covers more real cases.. The "always" should have been
+called "default", since the attributes there can be overridden with all
+the rest.
+
+For Libxml2 and friends, YAZ defines YAZ_HAVE_{XML2,XSLT,EXSLT) in the
+compilation phase, but also for yaz-config --cflags output. This allows
+us to have public headers with Libxml2 stuff in them . It should also,
+eventually, make Libxml2 checks redundant in packages using YAZ, such
+as yazproxy.
+
+--- 2.1.22 2006/06/15
+
+Changed SRU update structure bend_update_rr so that SRU diagnostics are
+stored in uri, message and details.. Previously diagnostics were stored
+in errcode, errstring. Patch by Ko van der Sloot. Breaks binary
+compatibility.. but he's probably the only one affected, so.
+
+Added support for CCL, compiled on the client side, in ZOOM-C. This
+is invoked using ZOOM_query_ccl2rpn() with the CCL configuration as
+input; the resulting query objects can be used for for searching with
+ZOOM_connection_search() and scanning with ZOOM_connection_scan1().
+
+YAZ' configure searches for OpenSSL by default.
+
+SSL comstack uses SL_CTX_use_certificate_chain_file rather than
+SL_CTX_use_certificate_file. See
+http://lists.indexdata.dk/pipermail/yazlist/2006-June/001615.html
+for more info. Thanks to Ko van der Sloot.
+
+--- 2.1.20 2006/06/02
+
+Bug #600: SRU GET, POST support for yaz-client. Introduced
+command 'sru' which selects method SOAP/GET/POST.
+
+Allow missingValueAction to be specified for the sortspec string -
+function yaz_sort_spec. By default, the missing value action is null.
+Use ! to specify "abort". Use = followed by stringvalue to specify default
+value.
+
+Ensured that Present-handler (if defined) is called in GFS before any call to
+fetch-hhndler. This now includes piggy-backed presents as well as SRW/U
+searchRetrieve requests.
+
+Documentation for YAZ is now based on the Docbook XML/XSLT using
+xsltproc + N Walsh's stylesheets. It means that the CVS version of YAZ
+is no longer depending on jade/openjade or docbook-to-man scripts.
+PDF is no longer part of the distribution - but can optionally be
+made using DSSSL/jadetex or FOP.
+
+Added retrieval handling support in Generic Frontend Server to support
+conversion between MARC/XML as well as XSLTtransforms. See
+etc/yazgfs.xml for an example.
+
+Added Authentication support to Generic Frontend Server in SRU
+mode. Authentication using HTTP Basic is supported, as is the use
+of 'x-username' and 'x-password' parameters in the request itself.
+
+Added support for a new character set MARC8s identical to MARC8 except
+that it converts combined characters to single Unicode characters in the
+Latin-1 range (when possible).
+
+--- 2.1.18 2006/04/24
+
+ASN.1 compiler 0.4: generates brief Doxygen file header for
+generated .h/.c files.
+
+Utility yaz_iconv now supports conversion to MARC-8.
+
+New facilities for the MARC module. The reading - and writing of
+content are separate methods for the yaz_marc_t handle. The following
+read functions are available: yaz_marc_read_iso2709 (Reads MARC in
+ISO2709 format), yaz_marc_read_xml (reads MARC in MARCXML/MarcXchange
+format). Write functions have prefix yaz_marc_write_.. The existing
+utilities yaz_marc_decode_wrbuf and yaz_marc_decode_buf are still
+available. Removed support for OAI-MARC and simplexml (not the
+simplexml from PHP5).
+
+Added a new ZOOM event type ZOOM_EVENT_END which signals no more events
+to be returned for this connection.
+
+--- 2.1.16 2006/03/31
+
+Allow multiple languages and charsets to be specified with
+yaz-client. Each item must be separated by comma (NO BLANKS). E.g.
+ negcharset iso-8859-1,utf-8
+
+Translation of proximity nodes from CQL into PQF now works.
+
+Moved to automake 1.8, 1.9.
+
+Added function yaz_log_set_handler which allows a log handler to be
+installed. This handler will be called for all log messages. Output
+to file is also produced; but that can be disabled by passing NULL
+fname to yaz_log_init_file.
+
+Fixed another problem with MARC-8 -> ISO-8859-1 conversions. Bug #537.
+
+For SRW (including GFS), accept application/soap+xml as content-type
+for SOAP msg.
+
+For GFS in SRU mode, an empty stylesheet in SRU URL (&stylesheet=&)
+produces NO stylesheet reference even if a default stylesheet is specified
+in GFS XML config.
+
+--- 2.1.14 2006/03/14
+
+Updated Windows package to include yazd.dll + yazd.lib for the
+Development component.
+
+If the environment variable YAZ_LOG is set, then it is used as a
+string indicating the default level of logging to use if not
+overridden by calls to yaz_log_init() or yaz_log_init_level(). If
+it's not defined, then the manifest constant YLOG_DEFAULT_LEVEL is
+used as before. So, for example, to omit warnings from YAZ logging,
+ export YAZ_LOG=-warn
+
+cql_transform() now map structure and other attributes before indexes,
+so that index-specific structures and other attributes can override
+defaults. So now a combination of mapping specifications such as:
+ structure.* = 4=1
+ index.dc.date = 1=date-modified 4=5
+does the right thing.
+
+cql_transform() now also respects the "always" mapping specification,
+which establishes an initial set of attributes to be used for all
+terms except where overridden by more specific attributes associated
+with the index, relation or modifier.
+
+Added SRU-GET and SRU-POST support for ZOOM C. Option "sru" specifies
+which mode to use; one of "post", "get" or "soap" (SRW, default).
+
+Fixes for yaz_iconv routines: changed trie-based character set conversions
+to use only non-negative values for bit fields due to Sun's C compiler not
+supporting negative values.
+
+Fixed bug in character set conversion yaz_iconv. Some three byte UTF-8
+sequences where not read correctly. Fix by Rustam Usmanov.
+
+Updated win/makefile to use options, settings which makes things
+compile with VS C 2005.
+
+--- 2.1.12 2006/02/01
+
+Fixed bug in yaz_oi_update which used incorrect value for categoryValue.
+
+In ZOOM socket code, use select instead of poll on MacOSX.
+
+ZOOM-C now support client-side compilation of CQL into RPN that is
+sent to the server, enabling CQL to be used against all Z39.50
+servers. Use ZOOM_query_cql2rpn() to set the compiled CQL into a
+ZOOM_query object, and submit it using ZOOM_connection_search().
+The CQL-to-RPN translation uses a configuration file, the name of
+which must be specified in the Connection's "cqlfile" option.
+
+ZOOM-C also support CQL scanning, via the new ZOOM_connection_scan1()
+function, which takes as its start-term parameter a ZOOM_query object
+(which may have had either CQL or RPN set into it).
+
+
+--- 2.1.10 2005/11/29
+
+Added ZiNG Update Support. New codecs are defined in srw.h. Extended the
+GFS to support this as well. Backend handler, bend_srw_update, does the
+update work. Code contributed by Ko van der Sloot.
+
+Allow retrieval of Search Result-1 information in ZOOM by the use of
+options that are attached to a result set. ZOOM documentation updated
+accordingly.
+
+Fixed bug #416: First/second comb characters not handled in the MARC-8 to
+UTF-8 conversion. Patch by Raj Patel.
+
+Added option -m to GFS to control formatting of timestamps in log file.
+
Added 'exit' as synonym for 'quit' in yaz-client
-Possible compatibility problems with earlier versions marked with '*'.
+Added support for specifying SRW resultSetId + resultSetIdleTime in a
+Generic Frontend Server's search handler. Refer to include/yaz/backend.h
+for the new members. Patch by Ko van der Sloot.
+
+Added support for SRU POST. It is supported for content-type
+application/x-www-form-urlencoded only. Patch by Ko van der Sloot.
Do not build the separate Multi-threaded (MT) library libyazthread.la.
Instead make the library libyaz.la multi-threaded. Threading as a whole
by tools - to use spaces rather than TABS. Emacs/VIM trailer added to
all source files.
+Add ZOOM_connection_option_getl() and ZOOM_options_getl(),
+corresponding to the existing *_setl() function. These allow option
+values containing arbitrary valuues.
+
+Add ZOOM_resultset_sort1(), which should ALWAYS be used in place of
+ZOOM_resultset_sort() in new applications. Its behaviour is identical
+except that it returns an indicator of whether or not the sort
+criterion was accepted (0 for OK, -1 for invalid).
+
--- 2.1.8 2005/06/07
Fixed bug in yaz_marc_decode_buf. By mistake the routine appended