This ChangeLog file is no longer maintained - see the git repo history for
more recent changes: http://xapian.org/bleeding

Fri Sep 25 07:27:51 GMT 2015  Olly Betts <olly@survex.com>

	* NEWS: Update.

Fri Sep 25 07:10:03 GMT 2015  Olly Betts <olly@survex.com>

	* net/length.cc,net/length.h: Provide overloads for unsigned, unsigned
	  long, and unsigned long long, rather than uint32_t and uint64_t -
	  this avoids overload resolution failing when we pass a type which
	  isn't one which uint32_t or uint64_t is a typedef to.  (see #385)

Fri Sep 25 07:08:42 GMT 2015  Olly Betts <olly@survex.com>

	* api/,backends/remote/net_postlist.cc,
	  backends/remote/remote-database.cc,common/serialise.h,net/: Split
	  decode_length() into versions which decode a 32 vs 64 bit value,
	  and which check that there's at least the decoded length in bytes
	  in the source data.  (Fixes #678 and helps #385)

Fri Sep 25 04:48:27 GMT 2015  Olly Betts <olly@survex.com>

	* common/socket_utils.cc: Change C-style cast to reinterpret_cast.

Fri Sep 25 04:38:49 GMT 2015  Olly Betts <olly@survex.com>

	* docs/stemming.rst: Update snowball website link to snowballstem.org.

Sun Aug 30 04:43:49 GMT 2015  Olly Betts <olly@survex.com>

	* docs/remote_protocol.rst: Markup tweak.

Fri Sep 25 04:27:46 GMT 2015  Olly Betts <olly@survex.com>

	* backends/remote/remote-database.cc: Improve error when the client and
	  server remote protocol versions aren't compatible.

Fri Sep 25 04:23:38 GMT 2015  Olly Betts <olly@survex.com>

	* docs/: Strip out "quickstart" examples which are out of date and
	  rather redundant with the "simple" examples.

Fri Sep 25 04:21:03 GMT 2015  Olly Betts <olly@survex.com>

	* pkgconfig/xapian-core.pc.in: Fix library name in .pc file to say
	  "xapian" not "xapian-core".  Reported by Eric Lindblad to the
	  xapian-devel list.

Fri Sep 25 04:18:08 GMT 2015  Olly Betts <olly@survex.com>

	* backends/chert/chert_compact.cc: Need <unistd.h> for unlink() on
	  FreeBSD, reported by Germán M. Bravo via github PR 72.

Fri Sep 25 04:14:53 GMT 2015  Olly Betts <olly@survex.com>

	* tests/harness/testutils.cc,tests/harness/testutils.h: Use
	  'Xapian::docid' instead of 'unsigned int' so that things work with
	  64 bit docids (see #385).

Fri Sep 25 01:16:32 GMT 2015  Olly Betts <olly@survex.com>

	* common/safeunistd.h,configure.ac: Don't provide our own
	  implementation of sleep() under __WIN32__ if there's already one -
	  mingw provides one, and in some situations it seems to clash with
	  ours.  Reported to xapian-discuss by John Alveris.

Fri Sep 25 01:13:59 GMT 2015  Olly Betts <olly@survex.com>

	* net/remoteserver.cc: Check length of key in MSG_SETMETADATA.

Fri Sep 25 00:05:00 GMT 2015  Olly Betts <olly@survex.com>

	* examples/xapian-metadata.cc: Extend "list" subcommand to take
	  optional key prefix.

Fri Sep 25 00:03:37 GMT 2015  Olly Betts <olly@survex.com>

	* common/remote-database.h: Correct doxygen comment for internal
	  method.

Fri Sep 25 00:02:06 GMT 2015  Olly Betts <olly@survex.com>

	* examples/quest.cc: Prefer pre-increment ++.

Fri Sep 25 00:01:23 GMT 2015  Olly Betts <olly@survex.com>

	* tests/api_compact.cc,tests/api_posdb.cc: Remove unused variables.

Thu Sep 24 23:31:12 GMT 2015  Olly Betts <olly@survex.com>

	* languages/compiler/generator.c: Remove redundant assignment.

Thu Sep 24 23:30:29 GMT 2015  Olly Betts <olly@survex.com>

	* languages/compiler/generator.c: Remove extra "break;".

Thu Sep 24 23:03:41 GMT 2015  Olly Betts <olly@survex.com>

	* api/omdatabase.cc: Make Database::get_wdf_upper_bound("") return 0.
	* tests/api_backend.cc: Fix testcase dbstats2 to not expect exact
	  doclength upper bounds from multi- or remote- flint.

Thu Sep 24 05:59:39 GMT 2015  Olly Betts <olly@survex.com>

	* api/documentvaluelist.h,api/matchspy.cc,include/xapian/: Mark
	  constructors taking a single argument as "explicit" to avoid
	  unwanted implicit conversions.

Thu Sep 24 05:47:19 GMT 2015  Olly Betts <olly@survex.com>

	* tests/api_backend.cc: Tweak bounds checks in dbstats1 testcase
	  - multi backends should give tight bounds.

Thu Sep 24 12:02:31 GMT 2015  Olly Betts <olly@survex.com>

	* examples/simpleexpand.cc,examples/simpleindex.cc,
	  examples/simplesearch.cc: '#include <config.h>' in the examples, as
	  when compiling with xlC on AIX, _LARGE_FILES gets defined by
	  AC_SYS_LARGEFILE to enable large file support, and defining this
	  changes the ABI of std::string, so it also needs to be defined when
	  compiling code using Xapian.

Mon Sep 14 00:40:28 GMT 2015  Olly Betts <olly@survex.com>

	* net/tcpclient.cc: Add missing '#include <arpa/inet.h>' to htons().
	  Seems to be implicitly included on most platforms, but Interix needs
	  it.  Reported by Eric Lindblad on xapian-discuss.

Wed Jun 03 03:12:25 GMT 2015  Olly Betts <olly@survex.com>

	* tests/api_backend.cc: Fix to build when S_ISSOCK() isn't defined.

Mon Jun 01 11:42:11 GMT 2015  Olly Betts <olly@survex.com>

	* api/omdatabase.cc,tests/api_backend.cc: Fix
	  Database::get_doclength_lower_bound() over multiple databases when
	  some are empty or consist only of zero-length documents.  Previously
	  this would report a lower bound of zero, now it reports the same
	  lowest bound as a single database containing all the same documents.

Mon Jun 01 11:36:39 GMT 2015  Olly Betts <olly@survex.com>

	* backends/remote/remote-database.cc: Avoid divide by zero when
	  getting the average length for an empty database.

Mon Jun 01 11:34:23 GMT 2015  Olly Betts <olly@survex.com>

	* tests/harness/testsuite.cc: If command line option --verbose/-v
	  isn't specified, set the verbosity level from environmental variable
	  VERBOSE.

Mon Jun 01 11:33:19 GMT 2015  Olly Betts <olly@survex.com>

	* tests/harness/testsuite.cc: Put handling for XAPIAN_TESTSUITE_OUTPUT
	  environmental variable into its own block to contain the scope of
	  the temporary variables.

Mon Jun 01 11:29:25 GMT 2015  Olly Betts <olly@survex.com>

	* common/serialise-double.cc: Prefer scalbn() to ldexp() where
	  where possible, since the former doesn't ever set errno.

Mon Jun 01 11:24:10 GMT 2015  Olly Betts <olly@survex.com>

	* api/sortable-serialise.cc: Use scalbn() instead of ldexp() in
	  sortable_unserialise(), as ldexp() can set errno, which it seems
	  better to avoid doing.

Fri May 29 07:47:46 GMT 2015  Olly Betts <olly@survex.com>

	* tests/api_wrdb.cc: Revert disabling of part of adddoc5 for clang, as
	  that should now work now the method in question isn't marked as
	  XAPIAN_PURE_FUNCTION.

Mon May 25 04:30:56 GMT 2015  Olly Betts <olly@survex.com>

	* tests/harness/testsuite.h: Simplify FAIL_TEST and SKIP_TEST
	  slightly.

Mon May 25 04:30:03 GMT 2015  Olly Betts <olly@survex.com>

	* tests/harness/backendmanager_remotetcp.cc: Don't leave an extra fd
	  open when starting xapian-tcpsrv for remotetcp tests.

Mon May 25 04:19:01 GMT 2015  Olly Betts <olly@survex.com>

	* tests/harness/backendmanager_remotetcp.cc: Add spaces between literal
	  strings and macros which expand to literal strings for C++11
	  compatibility in __WIN32__-specific code.

Thu May 21 11:13:29 GMT 2015  Olly Betts <olly@survex.com>

	* configure.ac: Disable "<FUNCTION> is expected to return a value"
	  warning from Sun's C++ compiler, as it fires even for functions we
	  end in a "throw" statement.  Genuine instances will be caught by
	  compilers with superior warning machinery.

Wed May 20 14:40:55 GMT 2015  Olly Betts <olly@survex.com>

	* NEWS: Final update for 1.2.21 (probably).

Wed May 20 14:24:03 GMT 2015  Olly Betts <olly@survex.com>

	* include/xapian/version_h.cc: If old and new __GXX_ABI_VERSION are
	  both >= 1002 (which means GCC >= 3.4), then issue a warning about
	  mismatching versions instead of an error.  The changes in these
	  versions are bug fixes for corner cases, so there's a good chance of
	  things working - e.g. building xapian-bindings with GCC 5.1 (which
	  defaults to __GXX_ABI_VERSION 1008) against xapian-core built with
	  GCC 4.9 (1002) seems to work OK.  A warning is still useful as a
	  clue to what is going on if linking fails due to a missing symbol.

Wed May 20 09:54:36 GMT 2015  Olly Betts <olly@survex.com>

	* NEWS: Another update for 1.2.21.

Wed May 20 01:49:18 GMT 2015  Olly Betts <olly@survex.com>

	* api/matchspy.cc: Fix comparison function not to return true for two
	  equal elements, which fixes matchspy4 test failure with clang and
	  libc++.

Tue May 19 11:58:01 GMT 2015  Olly Betts <olly@survex.com>

	* backends/brass/brass_database.cc,backends/chert/chert_database.cc,
	  backends/chert/chert_databasereplicator.cc,
	  backends/inmemory/inmemory_database.h,weight/tradweight.cc: Fix
	  compilations issues with Sun's C++ compiler (mostly missing library
	  headers).

Mon May 18 04:18:37 GMT 2015  Olly Betts <olly@survex.com>

	* configure.ac: Arrange to pass command line option so that xlC
	  actually fails to compile the test code for typeid() when RTTI isn't
	  enabled.

Sat May 16 12:08:17 GMT 2015  Olly Betts <olly@survex.com>

	* common/socket_utils.cc: Fix casts on the 4th argument of
	  setsockopt() so they compile on platforms which expect
	  char * or const char * there.

Sat May 16 11:02:13 GMT 2015  Olly Betts <olly@survex.com>

	* common/socket_utils.cc: Don't include <sys/socket.h> under
	  __WIN32__.

Fri May 15 13:32:05 GMT 2015  Olly Betts <olly@survex.com>

	* configure.ac: Enhance the probe for whether the test harness can use
	  RTTI so that it works for xlC (which defaults to not generating
	  RTTI).

Fri May 15 11:16:18 GMT 2015  Olly Betts <olly@survex.com>

	* common/io_utils.cc: Replace the code used on platforms without
	  F_DUPFD with simpler code which actually compiles.

Fri May 15 05:30:33 GMT 2015  Olly Betts <olly@survex.com>

	* NEWS: Another update for 1.2.21.

Fri May 15 05:19:27 GMT 2015  Olly Betts <olly@survex.com>

	* pkgconfig/xapian-core.pc.in: Include @ldflags@ in pkg-config .pc
	  file.

Fri May 15 05:18:51 GMT 2015  Olly Betts <olly@survex.com>

	* pkgconfig/xapian-core.pc.in: Fix include directory reported by
	  pkg-config.

Fri May 15 05:18:03 GMT 2015  Olly Betts <olly@survex.com>

	* configure.ac,pkgconfig/xapian-core.pc.in,xapian-config.in: When
	  compiling with xlC on AIX, _LARGE_FILES gets defined by
	  AC_SYS_LARGEFILE to enable large file support, and defining this
	  changes the ABI of std::string, so include it in xapian-config
	  --cxxflags and the pkg-config equivalent.

Fri May 15 05:13:30 GMT 2015  Olly Betts <olly@survex.com>

	* tests/Makefile.am,tests/perftest/Makefile.mk: Use $(NO_INSTALL)
	  rather than @NO_INSTALL@ to allow make-time overriding.

Fri May 15 05:11:42 GMT 2015  Olly Betts <olly@survex.com>

	* tests/soaktest/Makefile.mk: Use -no-fast-install instead of
	  -no-install for linking soaktest on platforms where libtool issues
	  a warning for -no-install, like we already do for all the other test
	  programs.

Fri May 15 05:11:03 GMT 2015  Olly Betts <olly@survex.com>

	* examples/simpleexpand.cc,examples/simpleindex.cc,
	  examples/simplesearch.cc: '#include <config.h>' in the examples, as
	  when compiling with xlC on AIX, _LARGE_FILES gets defined by
	  AC_SYS_LARGEFILE to enable large file support, and defining this
	  changes the ABI of std::string, so it also needs to be defined when
	  compiling code using Xapian.

Fri May 15 04:57:27 GMT 2015  Olly Betts <olly@survex.com>

	* common/io_utils.cc,common/io_utils.h: Fix build on platforms without
	  O_CLOEXEC, broken by backporting change not to use fds < 3 for
	  database tables.

Thu May 14 14:47:43 GMT 2015  Olly Betts <olly@survex.com>

	* NEWS,configure.ac: Update for 1.2.21.

Thu May 14 06:57:16 GMT 2015  Olly Betts <olly@survex.com>

	* NEWS: Update.

Thu May 14 06:33:05 GMT 2015  Olly Betts <olly@survex.com>

	* Makefile.am: Actually use $(NO_UNDEFINED).

Thu May 14 06:30:33 GMT 2015  Olly Betts <olly@survex.com>

	* configure.ac: Only pass -no-undefined when linking the library if
	  it's actually required for the current platform.  Sun C++ doesn't
	  link the C++ runtime libraries to shared objects, so the build
	  fails with -no-undefined.

Thu May 14 06:29:10 GMT 2015  Olly Betts <olly@survex.com>

	* configure.ac: Add workaround for odd <cmath> issue with Sun C++.

Thu May 14 06:24:18 GMT 2015  Olly Betts <olly@survex.com>

	* HACKING: libtool 2.4.6 is now used for snapshots and releases.

Thu May 14 05:17:24 GMT 2015  Olly Betts <olly@survex.com>

	* backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc:
	  Correct delete to delete [].

Thu May 14 05:14:36 GMT 2015  Olly Betts <olly@survex.com>

	* docs/deprecation.rst: Add deprecation of --preserve-nonduplicates
	  which happened in 1.2.4.

Thu May 14 05:12:24 GMT 2015  Olly Betts <olly@survex.com>

	* api/keymaker.cc: Fix error compiling with Sun C++.

Thu May 14 04:38:05 GMT 2015  Olly Betts <olly@survex.com>

	* common/str.cc,matcher/multiandpostlist.cc,net/remoteconnection.cc,
	  weight/: Fixes for errors when compiling with Sun C++.

Thu May 14 04:16:05 GMT 2015  Olly Betts <olly@survex.com>

	* common/getopt.cc,net/tcpserver.cc: Fix clang warnings on OS X.
	  Reported by Germán M. Bravo.

Thu May 14 03:44:06 GMT 2015  Olly Betts <olly@survex.com>

	* bin/xapian-replicate.cc,common/socket_utils.cc,common/socket_utils.h,
	  net/replicatetcpclient.cc,net/replicatetcpclient.h: Set SO_KEEPALIVE
	  for xapian-replicate's connection to the master, and add command
	  line option to allow setting socket-level timeouts (SO_RCVTIMEO and
	  SO_SNDTIMEO) on platforms that support them.  Fixes #546, reported
	  by nkvoll.

Thu May 14 03:34:26 GMT 2015  Olly Betts <olly@survex.com>

	* bin/xapian-replicate.cc: Fix connection timeout to be 10 seconds
	  rather than 10000 seconds which is has been since 1.2.3.

Thu May 14 03:15:32 GMT 2015  Olly Betts <olly@survex.com>

	* backends/flint/flint_table.cc: Backport assertion fixes from chert
	  to fix test failure of cursordelbug1 when assertions are enabled.

Wed May 06 13:18:11 GMT 2015  Olly Betts <olly@survex.com>

	* api/postlist.cc,api/postlist.h,common/remoteprotocol.h,matcher/,
	  net/remoteconnection.cc,net/serialise.cc,tests/api_backend.cc: Fix
	  sort by value when multiple databases are in use and one or more are
	  remote.  This change necessitated a minor version bump in the remote
	  protocol.  Fixes #674, reported by Dylan Griffith.

Wed May 06 11:18:24 GMT 2015  Olly Betts <olly@survex.com>

	* NEWS: Update.

Wed May 06 10:00:49 GMT 2015  Olly Betts <olly@survex.com>

	* backends/flint/flint_database.cc: Fix get_changeset_revisions() not
	  to potentially read uninitialised data if a changeset file is
	  truncated.  Adapted from equivalent change already backported for
	  brass and chert.

Wed May 06 07:22:23 GMT 2015  Olly Betts <olly@survex.com>

	* configure.ac: Tweak comment to match xapian-omega's configure.

Wed May 06 07:21:51 GMT 2015  Olly Betts <olly@survex.com>

	* configure.ac: Set default value for AUTOM4TE before AC_OUTPUT so the
	  default will actually get used.

Wed May 06 07:21:04 GMT 2015  Olly Betts <olly@survex.com>

	* configure.ac: Add explicit AC_CANONICAL_HOST.

Wed May 06 05:32:46 GMT 2015  Olly Betts <olly@survex.com>

	* api/matchspy.cc,tests/api_nodb.cc: Eliminate needless uses of
	  AutoPtr.

Wed May 06 05:31:13 GMT 2015  Olly Betts <olly@survex.com>

	* backends/chert/chert_table.cc,backends/glass/glass_table.cc: Remove
	  duplicate includes of "omassert.h".

Wed May 06 05:30:05 GMT 2015  Olly Betts <olly@survex.com>

	* configure.ac: OS X >= 10.4 apparently supports symbol visibility, so
	  update comment.

Wed May 06 05:29:15 GMT 2015  Olly Betts <olly@survex.com>

	* xapian-config.in: Remove superfluous comment left over from code
	  refactoring.

Wed May 06 05:28:48 GMT 2015  Olly Betts <olly@survex.com>

	* xapian-config.in: Fix the include directory reported by --swigflags
	  for an installed copy to include the "/xapian-1.3" component for
	  a development version.

Wed May 06 05:27:37 GMT 2015  Olly Betts <olly@survex.com>

	* backends/chert/chert_databasereplicator.cc: Use return value of
	  get_message_chunk() rather than ignoring it and repeating the check
	  in the caller.

Wed May 06 05:24:52 GMT 2015  Olly Betts <olly@survex.com>

	* api/replication.cc,backends/brass/,backends/chert/chert_database.cc,
	  backends/chert/chert_table.cc,backends/chert/chert_version.cc,
	  backends/flint/flint_database.cc,backends/flint/flint_table.cc,
	  backends/flint/flint_version.cc,backends/remote/remote-database.cc,
	  bin/,examples/copydatabase.cc,examples/quest.cc,
	  examples/xapian-metadata.cc,net/tcpclient.cc,
	  queryparser/queryparser.lemony,tests/harness/: Add spaces between
	  literal strings and macros which expand to literal strings for C++11
	  compatibility.

Wed May 06 05:04:47 GMT 2015  Olly Betts <olly@survex.com>

	* bin/xapian-tcpsrv.cc: Use STRINGIZE() to include defaults literally
	  in string for --help.

Wed May 06 05:00:38 GMT 2015  Olly Betts <olly@survex.com>

	* HACKING: Update URL.

Wed May 06 04:59:33 GMT 2015  Olly Betts <olly@survex.com>

	* configure.ac,xapian-config.in: Rename ANSI_CXXFLAGS to ISO_CXXFLAGS
	  and talk about ISO C++ in configure messages.

Wed May 06 04:44:32 GMT 2015  Olly Betts <olly@survex.com>

	* .gitignore: Adjust for m4 subdirectory to only match files which
	  aren't in git.

Wed May 06 04:37:28 GMT 2015  Olly Betts <olly@survex.com>

	* xapian-config.in: Fix typo so cached result of test in
	  is_uninstalled() is actually used on subsequent calls.  Fixes #676,
	  reported (with patch) by Ryan Schmidt.

Wed May 06 04:02:33 GMT 2015  Olly Betts <olly@survex.com>

	* backends/chert/chert_database.cc,backends/glass/glass_database.cc:
	  Fix get_changeset_revisions() not to potentially read uninitialised
	  data if a changeset file is truncated.

Wed May 06 04:00:20 GMT 2015  Olly Betts <olly@survex.com>

	* matcher/exactphrasepostlist.cc: When matching an exact phrase, if a
	  term doesn't occur where we want, we can advance "term 0" using
	  skip_to() based on where the term does next occur rather than just
	  calling next() on it.

Wed May 06 03:54:52 GMT 2015  Olly Betts <olly@survex.com>

	* matcher/nearpostlist.cc: Be lazier about opening PositionList
	  objects, as that causes a read of all the data for that
	  positionlist.

Wed May 06 03:54:05 GMT 2015  Olly Betts <olly@survex.com>

	* matcher/nearpostlist.cc: Make code for scanning window for duplicate
	  positions a little clearer.

Wed May 06 03:52:57 GMT 2015  Olly Betts <olly@survex.com>

	* matcher/nearpostlist.cc: Fix "/*" within comment.

Wed May 06 03:50:45 GMT 2015  Olly Betts <olly@survex.com>

	* matcher/nearpostlist.cc,matcher/nearpostlist.h: Reimplement OP_NEAR
	  check.  The new implementation consistently requires the terms to
	  occur at different positions, and fixes some false negatives.
	* tests/api_query.cc: Add regression tests as loosenear1.

Tue May 05 23:27:19 GMT 2015  Olly Betts <olly@survex.com>

	* matcher/phrasepostlist.cc,matcher/phrasepostlist.h: Reimplement
	  OP_PHRASE check for loose phrases - the existing implementation was
	  buggy, giving both false positives and false negatives in rare
	  cases.  Fixes #653, reported by Jean-Francois Dockes.
	* tests/api_query.cc: Add regression test loosephrase1.

Tue May 05 23:24:21 GMT 2015  Olly Betts <olly@survex.com>

	* api/queryinternal.cc,matcher/: Split NearPostList out into separate
	  source file and header.

Tue May 05 15:25:22 GMT 2015  Olly Betts <olly@survex.com>

	* bin/xapian-progsrv.cc: Fix comment typo.

Tue May 05 15:23:48 GMT 2015  Olly Betts <olly@survex.com>

	* backends/flint/flint_cursor.cc,backends/flint/flint_table.cc,
	  tests/api_backend.cc: Fix #675 for flint as well.

Tue May 05 15:02:51 GMT 2015  Olly Betts <olly@survex.com>

	* backends/brass/brass_cursor.cc,backends/brass/_table.cc,
	  backends/chert/chert_cursor.cc,backends/chert/chert_table.cc:
	  Potentially increment the cursor version on cancel() or when the
	  database is reopened, and flag the current cursor version as used
	  when a cursor is rebuilt.  Fixes #675, reported by Germán M. Bravo.
	* tests/api_backend.cc: Add regression test cursorbug1 based on
	  reproducer supplied by Germán.

Tue May 05 14:26:01 GMT 2015  Olly Betts <olly@survex.com>

	* common/errno_to_string.cc: Fix to build with Sun's C++ compiler.

Tue May 05 14:24:24 GMT 2015  Olly Betts <olly@survex.com>

	* configure.ac: Fix XAPIAN_TEST_CXXFLAGS macro to append to the
	  existing value of the variable, not its name.

Tue May 05 14:23:10 GMT 2015  Olly Betts <olly@survex.com>

	* tests/api_wrdb.cc: Just #ifdef out the problematic part of the
	  adddoc5 testcase for clang.

Tue May 05 14:12:42 GMT 2015  Olly Betts <olly@survex.com>

	* common/serialise-double.cc: Fix bug in recent fix.
	* tests/unittest.cc: Extend serialise_double() to provide regression
	  test.

Tue May 05 14:08:58 GMT 2015  Olly Betts <olly@survex.com>

	* common/serialise-double.cc: Add missing cast to unsigned char when
	  we check if the value will fit in the double type.  On machines with
	  IEEE-754 doubles (which is most current platforms), which change
	  makes no difference as we're checking if the value cast to a double
	  is > 255.<something> which is never the case.

Tue May 05 14:05:14 GMT 2015  Olly Betts <olly@survex.com>

	* common/serialise-double.cc: Avoid reading one byte past the end of
	  the serialised value.  In practice this was harmless on most
	  platforms, as dbl_max_mantissa is 255 for IEEE-754 format doubles,
	  and at least GCC's std::string keeps the buffer nul-terminated.
	  Reported by Germán M. Bravo in github PR#67.

Tue May 05 14:01:03 GMT 2015  Olly Betts <olly@survex.com>

	* backends/flint_lock.cc: If available, use F_DUPFD to dup to a file
	  descriptor which is >= 2.

Tue May 05 14:00:25 GMT 2015  Olly Betts <olly@survex.com>

	* Makefile.am,docs/Makefile.am: Add missing quoting.

Tue May 05 13:10:44 GMT 2015  Olly Betts <olly@survex.com>

	* backends/chert/chert_table.cc,backends/glass/glass_table.cc,
	  common/io_utils.cc,common/io_utils.h,tests/api_backend.cc:
	  Avoid using fds < 3 for writable database tables, as it risks
	  corruption is some code in the same process tries to write to stdout
	  or stderr without realising it is closed.  (Partly addresses #651)

Tue May 05 13:10:44 GMT 2015  Olly Betts <olly@survex.com>

	* matcher/exactphrasepostlist.cc: Fixed reversed conditonal for
	  picking the shorter position list for an exact phrase of two terms.
	  The difference this fix makes isn't dramatic, but can be measured
	  (at least with cachegrind).  Thanks to kbwt for spotting this.

Tue May 05 13:06:13 GMT 2015  Olly Betts <olly@survex.com>

	* backends/brass/brass_compact.cc,backends/flint/flint_compact.cc:
	  Make sure we open all the tables of a database at the same revision
	  when compacting for brass and flint too.  (Fixes #649)

Tue May 05 12:52:17 GMT 2015  Olly Betts <olly@survex.com>

	* backends/chert/chert_compact.cc: Make sure we open all the tables of
	  a database at the same revision when compacting.  (Fixes #649)

Tue May 05 12:48:01 GMT 2015  Olly Betts <olly@survex.com>

	* examples/xapian-metadata.cc: Add 'list' subcommand to list all the
	  metadata keys.

Tue May 05 12:07:10 GMT 2015  Olly Betts <olly@survex.com>

	* include/xapian/queryparser.h: Doxygen comment wording tweaks.

Tue May 05 12:04:02 GMT 2015  Olly Betts <olly@survex.com>

	* include/xapian/queryparser.h: Doxygen comment formatting tweaks.

Tue May 05 11:48:57 GMT 2015  Olly Betts <olly@survex.com>

	* queryparser/queryparser.lemony,tests/queryparsertest.cc: Extend the
	  set of characters allowed in the start of a range to be anything
	  except for '(' and characters <= ' '.  This better matches what's
	  accepted for a range end (anything except for ')' and characters <=
	  ' ').  Reported by Jani Nikula.

Tue May 05 11:46:57 GMT 2015  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* bin/xapian-check.cc: Don't hard-code string length as number.

Wed Mar 04 00:53:14 GMT 2015  Olly Betts <olly@survex.com>

	* AUTHORS: Update for 1.2.20.

Wed Mar 04 00:27:39 GMT 2015  Olly Betts <olly@survex.com>

	* NEWS,configure.ac: Update for 1.2.20.

Tue Mar 03 11:35:42 GMT 2015  Olly Betts <olly@survex.com>

	* NEWS: Update.

Fri Feb 13 10:47:52 GMT 2015  Olly Betts <olly@survex.com>

	* backends/brass/brass_table.cc,backends/flint/flint_table.cc:
	  mid_point() should never fail to find a split point, but just in
	  case it does, return a usable answer.

Wed Feb 11 22:44:35 GMT 2015  Olly Betts <olly@survex.com>

	* backends/chert/chert_table.cc: mid_point() should never fail to find
	  a split point, but just in case it does, return a usable answer.

Sun Jan 25 23:48:34 GMT 2015  Olly Betts <olly@survex.com>

	* configure.ac: Check for declaration of fdatasync() first, as OS X
	  has a dummy implementation in the library which is not prototyped in
	  any header.  Reported by Vlad Shablinsky.

Sat Dec 13 02:48:10 GMT 2014  Olly Betts <olly@survex.com>

	* api/error.cc,generate-exceptions,net/remoteconnection.h: On
	  Windows, avoid defining EADDRINUSE, etc if they're already defined,
	  and use WSAE* constants un-negated, as they start from a high value
	  so won't collide with E* constants.

Sat Jan 24 11:54:16 GMT 2015  Olly Betts <olly@survex.com>

	* NEWS: Update.

Fri Jan 23 12:53:50 GMT 2015  Olly Betts <olly@survex.com>

	* backends/brass/brass_btreebase.cc,backends/brass/brass_table.cc,
	  backends/chert/chert_table.cc,backends/flint/flint_btreebase.cc,
	  backends/flint/flint_table.cc: Replace all uses of strerror in
	  library code which weren't addressed by the backported commits.

Fri Dec 19 22:30:39 GMT 2014  Olly Betts <olly@survex.com>

	* common/errno_to_string.cc: Need stdlib.h under mingw.

Fri Jan 09 04:38:03 GMT 2015  Olly Betts <olly@survex.com>

	* common/debuglog.cc: Add '#include "errno_to_string.h"'.

Wed Dec 17 02:30:14 GMT 2014  Olly Betts <olly@survex.com>

	* api/error.cc,backends/chert/chert_btreebase.cc,
	  backends/chert/chert_table.cc,backends/flint_lock.cc,
	  backends/glass/glass_table.cc,common/,configure.ac,
	  net/remoteconnection.cc: Add errno_to_string() function which is
	  thread-safe where a suitable alternative to strerror() exists.

Sat Dec 20 10:40:44 GMT 2014  Sébastien Debrard <sebastien.debrard@gmail.com>

	* Makefile.am,configure.ac,pkgconfig/,xapian-core.spec.in: Generate a
	  file for pkg-config.  (Fixes#540)

Mon Jan 05 08:39:47 GMT 2015  Olly Betts <olly@survex.com>

	* Makefile.am: Remove the generated .pc file on "make distclean".

Wed Dec 17 02:59:54 GMT 2014  Olly Betts <olly@survex.com>

	* configure.ac: Drop probe for gethostbyaddr() - we've not used it for
	  over 8.5 years (since e33972a5).

Tue Dec 16 06:54:32 GMT 2014  Olly Betts <olly@survex.com>

	* configure.ac: Add missing m4 quoting.  Generated configure file is
	  unchanged.

Mon Jan 05 01:52:54 GMT 2015  Olly Betts <olly@survex.com>

	* bin/xapian-check-brass.cc,bin/xapian-check-chert.cc: Cross-check the
	  position and postlist tables and report positional data for
	  non-existent documents.

Tue Dec 23 21:26:49 GMT 2014  Olly Betts <olly@survex.com>

	* backends/chert/chert_table.cc: More assertions about c.

Tue Dec 23 04:26:38 GMT 2014  Olly Betts <olly@survex.com>

	* backends/chert/chert_table.cc: Fix assertion to allow for c being
	  DIR_START - D2 in leaf blocks.

Tue Dec 23 04:01:54 GMT 2014  Olly Betts <olly@survex.com>

	* backends/chert/chert_table.cc: Add more assertions that c has
	  suitable values.

Tue Dec 23 03:58:00 GMT 2014  Olly Betts <olly@survex.com>

	* backends/chert/chert_table.cc: In enter_key(), we know the insertion
	  point will be the position after the current cursor position, so
	  there's no need to call find_in_block() to locate it.

Tue Dec 23 03:11:12 GMT 2014  Olly Betts <olly@survex.com>

	* backends/chert/chert_check.cc: Add check that dir_end is odd.

Mon Dec 22 23:28:54 GMT 2014  Olly Betts <olly@survex.com>

	* backends/chert/chert_table.cc: Document situations in which the
	  cursor can be left pointing before DIR_START.

Sun Dec 21 20:55:47 GMT 2014  Olly Betts <olly@survex.com>

	* include/xapian/weight.h: Document the enum stat_flags values.

Thu Dec 18 06:17:18 GMT 2014  Olly Betts <olly@survex.com>

	* net/tcpclient.cc: Use POSIX O_NONBLOCK in preference to O_NDELAY
	  which has different semantics on BSD and System V.

Tue Dec 16 06:28:21 GMT 2014  Olly Betts <olly@survex.com>

	* configure.ac: Don't check for strerror - it's specified by C89, and
	  we weren't using the result of the check anyway.

Tue Dec 16 03:59:39 UTC 2014  Sébastien Debrard <sebastien.debrard@gmail.com>

	* api/omenquire.cc,backends/multi/multi_postlist.cc,
	  tests/api_anydb.cc,tests/api_db.cc: Prefer ++x to x++.

Tue Dec 16 03:50:41 GMT 2014  Olly Betts <olly@survex.com>

	* configure.ac: Define MINGW_HAS_SECURE_API under mingw to get
	  _putenv_s() declared in stdlib.h.

Thu Dec 11 03:21:46 GMT 2014  Olly Betts <olly@survex.com>

	* net/tcpserver.cc: Fix comment.

Thu Dec 04 02:17:46 GMT 2014  Olly Betts <olly@survex.com>

	* configure.ac: Fix detection of fdatasync(), which appears to have
	  been broken practically forever - this means we've probably been
	  using fsync() instead, which probably isn't a big additional
	  overhead.

Wed Dec 03 09:38:24 GMT 2014  Olly Betts <olly@survex.com>

	* docs/Makefile.am: Quote png filenames we run through pngcrush to
	  avoid problems if there's an oddly-named extra PNG file in the
	  directory.

Thu Nov 27 03:05:18 GMT 2014  Olly Betts <olly@survex.com>

	* backends/flint_lock.cc: Use F_OFD_SETLK where available, which
	  avoids having to fork() a child process to hold the lock.  This
	  currently requires Linux kernel >= 3.15, but it has been submitted
	  to POSIX so hopefully will be widely supported eventually.  Thanks
	  to Austin Clements for pointing out this now exists.

Wed Nov 26 03:29:28 GMT 2014  Olly Betts <olly@survex.com>

	* docs/doxygen_source.conf.in: @MAKEINDEX@ isn't substituted, so just
	  use literal 'makeindex'.

Tue Nov 25 21:13:51 GMT 2014  Olly Betts <olly@survex.com>

	* configure.ac: Update link to cygwin FAQ.

Thu Dec 11 03:52:45 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Update to
	  avoid warnings about obsolete tags from newer doxygen.

Thu Dec 11 03:48:34 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* configure.ac: Update link to cygwin FAQ.

Thu Dec 11 03:42:42 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* HACKING: Update details of building Xapian packages.

Mon Nov 24 09:23:20 GMT 2014  Olly Betts <olly@survex.com>

	* NEWS: Update.

Mon Nov 24 06:17:32 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* queryparser/lemon.c: Sync change from upstream: "In Lemon, when
	  comparing the output to the *.h file to see if it has changed, make
	  sure that the proposed new output and the preexisting output are the
	  same size before deciding that they are the same".  Generated code
	  is identical, but this will fix misbehaviour in a build from a
	  non-clean tree if new tokens get appended to queryparser_token.h.

Mon Nov 24 01:26:41 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* matcher/exactphrasepostlist.cc: Straighten out confusing comments.

Sun Nov 09 22:03:24 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* docs/deprecation.rst: Fix typo.

Sun Nov 09 22:02:36 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* docs/replication.rst: Fix typo.

Sun Nov 09 22:00:47 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* docs/postingsource.rst: Use a modern class in postingsource example.
	  (Noted by James Aylett)

Mon Nov 03 22:27:26 GMT 2014  Olly Betts <olly@survex.com>

	* NEWS: Fix typo.

Tue Oct 21 00:32:49 GMT 2014  Olly Betts <olly@survex.com>

	* NEWS,configure.ac: Update for 1.2.19.

Mon Oct 20 10:49:23 GMT 2014  Olly Betts <olly@survex.com>

	* NEWS: Update.

Mon Oct 20 09:40:14 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* matcher/phrasepostlist.cc,tests/api_backend.cc: If the anchor term
	  for a phrase is the first or last, set the min or max to its
	  position respectively.  Fixes the testcase in #657, but may not be
	  a complete fix.

Sun Oct 19 08:14:51 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* matcher/exactphrasepostlist.cc: We never try to build an
	  ExactPhrasePostList over 0 or 1 terms, so simply assert we don't,
	  rather than having an explicit check for it in the code.

Sun Oct 12 06:08:05 GMT 2014  Olly Betts <olly@survex.com>

	* NEWS: Update.

Fri Oct 10 11:18:43 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* backends/chert/chert_btreebase.cc,backends/chert/chert_table.cc:
	  Only full sync the final base file written.

Fri Oct 10 03:20:03 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* common/debuglog.h: Suppress unused typedef warnings from debugging
	  logging macros, which occur in functions which always exit via
	  throwing an exception.

Thu Oct 09 23:01:37 GMT 2014  Olly Betts <olly@survex.com>

	* backends/brass/brass_database.cc,
	  backends/brass/brass_spellingwordslist.cc,
	  backends/chert/chert_database.cc,
	  backends/chert/chert_spellingwordslist.cc,matcher/mergepostlist.cc:
	  Fix mismatched return type in debug logging annotations so that code
	  compiles when configured with --enable-log.  These are already fixed
	  on trunk.

Thu Oct 09 22:59:34 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* common/pretty.h: Fix debug logging code to compile with clang.
	  (fixes #657, reported by Germán M. Bravo)

Thu Oct 09 10:41:59 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* tests/Makefile.am: Remove .replicatmp upon "make clean".

Thu Oct 09 10:31:53 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* docs/overview.rst: Add missing database path to example of using
	  xapian-progsrv in a stub database file.

Thu Oct 09 10:26:48 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* tests/harness/fdtracker.cc: Fix code typo in recent change to skip
	  apparent leaks of /dev/urandom.

Sat Sep 06 02:11:02 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* tests/harness/fdtracker.cc: Don't report apparent leaks of fds
	  opened on /dev/urandom - at least on Linux, something in the C
	  library seems to lazily open it, and the report of a possible leak
	  followed by assurance that it's OK really is just noise we could
	  do without.

Fri Sep 05 15:11:46 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* include/xapian/compactor.h: Fix formatting of doxygen comment.

Fri Sep 05 15:10:17 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* HACKING: freecode no longer accepts updates, so drop that item from
	  the release checklist.

Fri Sep 05 14:51:46 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* api/,backends/brass/,backends/chert/,backends/dbfactory_remote.cc,
	  matcher/mergepostlist.cc,matcher/remotesubmatch.cc,
	  net/progclient.cc: Add missing RETURN() markup for debug logging,
	  highlighted by warning from recent GCC.

Fri Sep 05 14:34:26 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* backends/dbfactory.cc: Fix incorrect return type in logging
	  annotations for InMemory::open().

Mon Aug 11 05:59:35 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* configure.ac: For Sun's C++ compiler, pass -library=Crun separately
	  since libtool looks for " -library=stlport4 " (with the spaces).
	  (fixes#650)

Mon Aug 11 05:55:54 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* configure.ac: Rename XAPIAN_TEST_CXXFLAGS_ to XAPIAN_TEST_CXXFLAGS
	  (since the latter is never used) and make it take a variable to
	  add the flags to.  Also, fix it to restore CXXFLAGS correctly if
	  the success case contains "break".

Sat Aug 02 09:43:04 GMT 2014  Olly Betts <olly@survex.com>

	* Backport change from trunk:
	* weight/bm25weight.cc: Improve BM25 upper bound in the case when our
