diff --git a/HACKING b/HACKING
index 9f97694507432a6a9a70684d38c60bbd4f7cf6e9..10d633beccad5d79d66d5f08109a64e72cc2b5fe 100644
--- a/HACKING
+++ b/HACKING
@@ -24,28 +24,28 @@ Packages to install for each language
 C#
 --
 
-Debian stretch::
+Debian bullseye and bookworm::
 
 apt-get install mono-devel
 
 Java
 ----
 
-Debian stretch::
+Debian bullseye and bookworm::
 
-apt-get install openjdk-8-jdk
+apt-get install openjdk-17-jdk
 
 Lua
 ---
 
-Debian stretch::
+Debian bullseye and bookworm::
 
-apt-get install lua5.3 liblua5.3-dev
+apt-get install lua5.4 liblua5.4-dev
 
 Perl
 ----
 
-Debian stretch: all required are packages installed by default.
+Debian bullseye and bookworm: all required are packages installed by default.
 
 PHP
 ---
@@ -54,27 +54,50 @@ Debian bookworm::
 
 apt-get install php-cli php-dev
 
-Python
-------
+Python 2
+--------
 
-Debian stretch::
+Debian buster::
 
 apt-get install python-dev
 
+Python 3
+--------
+
+Debian bullseye and bookworm::
+
+apt-get install python3-dev
+
 Ruby
 ----
 
-Debian stretch::
+Debian bullseye and bookworm::
 
 apt-get install ruby-dev
 
 Tcl
 ---
 
-Debian stretch::
+Debian bullseye and bookworm::
 
 apt-get install tcl-dev
 
+Running tests in-tree on macOS
+==============================
+
+On macOS 10.11 and later there's a new feature called System Integrity
+Protection (SIP) which locks down "system binaries" to an extent which is
+actively unhelpful when doing development work.  This breaks running tests
+in-tree for language interpreters which are system binaries because environment
+variables such as ``DYLD_LIBRARY_PATH`` are stripped from the environment and
+as a result the in-tree libxapian from xapian-core can't be found.
+
+The workaround is to ``make install`` for xapian-core before running ``make
+check`` for xapian-bindings, and we're aiming to at least keep this working.
+
+If you find having to do this too annoying, it's possible to disable SIP:
+https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection
+
 Adding support for other programming languages
 ==============================================
 
@@ -122,7 +145,7 @@ Guile		rm@fabula.de did some work on getting Guile bindings working,
 
 Pike		Bill Welliver has written some Pike bindings for Xapian
 		covering some of the API, which are available from here:
-		http://modules.gotpike.org/module_info.html?module_id=42
+		http://modules.gotpike.org/module/Public.Xapian?selected=1.10
 		These bindings appear to be hand-coded rather than generated
 		using SWIG.  SWIG 4.0.0 has disabled Pike support due to
 		lack of recent maintenance, so SWIG is probably not a good
@@ -130,23 +153,23 @@ Pike		Bill Welliver has written some Pike bindings for Xapian
 
 There are a number of other languages which SWIG supports, but which nobody has
 yet (to our knowledge!) worked on producing Xapian bindings for - see
-http://www.swig.org/compare.html for a list of supported languages.
+https://www.swig.org/compare.html for a list of supported languages.
 
 It may be possible to support a language which isn't listed above, but it's
 likely to be harder unless you're already familiar with the tools available
 for wrapping a C++ library for use with that language.
 
 Implementing Deprecation Warnings for the Bindings
-=================================================
+==================================================
 
 Currently we don't have an equivalent of the C++ ``XAPIAN_DEPRECATED()`` macro
 for the bindings, but it would be good to have.  Here are some notes on how
 this could be achieved for various languages we support:
 
-  * PHP now has a E_USER_DEPRECATED error level - in a deprecated method we
-    could do::
+  * PHP now has an ``E_USER_DEPRECATED`` error level - in a deprecated method
+    we could do::
 
-      trigger_error('World::hi() is deprecated, use World::hello() instead', XAPIAN_DEPRECATED);
+      trigger_error('World::hi() is deprecated, use World::hello() instead', E_USER_DEPRECATED);
 
   * Python has DeprecationWarning, which we were using in 1.2.x a bit::
 
@@ -155,7 +178,7 @@ this could be achieved for various languages we support:
   * Ruby - there are external libraries to handle deprecation warnings, but the
     simplest option without external dependencies seems to be::
 
-      warn '[DEPRECATION] 'World::hi() is deprecated, use World::hello() instead')
+      warn '[DEPRECATION] World::hi() is deprecated, use World::hello() instead'
 
   * Perl::
 
diff --git a/Makefile.am b/Makefile.am
index bb58f59b97b8733a7d50e78185d46674278b4cb4..2408b27999cdd47b557845a49323026d715e126d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -31,11 +31,11 @@ endif
 endif
 
 DISTCHECK_CONFIGURE_FLAGS = XAPIAN_CONFIG="$(XAPIAN_CONFIG)" \
-	PYTHON2_LIB="`pwd`/../_inst/tmp_py2lib" \
-	PYTHON3_LIB="`pwd`/../_inst/tmp_py3lib" \
-	PHP_EXTENSION_DIR="`pwd`/../_inst/tmp_phpext" \
-	RUBY_LIB="`pwd`/../_inst/tmp_rubylib" \
-	RUBY_LIB_ARCH="`pwd`/../_inst/tmp_rubylibarch" \
-	TCL_LIB="`pwd`/../_inst/tmp_tcllib" \
-	PERL_LIB="`pwd`/../_inst/tmp_perllib" \
-	LUA_LIB="`pwd`/../_inst/tmp_lualib"
+	PYTHON2_LIB='$(abs_builddir)/../_inst/tmp_py2lib' \
+	PYTHON3_LIB='$(abs_builddir)/../_inst/tmp_py3lib' \
+	PHP_EXTENSION_DIR='$(abs_builddir)/../_inst/tmp_phpext' \
+	RUBY_LIB='$(abs_builddir)/../_inst/tmp_rubylib' \
+	RUBY_LIB_ARCH='$(abs_builddir)/../_inst/tmp_rubylibarch' \
+	TCL_LIB='$(abs_builddir)/../_inst/tmp_tcllib' \
+	PERL_LIB='$(abs_builddir)/../_inst/tmp_perllib' \
+	LUA_LIB='$(abs_builddir)/../_inst/tmp_lualib'
diff --git a/Makefile.in b/Makefile.in
index 8fcad3961c5c05317617f6c44f8271674df9e0cb..928a7074a6740d68a2488479275d18503e2d0d0e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -91,9 +91,7 @@ host_triplet = @host@
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
@@ -276,9 +274,9 @@ LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 LUA = @LUA@
-LUA_CPPFLAGS = @LUA_CPPFLAGS@
-LUA_INC = @LUA_INC@
+LUA_CFLAGS = @LUA_CFLAGS@
 LUA_LIB = @LUA_LIB@
+LUA_LIBS = @LUA_LIBS@
 LUA_SO = @LUA_SO@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
@@ -312,6 +310,10 @@ PHP_INC = @PHP_INC@
 PHP_LIBS = @PHP_LIBS@
 PHP_MAJOR_VERSION = @PHP_MAJOR_VERSION@
 PHP_PATH_SEPARATOR = @PHP_PATH_SEPARATOR@
+PHP_SHLIB_SUFFIX = @PHP_SHLIB_SUFFIX@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 PYTHON = @PYTHON@
 PYTHON2 = @PYTHON2@
 PYTHON2_INC = @PYTHON2_INC@
@@ -349,6 +351,7 @@ TCL_CPPFLAGS = @TCL_CPPFLAGS@
 TCL_INC = @TCL_INC@
 TCL_LIB = @TCL_LIB@
 TCL_LIBS = @TCL_LIBS@
+TCL_SHLIB_EXT = @TCL_SHLIB_EXT@
 THREAD_LOCAL = @THREAD_LOCAL@
 VERSION = @VERSION@
 VERSION_NO_SNAPSHOT = @VERSION_NO_SNAPSHOT@
@@ -358,6 +361,7 @@ XAPIAN_HEADERS = @XAPIAN_HEADERS@
 XAPIAN_HEADER_DIRS = @XAPIAN_HEADER_DIRS@
 XAPIAN_LIBS = @XAPIAN_LIBS@
 XAPIAN_VERSION = @XAPIAN_VERSION@
+_libs = @_libs@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -423,14 +427,14 @@ SUBDIRS = . @BINDINGS@
 DIST_SUBDIRS = python python3 php java ruby tcl8 csharp perl lua
 @MAINTAINER_MODE_TRUE@BUILT_SOURCES = generic/except.i $(am__append_1)
 DISTCHECK_CONFIGURE_FLAGS = XAPIAN_CONFIG="$(XAPIAN_CONFIG)" \
-	PYTHON2_LIB="`pwd`/../_inst/tmp_py2lib" \
-	PYTHON3_LIB="`pwd`/../_inst/tmp_py3lib" \
-	PHP_EXTENSION_DIR="`pwd`/../_inst/tmp_phpext" \
-	RUBY_LIB="`pwd`/../_inst/tmp_rubylib" \
-	RUBY_LIB_ARCH="`pwd`/../_inst/tmp_rubylibarch" \
-	TCL_LIB="`pwd`/../_inst/tmp_tcllib" \
-	PERL_LIB="`pwd`/../_inst/tmp_perllib" \
-	LUA_LIB="`pwd`/../_inst/tmp_lualib"
+	PYTHON2_LIB='$(abs_builddir)/../_inst/tmp_py2lib' \
+	PYTHON3_LIB='$(abs_builddir)/../_inst/tmp_py3lib' \
+	PHP_EXTENSION_DIR='$(abs_builddir)/../_inst/tmp_phpext' \
+	RUBY_LIB='$(abs_builddir)/../_inst/tmp_rubylib' \
+	RUBY_LIB_ARCH='$(abs_builddir)/../_inst/tmp_rubylibarch' \
+	TCL_LIB='$(abs_builddir)/../_inst/tmp_tcllib' \
+	PERL_LIB='$(abs_builddir)/../_inst/tmp_perllib' \
+	LUA_LIB='$(abs_builddir)/../_inst/tmp_lualib'
 
 all: $(BUILT_SOURCES) config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
diff --git a/NEWS b/NEWS
index cc80b7b05d707637b18f55b2acadc47bfb172c0b..530612541bac62d910890dfbe1617c97152da1dc 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,150 @@
+Xapian-bindings 1.4.25 (2024-03-08):
+
+General:
+
+* configure: DragonflyBSD automatically pulls in library dependencies, so set
+  link_all_deplibs_CXX=no there.
+
+* configure: Avoid using lt_cv_objdir, which seems to be a libtool implementation
+  detail.  We already have its value available via a documented interface.
+
+Perl:
+
+* Fix conversion of POD to HTML when builddir!=srcdir.
+
+* Simplify uninstall-local to use the shared object extension in PERL_SO.
+
+PHP8:
+
+* Use PHP_SHLIB_SUFFIX as the filename extension for the compiled extension
+  module.  Previously we used the extension libtool thought appropriate for
+  the current platform.  We're not aware of a platform where the two don't
+  agree, but should they not agree we should use what PHP expects.
+
+Python:
+
+* Fix `make check` when builddir!=srcdir.
+
+Python3:
+
+* Fix `make check` when builddir!=srcdir.
+
+Ruby:
+
+* Fix probe for rdoc to default to using the rdoc which matches the Ruby
+  interpreter.  This was always the intention, but the code was buggy and
+  this default previously never kicked in.  This was likely to only be a
+  problem if you were overriding RUBY=/path/to/ruby but not overriding RDOC as
+  well.  Reported by Vitaly Chikunov on the xapian-devel list.
+
+Xapian-bindings 1.4.24 (2023-11-06):
+
+Portability:
+
+* swig-depcomp: Strip CR from generated files which fixes an issue in some
+  cases when building from git on Microsoft Windows.
+
+Lua:
+
+* Use pkg-config for Lua flags instead of some rather ad-hoc configure probes.
+  This improves portability to platforms which require linking to a Lua
+  library, or which install the Lua headers directly without a versioned
+  containing directory.
+
+PHP8:
+
+* Update configure probe PHP_LIBS on cygwin.  Based on patch found in cygwin
+  packaging, authored by Yaakov Selkowitz.
+
+Tcl:
+
+* Fix to handle the case of tcl_pkgPath not existing, which happens on
+  Microsoft Windows builds of Tcl.
+
+* run-tcl-test: Fix not to hardcode smoketest.tcl and instead run the program
+  specified on the command line.
+
+* Use TCL_SHLIB_EXT for the installed extension which is what Tcl expects.
+  Previously the installed Tcl extension used the filename extension that
+  libtool thinks is right for modules on the current platform.  We're not
+  currently aware of platform where these actually differ, so this may be just
+  a latent bug.
+
+* Improve configure probe for stub library to work if the tclConfig.sh we find
+  forwards to a different script, as is the case with /usr/lib/tclConfig.sh on
+  current Debian.  On Debian at least our method for finding the tclConfig.sh
+  to use doesn't find such a forwarding script, but it seems better to be
+  robust to this.
+
+* Eliminate special cygwin handling which is no longer needed.
+
+Xapian-bindings 1.4.23 (2023-07-07):
+
+Documentation:
+
+* Where we document how to build the bindings, link to the download page so
+  the reader can easily find the source to download.  Reported by John G. Heim.
+
+* Update lists of debian packages to install for bindings development to
+  show be for the latest stable release and the one before (bookworm and
+  bullseye).
+
+* HACKING: Fix typos in deprecation warning section
+
+* HACKING: Update link to Pike bindings
+
+* HACKING: Document issues caused by macOS SIP.  Fixes #732.
+
+General:
+
+* Add `FLAG_NGRAMS` as a preferred new alias for `FLAG_CJK_NGRAM` and
+  `SNIPPET_NGRAMS` as a preferred new alias for `SNIPPET_CJK_NGRAM`.
+  In the next release series these features have been expanded to cover many
+  more languages so the "CJK" in the name has become inaccurate as it stands
+  for "Chinese, Japanese and Korean").
+
+* Avoid running pwd in makefiles since the directories we need are available in
+  automake variables.
+
+CSharp:
+
+* SmokeTest.cs: Fix some incorrect messages if testcases fail.
+
+* Smoketest.cs: Test stemmer description.
+
+Lua:
+
+* Update docs for supported Lua versions.
+
+Perl:
+
+* Generate HTML docs for each class.
+
+* Document all QueryParser FLAG_* constants.
+
+* Update one place which didn't correctly indicate the current status of the
+  Perl bindings.  Fixes #523.
+
+Python:
+
+* Fix bug in wrapper for xapian.Query when constructing OP_WILDCARD queries.
+  A workaround for this bug which works with existing releases is to pass
+  0 for the third and fourth optional parameters like so:
+
+  xapian.Query(xapian.Query.OP_WILDCARD, "xyz", 0, 0)
+
+Python3:
+
+* Fix bug in wrapper for xapian.Query when constructing OP_WILDCARD queries.
+  A workaround for this bug which works with existing releases is to pass
+  0 for the third and fourth optional parameters like so:
+
+  xapian.Query(xapian.Query.OP_WILDCARD, "xyz", 0, 0)
+
+Ruby:
+
+* Improve documentation about __call__ methods.
+
 Xapian-bindings 1.4.22 (2023-02-02):
 
 Lua:
diff --git a/README b/README
index cb8bf1f42fa741281d305a22cedf1ec8ad2bdaa7..6a1d9b0eeb2c28fd7dd0506722a22e286ae8f035 100644
--- a/README
+++ b/README
@@ -30,11 +30,11 @@ Java		Java bindings are generated with SWIG as of Xapian 1.3.0.
 		version we aim to support is JDK 1.6 (Java 6).  Recently tested
 		with OpenJDK 1.8.0_77, 1.7.0_03, and 1.6.0_38.
 
-Lua		Requires Lua 5.1 or later; tested with 5.1, 5.2 and 5.3.
+Lua		Requires Lua 5.1 or later; tested with 5.1, 5.2, 5.3 and 5.4.
 
-Perl		These Perl bindings are generated by SWIG, and are intended
-		to replace the hand-written Search::Xapian XS bindings.  They
-		are largely compatible with Search::Xapian - see the
+Perl		These Perl bindings are generated using SWIG, and are a
+		replacement for the hand-written Search::Xapian XS bindings.
+		They are largely compatible with Search::Xapian - see the
 		"COMPATIBILITY" section in the Xapian module's POD docs for
 		details.  These bindings probably need Perl 5.8.3 or later.
 		Recently tested with 5.14.2, 5.22.1 and 5.30.0.
diff --git a/aclocal.m4 b/aclocal.m4
index 8a19f95c80e31fc8da61aa23804e44bc425b4ce7..afbfc7a24a80be7d84c047b32eeb0a6c95f71724 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1185,11 +1185,9379 @@ AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
 m4_include([m4/ax_cxx_compile_stdcxx.m4])
-m4_include([m4/libtool.m4])
-m4_include([m4/ltoptions.m4])
-m4_include([m4/ltsugar.m4])
-m4_include([m4/ltversion.m4])
-m4_include([m4/lt~obsolete.m4])
+# pkg.m4 - Macros to locate and use pkg-config.   -*- Autoconf -*-
+# serial 12 (pkg-config-0.29.2)
+
+dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+dnl 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a
+dnl configuration script generated by Autoconf, you may include it under
+dnl the same distribution terms that you use for the rest of that
+dnl program.
+
+dnl PKG_PREREQ(MIN-VERSION)
+dnl -----------------------
+dnl Since: 0.29
+dnl
+dnl Verify that the version of the pkg-config macros are at least
+dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
+dnl installed version of pkg-config, this checks the developer's version
+dnl of pkg.m4 when generating configure.
+dnl
+dnl To ensure that this macro is defined, also add:
+dnl m4_ifndef([PKG_PREREQ],
+dnl     [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
+dnl
+dnl See the "Since" comment for each macro you use to see what version
+dnl of the macros you require.
+m4_defun([PKG_PREREQ],
+[m4_define([PKG_MACROS_VERSION], [0.29.2])
+m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
+    [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
+])dnl PKG_PREREQ
+
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
+dnl ----------------------------------
+dnl Since: 0.16
+dnl
+dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
+dnl first found in the path. Checks that the version of pkg-config found
+dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
+dnl used since that's the first version where most current features of
+dnl pkg-config existed.
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=m4_default([$1], [0.9.0])
+	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
+		PKG_CONFIG=""
+	fi
+fi[]dnl
+])dnl PKG_PROG_PKG_CONFIG
+
+dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------------------------------
+dnl Since: 0.18
+dnl
+dnl Check to see whether a particular set of modules exists. Similar to
+dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
+dnl
+dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+dnl only at the first occurrence in configure.ac, so if the first place
+dnl it's called might be skipped (such as if it is within an "if", you
+dnl have to call PKG_CHECK_EXISTS manually
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_default([$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+dnl ---------------------------------------------
+dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
+dnl pkg_failed based on the result.
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes ],
+		     [pkg_failed=yes])
+ else
+    pkg_failed=untried
+fi[]dnl
+])dnl _PKG_CONFIG
+
+dnl _PKG_SHORT_ERRORS_SUPPORTED
+dnl ---------------------------
+dnl Internal check to see if pkg-config supports short errors.
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])dnl _PKG_SHORT_ERRORS_SUPPORTED
+
+
+dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl --------------------------------------------------------------
+dnl Since: 0.4.0
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
+dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $2])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+        AC_MSG_RESULT([no])
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+                $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+        else
+                $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+        fi
+        # Put the nasty error message in config.log where it belongs
+        echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+        m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+        ])
+elif test $pkg_failed = untried; then
+        AC_MSG_RESULT([no])
+        m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+        ])
+else
+        $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+        $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+        $3
+fi[]dnl
+])dnl PKG_CHECK_MODULES
+
+
+dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl ---------------------------------------------------------------------
+dnl Since: 0.29
+dnl
+dnl Checks for existence of MODULES and gathers its build flags with
+dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
+dnl and VARIABLE-PREFIX_LIBS from --libs.
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
+dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
+dnl configure.ac.
+AC_DEFUN([PKG_CHECK_MODULES_STATIC],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+_save_PKG_CONFIG=$PKG_CONFIG
+PKG_CONFIG="$PKG_CONFIG --static"
+PKG_CHECK_MODULES($@)
+PKG_CONFIG=$_save_PKG_CONFIG[]dnl
+])dnl PKG_CHECK_MODULES_STATIC
+
+
+dnl PKG_INSTALLDIR([DIRECTORY])
+dnl -------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable pkgconfigdir as the location where a module
+dnl should install pkg-config .pc files. By default the directory is
+dnl $libdir/pkgconfig, but the default can be changed by passing
+dnl DIRECTORY. The user can override through the --with-pkgconfigdir
+dnl parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+    [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_INSTALLDIR
+
+
+dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
+dnl --------------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable noarch_pkgconfigdir as the location where a
+dnl module should install arch-independent pkg-config .pc files. By
+dnl default the directory is $datadir/pkgconfig, but the default can be
+dnl changed by passing DIRECTORY. The user can override through the
+dnl --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+    [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_NOARCH_INSTALLDIR
+
+
+dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------
+dnl Since: 0.28
+dnl
+dnl Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])dnl PKG_CHECK_VAR
+
+dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl   [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
+dnl   [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------
+dnl
+dnl Prepare a "--with-" configure option using the lowercase
+dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
+dnl PKG_CHECK_MODULES in a single macro.
+AC_DEFUN([PKG_WITH_MODULES],
+[
+m4_pushdef([with_arg], m4_tolower([$1]))
+
+m4_pushdef([description],
+           [m4_default([$5], [build with ]with_arg[ support])])
+
+m4_pushdef([def_arg], [m4_default([$6], [auto])])
+m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
+m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
+
+m4_case(def_arg,
+            [yes],[m4_pushdef([with_without], [--without-]with_arg)],
+            [m4_pushdef([with_without],[--with-]with_arg)])
+
+AC_ARG_WITH(with_arg,
+     AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
+    [AS_TR_SH([with_]with_arg)=def_arg])
+
+AS_CASE([$AS_TR_SH([with_]with_arg)],
+            [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
+            [auto],[PKG_CHECK_MODULES([$1],[$2],
+                                        [m4_n([def_action_if_found]) $3],
+                                        [m4_n([def_action_if_not_found]) $4])])
+
+m4_popdef([with_arg])
+m4_popdef([description])
+m4_popdef([def_arg])
+
+])dnl PKG_WITH_MODULES
+
+dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl   [DESCRIPTION], [DEFAULT])
+dnl -----------------------------------------------
+dnl
+dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
+dnl check._[VARIABLE-PREFIX] is exported as make variable.
+AC_DEFUN([PKG_HAVE_WITH_MODULES],
+[
+PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
+
+AM_CONDITIONAL([HAVE_][$1],
+               [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
+])dnl PKG_HAVE_WITH_MODULES
+
+dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl   [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------------------
+dnl
+dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
+dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
+dnl and preprocessor variable.
+AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
+[
+PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
+
+AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
+        [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
+])dnl PKG_HAVE_DEFINE_WITH_MODULES
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+#   Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool 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 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the  same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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, see <http://www.gnu.org/licenses/>.
+])
+
+# serial 58 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+       [m4_default([$3],
+		   [m4_fatal([Libtool version $1 or higher is required],
+		             63)])],
+       [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+  *\ * | *\	*)
+    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_PREPARE_CC_BASENAME
+# -----------------------
+m4_defun([_LT_PREPARE_CC_BASENAME], [
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in @S|@*""; do
+      case $cc_temp in
+        compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+        distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+])# _LT_PREPARE_CC_BASENAME
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME,
+# but that macro is also expanded into generated libtool script, which
+# arranges for $SED and $ECHO to be set by different means.
+m4_defun([_LT_CC_BASENAME],
+[m4_require([_LT_PREPARE_CC_BASENAME])dnl
+AC_REQUIRE([_LT_DECL_SED])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+func_cc_basename $1
+cc_basename=$func_cc_basename_result
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
+m4_require([_LT_CMD_TRUNCATE])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+   setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}"; then
+   setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test set != "${COLLECT_NAMES+set}"; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    _LT_PATH_MAGIC
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from 'configure', and 'config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
+# 'config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain=$ac_aux_dir/ltmain.sh
+])# _LT_PROG_LTMAIN
+
+
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the 'libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME.  Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+	[m4_ifval([$1], [$1], [$2])])
+    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+    m4_ifval([$4],
+	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+    lt_dict_add_subkey([lt_decl_dict], [$2],
+	[tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+  [0], [m4_fatal([$0: too few arguments: $#])],
+  [1], [m4_fatal([$0: too few arguments: $#: $1])],
+  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+     m4_if([$2], [],
+	   m4_quote(lt_decl_varnames),
+	m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to 'config.status' so that its
+# declaration there will have the same value as in 'configure'.  VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly.  In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags='_LT_TAGS'dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+#    # Some comment about what VAR is for.
+#    visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+					   [description])))[]dnl
+m4_pushdef([_libtool_name],
+    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+    [0], [_libtool_name=[$]$1],
+    [1], [_libtool_name=$lt_[]$1],
+    [2], [_libtool_name=$lt_[]$1],
+    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool'
+# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into 'config.status', and then the shell code to quote escape them in
+# for loops in 'config.status'.  Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+	dnl If the libtool generation code has been placed in $CONFIG_LT,
+	dnl instead of duplicating it all over again into config.status,
+	dnl then we will have config.status run $CONFIG_LT later, so it
+	dnl needs to know what name is stored there:
+        [AC_CONFIG_COMMANDS([libtool],
+            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+    dnl If the libtool generation code is destined for config.status,
+    dnl expand the accumulated commands and init code now:
+    [AC_CONFIG_COMMANDS([libtool],
+        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# '#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test 0 = "$lt_write_fail" && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+lt_cl_silent=false
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+  echo
+  AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+'$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+  -h, --help      print this help, then exit
+  -V, --version   print version number, then exit
+  -q, --quiet     do not print progress messages
+  -d, --debug     don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2011 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test 0 != $[#]
+do
+  case $[1] in
+    --version | --v* | -V )
+      echo "$lt_cl_version"; exit 0 ;;
+    --help | --h* | -h )
+      echo "$lt_cl_help"; exit 0 ;;
+    --debug | --d* | -d )
+      debug=: ;;
+    --quiet | --q* | --silent | --s* | -q )
+      lt_cl_silent=: ;;
+
+    -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try '$[0] --help' for more information.]) ;;
+
+    *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try '$[0] --help' for more information.]) ;;
+  esac
+  shift
+done
+
+if $lt_cl_silent; then
+  exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure.  Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+lt_cl_success=:
+test yes = "$silent" &&
+  lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars.  Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+  m4_if(_LT_TAG, [C], [
+    # See if we are running on zsh, and set the options that allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}"; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile=${ofile}T
+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+    $RM "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+    cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_PREPARE_MUNGE_PATH_LIST
+_LT_PREPARE_CC_BASENAME
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+  _LT_PROG_LTMAIN
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
+
+   mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    RM='$RM'
+    ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+  [C],			[_LT_LANG(C)],
+  [C++],		[_LT_LANG(CXX)],
+  [Go],			[_LT_LANG(GO)],
+  [Java],		[_LT_LANG(GCJ)],
+  [Fortran 77],		[_LT_LANG(F77)],
+  [Fortran],		[_LT_LANG(FC)],
+  [Windows Resource],	[_LT_LANG(RC)],
+  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+    [_LT_LANG($1)],
+    [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+  [LT_SUPPORTED_TAG([$1])dnl
+  m4_append([_LT_TAGS], [$1 ])dnl
+  m4_define([_LT_LANG_]$1[_enabled], [])dnl
+  _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+m4_ifndef([AC_PROG_GO], [
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC],     [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+  fi
+fi
+if test -z "$GOC"; then
+  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+  [LT_LANG(CXX)],
+  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+  [LT_LANG(F77)],
+  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+  [LT_LANG(FC)],
+  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+  [LT_LANG(GCJ)],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+    [LT_LANG(GCJ)],
+    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+      [LT_LANG(GCJ)],
+      [m4_ifdef([AC_PROG_GCJ],
+	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([A][M_PROG_GCJ],
+	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([LT_PROG_GCJ],
+	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+  [LT_LANG(GO)],
+  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+  [LT_LANG(RC)],
+  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+  case $host_os in
+    rhapsody* | darwin*)
+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+    AC_CHECK_TOOL([LIPO], [lipo], [:])
+    AC_CHECK_TOOL([OTOOL], [otool], [:])
+    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+    _LT_DECL([], [DSYMUTIL], [1],
+      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+    _LT_DECL([], [NMEDIT], [1],
+      [Tool to change global to local symbols on Mac OS X])
+    _LT_DECL([], [LIPO], [1],
+      [Tool to manipulate fat objects and archives on Mac OS X])
+    _LT_DECL([], [OTOOL], [1],
+      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+    _LT_DECL([], [OTOOL64], [1],
+      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+      [lt_cv_apple_cc_single_mod=no
+      if test -z "$LT_MULTI_MODULE"; then
+	# By default we will add the -single_module flag. You can override
+	# by either setting the environment variable LT_MULTI_MODULE
+	# non-empty at configure time, or by adding -multi_module to the
+	# link flags.
+	rm -rf libconftest.dylib*
+	echo "int foo(void){return 1;}" > conftest.c
+	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+	# If there is a non-empty error log, and "single_module"
+	# appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	# Otherwise, if the output was created with a 0 exit code from
+	# the compiler, it worked.
+	elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+	  lt_cv_apple_cc_single_mod=yes
+	else
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	fi
+	rm -rf libconftest.dylib*
+	rm -f conftest.*
+      fi])
+
+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+      [lt_cv_ld_exported_symbols_list],
+      [lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+	[lt_cv_ld_exported_symbols_list=yes],
+	[lt_cv_ld_exported_symbols_list=no])
+	LDFLAGS=$save_LDFLAGS
+    ])
+
+    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+      [lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+	cat conftest.err >&AS_MESSAGE_LOG_FD
+      elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+	lt_cv_ld_force_load=yes
+      else
+	cat conftest.err >&AS_MESSAGE_LOG_FD
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+    ])
+    case $host_os in
+    rhapsody* | darwin1.[[012]])
+      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+	10.[[012]][[,.]]*)
+	  _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+	10.*)
+	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test yes = "$lt_cv_apple_cc_single_mod"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test yes = "$lt_cv_ld_exported_symbols_list"; then
+      _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+    fi
+    if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_automatic, $1)=yes
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  if test yes = "$lt_cv_ld_force_load"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
+  else
+    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  fi
+  _LT_TAGVAR(link_all_deplibs, $1)=yes
+  _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined
+  case $cc_basename in
+     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test yes = "$_lt_dar_can_shared"; then
+    output_verbose_link_cmd=func_echo_all
+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+    m4_if([$1], [CXX],
+[   if test yes != "$lt_cv_apple_cc_single_mod"; then
+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
+    fi
+],[])
+  else
+  _LT_TAGVAR(ld_shlibs, $1)=no
+  fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+if test set = "${lt_cv_aix_libpath+set}"; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+  lt_aix_libpath_sed='[
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }]'
+  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi],[])
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib
+  fi
+  ])
+  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script that will find a shell with a builtin
+# printf (that we can use as an echo command).
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*"
+}
+
+case $ECHO in
+  printf*) AC_MSG_RESULT([printf]) ;;
+  print*) AC_MSG_RESULT([print -r]) ;;
+  *) AC_MSG_RESULT([cat]) ;;
+esac
+
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test "X`printf %s $ECHO`" = "X$ECHO" \
+      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
+
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
+  [Search for dependent libraries within DIR (or the compiler's sysroot
+   if not specified).])],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted.  We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+   if test yes = "$GCC"; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   AC_MSG_RESULT([$with_sysroot])
+   AC_MSG_ERROR([The sysroot must be an absolute path.])
+   ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and where our libraries should be installed.])])
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+  [AS_HELP_STRING([--disable-libtool-lock],
+    [avoid locking (might break parallel builds)])])
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out what ABI is being produced by ac_compile, and set mode
+  # options accordingly.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+	HPUX_IA64_MODE=32
+	;;
+      *ELF-64*)
+	HPUX_IA64_MODE=64
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    if test yes = "$lt_cv_prog_gnu_ld"; then
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -melf32bsmip"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -melf32bmipn32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -melf64bmip"
+	;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -32"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -n32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -64"
+	  ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+mips64*-*linux*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    emul=elf
+    case `/usr/bin/file conftest.$ac_objext` in
+      *32-bit*)
+	emul="${emul}32"
+	;;
+      *64-bit*)
+	emul="${emul}64"
+	;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *MSB*)
+	emul="${emul}btsmip"
+	;;
+      *LSB*)
+	emul="${emul}ltsmip"
+	;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *N32*)
+	emul="${emul}n32"
+	;;
+    esac
+    LD="${LD-ld} -m $emul"
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.  Note that the listed cases only cover the
+  # situations where additional linker options are needed (such as when
+  # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+  # vice versa); the common cases where no linker options are needed do
+  # not appear in the list.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_i386_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    case `/usr/bin/file conftest.o` in
+	      *x86-64*)
+		LD="${LD-ld} -m elf32_x86_64"
+		;;
+	      *)
+		LD="${LD-ld} -m elf_i386"
+		;;
+	    esac
+	    ;;
+	  powerpc64le-*linux*)
+	    LD="${LD-ld} -m elf32lppclinux"
+	    ;;
+	  powerpc64-*linux*)
+	    LD="${LD-ld} -m elf32ppclinux"
+	    ;;
+	  s390x-*linux*)
+	    LD="${LD-ld} -m elf_s390"
+	    ;;
+	  sparc64-*linux*)
+	    LD="${LD-ld} -m elf32_sparc"
+	    ;;
+	esac
+	;;
+      *64-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_x86_64_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_x86_64"
+	    ;;
+	  powerpcle-*linux*)
+	    LD="${LD-ld} -m elf64lppc"
+	    ;;
+	  powerpc-*linux*)
+	    LD="${LD-ld} -m elf64ppc"
+	    ;;
+	  s390*-*linux*|s390*-*tpf*)
+	    LD="${LD-ld} -m elf64_s390"
+	    ;;
+	  sparc*-*linux*)
+	    LD="${LD-ld} -m elf64_sparc"
+	    ;;
+	esac
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS=$CFLAGS
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test yes != "$lt_cv_cc_needs_belf"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS=$SAVE_CFLAGS
+  fi
+  ;;
+*-*solaris*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*)
+        case $host in
+        i?86-*-solaris*|x86_64-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD=${LD-ld}_sol2
+        fi
+        ;;
+      *)
+	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks=$enable_libtool_lock
+])# _LT_ENABLE_LOCK
+
+
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+  [lt_cv_ar_at_file=no
+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+     [echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([lt_ar_try])
+      if test 0 -eq "$ac_status"; then
+	# Ensure the archiver fails upon bogus file names.
+	rm -f conftest.$ac_objext libconftest.a
+	AC_TRY_EVAL([lt_ar_try])
+	if test 0 -ne "$ac_status"; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+     ])
+  ])
+
+if test no = "$lt_cv_ar_at_file"; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+  [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[_LT_PROG_AR
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+    [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  bitrig* | openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+    [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+    [Whether to use a lock for old archive extraction])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"  ## exclude from sc_useless_quotes_in_assignment
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $RM conftest*
+])
+
+if test yes = "[$]$2"; then
+    m4_if([$5], , :, [$5])
+else
+    m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                  [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS=$LDFLAGS
+   LDFLAGS="$LDFLAGS $3"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS=$save_LDFLAGS
+])
+
+if test yes = "[$]$2"; then
+    m4_if([$4], , :, [$4])
+else
+    m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring=ABCD
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len" && \
+       test undefined != "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+	      test 17 != "$i" # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+])
+if test -n "$lt_cv_sys_max_cmd_len"; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+    [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test yes = "$cross_compiling"; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}]
+_LT_EOF
+  if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test yes != "$enable_dlopen"; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen=load_add_on
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen=LoadLibrary
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen=dlopen
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+    # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[
+    lt_cv_dlopen=dyld
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+    ;;
+
+  tpf*)
+    # Don't try to run any link tests for TPF.  We know it's impossible
+    # because TPF is a cross-compiler, and we know how we open DSOs.
+    lt_cv_dlopen=dlopen
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=no
+    ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen=shl_load],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen=dlopen],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test no = "$lt_cv_dlopen"; then
+    enable_dlopen=no
+  else
+    enable_dlopen=yes
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS=$CPPFLAGS
+    test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS=$LDFLAGS
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS=$LIBS
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test yes = "$lt_cv_dlopen_self"; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+	  lt_cv_dlopen_self_static, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS=$save_CPPFLAGS
+    LDFLAGS=$save_LDFLAGS
+    LIBS=$save_LIBS
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+	 [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+	 [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+	 [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+	[Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links=nottested
+if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test no = "$hard_links"; then
+    AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+         [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/",
+  [Define to the sub-directory where libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+   test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then
+
+  # We can hardcode non-existent directories.
+  if test no != "$_LT_TAGVAR(hardcode_direct, $1)" &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" &&
+     test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test relink = "$_LT_TAGVAR(hardcode_action, $1)" ||
+   test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+     test no = "$enable_shared"; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+    [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP"; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no])
+    fi
+    ;;
+  *)
+    AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_PREPARE_MUNGE_PATH_LIST
+# ---------------------------
+# Make sure func_munge_path_list() is defined correctly.
+m4_defun([_LT_PREPARE_MUNGE_PATH_LIST],
+[[# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x@S|@2 in
+    x)
+        ;;
+    *:)
+        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+        ;;
+    x:*)
+        eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+        ;;
+    *)
+        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+]])# _LT_PREPARE_PATH_LIST
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+	[], [
+if test yes = "$GCC"; then
+  case $host_os in
+    darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+    *) lt_awk_arg='/^libraries:/' ;;
+  esac
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
+    *) lt_sed_strip_eq='s|=/|/|g' ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary...
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  # ...but if some path component already ends with the multilib dir we assume
+  # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+  case "$lt_multi_os_dir; $lt_search_path_spec " in
+  "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+    lt_multi_os_dir=
+    ;;
+  esac
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+    elif test -n "$lt_multi_os_dir"; then
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+  lt_foo = "";
+  lt_count = 0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo = "/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+AC_ARG_VAR([LT_SYS_LIBRARY_PATH],
+[User-defined run-time library search path.])
+
+case $host_os in
+aix3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='$libname$release$shared_ext$major'
+  ;;
+
+aix[[4-9]]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test ia64 = "$host_cpu"; then
+    # AIX 5 supports IA64
+    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line '#! .'.  This would cause the generated library to
+    # depend on '.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # Using Import Files as archive members, it is possible to support
+    # filename-based versioning of shared library archives on AIX. While
+    # this would work for both with and without runtime linking, it will
+    # prevent static linking of such archives. So we do filename-based
+    # shared library versioning with .so extension only, which is used
+    # when both runtime linking and shared linking is enabled.
+    # Unfortunately, runtime linking may impact performance, so we do
+    # not want this to be the default eventually. Also, we use the
+    # versioned .so libs for executables only if there is the -brtl
+    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+    # To allow for filename-based versioning support, we need to create
+    # libNAME.so.V as an archive file, containing:
+    # *) an Import File, referring to the versioned filename of the
+    #    archive as well as the shared archive member, telling the
+    #    bitwidth (32 or 64) of that shared object, and providing the
+    #    list of exported symbols of that shared object, eventually
+    #    decorated with the 'weak' keyword
+    # *) the shared object with the F_LOADONLY flag set, to really avoid
+    #    it being seen by the linker.
+    # At run time we better use the real file rather than another symlink,
+    # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+    case $with_aix_soname,$aix_use_runtimelinking in
+    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    aix,yes) # traditional libtool
+      dynamic_linker='AIX unversionable lib.so'
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      ;;
+    aix,no) # traditional AIX only
+      dynamic_linker='AIX lib.a[(]lib.so.V[)]'
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      ;;
+    svr4,*) # full svr4 only
+      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,yes) # both, prefer svr4
+      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # unpreferred sharedlib libNAME.a needs extra handling
+      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,no) # both, prefer aix
+      dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]"
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+      ;;
+    esac
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='$libname$shared_ext'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+m4_if([$1], [],[
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+      ;;
+    esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+    library_names_spec='$libname.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec=$LIB
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
+    ;;
+
+  *)
+    # Assume MSVC wrapper
+    library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
+    dynamic_linker='Win32 ld.exe'
+    ;;
+  esac
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$major$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[23]].*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      soname_spec='$libname$release$shared_ext$major'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2.*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    if test 32 = "$HPUX_IA64_MODE"; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+    fi
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+  postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
+  ;;
+
+interix[[3-9]]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test yes = "$lt_cv_prog_gnu_ld"; then
+		version_type=linux # correct to gnu/linux during the next big refactor
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+linux*android*)
+  version_type=none # Android doesn't support versioned libraries.
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext'
+  soname_spec='$libname$release$shared_ext'
+  finish_cmds=
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  dynamic_linker='Android linker'
+  # Don't embed -rpath directories since the linker doesn't support them.
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+  ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+
+  # Some binutils ld are patched to set DT_RUNPATH
+  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+    [lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+	 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+	 [lt_cv_shlibpath_overrides_runpath=yes])])
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+    ])
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Ideally, we could use ldconfig to report *all* directores which are
+  # searched for libraries, however this is still not possible.  Aside from not
+  # being certain /sbin/ldconfig is available, command
+  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+  # even though it is searched at run-time.  Try to do the best guess by
+  # appending ld.so.conf contents (and includes) to the search path.
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd* | bitrig*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec=/usr/lib
+  need_lib_prefix=no
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    need_version=no
+  else
+    need_version=yes
+  fi
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+os2*)
+  libname_spec='$name'
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
+  need_lib_prefix=no
+  # OS/2 can only load a DLL with a base name of 8 characters or less.
+  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+    v=$($ECHO $release$versuffix | tr -d .-);
+    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+    $ECHO $n$v`$shared_ext'
+  library_names_spec='${libname}_dll.$libext'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=BEGINLIBPATH
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  postinstall_cmds='base_file=`basename \$file`~
+    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+    dldir=$destdir/`dirname \$dlpath`~
+    test -d \$dldir || mkdir -p \$dldir~
+    $install_prog $dir/$dlname \$dldir/$dlname~
+    chmod a+x \$dldir/$dlname~
+    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+    fi'
+  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+    dlpath=$dir/\$dldll~
+    $RM \$dlpath'
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test yes = "$with_gnu_ld"; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec; then
+    version_type=linux # correct to gnu/linux during the next big refactor
+    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+    soname_spec='$libname$shared_ext.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=sco
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test yes = "$with_gnu_ld"; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+    [Variables whose values should be saved in libtool wrapper scripts and
+    restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+    [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+    [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+    [[List of archive names.  First name is the real one, the rest are links.
+    The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+    [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+    [Permission mode override for installation of shared libraries])
+_LT_DECL([], [postinstall_cmds], [2],
+    [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+    [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+    [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+    [[As "finish_cmds", except a single script fragment to be evaled but
+    not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+    [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+    [Compile-time system search path for libraries])
+_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2],
+    [Detected run-time system search path for libraries])
+_LT_DECL([], [configure_time_lt_sys_library_path], [2],
+    [Explicit LT_SYS_LIBRARY_PATH set during ./configure time])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program that can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD=$MAGIC_CMD
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="m4_if([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS=$lt_save_ifs
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$1"; then
+      lt_cv_path_MAGIC_CMD=$ac_dir/"$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS=$lt_save_ifs
+  MAGIC_CMD=$lt_save_MAGIC_CMD
+  ;;
+esac])
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program that can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
+
+AC_ARG_WITH([gnu-ld],
+    [AS_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test no = "$withval" || with_gnu_ld=yes],
+    [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test yes = "$GCC"; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return, which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD=$ac_prog
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test yes = "$with_gnu_ld"; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS=$lt_save_ifs
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD=$ac_dir/$ac_prog
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test no != "$with_gnu_ld" && break
+	;;
+      *)
+	test yes != "$with_gnu_ld" && break
+	;;
+      esac
+    fi
+  done
+  IFS=$lt_save_ifs
+else
+  lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi])
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test yes != "$GCC"; then
+      reload_cmds=false
+    fi
+    ;;
+  darwin*)
+    if test yes = "$GCC"; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_PATH_DD
+# -----------
+# find a working dd
+m4_defun([_LT_PATH_DD],
+[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd],
+[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi])
+rm -f conftest.i conftest2.i conftest.out])
+])# _LT_PATH_DD
+
+
+# _LT_CMD_TRUNCATE
+# ----------------
+# find command to truncate a binary pipe
+m4_defun([_LT_CMD_TRUNCATE],
+[m4_require([_LT_PATH_DD])
+AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"])
+_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1],
+  [Command to truncate a binary pipe])
+])# _LT_CMD_TRUNCATE
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_MAGIC_METHOD],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  if ( file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc*)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[[3-9]]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd* | bitrig*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+os2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+    [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+    [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+    [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM=$NM
+else
+  lt_nm_to_check=${ac_tool_prefix}nm
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS=$lt_save_ifs
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm=$ac_dir/$lt_tmp_nm
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	# MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+	case $build_os in
+	mingw*) lt_bad_file=conftest.nm/nofile ;;
+	*) lt_bad_file=/dev/null ;;
+	esac
+	case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+	*$lt_bad_file* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break 2
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break 2
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS=$lt_save_ifs
+  done
+  : ${lt_cv_path_NM=no}
+fi])
+if test no != "$lt_cv_path_NM"; then
+  NM=$lt_cv_path_NM
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols -headers"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
+  AC_SUBST([DUMPBIN])
+  if test : != "$DUMPBIN"; then
+    NM=$DUMPBIN
+  fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+  [lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
+  cat conftest.out >&AS_MESSAGE_LOG_FD
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh;
+  # decide which one to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd=$ECHO
+  ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+    [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+  [lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*])
+if test yes != "$lt_cv_path_mainfest_tool"; then
+  MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
+
+# _LT_DLL_DEF_P([FILE])
+# ---------------------
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with func_dll_def_p in the libtool script
+AC_DEFUN([_LT_DLL_DEF_P],
+[dnl
+  test DEF = "`$SED -n dnl
+    -e '\''s/^[[	 ]]*//'\'' dnl Strip leading whitespace
+    -e '\''/^\(;.*\)*$/d'\'' dnl      Delete empty lines and comments
+    -e '\''s/^\(EXPORTS\|LIBRARY\)\([[	 ]].*\)*$/DEF/p'\'' dnl
+    -e q dnl                          Only consider the first "real" line
+    $1`" dnl
+])# _LT_DLL_DEF_P
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw)
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM=-lm)
+  ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test yes = "$GCC"; then
+  case $cc_basename in
+  nvcc*)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+  esac
+
+  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+	[Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*)
+  if test ia64 = "$host_cpu"; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris*)
+  symcode='[[BDRT]]'
+  ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  # Gets list of data symbols to import.
+  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+  # Adjust the below global symbol transforms to fixup imported variables.
+  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
+  lt_c_name_lib_hook="\
+  -e 's/^I .* \(lib.*\)$/  {\"\1\", (void *) 0},/p'\
+  -e 's/^I .* \(.*\)$/  {\"lib\1\", (void *) 0},/p'"
+else
+  # Disable hooks by default.
+  lt_cv_sys_global_symbol_to_import=
+  lt_cdecl_hook=
+  lt_c_name_hook=
+  lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function,
+    # D for any global variable and I for any imported variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK ['"\
+"     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+"     /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+"     /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+"     {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+"     s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx]"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT@&t@_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data.  */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+	  cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+LT@&t@_DLSYM_CONST struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+	  $SED "s/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+	  cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_globsym_save_LIBS=$LIBS
+	  lt_globsym_save_CFLAGS=$CFLAGS
+	  LIBS=conftstm.$ac_objext
+	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then
+	    pipe_works=yes
+	  fi
+	  LIBS=$lt_globsym_save_LIBS
+	  CFLAGS=$lt_globsym_save_CFLAGS
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test yes = "$pipe_works"; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+    [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+    [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1],
+    [Transform the output of nm into a list of symbols to manually relocate])
+_LT_DECL([global_symbol_to_c_name_address],
+    [lt_cv_sys_global_symbol_to_c_name_address], [1],
+    [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+    [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([nm_interface], [lt_cv_nm_interface], [1],
+    [The name lister interface])
+_LT_DECL([], [nm_file_list_spec], [1],
+    [Specify filename containing input files for $NM])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+m4_if([$1], [CXX], [
+  # C++ specific cases for pic, static, wl, etc.
+  if test yes = "$GXX"; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test ia64 = "$host_cpu"; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | cygwin* | os2* | pw32* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+	;;
+      esac
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *qnx* | *nto*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix[[4-9]]*)
+	# All AIX code is PIC.
+	if test ia64 = "$host_cpu"; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+	# This hack is so that the source file can tell whether it is being
+	# built for inclusion in a dll (and should export symbols for example).
+	m4_if([$1], [GCJ], [],
+	  [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+	;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+	    if test ia64 != "$host_cpu"; then
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  ecpc* )
+	    # old Intel C++ for x86_64, which still supported -KPIC.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  icpc* )
+	    # Intel C++, used to be incompatible with GCC.
+	    # ICC 10 doesn't accept -KPIC any more.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  pgCC* | pgcpp*)
+	    # Portland Group C++ compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+	    # IBM XL 8.0, 9.0 on PPC and BlueGene
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      *qnx* | *nto*)
+        # QNX uses GNU C++, but need to define -shared option too, otherwise
+        # it will coredump.
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+        ;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC* | sunCC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test yes = "$GCC"; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test ia64 = "$host_cpu"; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+	;;
+      esac
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+      fi
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test ia64 = "$host_cpu"; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      case $cc_basename in
+      nagfor*)
+        # NAG Fortran compiler
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      esac
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+	;;
+      esac
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+      case $cc_basename in
+      # old Intel for x86_64, which still supported -KPIC.
+      ecc*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+	;;
+      nagfor*)
+	# NAG Fortran compiler
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	;;
+      tcc*)
+	# Fabrice Bellard et al's Tiny C Compiler
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      ccc*)
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      xl* | bgxl* | bgf* | mpixl*)
+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+	  ;;
+	*Sun\ F* | *Sun*Fortran*)
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	  ;;
+	*Sun\ C*)
+	  # Sun C 5.9
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  ;;
+        *Intel*\ [[CF]]*Compiler*)
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	  ;;
+	*Portland\ Group*)
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    rdos*)
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    unicos*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+case $host_os in
+  # For platforms that do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+	[Additional compiler flags for building library objects])
+
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+	[How to pass a linker flag through the compiler])
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+	[Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  case $host_os in
+  aix[[4-9]]*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+    # Without the "-l" option, or with the "-B" option, AIX nm treats
+    # weak defined symbols like other global defined symbols, whereas
+    # GNU nm marks them as "W".
+    # While the 'weak' keyword is ignored in the Export File, we need
+    # it in the Import File for the 'aix-soname' feature, so we have
+    # to replace the "-B" option with "-P" for AIX nm.
+    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
+    ;;
+  cygwin* | mingw* | cegcc*)
+    case $cc_basename in
+    cl*)
+      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
+    *)
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+      ;;
+    esac
+    ;;
+  *)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+    ;;
+  esac
+], [
+  runpath_var=
+  _LT_TAGVAR(allow_undefined_flag, $1)=
+  _LT_TAGVAR(always_export_symbols, $1)=no
+  _LT_TAGVAR(archive_cmds, $1)=
+  _LT_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_TAGVAR(compiler_needs_object, $1)=no
+  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(hardcode_automatic, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(inherit_rpath, $1)=no
+  _LT_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_TAGVAR(module_cmds, $1)=
+  _LT_TAGVAR(module_expsym_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ' (' and ')$', so one must not match beginning or
+  # end of line.  Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+  # as well as any symbol that contains 'd'.
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test yes != "$GCC"; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd* | bitrig*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_TAGVAR(ld_shlibs, $1)=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
+  if test yes = "$with_gnu_ld"; then
+    case $host_os in
+      aix*)
+	# The AIX port of GNU ld has always aspired to compatibility
+	# with the native linker.  However, as the warning in the GNU ld
+	# block says, versions before 2.19.5* couldn't really create working
+	# shared libraries, regardless of the interface used.
+	case `$LD -v 2>&1` in
+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+	  *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+	  *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+	  *)
+	    lt_use_gnu_ld_interface=yes
+	    ;;
+	esac
+	;;
+      *)
+	lt_use_gnu_ld_interface=yes
+	;;
+    esac
+  fi
+
+  if test yes = "$lt_use_gnu_ld_interface"; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='$wl'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+    else
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[[3-9]]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test ia64 != "$host_cpu"; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=no
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file, use it as
+	# is; otherwise, prepend EXPORTS...
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+          cp $export_symbols $output_objdir/$soname.def;
+        else
+          echo EXPORTS > $output_objdir/$soname.def;
+          cat $export_symbols >> $output_objdir/$soname.def;
+        fi~
+        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    haiku*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      shrext_cmds=.dll
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	prefix_cmds="$SED"~
+	if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	  prefix_cmds="$prefix_cmds -e 1d";
+	fi~
+	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    interix[[3-9]]*)
+      _LT_TAGVAR(hardcode_direct, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test linux-dietlibc = "$host_os"; then
+	case $cc_basename in
+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
+	esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+	 && test no = "$tmp_diet"
+      then
+	tmp_addflag=' $pic_flag'
+	tmp_sharedflag='-shared'
+	case $cc_basename,$host_cpu in
+        pgcc*)				# Portland Group C compiler
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95* | pgfortran*)
+					# Portland Group f77 and f90 compilers
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	lf95*)				# Lahey Fortran 8.1
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+	  tmp_sharedflag='--shared' ;;
+        nagfor*)                        # NAGFOR 5.3
+          tmp_sharedflag='-Wl,-shared' ;;
+	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+	  tmp_sharedflag='-qmkshrobj'
+	  tmp_addflag= ;;
+	nvcc*)	# Cuda Compiler Driver 2.2
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	esac
+	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+        if test yes = "$supports_anon_versioning"; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+            echo "local: *; };" >> $output_objdir/$libname.ver~
+            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+        fi
+
+	case $cc_basename in
+	tcc*)
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic'
+	  ;;
+	xlf* | bgf* | bgxlf* | mpixlf*)
+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+	  if test yes = "$supports_anon_versioning"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+              echo "local: *; };" >> $output_objdir/$libname.ver~
+              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	  fi
+	  ;;
+	esac
+      else
+        _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  # For security reasons, it is highly recommended that you always
+	  # use absolute paths for naming shared libraries, and exclude the
+	  # DT_RUNPATH tag from executables and libraries.  But doing so
+	  # requires that you compile everything twice, which is a pain.
+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+	  else
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then
+      runpath_var=
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix[[4-9]]*)
+      if test ia64 = "$host_cpu"; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to GNU nm, but means don't demangle to AIX nm.
+	# Without the "-l" option, or with the "-B" option, AIX nm treats
+	# weak defined symbols like other global defined symbols, whereas
+	# GNU nm marks them as "W".
+	# While the 'weak' keyword is ignored in the Export File, we need
+	# it in the Import File for the 'aix-soname' feature, so we have
+	# to replace the "-B" option with "-P" for AIX nm.
+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# have runtime linking enabled, and use it for executables.
+	# For shared libraries, we enable/disable runtime linking
+	# depending on the kind of the shared library created -
+	# when "with_aix_soname,aix_use_runtimelinking" is:
+	# "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+	# "aix,yes"  lib.so          shared, rtl:yes, for executables
+	#            lib.a           static archive
+	# "both,no"  lib.so.V(shr.o) shared, rtl:yes
+	#            lib.a(lib.so.V) shared, rtl:no,  for executables
+	# "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+	#            lib.a(lib.so.V) shared, rtl:no
+	# "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+	#            lib.a           static archive
+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	  for ld_flag in $LDFLAGS; do
+	  if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+	    aix_use_runtimelinking=yes
+	    break
+	  fi
+	  done
+	  if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+	    # With aix-soname=svr4, we create the lib.so.V shared archives only,
+	    # so we don't have lib.a shared libs to link our executables.
+	    # We have to force runtime linking in this case.
+	    aix_use_runtimelinking=yes
+	    LDFLAGS="$LDFLAGS -Wl,-brtl"
+	  fi
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_TAGVAR(archive_cmds, $1)=''
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+      case $with_aix_soname,$aix_use_runtimelinking in
+      aix,*) ;; # traditional, no import file
+      svr4,* | *,yes) # use import file
+	# The Import File defines what to hardcode.
+	_LT_TAGVAR(hardcode_direct, $1)=no
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+	;;
+      esac
+
+      if test yes = "$GCC"; then
+	case $host_os in aix4.[[012]]|aix4.[[012]].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`$CC -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	  # We have reworked collect2
+	  :
+	  else
+	  # We have old collect2
+	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test yes = "$aix_use_runtimelinking"; then
+	  shared_flag="$shared_flag "'$wl-G'
+	fi
+	# Need to ensure runtime linking is disabled for the traditional
+	# shared library, or the linker may eventually find shared libraries
+	# /with/ Import File - we do not want to mix them.
+	shared_flag_aix='-shared'
+	shared_flag_svr4='-shared $wl-G'
+      else
+	# not using gcc
+	if test ia64 = "$host_cpu"; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test yes = "$aix_use_runtimelinking"; then
+	    shared_flag='$wl-G'
+	  else
+	    shared_flag='$wl-bM:SRE'
+	  fi
+	  shared_flag_aix='$wl-bM:SRE'
+	  shared_flag_svr4='$wl-G'
+	fi
+      fi
+
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        _LT_SYS_MODULE_PATH_AIX([$1])
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+      else
+	if test ia64 = "$host_cpu"; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
+	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an
+	 # empty executable.
+	 _LT_SYS_MODULE_PATH_AIX([$1])
+	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+	  _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+	  if test yes = "$with_gnu_ld"; then
+	    # We only use this code for GNU lds that support --whole-archive.
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+	  else
+	    # Exported symbols can be pulled into shared objects from archives
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  fi
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+	  # -brtl affects multiple linker settings, -berok does not and is overridden later
+	  compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+	  if test svr4 != "$with_aix_soname"; then
+	    # This is similar to how AIX traditionally builds its shared libraries.
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+	  fi
+	  if test aix != "$with_aix_soname"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+	  else
+	    # used by -dlpreopen to get the symbols
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+	  fi
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[[45]]*)
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      case $cc_basename in
+      cl*)
+	# Native MSVC
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	_LT_TAGVAR(always_export_symbols, $1)=yes
+	_LT_TAGVAR(file_list_spec, $1)='@'
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=.dll
+	# FIXME: Setting linknames here is a bad hack.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -Fe $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+            cp "$export_symbols" "$output_objdir/$soname.def";
+            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+          else
+            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+          fi~
+          $CC -Fe $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+          linknames='
+	# The linker will not automatically build a static lib if we build a DLL.
+	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+	_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+	# Don't use ranlib
+	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+	_LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+          lt_tool_outputfile="@TOOL_OUTPUT@"~
+          case $lt_outputfile in
+            *.exe|*.EXE) ;;
+            *)
+              lt_outputfile=$lt_outputfile.exe
+              lt_tool_outputfile=$lt_tool_outputfile.exe
+              ;;
+          esac~
+          if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+            $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+            $RM "$lt_outputfile.manifest";
+          fi'
+	;;
+      *)
+	# Assume MSVC wrapper
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=.dll
+	# FIXME: Setting linknames here is a bad hack.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+	# The linker will automatically build a .lib file if we build a DLL.
+	_LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	# FIXME: Should let the user specify the lib program.
+	_LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	;;
+      esac
+      ;;
+
+    darwin* | rhapsody*)
+      _LT_DARWIN_LINKER_FEATURES($1)
+      ;;
+
+    dgux*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2.*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+      ;;
+
+    hpux10*)
+      if test yes,no = "$GCC,$with_gnu_ld"; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test no = "$with_gnu_ld"; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	_LT_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test yes,no = "$GCC,$with_gnu_ld"; then
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	m4_if($1, [], [
+	  # Older versions of the 11.00 compiler do not understand -b yet
+	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+	  _LT_LINKER_OPTION([if $CC understands -b],
+	    _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+	    [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
+	  ;;
+	esac
+      fi
+      if test no = "$with_gnu_ld"; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	*)
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+	# Try to use the -exported_symbol ld option, if it does not
+	# work, assume that -exports_file does not work either and
+	# implicitly export all symbols.
+	# This should be the same for all languages, so no per-tag cache variable.
+	AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+	  [lt_cv_irix_exported_symbol],
+	  [save_LDFLAGS=$LDFLAGS
+	   LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+	   AC_LINK_IFELSE(
+	     [AC_LANG_SOURCE(
+	        [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+			      [C++], [[int foo (void) { return 0; }]],
+			      [Fortran 77], [[
+      subroutine foo
+      end]],
+			      [Fortran], [[
+      subroutine foo
+      end]])])],
+	      [lt_cv_irix_exported_symbol=yes],
+	      [lt_cv_irix_exported_symbol=no])
+           LDFLAGS=$save_LDFLAGS])
+	if test yes = "$lt_cv_irix_exported_symbol"; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+	fi
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(inherit_rpath, $1)=yes
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    linux*)
+      case $cc_basename in
+      tcc*)
+	# Fabrice Bellard et al's Tiny C Compiler
+	_LT_TAGVAR(ld_shlibs, $1)=yes
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      esac
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd* | bitrig*)
+      if test -f /usr/libexec/ld.so; then
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+	else
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	fi
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      shrext_cmds=.dll
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	prefix_cmds="$SED"~
+	if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	  prefix_cmds="$prefix_cmds -e 1d";
+	fi~
+	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    osf3*)
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+          $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+      if test yes = "$GCC"; then
+	wlarc='$wl'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+	case `$CC -V 2>&1` in
+	*"Compilers 5.0"*)
+	  wlarc=''
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+            $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  ;;
+	*)
+	  wlarc='$wl'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+            $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  ;;
+	esac
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands '-z linker_flag'.  GCC discards it without '$wl',
+	# but is careful enough not to reorder.
+	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test yes = "$GCC"; then
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+	else
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test sequent = "$host_vendor"; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We CANNOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+      _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+
+    if test sni = "$host_vendor"; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym'
+	;;
+      esac
+    fi
+  fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+    [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test yes,yes = "$GCC,$enable_shared"; then
+    case $_LT_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+	[lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+	[$RM conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+	if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+	  pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+	  _LT_TAGVAR(allow_undefined_flag, $1)=
+	  if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+	  then
+	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	  else
+	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  fi
+	  _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM conftest*
+	])
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+    [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+    [enable_shared_with_static_runtimes], [0],
+    [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+    [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+    [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+    [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+    [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+    [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+    [Commands used to build a loadable module if different from building
+    a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+    [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+    [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+    [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+    [Flag to hardcode $libdir into a binary during linking.
+    This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+    [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+    DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+    DIR into the resulting binary and the resulting library dependency is
+    "absolute", i.e impossible to change by setting $shlibpath_var if the
+    library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+    [Set to "yes" if building a shared library automatically hardcodes DIR
+    into the library and all subsequent libraries and executables linked
+    against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+    [Set to yes if linker adds runtime paths of dependent libraries
+    to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+    [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [always_export_symbols], [0],
+    [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+    [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+    [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+    [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+    [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+    [Commands necessary for finishing linking programs])
+_LT_TAGDECL([], [file_list_spec], [1],
+    [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl    [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC=$CC
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_SYS_DYNAMIC_LINKER($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+  LT_SYS_DLOPEN_SELF
+  _LT_CMD_STRIPLIB
+
+  # Report what library types will actually be built
+  AC_MSG_CHECKING([if libtool supports shared libraries])
+  AC_MSG_RESULT([$can_build_shared])
+
+  AC_MSG_CHECKING([whether to build shared libraries])
+  test no = "$can_build_shared" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test yes = "$enable_shared" && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[[4-9]]*)
+    if test ia64 != "$host_cpu"; then
+      case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+      yes,aix,yes) ;;			# shared object as lib.so file only
+      yes,svr4,*) ;;			# shared object as lib.so archive member only
+      yes,*) enable_static=no ;;	# shared object in lib.a archive as well
+      esac
+    fi
+    ;;
+  esac
+  AC_MSG_RESULT([$enable_shared])
+
+  AC_MSG_CHECKING([whether to build static libraries])
+  # Make sure either enable_shared or enable_static is yes.
+  test yes = "$enable_shared" || enable_static=yes
+  AC_MSG_RESULT([$enable_static])
+
+  _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC=$lt_save_CC
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+if test -n "$CXX" && ( test no != "$CXX" &&
+    ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
+    (test g++ != "$CXX"))); then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_caught_CXX_error"; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="int some_variable = 0;"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_CFLAGS=$CFLAGS
+  lt_save_LD=$LD
+  lt_save_GCC=$GCC
+  GCC=$GXX
+  lt_save_with_gnu_ld=$with_gnu_ld
+  lt_save_path_LD=$lt_cv_path_LD
+  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+  else
+    $as_unset lt_cv_prog_gnu_ld
+  fi
+  if test -n "${lt_cv_path_LDCXX+set}"; then
+    lt_cv_path_LD=$lt_cv_path_LDCXX
+  else
+    $as_unset lt_cv_path_LD
+  fi
+  test -z "${LDCXX+set}" || LD=$LDCXX
+  CC=${CXX-"c++"}
+  CFLAGS=$CXXFLAGS
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    # We don't want -fno-exception when compiling C++ code, so set the
+    # no_builtin_flag separately
+    if test yes = "$GXX"; then
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+    else
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+    fi
+
+    if test yes = "$GXX"; then
+      # Set up default GNU C++ configuration
+
+      LT_PATH_LD
+
+      # Check if GNU C++ uses GNU ld as the underlying linker, since the
+      # archiving commands below assume that GNU ld is being used.
+      if test yes = "$with_gnu_ld"; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+
+        # If archive_cmds runs LD, not CC, wlarc should be empty
+        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+        #     investigate it a little bit more. (MM)
+        wlarc='$wl'
+
+        # ancient GNU ld didn't support --whole-archive et. al.
+        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+	  $GREP 'no-whole-archive' > /dev/null; then
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+        else
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=
+        fi
+      else
+        with_gnu_ld=no
+        wlarc=
+
+        # A generic and very simple default shared library creation
+        # command for GNU C++ for the case where it uses the native
+        # linker, instead of GNU ld.  If possible, this setting should
+        # overridden to take advantage of the native linker features on
+        # the platform it is being used on.
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      fi
+
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+    else
+      GXX=no
+      with_gnu_ld=no
+      wlarc=
+    fi
+
+    # PORTME: fill in a description of your system's C++ link characteristics
+    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+    _LT_TAGVAR(ld_shlibs, $1)=yes
+    case $host_os in
+      aix3*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+      aix[[4-9]]*)
+        if test ia64 = "$host_cpu"; then
+          # On IA64, the linker does run time linking by default, so we don't
+          # have to do anything special.
+          aix_use_runtimelinking=no
+          exp_sym_flag='-Bexport'
+          no_entry_flag=
+        else
+          aix_use_runtimelinking=no
+
+          # Test if we are trying to use run time linking or normal
+          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+          # have runtime linking enabled, and use it for executables.
+          # For shared libraries, we enable/disable runtime linking
+          # depending on the kind of the shared library created -
+          # when "with_aix_soname,aix_use_runtimelinking" is:
+          # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "aix,yes"  lib.so          shared, rtl:yes, for executables
+          #            lib.a           static archive
+          # "both,no"  lib.so.V(shr.o) shared, rtl:yes
+          #            lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a(lib.so.V) shared, rtl:no
+          # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a           static archive
+          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	    for ld_flag in $LDFLAGS; do
+	      case $ld_flag in
+	      *-brtl*)
+	        aix_use_runtimelinking=yes
+	        break
+	        ;;
+	      esac
+	    done
+	    if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+	      # With aix-soname=svr4, we create the lib.so.V shared archives only,
+	      # so we don't have lib.a shared libs to link our executables.
+	      # We have to force runtime linking in this case.
+	      aix_use_runtimelinking=yes
+	      LDFLAGS="$LDFLAGS -Wl,-brtl"
+	    fi
+	    ;;
+          esac
+
+          exp_sym_flag='-bexport'
+          no_entry_flag='-bnoentry'
+        fi
+
+        # When large executables or shared objects are built, AIX ld can
+        # have problems creating the table of contents.  If linking a library
+        # or program results in "error TOC overflow" add -mminimal-toc to
+        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+        _LT_TAGVAR(archive_cmds, $1)=''
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+        case $with_aix_soname,$aix_use_runtimelinking in
+        aix,*) ;;	# no import file
+        svr4,* | *,yes) # use import file
+          # The Import File defines what to hardcode.
+          _LT_TAGVAR(hardcode_direct, $1)=no
+          _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+          ;;
+        esac
+
+        if test yes = "$GXX"; then
+          case $host_os in aix4.[[012]]|aix4.[[012]].*)
+          # We only want to do this on AIX 4.2 and lower, the check
+          # below for broken collect2 doesn't work under 4.3+
+	  collect2name=`$CC -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	    # We have reworked collect2
+	    :
+	  else
+	    # We have old collect2
+	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	    # It fails to find uninstalled libraries when the uninstalled
+	    # path is not listed in the libpath.  Setting hardcode_minus_L
+	    # to unsupported forces relinking
+	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+          esac
+          shared_flag='-shared'
+	  if test yes = "$aix_use_runtimelinking"; then
+	    shared_flag=$shared_flag' $wl-G'
+	  fi
+	  # Need to ensure runtime linking is disabled for the traditional
+	  # shared library, or the linker may eventually find shared libraries
+	  # /with/ Import File - we do not want to mix them.
+	  shared_flag_aix='-shared'
+	  shared_flag_svr4='-shared $wl-G'
+        else
+          # not using gcc
+          if test ia64 = "$host_cpu"; then
+	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	  # chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+          else
+	    if test yes = "$aix_use_runtimelinking"; then
+	      shared_flag='$wl-G'
+	    else
+	      shared_flag='$wl-bM:SRE'
+	    fi
+	    shared_flag_aix='$wl-bM:SRE'
+	    shared_flag_svr4='$wl-G'
+          fi
+        fi
+
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
+        # It seems that -bexpall does not export symbols beginning with
+        # underscore (_), so it is better to generate a list of symbols to
+	# export.
+        _LT_TAGVAR(always_export_symbols, $1)=yes
+	if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+          # Warning - without using the other runtime loading flags (-brtl),
+          # -berok will link without error, but may produce a broken library.
+          # The "-G" linker flag allows undefined symbols.
+          _LT_TAGVAR(no_undefined_flag, $1)='-bernotok'
+          # Determine the default libpath from the value encoded in an empty
+          # executable.
+          _LT_SYS_MODULE_PATH_AIX([$1])
+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+        else
+          if test ia64 = "$host_cpu"; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
+	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+          else
+	    # Determine the default libpath from the value encoded in an
+	    # empty executable.
+	    _LT_SYS_MODULE_PATH_AIX([$1])
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+	    # Warning - without using the other run time loading flags,
+	    # -berok will link without error, but may produce a broken library.
+	    _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+	    _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+	    if test yes = "$with_gnu_ld"; then
+	      # We only use this code for GNU lds that support --whole-archive.
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+	    else
+	      # Exported symbols can be pulled into shared objects from archives
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	    fi
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+	    # -brtl affects multiple linker settings, -berok does not and is overridden later
+	    compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+	    if test svr4 != "$with_aix_soname"; then
+	      # This is similar to how AIX traditionally builds its shared
+	      # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
+	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+	    fi
+	    if test aix != "$with_aix_soname"; then
+	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+	    else
+	      # used by -dlpreopen to get the symbols
+	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+	    fi
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
+          fi
+        fi
+        ;;
+
+      beos*)
+	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	  # support --undefined.  This deserves some investigation.  FIXME
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      chorus*)
+        case $cc_basename in
+          *)
+	  # FIXME: insert proper C++ library support
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	  ;;
+        esac
+        ;;
+
+      cygwin* | mingw* | pw32* | cegcc*)
+	case $GXX,$cc_basename in
+	,cl* | no,cl*)
+	  # Native MSVC
+	  # hardcode_libdir_flag_spec is actually meaningless, as there is
+	  # no search path for DLLs.
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  _LT_TAGVAR(always_export_symbols, $1)=yes
+	  _LT_TAGVAR(file_list_spec, $1)='@'
+	  # Tell ltmain to make .lib files, not .a files.
+	  libext=lib
+	  # Tell ltmain to make .dll files, not .so files.
+	  shrext_cmds=.dll
+	  # FIXME: Setting linknames here is a bad hack.
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+              cp "$export_symbols" "$output_objdir/$soname.def";
+              echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+            else
+              $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+            fi~
+            $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+            linknames='
+	  # The linker will not automatically build a static lib if we build a DLL.
+	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	  # Don't use ranlib
+	  _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+	  _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+            lt_tool_outputfile="@TOOL_OUTPUT@"~
+            case $lt_outputfile in
+              *.exe|*.EXE) ;;
+              *)
+                lt_outputfile=$lt_outputfile.exe
+                lt_tool_outputfile=$lt_tool_outputfile.exe
+                ;;
+            esac~
+            func_to_tool_file "$lt_outputfile"~
+            if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+              $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+              $RM "$lt_outputfile.manifest";
+            fi'
+	  ;;
+	*)
+	  # g++
+	  # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+	  # as there is no search path for DLLs.
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  _LT_TAGVAR(always_export_symbols, $1)=no
+	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	    # If the export-symbols file already is a .def file, use it as
+	    # is; otherwise, prepend EXPORTS...
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+              cp $export_symbols $output_objdir/$soname.def;
+            else
+              echo EXPORTS > $output_objdir/$soname.def;
+              cat $export_symbols >> $output_objdir/$soname.def;
+            fi~
+            $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	  else
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	  ;;
+	esac
+	;;
+      darwin* | rhapsody*)
+        _LT_DARWIN_LINKER_FEATURES($1)
+	;;
+
+      os2*)
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	_LT_TAGVAR(hardcode_minus_L, $1)=yes
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	shrext_cmds=.dll
+	_LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	  $ECHO EXPORTS >> $output_objdir/$libname.def~
+	  emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	  emximp -o $lib $output_objdir/$libname.def'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	  $ECHO EXPORTS >> $output_objdir/$libname.def~
+	  prefix_cmds="$SED"~
+	  if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	    prefix_cmds="$prefix_cmds -e 1d";
+	  fi~
+	  prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	  cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	  emximp -o $lib $output_objdir/$libname.def'
+	_LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	;;
+
+      dgux*)
+        case $cc_basename in
+          ec++*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          ghcx*)
+	    # Green Hills C++ Compiler
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      freebsd2.*)
+        # C++ shared libraries reported to be fairly broken before
+	# switch to ELF
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      freebsd-elf*)
+        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        ;;
+
+      freebsd* | dragonfly*)
+        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+        # conventions
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+        ;;
+
+      haiku*)
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        ;;
+
+      hpux9*)
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				             # but as the default
+				             # location of the library.
+
+        case $cc_basename in
+          CC*)
+            # FIXME: insert proper C++ library support
+            _LT_TAGVAR(ld_shlibs, $1)=no
+            ;;
+          aCC*)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+            # Commands to make compiler produce verbose output that lists
+            # what "hidden" libraries, object files and flags are used when
+            # linking a shared library.
+            #
+            # There doesn't appear to be a way to prevent this compiler from
+            # explicitly linking system object files so we need to strip them
+            # from the output so that they don't get included in the library
+            # dependencies.
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+            ;;
+          *)
+            if test yes = "$GXX"; then
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+            else
+              # FIXME: insert proper C++ library support
+              _LT_TAGVAR(ld_shlibs, $1)=no
+            fi
+            ;;
+        esac
+        ;;
+
+      hpux10*|hpux11*)
+        if test no = "$with_gnu_ld"; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+          case $host_cpu in
+            hppa*64*|ia64*)
+              ;;
+            *)
+	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+              ;;
+          esac
+        fi
+        case $host_cpu in
+          hppa*64*|ia64*)
+            _LT_TAGVAR(hardcode_direct, $1)=no
+            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+            ;;
+          *)
+            _LT_TAGVAR(hardcode_direct, $1)=yes
+            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					         # but as the default
+					         # location of the library.
+            ;;
+        esac
+
+        case $cc_basename in
+          CC*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          aCC*)
+	    case $host_cpu in
+	      hppa*64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      ia64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      *)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	    esac
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    ;;
+          *)
+	    if test yes = "$GXX"; then
+	      if test no = "$with_gnu_ld"; then
+	        case $host_cpu in
+	          hppa*64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          ia64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          *)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	        esac
+	      fi
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      interix[[3-9]]*)
+	_LT_TAGVAR(hardcode_direct, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+	# Instead, shared libraries are loaded at an image base (0x10000000 by
+	# default) and relocated if they conflict, which is a slow very memory
+	# consuming and fragmenting process.  To avoid this, we pick a random,
+	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	;;
+      irix5* | irix6*)
+        case $cc_basename in
+          CC*)
+	    # SGI C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    if test yes = "$GXX"; then
+	      if test no = "$with_gnu_ld"; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+	      else
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
+	      fi
+	    fi
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+	    ;;
+        esac
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(inherit_rpath, $1)=yes
+        ;;
+
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	    ;;
+	  icpc* | ecpc* )
+	    # Intel C++
+	    with_gnu_ld=yes
+	    # version 8.0 and above of icpc choke on multiply defined symbols
+	    # if we add $predep_objects and $postdep_objects, however 7.1 and
+	    # earlier do not add the objects themselves.
+	    case `$CC -V 2>&1` in
+	      *"Version 7."*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	      *)  # Version 8.0 or newer
+	        tmp_idyn=
+	        case $host_cpu in
+		  ia64*) tmp_idyn=' -i_dynamic';;
+		esac
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	    esac
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+	    ;;
+          pgCC* | pgcpp*)
+            # Portland Group C++ compiler
+	    case `$CC -V` in
+	    *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
+	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+                $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+                $RANLIB $oldlib'
+	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+	      ;;
+	    *) # Version 6 and above use weak symbols
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+	      ;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+            ;;
+	  cxx*)
+	    # Compaq C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname  -o $lib $wl-retain-symbols-file $wl$export_symbols'
+
+	    runpath_var=LD_RUN_PATH
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+	    ;;
+	  xl* | mpixl* | bgxl*)
+	    # IBM XL 8.0 on PPC, with GNU ld
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	    if test yes = "$supports_anon_versioning"; then
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+                cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+                echo "local: *; };" >> $output_objdir/$libname.ver~
+                $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+	    fi
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	      _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+	      # Not sure whether something based on
+	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+	      # would be better.
+	      output_verbose_link_cmd='func_echo_all'
+
+	      # Archives containing C++ object files must be created using
+	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	      # necessary to make sure instantiated templates are included
+	      # in the archive.
+	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+
+      lynxos*)
+        # FIXME: insert proper C++ library support
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      m88k*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      mvs*)
+        case $cc_basename in
+          cxx*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	  *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	esac
+	;;
+
+      netbsd*)
+        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+	  wlarc=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	fi
+	# Workaround some broken pre-1.5 toolchains
+	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+	;;
+
+      *nto* | *qnx*)
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+	;;
+
+      openbsd* | bitrig*)
+	if test -f /usr/libexec/ld.so; then
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+	  fi
+	  output_verbose_link_cmd=func_echo_all
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      osf3* | osf4* | osf5*)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Archives containing C++ object files must be created using
+	    # the KAI C++ compiler.
+	    case $host in
+	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+	    esac
+	    ;;
+          RCC*)
+	    # Rational C++ 2.4.1
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          cxx*)
+	    case $host in
+	      osf3*)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+		;;
+	      *)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+                  echo "-hidden">> $lib.exp~
+                  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
+                  $RM $lib.exp'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+		;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    ;;
+	  *)
+	    if test yes,no = "$GXX,$with_gnu_ld"; then
+	      _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+	      case $host in
+	        osf3*)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+		  ;;
+	        *)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+		  ;;
+	      esac
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	      # Commands to make compiler produce verbose output that lists
+	      # what "hidden" libraries, object files and flags are used when
+	      # linking a shared library.
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      psos*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      sunos4*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.x
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          lcc*)
+	    # Lucid
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      solaris*)
+        case $cc_basename in
+          CC* | sunCC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+              $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	    case $host_os in
+	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	      *)
+		# The compiler driver will combine and reorder linker options,
+		# but understands '-z linker_flag'.
+	        # Supported since Solaris 2.6 (maybe 2.5.1?)
+		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	        ;;
+	    esac
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+	    output_verbose_link_cmd='func_echo_all'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	    ;;
+          gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+
+	    # The C++ compiler must be used to create the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    # GNU C++ compiler with Solaris linker
+	    if test yes,no = "$GXX,$with_gnu_ld"; then
+	      _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
+	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+                  $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	      else
+	        # g++ 2.7 appears to require '-G' NOT '-shared' on this
+	        # platform.
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+                  $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	      fi
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
+	      case $host_os in
+		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+		*)
+		  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+		  ;;
+	      esac
+	    fi
+	    ;;
+        esac
+        ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      case $cc_basename in
+        CC*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+      esac
+      ;;
+
+      sysv5* | sco3.2v5* | sco5v6*)
+	# Note: We CANNOT use -z defs as we might desire, because we do not
+	# link with -lc, and that would cause any symbols used from libc to
+	# always be unresolved, which means just about no library would
+	# ever link correctly.  If we're not using GNU ld we use -z text
+	# though, which does catch some bad symbols but isn't as heavy-handed
+	# as -z defs.
+	_LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+	_LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
+	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+	_LT_TAGVAR(link_all_deplibs, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
+	runpath_var='LD_RUN_PATH'
+
+	case $cc_basename in
+          CC*)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+              '"$_LT_TAGVAR(old_archive_cmds, $1)"
+	    _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+              '"$_LT_TAGVAR(reload_cmds, $1)"
+	    ;;
+	  *)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	esac
+      ;;
+
+      tandem*)
+        case $cc_basename in
+          NCC*)
+	    # NonStop-UX NCC 3.20
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      vxworks*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      *)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+    esac
+
+    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+    test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
+
+    _LT_TAGVAR(GCC, $1)=$GXX
+    _LT_TAGVAR(LD, $1)=$LD
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+  LDCXX=$LD
+  LD=$lt_save_LD
+  GCC=$lt_save_GCC
+  with_gnu_ld=$lt_save_with_gnu_ld
+  lt_cv_path_LDCXX=$lt_cv_path_LD
+  lt_cv_path_LD=$lt_save_path_LD
+  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test yes != "$_lt_caught_CXX_error"
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+  case @S|@2 in
+  .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;;
+  *)  func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;;
+  esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+_LT_EOF
+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
+package foo
+func foo() {
+}
+_LT_EOF
+])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  for p in `eval "$output_verbose_link_cmd"`; do
+    case $prev$p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test x-L = "$p" ||
+          test x-R = "$p"; then
+	 prev=$p
+	 continue
+       fi
+
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
+       if test no = "$pre_test_object_deps_done"; then
+	 case $prev in
+	 -L | -R)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p
+	   else
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+	   _LT_TAGVAR(postdeps, $1)=$prev$p
+	 else
+	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p"
+	 fi
+       fi
+       prev=
+       ;;
+
+    *.lto.$objext) ;; # Ignore GCC LTO objects
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test no = "$pre_test_object_deps_done"; then
+	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+	   _LT_TAGVAR(predep_objects, $1)=$p
+	 else
+	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+	   _LT_TAGVAR(postdep_objects, $1)=$p
+	 else
+	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_TAGVAR(predep_objects,$1)=
+  _LT_TAGVAR(postdep_objects,$1)=
+  _LT_TAGVAR(postdeps,$1)=
+  ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+    [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+    [Dependencies to place before and after the objects being linked to
+    create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+    [The library search path used internally by the compiler when linking
+    a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test no = "$F77"; then
+  _lt_disable_F77=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_disable_F77"; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
+  CC=${F77-"f77"}
+  CFLAGS=$FFLAGS
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+  GCC=$G77
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test no = "$can_build_shared" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test yes = "$enable_shared" && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test ia64 != "$host_cpu"; then
+	  case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+	  yes,aix,yes) ;;		# shared object as lib.so file only
+	  yes,svr4,*) ;;		# shared object as lib.so archive member only
+	  yes,*) enable_static=no ;;	# shared object in lib.a archive as well
+	  esac
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test yes = "$enable_shared" || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)=$G77
+    _LT_TAGVAR(LD, $1)=$LD
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+fi # test yes != "$_lt_disable_F77"
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test no = "$FC"; then
+  _lt_disable_FC=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_disable_FC"; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
+  CC=${FC-"f95"}
+  CFLAGS=$FCFLAGS
+  compiler=$CC
+  GCC=$ac_cv_fc_compiler_gnu
+
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test no = "$can_build_shared" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test yes = "$enable_shared" && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test ia64 != "$host_cpu"; then
+	  case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+	  yes,aix,yes) ;;		# shared object as lib.so file only
+	  yes,svr4,*) ;;		# shared object as lib.so archive member only
+	  yes,*) enable_static=no ;;	# shared object in lib.a archive as well
+	  esac
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test yes = "$enable_shared" || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu
+    _LT_TAGVAR(LD, $1)=$LD
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+fi # test yes != "$_lt_disable_FC"
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)=$LD
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_GO_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Go compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_GO_CONFIG],
+[AC_REQUIRE([LT_PROG_GO])dnl
+AC_LANG_SAVE
+
+# Source file extension for Go test sources.
+ac_ext=go
+
+# Object file extension for compiled Go test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="package main; func main() { }"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='package main; func main() { }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GOC-"gccgo"}
+CFLAGS=$GOFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)=$LD
+_LT_CC_BASENAME([$compiler])
+
+# Go did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GO_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code=$lt_simple_compile_test_code
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+CFLAGS=
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+  :
+  _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+    [AC_CHECK_TOOL(GCJ, gcj,)
+      test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2"
+      AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_GO
+# ----------
+AC_DEFUN([LT_PROG_GO],
+[AC_CHECK_TOOL(GOC, gccgo,)
+])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f "$lt_ac_sed" && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test 10 -lt "$lt_ac_count" && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test "$lt_ac_count" -gt "$lt_ac_max"; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine what file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
+    ;;
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
+    ;;
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+         [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
+])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+         [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
+
+# Helper functions for option handling.                    -*- Autoconf -*-
+#
+#   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
+#   Foundation, Inc.
+#   Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 8 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+        _LT_MANGLE_DEFUN([$1], [$2]),
+    [m4_warning([Unknown $1 option '$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+		      [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME.  If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+    [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+  dnl
+  dnl Simply set some default values (i.e off) if boolean options were not
+  dnl specified:
+  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+  ])
+  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+  ])
+  dnl
+  dnl If no reference was made to various pairs of opposing options, then
+  dnl we run the default mode handler for the pair.  For example, if neither
+  dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
+  dnl archives by default:
+  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+		   [_LT_ENABLE_FAST_INSTALL])
+  _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
+		   [_LT_WITH_AIX_SONAME([aix])])
+  ])
+])# _LT_SET_OPTIONS
+
+
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS],      [1], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the 'shared' and
+# 'disable-shared' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+      for pkg in $enableval; do
+	IFS=$lt_save_ifs
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS=$lt_save_ifs
+      ;;
+    esac],
+    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+    _LT_DECL([build_libtool_libs], [enable_shared], [0],
+	[Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the 'static' and
+# 'disable-static' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+      for pkg in $enableval; do
+	IFS=$lt_save_ifs
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS=$lt_save_ifs
+      ;;
+    esac],
+    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+    _LT_DECL([build_old_libs], [enable_static], [0],
+	[Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the 'fast-install'
+# and 'disable-fast-install' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+      for pkg in $enableval; do
+	IFS=$lt_save_ifs
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS=$lt_save_ifs
+      ;;
+    esac],
+    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+	 [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_AIX_SONAME([DEFAULT])
+# ----------------------------------
+# implement the --with-aix-soname flag, and support the `aix-soname=aix'
+# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
+# is either `aix', `both' or `svr4'.  If omitted, it defaults to `aix'.
+m4_define([_LT_WITH_AIX_SONAME],
+[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
+shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[[5-9]]*,yes)
+  AC_MSG_CHECKING([which variant of shared library versioning to provide])
+  AC_ARG_WITH([aix-soname],
+    [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
+      [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
+    [case $withval in
+    aix|svr4|both)
+      ;;
+    *)
+      AC_MSG_ERROR([Unknown argument to --with-aix-soname])
+      ;;
+    esac
+    lt_cv_with_aix_soname=$with_aix_soname],
+    [AC_CACHE_VAL([lt_cv_with_aix_soname],
+      [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
+    with_aix_soname=$lt_cv_with_aix_soname])
+  AC_MSG_RESULT([$with_aix_soname])
+  if test aix != "$with_aix_soname"; then
+    # For the AIX way of multilib, we name the shared archive member
+    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+    # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+    # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+    # the AIX toolchain works better with OBJECT_MODE set (default 32).
+    if test 64 = "${OBJECT_MODE-32}"; then
+      shared_archive_member_spec=shr_64
+    else
+      shared_archive_member_spec=shr
+    fi
+  fi
+  ;;
+*)
+  with_aix_soname=aix
+  ;;
+esac
+
+_LT_DECL([], [shared_archive_member_spec], [0],
+    [Shared archive member basename, for filename based shared library versioning on AIX])dnl
+])# _LT_WITH_AIX_SONAME
+
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
+# LT_INIT options.
+# MODE is either 'yes' or 'no'.  If omitted, it defaults to 'both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+      for lt_pkg in $withval; do
+	IFS=$lt_save_ifs
+	if test "X$lt_pkg" = "X$lt_p"; then
+	  pic_mode=yes
+	fi
+      done
+      IFS=$lt_save_ifs
+      ;;
+    esac],
+    [pic_mode=m4_default([$1], [default])])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+		 [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+		 [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+		 [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+		 [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+		 [m4_define([_LTDL_TYPE], [convenience])])
+
+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+#
+# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
+# Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+       [$#], [2], [[$2]],
+       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59, which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+       [$#], 1, [],
+       [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+	     [m4_foreach([_Lt_suffix],
+		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+		 [lt_append([$1], [$2], [$3])$4],
+		 [$5])],
+	  [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+	[$5],
+    [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+  [lt_join(m4_quote(m4_default([$4], [[, ]])),
+           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
+
+# ltversion.m4 -- version numbers			-*- Autoconf -*-
+#
+#   Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# @configure_input@
+
+# serial 4179 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.4.6])
+m4_define([LT_PACKAGE_REVISION], [2.4.6])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.4.6'
+macro_revision='2.4.6'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
+
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+#
+#   Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
+#   Foundation, Inc.
+#   Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 5 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else.  This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],	[AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP],		[AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],	[AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77],		[AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])])
+
 # Get XAPIAN_CXXFLAGS, XAPIAN_LIBS, and XAPIAN_VERSION from xapian-config and
 # AC_SUBST() them.
 
diff --git a/config.guess b/config.guess
index 69188da73d74371bc500cc82b4d00a583e21ef3d..f6d217a49f8f4a664e1437306f3c4196793dcb35 100644
--- a/config.guess
+++ b/config.guess
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2023 Free Software Foundation, Inc.
+#   Copyright 1992-2024 Free Software Foundation, Inc.
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2023-01-01'
+timestamp='2024-01-01'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -47,7 +47,7 @@ me=`echo "$0" | sed -e 's,.*/,,'`
 usage="\
 Usage: $0 [OPTION]
 
-Output the configuration name of the system \`$me' is run on.
+Output the configuration name of the system '$me' is run on.
 
 Options:
   -h, --help         print this help, then exit
@@ -60,13 +60,13 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2023 Free Software Foundation, Inc.
+Copyright 1992-2024 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 
 help="
-Try \`$me --help' for more information."
+Try '$me --help' for more information."
 
 # Parse command line
 while test $# -gt 0 ; do
@@ -102,8 +102,8 @@ GUESS=
 # temporary files to be created and, as you can see below, it is a
 # headache to deal with in a portable fashion.
 
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
+# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still
+# use 'HOST_CC' if defined, but it is deprecated.
 
 # Portable tmp directory creation inspired by the Autoconf team.
 
@@ -155,6 +155,9 @@ Linux|GNU|GNU/*)
 
 	set_cc_for_build
 	cat <<-EOF > "$dummy.c"
+	#if defined(__ANDROID__)
+	LIBC=android
+	#else
 	#include <features.h>
 	#if defined(__UCLIBC__)
 	LIBC=uclibc
@@ -162,6 +165,8 @@ Linux|GNU|GNU/*)
 	LIBC=dietlibc
 	#elif defined(__GLIBC__)
 	LIBC=gnu
+	#elif defined(__LLVM_LIBC__)
+	LIBC=llvm
 	#else
 	#include <stdarg.h>
 	/* First heuristic to detect musl libc.  */
@@ -169,6 +174,7 @@ Linux|GNU|GNU/*)
 	LIBC=musl
 	#endif
 	#endif
+	#endif
 	EOF
 	cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
 	eval "$cc_set_libc"
@@ -459,7 +465,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
 		UNAME_RELEASE=`uname -v`
 		;;
 	esac
-	# Japanese Language versions have a version number like `4.1.3-JL'.
+	# Japanese Language versions have a version number like '4.1.3-JL'.
 	SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
 	GUESS=sparc-sun-sunos$SUN_REL
 	;;
@@ -904,7 +910,7 @@ EOF
 	fi
 	;;
     *:FreeBSD:*:*)
-	UNAME_PROCESSOR=`/usr/bin/uname -p`
+	UNAME_PROCESSOR=`uname -p`
 	case $UNAME_PROCESSOR in
 	    amd64)
 		UNAME_PROCESSOR=x86_64 ;;
@@ -976,7 +982,27 @@ EOF
 	GUESS=$UNAME_MACHINE-unknown-minix
 	;;
     aarch64:Linux:*:*)
-	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	set_cc_for_build
+	CPU=$UNAME_MACHINE
+	LIBCABI=$LIBC
+	if test "$CC_FOR_BUILD" != no_compiler_found; then
+	    ABI=64
+	    sed 's/^	    //' << EOF > "$dummy.c"
+	    #ifdef __ARM_EABI__
+	    #ifdef __ARM_PCS_VFP
+	    ABI=eabihf
+	    #else
+	    ABI=eabi
+	    #endif
+	    #endif
+EOF
+	    cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+	    eval "$cc_set_abi"
+	    case $ABI in
+		eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;;
+	    esac
+	fi
+	GUESS=$CPU-unknown-linux-$LIBCABI
 	;;
     aarch64_be:Linux:*:*)
 	UNAME_MACHINE=aarch64_be
@@ -1042,6 +1068,15 @@ EOF
     k1om:Linux:*:*)
 	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
 	;;
+    kvx:Linux:*:*)
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
+    kvx:cos:*:*)
+	GUESS=$UNAME_MACHINE-unknown-cos
+	;;
+    kvx:mbr:*:*)
+	GUESS=$UNAME_MACHINE-unknown-mbr
+	;;
     loongarch32:Linux:*:* | loongarch64:Linux:*:*)
 	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
 	;;
@@ -1197,7 +1232,7 @@ EOF
 	GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
 	;;
     i*86:OS/2:*:*)
-	# If we were able to find `uname', then EMX Unix compatibility
+	# If we were able to find 'uname', then EMX Unix compatibility
 	# is probably installed.
 	GUESS=$UNAME_MACHINE-pc-os2-emx
 	;;
@@ -1338,7 +1373,7 @@ EOF
 		GUESS=ns32k-sni-sysv
 	fi
 	;;
-    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+    PENTIUM:*:4.0*:*)	# Unisys 'ClearPath HMP IX 4000' SVR4/MP effort
 			# says <Richard.M.Bartel@ccMail.Census.GOV>
 	GUESS=i586-unisys-sysv4
 	;;
@@ -1560,6 +1595,9 @@ EOF
     *:Unleashed:*:*)
 	GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
 	;;
+    *:Ironclad:*:*)
+	GUESS=$UNAME_MACHINE-unknown-ironclad
+	;;
 esac
 
 # Do we have a guess based on uname results?
diff --git a/config.sub b/config.sub
index de4259e4047972f77ffc089796b32e325636c207..2c6a07ab3c34eabed8318ec0a37c0cc23b77a63f 100644
--- a/config.sub
+++ b/config.sub
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2023 Free Software Foundation, Inc.
+#   Copyright 1992-2024 Free Software Foundation, Inc.
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2023-01-21'
+timestamp='2024-01-01'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -76,13 +76,13 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2023 Free Software Foundation, Inc.
+Copyright 1992-2024 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 
 help="
-Try \`$me --help' for more information."
+Try '$me --help' for more information."
 
 # Parse command line
 while test $# -gt 0 ; do
@@ -130,7 +130,7 @@ IFS=$saved_IFS
 # Separate into logical components for further validation
 case $1 in
 	*-*-*-*-*)
-		echo Invalid configuration \`"$1"\': more than four components >&2
+		echo "Invalid configuration '$1': more than four components" >&2
 		exit 1
 		;;
 	*-*-*-*)
@@ -145,7 +145,8 @@ case $1 in
 			nto-qnx* | linux-* | uclinux-uclibc* \
 			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
 			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
-			| storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
+			| storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
+			| windows-* )
 				basic_machine=$field1
 				basic_os=$maybe_os
 				;;
@@ -943,7 +944,7 @@ $basic_machine
 EOF
 		IFS=$saved_IFS
 		;;
-	# We use `pc' rather than `unknown'
+	# We use 'pc' rather than 'unknown'
 	# because (1) that's what they normally are, and
 	# (2) the word "unknown" tends to confuse beginning users.
 	i*86 | x86_64)
@@ -1180,7 +1181,7 @@ case $cpu-$vendor in
 		case $cpu in
 			1750a | 580 \
 			| a29k \
-			| aarch64 | aarch64_be \
+			| aarch64 | aarch64_be | aarch64c | arm64ec \
 			| abacus \
 			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
 			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
@@ -1199,12 +1200,14 @@ case $cpu-$vendor in
 			| d10v | d30v | dlx | dsp16xx \
 			| e2k | elxsi | epiphany \
 			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+			| javascript \
 			| h8300 | h8500 \
 			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 			| hexagon \
 			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
 			| ip2k | iq2000 \
 			| k1om \
+			| kvx \
 			| le32 | le64 \
 			| lm32 \
 			| loongarch32 | loongarch64 \
@@ -1213,36 +1216,13 @@ case $cpu-$vendor in
 			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
 			| m88110 | m88k | maxq | mb | mcore | mep | metag \
 			| microblaze | microblazeel \
-			| mips | mipsbe | mipseb | mipsel | mipsle \
-			| mips16 \
-			| mips64 | mips64eb | mips64el \
-			| mips64octeon | mips64octeonel \
-			| mips64orion | mips64orionel \
-			| mips64r5900 | mips64r5900el \
-			| mips64vr | mips64vrel \
-			| mips64vr4100 | mips64vr4100el \
-			| mips64vr4300 | mips64vr4300el \
-			| mips64vr5000 | mips64vr5000el \
-			| mips64vr5900 | mips64vr5900el \
-			| mipsisa32 | mipsisa32el \
-			| mipsisa32r2 | mipsisa32r2el \
-			| mipsisa32r3 | mipsisa32r3el \
-			| mipsisa32r5 | mipsisa32r5el \
-			| mipsisa32r6 | mipsisa32r6el \
-			| mipsisa64 | mipsisa64el \
-			| mipsisa64r2 | mipsisa64r2el \
-			| mipsisa64r3 | mipsisa64r3el \
-			| mipsisa64r5 | mipsisa64r5el \
-			| mipsisa64r6 | mipsisa64r6el \
-			| mipsisa64sb1 | mipsisa64sb1el \
-			| mipsisa64sr71k | mipsisa64sr71kel \
-			| mipsr5900 | mipsr5900el \
-			| mipstx39 | mipstx39el \
+			| mips* \
 			| mmix \
 			| mn10200 | mn10300 \
 			| moxie \
 			| mt \
 			| msp430 \
+			| nanomips* \
 			| nds32 | nds32le | nds32be \
 			| nfp \
 			| nios | nios2 | nios2eb | nios2el \
@@ -1274,6 +1254,7 @@ case $cpu-$vendor in
 			| ubicom32 \
 			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
 			| vax \
+			| vc4 \
 			| visium \
 			| w65 \
 			| wasm32 | wasm64 \
@@ -1285,7 +1266,7 @@ case $cpu-$vendor in
 				;;
 
 			*)
-				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+				echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
 				exit 1
 				;;
 		esac
@@ -1306,11 +1287,12 @@ esac
 
 # Decode manufacturer-specific aliases for certain operating systems.
 
-if test x$basic_os != x
+if test x"$basic_os" != x
 then
 
 # First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
 # set os.
+obj=
 case $basic_os in
 	gnu/linux*)
 		kernel=linux
@@ -1510,10 +1492,16 @@ case $os in
 			os=eabi
 			;;
 		    *)
-			os=elf
+			os=
+			obj=elf
 			;;
 		esac
 		;;
+	aout* | coff* | elf* | pe*)
+		# These are machine code file formats, not OSes
+		obj=$os
+		os=
+		;;
 	*)
 		# No normalization, but not necessarily accepted, that comes below.
 		;;
@@ -1532,12 +1520,15 @@ else
 # system, and we'll never get to this point.
 
 kernel=
+obj=
 case $cpu-$vendor in
 	score-*)
-		os=elf
+		os=
+		obj=elf
 		;;
 	spu-*)
-		os=elf
+		os=
+		obj=elf
 		;;
 	*-acorn)
 		os=riscix1.2
@@ -1547,28 +1538,35 @@ case $cpu-$vendor in
 		os=gnu
 		;;
 	arm*-semi)
-		os=aout
+		os=
+		obj=aout
 		;;
 	c4x-* | tic4x-*)
-		os=coff
+		os=
+		obj=coff
 		;;
 	c8051-*)
-		os=elf
+		os=
+		obj=elf
 		;;
 	clipper-intergraph)
 		os=clix
 		;;
 	hexagon-*)
-		os=elf
+		os=
+		obj=elf
 		;;
 	tic54x-*)
-		os=coff
+		os=
+		obj=coff
 		;;
 	tic55x-*)
-		os=coff
+		os=
+		obj=coff
 		;;
 	tic6x-*)
-		os=coff
+		os=
+		obj=coff
 		;;
 	# This must come before the *-dec entry.
 	pdp10-*)
@@ -1590,19 +1588,24 @@ case $cpu-$vendor in
 		os=sunos3
 		;;
 	m68*-cisco)
-		os=aout
+		os=
+		obj=aout
 		;;
 	mep-*)
-		os=elf
+		os=
+		obj=elf
 		;;
 	mips*-cisco)
-		os=elf
+		os=
+		obj=elf
 		;;
-	mips*-*)
-		os=elf
+	mips*-*|nanomips*-*)
+		os=
+		obj=elf
 		;;
 	or32-*)
-		os=coff
+		os=
+		obj=coff
 		;;
 	*-tti)	# must be before sparc entry or we get the wrong os.
 		os=sysv3
@@ -1611,7 +1614,8 @@ case $cpu-$vendor in
 		os=sunos4.1.1
 		;;
 	pru-*)
-		os=elf
+		os=
+		obj=elf
 		;;
 	*-be)
 		os=beos
@@ -1692,10 +1696,12 @@ case $cpu-$vendor in
 		os=uxpv
 		;;
 	*-rom68k)
-		os=coff
+		os=
+		obj=coff
 		;;
 	*-*bug)
-		os=coff
+		os=
+		obj=coff
 		;;
 	*-apple)
 		os=macos
@@ -1713,10 +1719,11 @@ esac
 
 fi
 
-# Now, validate our (potentially fixed-up) OS.
+# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ).
+
 case $os in
 	# Sometimes we do "kernel-libc", so those need to count as OSes.
-	musl* | newlib* | relibc* | uclibc*)
+	llvm* | musl* | newlib* | relibc* | uclibc*)
 		;;
 	# Likewise for "kernel-abi"
 	eabi* | gnueabi*)
@@ -1724,6 +1731,9 @@ case $os in
 	# VxWorks passes extra cpu info in the 4th filed.
 	simlinux | simwindows | spe)
 		;;
+	# See `case $cpu-$os` validation below
+	ghcjs)
+		;;
 	# Now accept the basic system types.
 	# The portable systems comes first.
 	# Each alternative MUST end in a * to match a version number.
@@ -1732,7 +1742,7 @@ case $os in
 	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
 	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
 	     | hiux* | abug | nacl* | netware* | windows* \
-	     | os9* | macos* | osx* | ios* \
+	     | os9* | macos* | osx* | ios* | tvos* | watchos* \
 	     | mpw* | magic* | mmixware* | mon960* | lnews* \
 	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
 	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
@@ -1741,11 +1751,11 @@ case $os in
 	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
 	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
 	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
-	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
-	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+	     | bosx* | nextstep* | cxux* | oabi* \
+	     | ptx* | ecoff* | winnt* | domain* | vsta* \
 	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
 	     | chorusrdb* | cegcc* | glidix* | serenity* \
-	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+	     | cygwin* | msys* | moss* | proelf* | rtems* \
 	     | midipix* | mingw32* | mingw64* | mint* \
 	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
 	     | interix* | uwin* | mks* | rhapsody* | darwin* \
@@ -1758,62 +1768,116 @@ case $os in
 	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
 	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
 	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
-	     | fiwix* | mlibc* )
+	     | fiwix* | mlibc* | cos* | mbr* | ironclad* )
 		;;
 	# This one is extra strict with allowed versions
 	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
 		# Don't forget version if it is 3.2v4 or newer.
 		;;
+	# This refers to builds using the UEFI calling convention
+	# (which depends on the architecture) and PE file format.
+	# Note that this is both a different calling convention and
+	# different file format than that of GNU-EFI
+	# (x86_64-w64-mingw32).
+	uefi)
+		;;
 	none)
 		;;
-	kernel* )
+	kernel* | msvc* )
 		# Restricted further below
 		;;
+	'')
+		if test x"$obj" = x
+		then
+			echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2
+		fi
+		;;
 	*)
-		echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
+		echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
+		exit 1
+		;;
+esac
+
+case $obj in
+	aout* | coff* | elf* | pe*)
+		;;
+	'')
+		# empty is fine
+		;;
+	*)
+		echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2
+		exit 1
+		;;
+esac
+
+# Here we handle the constraint that a (synthetic) cpu and os are
+# valid only in combination with each other and nowhere else.
+case $cpu-$os in
+	# The "javascript-unknown-ghcjs" triple is used by GHC; we
+	# accept it here in order to tolerate that, but reject any
+	# variations.
+	javascript-ghcjs)
+		;;
+	javascript-* | *-ghcjs)
+		echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2
 		exit 1
 		;;
 esac
 
 # As a final step for OS-related things, validate the OS-kernel combination
 # (given a valid OS), if there is a kernel.
-case $kernel-$os in
-	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
-		   | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
+case $kernel-$os-$obj in
+	linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \
+		    | linux-mlibc*- | linux-musl*- | linux-newlib*- \
+		    | linux-relibc*- | linux-uclibc*- )
 		;;
-	uclinux-uclibc* )
+	uclinux-uclibc*- )
 		;;
-	managarm-mlibc* | managarm-kernel* )
+	managarm-mlibc*- | managarm-kernel*- )
 		;;
-	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
+	windows*-msvc*-)
+		;;
+	-dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \
+		    | -uclibc*- )
 		# These are just libc implementations, not actual OSes, and thus
 		# require a kernel.
-		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
+		echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
 		exit 1
 		;;
-	-kernel* )
-		echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
+	-kernel*- )
+		echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
 		exit 1
 		;;
-	*-kernel* )
-		echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
+	*-kernel*- )
+		echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
 		exit 1
 		;;
-	kfreebsd*-gnu* | kopensolaris*-gnu*)
+	*-msvc*- )
+		echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
+		exit 1
 		;;
-	vxworks-simlinux | vxworks-simwindows | vxworks-spe)
+	kfreebsd*-gnu*- | kopensolaris*-gnu*-)
 		;;
-	nto-qnx*)
+	vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
 		;;
-	os2-emx)
+	nto-qnx*-)
+		;;
+	os2-emx-)
+		;;
+	*-eabi*- | *-gnueabi*-)
 		;;
-	*-eabi* | *-gnueabi*)
+	none--*)
+		# None (no kernel, i.e. freestanding / bare metal),
+		# can be paired with an machine code file format
 		;;
-	-*)
+	-*-)
 		# Blank kernel with real OS is always fine.
 		;;
-	*-*)
-		echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
+	--*)
+		# Blank kernel and OS with real machine code file format is always fine.
+		;;
+	*-*-*)
+		echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
 		exit 1
 		;;
 esac
@@ -1896,7 +1960,7 @@ case $vendor in
 		;;
 esac
 
-echo "$cpu-$vendor-${kernel:+$kernel-}$os"
+echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
 exit
 
 # Local variables:
diff --git a/configure b/configure
index 6877b11b1c0d024d262b8e1dffe090fb213fc0a1..0e01744fdf8e082e3964070f051ef17b6182470c 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for xapian-bindings 1.4.22.
+# Generated by GNU Autoconf 2.71 for xapian-bindings 1.4.25.
 #
 # Report bugs to <https://xapian.org/bugs>.
 #
@@ -621,8 +621,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='xapian-bindings'
 PACKAGE_TARNAME='xapian-bindings'
-PACKAGE_VERSION='1.4.22'
-PACKAGE_STRING='xapian-bindings 1.4.22'
+PACKAGE_VERSION='1.4.25'
+PACKAGE_STRING='xapian-bindings 1.4.25'
 PACKAGE_BUGREPORT='https://xapian.org/bugs'
 PACKAGE_URL=''
 
@@ -667,10 +667,13 @@ AUTOM4TE
 SWIG_CXXFLAGS
 THREAD_LOCAL
 BINDINGS
-LUA_CPPFLAGS
-LUA_INC
 LUA_SO
 LUA_LIB
+LUA_LIBS
+LUA_CFLAGS
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
 LUA
 PERL_XAPIAN_VERSION
 PERL_SO
@@ -700,12 +703,14 @@ CLI
 SN
 GACUTIL
 CSC
+TCL_SHLIB_EXT
 TCL_LIBS
 TCL_CPPFLAGS
 TCL_INC
 TCL_LIB
 TCLSH
 PHP_LIBS
+PHP_SHLIB_SUFFIX
 PHP_PATH_SEPARATOR
 PHP_INC
 PHP_EXTENSION_DIR
@@ -759,6 +764,7 @@ ac_ct_CXX
 CXXFLAGS
 CXX
 NO_UNDEFINED
+_libs
 LT_SYS_LIBRARY_PATH
 OTOOL64
 OTOOL
@@ -949,9 +955,13 @@ PERL_ARCH
 PERL_LIB
 PERL_SO
 LUA
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
+LUA_CFLAGS
+LUA_LIBS
 LUA_LIB
 LUA_SO
-LUA_INC
 THREAD_LOCAL'
 
 
@@ -1501,7 +1511,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures xapian-bindings 1.4.22 to adapt to many kinds of systems.
+\`configure' configures xapian-bindings 1.4.25 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1572,7 +1582,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xapian-bindings 1.4.22:";;
+     short | recursive ) echo "Configuration of xapian-bindings 1.4.25:";;
    esac
   cat <<\_ACEOF
 
@@ -1674,9 +1684,15 @@ Some influential environment variables:
   PERL_LIB    Directory to install architecture-independent perl files into
   PERL_SO     Extension for compiled Perl modules
   LUA         lua interpreter
+  PKG_CONFIG  path to pkg-config utility
+  PKG_CONFIG_PATH
+              directories to add to pkg-config's search path
+  PKG_CONFIG_LIBDIR
+              path overriding pkg-config's built-in search path
+  LUA_CFLAGS  C compiler flags for LUA, overriding pkg-config
+  LUA_LIBS    linker flags for LUA, overriding pkg-config
   LUA_LIB     Directory to install compiled Lua modules into
   LUA_SO      Extension for compiled Lua modules (e.g. LUA_SO=.so)
-  LUA_INC     Directory to include for lua headers
   THREAD_LOCAL
               thread-local storage qualifier
 
@@ -1747,7 +1763,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xapian-bindings configure 1.4.22
+xapian-bindings configure 1.4.25
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2122,7 +2138,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xapian-bindings $as_me 1.4.22, which was
+It was created by xapian-bindings $as_me 1.4.25, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3608,7 +3624,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='xapian-bindings'
- VERSION='1.4.22'
+ VERSION='1.4.25'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -9305,10 +9321,6 @@ _lt_linker_boilerplate=`cat conftest.err`
 $RM -r conftest*
 
 
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
 if test -n "$compiler"; then
 
 lt_prog_compiler_no_builtin_flag=
@@ -13119,6 +13131,9 @@ CC=$lt_save_CC
 
 
 
+_libs=$objdir
+
+
 NO_UNDEFINED=
 if test unsupported = "$allow_undefined_flag" ; then
   NO_UNDEFINED=-no-undefined
@@ -16956,9 +16971,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-# Checked: freebsd8.0 openbsd4.6 solaris2.9 solaris2.10
+# Checked: dragonfly6.4 freebsd8.0 openbsd4.6 solaris2.9 solaris2.10
 case $host_os in
-  linux* | k*bsd*-gnu | freebsd* | openbsd* | solaris*)
+  linux* | k*bsd*-gnu | dragonfly* | freebsd* | openbsd* | solaris*)
         link_all_deplibs_CXX=no
     ;;
 esac
@@ -18152,7 +18167,7 @@ darwin*)
       /*) ;;
       *) INTREE_DYLD_PATH=`pwd`/$INTREE_DYLD_PATH ;;
     esac
-        INTREE_DYLD_PATH=`echo "$INTREE_DYLD_PATH"|sed 's,\(.*/\).*,\1,'`$lt_cv_objdir
+        INTREE_DYLD_PATH=`echo "$INTREE_DYLD_PATH"|sed 's,\(.*/\).*,\1,'`$_libs
 
   fi
   ;;
@@ -19299,13 +19314,20 @@ printf %s "checking for PHP path separator... " >&6; }
 
 	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PHP_PATH_SEPARATOR" >&5
 printf "%s\n" "$PHP_PATH_SEPARATOR" >&6; }
+
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PHP shared library suffix" >&5
+printf %s "checking for PHP shared library suffix... " >&6; }
+	PHP_SHLIB_SUFFIX=`$PHP -r 'echo PHP_SHLIB_SUFFIX;'`
+
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PHP_SHLIB_SUFFIX" >&5
+printf "%s\n" "$PHP_SHLIB_SUFFIX" >&6; }
       fi
 
       case $host_os in
       mingw* | pw32*)
 				PHP_LIBS="-L`$PHP_CONFIG --prefix` -lphp${PHP_MAJOR_VERSION}ts" ;;
       cygwin*)
-	PHP_LIBS="-lphp${PHP_MAJOR_VERSION}lib" ;;
+	PHP_LIBS="-lphp${PHP_MAJOR_VERSION}" ;;
       *)
 	PHP_LIBS= ;;
       esac
@@ -19378,7 +19400,7 @@ printf "%s\n" "$tcl_version" >&6; }
 
 
       if test -z "$TCL_LIB" ; then
-	TCL_LIB=`echo 'foreach d $tcl_pkgPath {if {![regexp {/share(/|$)} $d]} {break}};puts $d'|$TCLSH`
+	TCL_LIB=`echo 'if {[info exists tcl_pkgPath]} {foreach d $tcl_pkgPath {if {![regexp {/share(/|$)} $d]} {break}};puts $d}else{foreach d $auto_path {if {![regexp {/share(/|$)} $d]} {break}};puts $d}'|$TCLSH`
       fi
 
 
@@ -19416,71 +19438,26 @@ printf "%s\n" "not found" >&6; }
 	TCLSH=
       fi
 
+      TCL_LIBS=
+      TCL_SHLIB_EXT=
       if test -n "$TCLSH" ; then
-		TCL_LIBS=
-	case $host_os in
-	cygwin*)
-	  as_ac_Lib=`printf "%s\n" "ac_cv_lib_tcl$tcl_version""_Tcl_Init" | $as_tr_sh`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Tcl_Init in -ltcl$tcl_version" >&5
-printf %s "checking for Tcl_Init in -ltcl$tcl_version... " >&6; }
-if eval test \${$as_ac_Lib+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ltcl$tcl_version  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-namespace conftest {
-  extern "C" int Tcl_Init ();
-}
-int
-main (void)
-{
-return conftest::Tcl_Init ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"
-then :
-  eval "$as_ac_Lib=yes"
-else $as_nop
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"
-then :
-  TCL_LIBS="-ltcl$tcl_version"
-else $as_nop
-  as_fn_error $? "libtcl$tcl_version not found" "$LINENO" 5
-fi
-
-	  ;;
-	*)
-	  	  	  tcl_libdir_runtime=`echo 'puts [::tcl::pkgconfig get libdir,runtime]'|$TCLSH 2> /dev/null`
-	  if test -n "$tcl_libdir_runtime" ; then
-	    for x in "/tcl$tcl_version" "" ; do
-	      TCLCONFIG_SH=$tcl_libdir_runtime$x/tclConfig.sh
-	      if test -r "$TCLCONFIG_SH" ; then
-		eval "`sed 's/^TCL_STUB_LIB_SPEC=/TCL_LIBS=/p;d' $TCLCONFIG_SH`"
-		break
-	      fi
-	    done
-	  fi
-	  TCL_CPPFLAGS="$TCL_CPPFLAGS -DUSE_TCL_STUBS" ;;
-	esac
+					tcl_libdir_runtime=`echo 'puts [::tcl::pkgconfig get libdir,runtime]'|$TCLSH 2> /dev/null`
+	if test -n "$tcl_libdir_runtime" ; then
+	  for x in "/tcl$tcl_version" "" ; do
+	    TCLCONFIG_SH=$tcl_libdir_runtime$x/tclConfig.sh
+	    if test -r "$TCLCONFIG_SH" ; then
+	      TCL_LIBS=`. $TCLCONFIG_SH && printf '%s' "$TCL_STUB_LIB_SPEC"`
+	      break
+	    fi
+	  done
+	fi
+	TCL_CPPFLAGS="$TCL_CPPFLAGS -DUSE_TCL_STUBS"
+	TCL_SHLIB_EXT=`echo 'puts [info sharedlibextension]'|$TCLSH 2> /dev/null`
       fi
 
 
 
+
     else
       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: < $tcl_min (too old)" >&5
 printf "%s\n" "< $tcl_min (too old)" >&6; }
@@ -20291,7 +20268,7 @@ then :
   java_ok=yes
 else $as_nop
 
-                        SAVE_CPPFLAGS=$CPPFLAGS
+      SAVE_CPPFLAGS=$CPPFLAGS
       real_javac=$JAVAC
             for count in 1 2 3 4 5 6 7 8 9 ; do
 	r=`readlink "$real_javac"`
@@ -20299,7 +20276,7 @@ else $as_nop
 	real_javac=$r
       done
             rel_jnidir=`echo "$real_javac"|sed 's!/[^/]*/[^/]*$!/include!'`
-      for jnidir in \
+            for jnidir in \
 	  $JNI_INCLUDE_DIR \
 	  ${JAVA_HOME+"$JAVA_HOME/include"} \
 	  ${JDK_HOME+"$JDK_HOME/include"} \
@@ -20579,111 +20556,13 @@ printf "%s\n" "yes" >&6; }
 	fi
 
 
-				if test -n "$RDOC" ; then
-	  for ac_prog in "$RDOC"
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_RDOC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  case $RDOC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RDOC="$RDOC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_path_RDOC="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-RDOC=$ac_cv_path_RDOC
-if test -n "$RDOC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RDOC" >&5
-printf "%s\n" "$RDOC" >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-  test -n "$RDOC" && break
-done
-
-	else
+				if test -z "$RDOC" ; then
 	  	  rdoc_best_guess=`echo "$RUBY"|sed 's,\(.*\)ruby,\1rdoc,'`
-	  for ac_prog in "$rdoc_best_guess"
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_RDOC+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  case $RDOC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RDOC="$RDOC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_path_RDOC="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-RDOC=$ac_cv_path_RDOC
-if test -n "$RDOC"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RDOC" >&5
-printf "%s\n" "$RDOC" >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-  test -n "$RDOC" && break
-done
-
-	  if test -z "$RDOC"; then
-	    for ac_prog in rdoc
+	  if test -x "$rdoc_best_guess" ; then
+	    RDOC=$rdoc_best_guess
+	  fi
+	fi
+	for ac_prog in rdoc
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -20733,8 +20612,6 @@ fi
   test -n "$RDOC" && break
 done
 
-	  fi
-	fi
 	if test -n "$RDOC"; then
 	  BINDINGS="$BINDINGS ruby"
 	fi
@@ -20899,36 +20776,211 @@ done
 
 
   if test -n "$LUA" ; then
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking $LUA version" >&5
-printf %s "checking $LUA version... " >&6; }
-    lua_version=`$LUA -e 'print(_VERSION)' | cut -f 2 -d ' ' 2>&5`
-
-    case $lua_version in
-    [01234].*|5.0|5.0.*)
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lua_version < 5.1 (too old)" >&5
-printf "%s\n" "$lua_version < 5.1 (too old)" >&6; }
-      if test yes = "$with_lua" ; then
-        as_fn_error $? "$LUA too old (Lua 5.1 or newer required)" "$LINENO" 5
-      fi
-      LUA=
-      ;;
-    "")
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \$LUA -e 'print(_VERSION)' | cut -f 2 -d ' ' didn't work" >&5
-printf "%s\n" "\$LUA -e 'print(_VERSION)' | cut -f 2 -d ' ' didn't work" >&6; }
 
-      if test yes = "$with_lua" ; then
-        as_fn_error $? "Working Lua interpreter not found" "$LINENO" 5
-      fi
-      LUA=
-      ;;
-    esac
 
-    if test -n "$LUA" ; then
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lua_version" >&5
-printf "%s\n" "$lua_version" >&6; }
 
 
 
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKG_CONFIG+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+printf "%s\n" "$PKG_CONFIG" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=0.9.0
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+	else
+		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+		PKG_CONFIG=""
+	fi
+fi
+
+pkg_failed=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lua$lua_version >= 5.1" >&5
+printf %s "checking for lua$lua_version >= 5.1... " >&6; }
+
+if test -n "$LUA_CFLAGS"; then
+    pkg_cv_LUA_CFLAGS="$LUA_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua\$lua_version >= 5.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "lua$lua_version >= 5.1") 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LUA_CFLAGS=`$PKG_CONFIG --cflags "lua$lua_version >= 5.1" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$LUA_LIBS"; then
+    pkg_cv_LUA_LIBS="$LUA_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua\$lua_version >= 5.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "lua$lua_version >= 5.1") 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LUA_LIBS=`$PKG_CONFIG --libs "lua$lua_version >= 5.1" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+                LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "lua$lua_version >= 5.1" 2>&1`
+        else
+                LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "lua$lua_version >= 5.1" 2>&1`
+        fi
+        # Put the nasty error message in config.log where it belongs
+        echo "$LUA_PKG_ERRORS" >&5
+
+        LUA=
+elif test $pkg_failed = untried; then
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+        LUA=
+else
+        LUA_CFLAGS=$pkg_cv_LUA_CFLAGS
+        LUA_LIBS=$pkg_cv_LUA_LIBS
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+fi
+
+    if test -n "$LUA" ; then
+
+
       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for directory to install compiled Lua modules into" >&5
 printf %s "checking for directory to install compiled Lua modules into... " >&6; }
       if test -z "$LUA_LIB" -o -z "$LUA_SO" ; then
@@ -20964,6 +21016,7 @@ printf %s "checking for directory to install compiled Lua modules into... " >&6;
       if test -z "$LUA_LIB"; then
 	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
 printf "%s\n" "not found" >&6; }
+	LUA=
       else
 	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LUA_LIB" >&5
 printf "%s\n" "$LUA_LIB" >&6; }
@@ -20975,41 +21028,20 @@ printf %s "checking for extension to use for compiled Lua modules... " >&6; }
       if test -z "$LUA_SO"; then
 	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
 printf "%s\n" "not found" >&6; }
+	LUA=
       else
 	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LUA_SO" >&5
 printf "%s\n" "$LUA_SO" >&6; }
       fi
 
-
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Lua header files" >&5
-printf %s "checking for Lua header files... " >&6; }
-
-      if test -z "$LUA_INC" ; then
-        dirs="/usr/include/lua$lua_version /usr/local/include/lua$lua_version"
-        for i in $dirs ; do
-          if test -r "$i/lua.h"; then
-            LUA_INC=$i
-            break
-          fi
-        done
-      fi
-
-      if test -z "$LUA_INC" ; then
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-printf "%s\n" "not found" >&6; }
-      else
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LUA_INC" >&5
-printf "%s\n" "$LUA_INC" >&6; }
-        BINDINGS="$BINDINGS lua"
-        LUA_CPPFLAGS="-I$LUA_INC"
-      fi
-
-    fi
-  else
-    if test yes = "$with_lua" ; then
-      as_fn_error $? "lua not found" "$LINENO" 5
     fi
   fi
+
+  if test -n "$LUA" ; then
+    BINDINGS="$BINDINGS lua"
+  elif test yes = "$with_lua" ; then
+    as_fn_error $? "lua not found" "$LINENO" 5
+  fi
 fi
 
 
@@ -21641,7 +21673,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xapian-bindings $as_me 1.4.22, which was
+This file was extended by xapian-bindings $as_me 1.4.25, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -21709,7 +21741,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-xapian-bindings config.status 1.4.22
+xapian-bindings config.status 1.4.25
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index c4429e2366cf5a8c3e2eb3f81b51bc516d892c93..01c0d5be96ce6cc2eb1bb0e235562234daf3896e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ dnl See xapian-core's HACKING document for details of the reasons for required
 dnl versions.
 AC_PREREQ([2.63])
 
-m4_define([project_version], [1.4.22])
+m4_define([project_version], [1.4.25])
 AC_INIT([xapian-bindings], project_version, [https://xapian.org/bugs])
 
 dnl See xapian-core's HACKING document for details of the reasons for required
@@ -23,6 +23,10 @@ dnl the bindings only have a use for dynamic ones.
 LT_PREREQ([2.2.6])
 LT_INIT([disable-static])
 
+dnl Make the name of libtool's `.libs`/`_libs` available in makefiles.
+_libs=$objdir
+AC_SUBST([_libs])
+
 dnl -no-undefined causes problems on macOS with at least some
 dnl MACOSX_DEPLOYMENT_TARGET settings, so only pass -no-undefined on
 dnl platforms where it is required in order to link a shared library at
@@ -36,9 +40,9 @@ AC_SUBST(NO_UNDEFINED)
 dnl Checks for programs.
 AC_PROG_CXX
 
-# Checked: freebsd8.0 openbsd4.6 solaris2.9 solaris2.10
+# Checked: dragonfly6.4 freebsd8.0 openbsd4.6 solaris2.9 solaris2.10
 case $host_os in
-  linux* | k*bsd*-gnu | freebsd* | openbsd* | solaris*)
+  linux* | k*bsd*-gnu | dragonfly* | freebsd* | openbsd* | solaris*)
     dnl Vanilla libtool sets this to "unknown" which it then handles as "yes".
     link_all_deplibs_CXX=no
     ;;
@@ -89,7 +93,7 @@ darwin*)
       *) INTREE_DYLD_PATH=`pwd`/$INTREE_DYLD_PATH ;;
     esac
     dnl Add .libs or equivalent.
-    INTREE_DYLD_PATH=`echo "$INTREE_DYLD_PATH"|sed 's,\(.*/\).*,\1,'`$lt_cv_objdir
+    INTREE_DYLD_PATH=`echo "$INTREE_DYLD_PATH"|sed 's,\(.*/\).*,\1,'`$_libs
     AC_SUBST([INTREE_DYLD_PATH])
   fi
   ;;
@@ -555,6 +559,11 @@ if test no != "$with_php" ; then
 	PHP_PATH_SEPARATOR=`$PHP -r 'echo PATH_SEPARATOR;'`
 	AC_SUBST([PHP_PATH_SEPARATOR])
 	AC_MSG_RESULT([$PHP_PATH_SEPARATOR])
+
+	AC_MSG_CHECKING([for PHP shared library suffix])
+	PHP_SHLIB_SUFFIX=`$PHP -r 'echo PHP_SHLIB_SUFFIX;'`
+	AC_SUBST([PHP_SHLIB_SUFFIX])
+	AC_MSG_RESULT([$PHP_SHLIB_SUFFIX])
       fi
 
       case $host_os in
@@ -564,7 +573,7 @@ if test no != "$with_php" ; then
 	dnl there.  FIXME.
 	PHP_LIBS="-L`$PHP_CONFIG --prefix` -lphp${PHP_MAJOR_VERSION}ts" ;;
       cygwin*)
-	PHP_LIBS="-lphp${PHP_MAJOR_VERSION}lib" ;;
+	PHP_LIBS="-lphp${PHP_MAJOR_VERSION}" ;;
       *)
 	PHP_LIBS= ;;
       esac
@@ -597,7 +606,7 @@ if test no != "$with_tcl" ; then
 
       AC_ARG_VAR(TCL_LIB, [Directory to install Tcl files into])
       if test -z "$TCL_LIB" ; then
-	[TCL_LIB=`echo 'foreach d $tcl_pkgPath {if {![regexp {/share(/|$)} $d]} {break}};puts $d'|$TCLSH`]
+	[TCL_LIB=`echo 'if {[info exists tcl_pkgPath]} {foreach d $tcl_pkgPath {if {![regexp {/share(/|$)} $d]} {break}};puts $d}else{foreach d $auto_path {if {![regexp {/share(/|$)} $d]} {break}};puts $d}'|$TCLSH`]
       fi
       AC_SUBST(TCL_LIB)
 
@@ -634,34 +643,30 @@ if test no != "$with_tcl" ; then
 	TCLSH=
       fi
 
+      TCL_LIBS=
+      TCL_SHLIB_EXT=
       if test -n "$TCLSH" ; then
-	dnl Cygwin needs to link with -ltcl8.5 or similar.
-	TCL_LIBS=
-	case $host_os in
-	cygwin*)
-	  AC_CHECK_LIB([tcl$tcl_version], [Tcl_Init],
-		       [TCL_LIBS="-ltcl$tcl_version"],
-		       [AC_MSG_ERROR([libtcl$tcl_version not found])])
-	  ;;
-	*)
-	  dnl ::tcl::pkgconfig was added in Tcl 8.5, but prior to 8.6 it isn't
-	  dnl necessary to link against -ltclstub anyway.
-	  [tcl_libdir_runtime=`echo 'puts [::tcl::pkgconfig get libdir,runtime]'|$TCLSH 2> /dev/null`]
-	  if test -n "$tcl_libdir_runtime" ; then
-	    for x in "/tcl$tcl_version" "" ; do
-	      TCLCONFIG_SH=$tcl_libdir_runtime$x/tclConfig.sh
-	      if test -r "$TCLCONFIG_SH" ; then
-		eval "`sed 's/^TCL_STUB_LIB_SPEC=/TCL_LIBS=/p;d' $TCLCONFIG_SH`"
-		break
-	      fi
-	    done
-	  fi
-	  TCL_CPPFLAGS="$TCL_CPPFLAGS -DUSE_TCL_STUBS" ;;
-	esac
+	dnl ::tcl::pkgconfig was added in Tcl 8.5.  Prior to 8.6 it's only
+	dnl actually necessary to link against -ltclstub on platforms which
+	dnl don't allow libraries to have unresolved symbols (cygwin, mingw,
+	dnl msvc, etc)
+	[tcl_libdir_runtime=`echo 'puts [::tcl::pkgconfig get libdir,runtime]'|$TCLSH 2> /dev/null`]
+	if test -n "$tcl_libdir_runtime" ; then
+	  for x in "/tcl$tcl_version" "" ; do
+	    TCLCONFIG_SH=$tcl_libdir_runtime$x/tclConfig.sh
+	    if test -r "$TCLCONFIG_SH" ; then
+	      TCL_LIBS=`. $TCLCONFIG_SH && printf '%s' "$TCL_STUB_LIB_SPEC"`
+	      break
+	    fi
+	  done
+	fi
+	TCL_CPPFLAGS="$TCL_CPPFLAGS -DUSE_TCL_STUBS"
+	[TCL_SHLIB_EXT=`echo 'puts [info sharedlibextension]'|$TCLSH 2> /dev/null`]
       fi
 
       AC_SUBST(TCL_CPPFLAGS)
       AC_SUBST(TCL_LIBS)
+      AC_SUBST(TCL_SHLIB_EXT)
     else
       AC_MSG_RESULT([< $tcl_min (too old)])
       if test yes = "$with_tcl" ; then
@@ -831,9 +836,6 @@ if test no != "$with_java" ; then
     dnl JDK version...
     java_ok=no
     AC_CHECK_HEADER([jni.h], [java_ok=yes], [
-      dnl We need to look for jni.h in /usr/lib/jvm/java-gcj/include on some
-      dnl Debian and Ubuntu boxes at least.  And on macOS, jni.h lives
-      dnl in /System/Library/Frameworks/JavaVM.framework/Headers.
       SAVE_CPPFLAGS=$CPPFLAGS
       real_javac=$JAVAC
       dnl Avoid endlessly traversing if there's a symlink loop.
@@ -844,6 +846,7 @@ if test no != "$with_java" ; then
       done
       dnl Translate ".../bin/javac" to ".../include".
       [rel_jnidir=`echo "$real_javac"|sed 's!/[^/]*/[^/]*$!/include!'`]
+      dnl Try the location for macOS system Java too, but last.
       for jnidir in \
 	  $JNI_INCLUDE_DIR \
 	  ${JAVA_HOME+"$JAVA_HOME/include"} \
@@ -1023,16 +1026,14 @@ if test no != "$with_ruby" ; then
 	dnl rdoc is included as part of the Ruby core distribution, so run it
 	dnl at build time rather shipping the rather large generated output in
 	dnl our source tarball.
-	if test -n "$RDOC" ; then
-	  AC_PATH_PROGS(RDOC, ["$RDOC"], [])
-	else
+	if test -z "$RDOC" ; then
 	  dnl Try replace the *last* 'ruby' with 'rdoc'.
 	  rdoc_best_guess=`echo "$RUBY"|sed 's,\(.*\)ruby,\1rdoc,'`
-	  AC_PATH_PROGS(RDOC, ["$rdoc_best_guess"], [])
-	  if test -z "$RDOC"; then
-	    AC_PATH_PROGS(RDOC, [rdoc], [])
+	  if test -x "$rdoc_best_guess" ; then
+	    RDOC=$rdoc_best_guess
 	  fi
 	fi
+	AC_PATH_PROGS(RDOC, [rdoc], [])
 	if test -n "$RDOC"; then
 	  BINDINGS="$BINDINGS ruby"
 	fi
@@ -1100,30 +1101,9 @@ if test no != "$with_lua" ; then
   AC_ARG_VAR(LUA, [lua interpreter])
   if test -n "$LUA" ; then
     dnl We need Lua 5.1 or later.
-    AC_MSG_CHECKING([$LUA version])
-    lua_version=`$LUA -e 'print(_VERSION)' | cut -f 2 -d ' ' 2>&AS_MESSAGE_LOG_FD`
-
-    case $lua_version in
-    [[01234]].*|5.0|5.0.*)
-      AC_MSG_RESULT([$lua_version < 5.1 (too old)])
-      if test yes = "$with_lua" ; then
-        AC_MSG_ERROR([$LUA too old (Lua 5.1 or newer required)])
-      fi
-      LUA=
-      ;;
-    "")
-      AC_MSG_RESULT([\$LUA -e 'print(_VERSION)' | cut -f 2 -d ' ' didn't work])
-
-      if test yes = "$with_lua" ; then
-        AC_MSG_ERROR([Working Lua interpreter not found])
-      fi
-      LUA=
-      ;;
-    esac
+    PKG_CHECK_MODULES([LUA], [lua$lua_version >= 5.1], [], [LUA=])
 
     if test -n "$LUA" ; then
-      AC_MSG_RESULT([$lua_version])
-
       AC_ARG_VAR([LUA_LIB], [Directory to install compiled Lua modules into])
       AC_ARG_VAR([LUA_SO], [Extension for compiled Lua modules (e.g. LUA_SO=.so)])
       AC_MSG_CHECKING([for directory to install compiled Lua modules into])
@@ -1167,6 +1147,7 @@ if test no != "$with_lua" ; then
       fi
       if test -z "$LUA_LIB"; then
 	AC_MSG_RESULT([not found])
+	LUA=
       else
 	AC_MSG_RESULT([$LUA_LIB])
       fi
@@ -1175,37 +1156,19 @@ if test no != "$with_lua" ; then
       AC_MSG_CHECKING([for extension to use for compiled Lua modules])
       if test -z "$LUA_SO"; then
 	AC_MSG_RESULT([not found])
+	LUA=
       else
 	AC_MSG_RESULT([$LUA_SO])
       fi
       AC_SUBST([LUA_SO])
-
-      AC_MSG_CHECKING([for Lua header files])
-      AC_ARG_VAR([LUA_INC], [Directory to include for lua headers])
-      if test -z "$LUA_INC" ; then
-        dirs="/usr/include/lua$lua_version /usr/local/include/lua$lua_version"
-        for i in $dirs ; do
-          if test -r "$i/lua.h"; then
-            LUA_INC=$i
-            break
-          fi
-        done
-      fi
-
-      if test -z "$LUA_INC" ; then
-        AC_MSG_RESULT([not found])
-      else
-        AC_MSG_RESULT([$LUA_INC])
-        BINDINGS="$BINDINGS lua"
-        LUA_CPPFLAGS="-I$LUA_INC"
-      fi
-      AC_SUBST([LUA_CPPFLAGS])
-    fi
-  else
-    if test yes = "$with_lua" ; then
-      AC_MSG_ERROR([lua not found])
     fi
   fi
+
+  if test -n "$LUA" ; then
+    BINDINGS="$BINDINGS lua"
+  elif test yes = "$with_lua" ; then
+    AC_MSG_ERROR([lua not found])
+  fi
 fi
 
 AC_SUBST(BINDINGS)
diff --git a/csharp/Makefile.in b/csharp/Makefile.in
index d76141bbda04997a4496ec404f5bca6a3485c0b5..623816b5d7387c3f7333a8f0ef74b83ea6fb6fe9 100644
--- a/csharp/Makefile.in
+++ b/csharp/Makefile.in
@@ -94,9 +94,7 @@ host_triplet = @host@
 subdir = csharp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(dist_docdata_DATA) \
@@ -455,9 +453,9 @@ LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 LUA = @LUA@
-LUA_CPPFLAGS = @LUA_CPPFLAGS@
-LUA_INC = @LUA_INC@
+LUA_CFLAGS = @LUA_CFLAGS@
 LUA_LIB = @LUA_LIB@
+LUA_LIBS = @LUA_LIBS@
 LUA_SO = @LUA_SO@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
@@ -491,6 +489,10 @@ PHP_INC = @PHP_INC@
 PHP_LIBS = @PHP_LIBS@
 PHP_MAJOR_VERSION = @PHP_MAJOR_VERSION@
 PHP_PATH_SEPARATOR = @PHP_PATH_SEPARATOR@
+PHP_SHLIB_SUFFIX = @PHP_SHLIB_SUFFIX@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 PYTHON = @PYTHON@
 PYTHON2 = @PYTHON2@
 PYTHON2_INC = @PYTHON2_INC@
@@ -528,6 +530,7 @@ TCL_CPPFLAGS = @TCL_CPPFLAGS@
 TCL_INC = @TCL_INC@
 TCL_LIB = @TCL_LIB@
 TCL_LIBS = @TCL_LIBS@
+TCL_SHLIB_EXT = @TCL_SHLIB_EXT@
 THREAD_LOCAL = @THREAD_LOCAL@
 VERSION = @VERSION@
 VERSION_NO_SNAPSHOT = @VERSION_NO_SNAPSHOT@
@@ -537,6 +540,7 @@ XAPIAN_HEADERS = @XAPIAN_HEADERS@
 XAPIAN_HEADER_DIRS = @XAPIAN_HEADER_DIRS@
 XAPIAN_LIBS = @XAPIAN_LIBS@
 XAPIAN_VERSION = @XAPIAN_VERSION@
+_libs = @_libs@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
diff --git a/csharp/SmokeTest.cs b/csharp/SmokeTest.cs
index 4e4bd038ff50e38e6fb1af51585951a6f448130b..531bae9858a3a15c7b95fb9b55627e3da78f86a0 100644
--- a/csharp/SmokeTest.cs
+++ b/csharp/SmokeTest.cs
@@ -1,4 +1,4 @@
-// Simple test that we can load the xapian module and run a simple test
+// Simple test that we can use xapian from csharp
 //
 // Copyright (C) 2004,2005,2006,2007,2008,2011,2016,2019 Olly Betts
 //
@@ -41,6 +41,10 @@ class SmokeTest {
 	    }
 
 	    Xapian.Stem stem = new Xapian.Stem("english");
+	    if (stem.GetDescription() != "Xapian::Stem(english)") {
+		System.Console.WriteLine("Unexpected stem.GetDescription()");
+		System.Environment.Exit(1);
+	    }
 	    Xapian.Document doc = new Xapian.Document();
 	    // Currently SWIG doesn't generate zero-byte clean code for
 	    // transferring strings between C# and C++.
@@ -85,7 +89,7 @@ class SmokeTest {
 	    // Check exception handling for Xapian::DocNotFoundError.
 	    try {
 		Xapian.Document doc2 = db.GetDocument(2);
-		System.Console.WriteLine("Retrieved non-existent document: " + doc2.ToString());
+		System.Console.WriteLine("Retrieved non-existent document: " + doc2.GetDescription());
 		System.Environment.Exit(1);
 	    } catch (System.Exception e) {
 		// We expect DocNotFoundError
@@ -125,12 +129,12 @@ class SmokeTest {
 	    qp.AddRangeprocessor(rpdate, "foo");
 
             if (Xapian.Query.MatchAll.GetDescription() != "Query(<alldocuments>)") {
-		System.Console.WriteLine("Unexpected Query.MatchAll.toString()");
+		System.Console.WriteLine("Unexpected Query.MatchAll.GetDescription()");
 		System.Environment.Exit(1);
             }
 
             if (Xapian.Query.MatchNothing.GetDescription() != "Query()") {
-		System.Console.WriteLine("Unexpected Query.MatchNothing.toString()");
+		System.Console.WriteLine("Unexpected Query.MatchNothing.GetDescription()");
 		System.Environment.Exit(1);
             }
 
diff --git a/csharp/docs/index.html b/csharp/docs/index.html
index d5f4d6d8117223cfdf920f162fd8dcf12a37c45e..854613a9ee27f1eaafde1d47d6dbe645c0a972ff 100644
--- a/csharp/docs/index.html
+++ b/csharp/docs/index.html
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
+<meta name="generator" content="Docutils 0.20.1: https://docutils.sourceforge.io/" />
 <title>C# bindings for Xapian</title>
 <style type="text/css">
 
diff --git a/csharp/generated-csharp/Auto.cs b/csharp/generated-csharp/Auto.cs
index 23286b7e030257c9afaa7fe0c5b32d3293892919..7fb04b4de029138e35092e54b50096e7423976ee 100644
--- a/csharp/generated-csharp/Auto.cs
+++ b/csharp/generated-csharp/Auto.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/BB2Weight.cs b/csharp/generated-csharp/BB2Weight.cs
index dce9586598f71d9a03132353990dfeb8e35b9b7a..f77840433693f50b56248a8f77e5381303c87907 100644
--- a/csharp/generated-csharp/BB2Weight.cs
+++ b/csharp/generated-csharp/BB2Weight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/BM25PlusWeight.cs b/csharp/generated-csharp/BM25PlusWeight.cs
index 02ffb19b4fb17a1312d796ca0cc682c069ce07e9..9c1f3cc47a5877f5be6a87136428c4ae23edbfd0 100644
--- a/csharp/generated-csharp/BM25PlusWeight.cs
+++ b/csharp/generated-csharp/BM25PlusWeight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/BM25Weight.cs b/csharp/generated-csharp/BM25Weight.cs
index aee5e7285206f217c8fa73a6f29cc8cf38ac8916..6c19f2abb730d315ba52683891711b650692ea52 100644
--- a/csharp/generated-csharp/BM25Weight.cs
+++ b/csharp/generated-csharp/BM25Weight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/BoolWeight.cs b/csharp/generated-csharp/BoolWeight.cs
index 55ef265710057749ddd9629b02c6781c12b60ca2..999b84dbee94737f2d71045921be0c435422ce05 100644
--- a/csharp/generated-csharp/BoolWeight.cs
+++ b/csharp/generated-csharp/BoolWeight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/Chert.cs b/csharp/generated-csharp/Chert.cs
index 0f225857608fe57cc00e7f297deefcbdb9a987bb..c3cd8021d23a49f556c84ebcba38dda9ec329911 100644
--- a/csharp/generated-csharp/Chert.cs
+++ b/csharp/generated-csharp/Chert.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/Compactor.cs b/csharp/generated-csharp/Compactor.cs
index 3c2f53e7992cde6f887f37e08653cc30549e7c35..f1fd3dd1d34d93b1c29bed0651ae5a821a0a5114 100644
--- a/csharp/generated-csharp/Compactor.cs
+++ b/csharp/generated-csharp/Compactor.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/CoordWeight.cs b/csharp/generated-csharp/CoordWeight.cs
index 1e9790d0df60580d13848569ab4d8b0d636a07e7..577d7ae880804ead07e3209580f45dc9ebfe45a6 100644
--- a/csharp/generated-csharp/CoordWeight.cs
+++ b/csharp/generated-csharp/CoordWeight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/DLHWeight.cs b/csharp/generated-csharp/DLHWeight.cs
index f7b393177447ed0c1e17f056fe20a2b49fdb2cde..492c4c949594e2a6244ccf61fd7393bc6d97610d 100644
--- a/csharp/generated-csharp/DLHWeight.cs
+++ b/csharp/generated-csharp/DLHWeight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/DPHWeight.cs b/csharp/generated-csharp/DPHWeight.cs
index 97e0dfac0a6f66a6659f39699d8b64aa5e2e952a..56a7ae6ebbe186507838f11a8d603ac8144e8450 100644
--- a/csharp/generated-csharp/DPHWeight.cs
+++ b/csharp/generated-csharp/DPHWeight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/Database.cs b/csharp/generated-csharp/Database.cs
index afd6a482558c8995cb7928c4b2ee3059092e43e3..c51a9618b5b99fc9d54175c88062cf536e1638fe 100644
--- a/csharp/generated-csharp/Database.cs
+++ b/csharp/generated-csharp/Database.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/DateRangeProcessor.cs b/csharp/generated-csharp/DateRangeProcessor.cs
index 82400d4a4f6da4876d285162228bd946b280e8da..ddf5eaf5e2afd0c1ea19ceabba59501dc38c14f4 100644
--- a/csharp/generated-csharp/DateRangeProcessor.cs
+++ b/csharp/generated-csharp/DateRangeProcessor.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/DateValueRangeProcessor.cs b/csharp/generated-csharp/DateValueRangeProcessor.cs
index 9b0f7bce4b85d4ef055d9a52149b42656015f344..2e3002944c581d465ff6846e6b3d20938446e37b 100644
--- a/csharp/generated-csharp/DateValueRangeProcessor.cs
+++ b/csharp/generated-csharp/DateValueRangeProcessor.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/DecreasingValueWeightPostingSource.cs b/csharp/generated-csharp/DecreasingValueWeightPostingSource.cs
index 05cd97667167c1c10d0a47dc0e7e99cbf393dbac..291c23050042c0adf88db7fee0925095e7d67b92 100644
--- a/csharp/generated-csharp/DecreasingValueWeightPostingSource.cs
+++ b/csharp/generated-csharp/DecreasingValueWeightPostingSource.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/Document.cs b/csharp/generated-csharp/Document.cs
index 38ce3fff17fcdae9ef0b1e299873e5323d61492b..6567a2bb21760b658ed0be42bb1414980559b8aa 100644
--- a/csharp/generated-csharp/Document.cs
+++ b/csharp/generated-csharp/Document.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/ESet.cs b/csharp/generated-csharp/ESet.cs
index 4ecb43a5985c7cfc09a3674667a0cd54dc3acb50..992b3a7e982b262590062e86919e3e02b10a2b0c 100644
--- a/csharp/generated-csharp/ESet.cs
+++ b/csharp/generated-csharp/ESet.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/ESetIterator.cs b/csharp/generated-csharp/ESetIterator.cs
index d389159d9112a7b20b26f6fa72d2c82ab6777c29..085f71a6afdb60ee12a47ca2d416023ce39fcd46 100644
--- a/csharp/generated-csharp/ESetIterator.cs
+++ b/csharp/generated-csharp/ESetIterator.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/Enquire.cs b/csharp/generated-csharp/Enquire.cs
index 834ae005fd9aea992d1f0da38028cacbd3d0a317..b397460ad2c95586f1d395d454102ff030b90737 100644
--- a/csharp/generated-csharp/Enquire.cs
+++ b/csharp/generated-csharp/Enquire.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/ExpandDecider.cs b/csharp/generated-csharp/ExpandDecider.cs
index 8f5a8aa837f40055baee8b3ae23773e17abde383..bc531dcc0ba80191d54ced0897f4641f40c4fabb 100644
--- a/csharp/generated-csharp/ExpandDecider.cs
+++ b/csharp/generated-csharp/ExpandDecider.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/ExpandDeciderAnd.cs b/csharp/generated-csharp/ExpandDeciderAnd.cs
index db4caf37dd071cd26812987b6aa55b8b21b69aee..63350a7e317dbfe5986fd828e4beb926e0ccd12f 100644
--- a/csharp/generated-csharp/ExpandDeciderAnd.cs
+++ b/csharp/generated-csharp/ExpandDeciderAnd.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/ExpandDeciderFilterPrefix.cs b/csharp/generated-csharp/ExpandDeciderFilterPrefix.cs
index 74228fe2e0d22b6625076dad832f1000bed991d1..b398e23cc58b98ba378559921f631e3b68dd0204 100644
--- a/csharp/generated-csharp/ExpandDeciderFilterPrefix.cs
+++ b/csharp/generated-csharp/ExpandDeciderFilterPrefix.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/FieldProcessor.cs b/csharp/generated-csharp/FieldProcessor.cs
index ba33786845e69ffdd708b499a19f00f0ddc29841..402f72008b778eebbc2c4a34b33180ca270d6794 100644
--- a/csharp/generated-csharp/FieldProcessor.cs
+++ b/csharp/generated-csharp/FieldProcessor.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/FixedWeightPostingSource.cs b/csharp/generated-csharp/FixedWeightPostingSource.cs
index d367aa55486aeb303b461a979ca4393844690ee7..c5f88084da6cc1b17c3a0c112a5b6f99c9681566 100644
--- a/csharp/generated-csharp/FixedWeightPostingSource.cs
+++ b/csharp/generated-csharp/FixedWeightPostingSource.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/GreatCircleMetric.cs b/csharp/generated-csharp/GreatCircleMetric.cs
index 6dd585268f1ff49ffa51b8db3c6d42fcb1d7a8e9..e4d1e25b1085ffd94f55d81dabeedd94bf539b7c 100644
--- a/csharp/generated-csharp/GreatCircleMetric.cs
+++ b/csharp/generated-csharp/GreatCircleMetric.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/IfB2Weight.cs b/csharp/generated-csharp/IfB2Weight.cs
index e6825eb70bc8651ae87b75040155bde1258ccef1..9681511a0d8fceb56a29c508fdc2a00b74d9f66b 100644
--- a/csharp/generated-csharp/IfB2Weight.cs
+++ b/csharp/generated-csharp/IfB2Weight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/InL2Weight.cs b/csharp/generated-csharp/InL2Weight.cs
index 816269f8522f2bc3a1e2ce0839bf9f22683d93a7..30375d5948efd4dec24687986b16475d4580e1bd 100644
--- a/csharp/generated-csharp/InL2Weight.cs
+++ b/csharp/generated-csharp/InL2Weight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/InMemory.cs b/csharp/generated-csharp/InMemory.cs
index 67843403fa1d6c2d8d57f51e7e63fda55ffc54c6..22698e70db37b01514ff2a6894b9eeac7f276968 100644
--- a/csharp/generated-csharp/InMemory.cs
+++ b/csharp/generated-csharp/InMemory.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/IneB2Weight.cs b/csharp/generated-csharp/IneB2Weight.cs
index 70614d1998f8eb7eb5a7f2a415d94b4ee4899646..f746bb0623e248d2ea04acdc66c15a74b7b7fd1d 100644
--- a/csharp/generated-csharp/IneB2Weight.cs
+++ b/csharp/generated-csharp/IneB2Weight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/KeyMaker.cs b/csharp/generated-csharp/KeyMaker.cs
index ba03b8125ef73fadc0455795eb23c797f78dae06..15a3f44f99b05d835083b1b125144e9b28666a6f 100644
--- a/csharp/generated-csharp/KeyMaker.cs
+++ b/csharp/generated-csharp/KeyMaker.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/LMWeight.cs b/csharp/generated-csharp/LMWeight.cs
index 8b8236c9fcbee924b0a214c7cfa84220ff027f07..40f6b8bcd9758872f479eaf24f326f51fdfb1969 100644
--- a/csharp/generated-csharp/LMWeight.cs
+++ b/csharp/generated-csharp/LMWeight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/LatLongCoord.cs b/csharp/generated-csharp/LatLongCoord.cs
index 17b7afb9c9a181494f9f9aee7ac09b797f9392e1..c3aaf3d29c22b123594fc32b0bc2d637350873b6 100644
--- a/csharp/generated-csharp/LatLongCoord.cs
+++ b/csharp/generated-csharp/LatLongCoord.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/LatLongCoords.cs b/csharp/generated-csharp/LatLongCoords.cs
index 964051ba65fa7c3a5acdfacd0ad5b2054708d225..ffcf03071f862ba0196d3e7d7dd04fcbe495a82f 100644
--- a/csharp/generated-csharp/LatLongCoords.cs
+++ b/csharp/generated-csharp/LatLongCoords.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/LatLongCoordsIterator.cs b/csharp/generated-csharp/LatLongCoordsIterator.cs
index d1826a68dfa8e64596bc84f31aed08689ec98b6f..2afba6bf299a4601878ff2bc625afb2e14221029 100644
--- a/csharp/generated-csharp/LatLongCoordsIterator.cs
+++ b/csharp/generated-csharp/LatLongCoordsIterator.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/LatLongDistanceKeyMaker.cs b/csharp/generated-csharp/LatLongDistanceKeyMaker.cs
index 36902b163f09627ab9b845c5ac74bb4e6a67a639..b7fe9d23809fd4312538dabb8d62ff0b632af9b9 100644
--- a/csharp/generated-csharp/LatLongDistanceKeyMaker.cs
+++ b/csharp/generated-csharp/LatLongDistanceKeyMaker.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/LatLongDistancePostingSource.cs b/csharp/generated-csharp/LatLongDistancePostingSource.cs
index 016260024e4fa2dca17adbf964bfd6d6c01fda14..d19625b1177b7a2c14a4e366d0b08491f4e03ddb 100644
--- a/csharp/generated-csharp/LatLongDistancePostingSource.cs
+++ b/csharp/generated-csharp/LatLongDistancePostingSource.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/LatLongMetric.cs b/csharp/generated-csharp/LatLongMetric.cs
index d784f19d18d5e71716872873bcdee49cf59724c6..bdd6570308659fcd43e1cd4b400c3d3f356066a0 100644
--- a/csharp/generated-csharp/LatLongMetric.cs
+++ b/csharp/generated-csharp/LatLongMetric.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/MSet.cs b/csharp/generated-csharp/MSet.cs
index 0922ec4839ed01b4c80837e840ae43ef33368e66..e0d0c832f4ce7e6c4644327d024124a0a83766cb 100644
--- a/csharp/generated-csharp/MSet.cs
+++ b/csharp/generated-csharp/MSet.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
@@ -259,6 +259,7 @@ public class MSet : global::System.IDisposable {
   public static readonly int SNIPPET_BACKGROUND_MODEL = XapianPINVOKE.MSet_SNIPPET_BACKGROUND_MODEL_get();
   public static readonly int SNIPPET_EXHAUSTIVE = XapianPINVOKE.MSet_SNIPPET_EXHAUSTIVE_get();
   public static readonly int SNIPPET_EMPTY_WITHOUT_MATCH = XapianPINVOKE.MSet_SNIPPET_EMPTY_WITHOUT_MATCH_get();
+  public static readonly int SNIPPET_NGRAMS = XapianPINVOKE.MSet_SNIPPET_NGRAMS_get();
   public static readonly int SNIPPET_CJK_NGRAM = XapianPINVOKE.MSet_SNIPPET_CJK_NGRAM_get();
 
 }
diff --git a/csharp/generated-csharp/MSetIterator.cs b/csharp/generated-csharp/MSetIterator.cs
index 8cdef63558941dffc33b7989269e6613367e2152..699fbe58c4593a8c795cab45f6a92beaa60360c9 100644
--- a/csharp/generated-csharp/MSetIterator.cs
+++ b/csharp/generated-csharp/MSetIterator.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/MatchDecider.cs b/csharp/generated-csharp/MatchDecider.cs
index 9f1c4892e3060a36311731b6d64b3d6f8455a998..1f78d4d57fc85e45f6ff2f33b32668bd7d8fae10 100644
--- a/csharp/generated-csharp/MatchDecider.cs
+++ b/csharp/generated-csharp/MatchDecider.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/MatchSpy.cs b/csharp/generated-csharp/MatchSpy.cs
index f98d657ab8914cf73ce6e2840b9d77da29560fee..1ae03b19b20b5c1d983b3d90f52948105c1942e5 100644
--- a/csharp/generated-csharp/MatchSpy.cs
+++ b/csharp/generated-csharp/MatchSpy.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/MultiValueKeyMaker.cs b/csharp/generated-csharp/MultiValueKeyMaker.cs
index 210f7c89b57ded78263c42ef9f29390a09c18e38..526ca438fa24eacf51fa6e46e17f8d2952a5bdf5 100644
--- a/csharp/generated-csharp/MultiValueKeyMaker.cs
+++ b/csharp/generated-csharp/MultiValueKeyMaker.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/NumberRangeProcessor.cs b/csharp/generated-csharp/NumberRangeProcessor.cs
index 144a54a2feb74b9d88a409d045beb0fb4c55ec9c..a9797a0a3294c4013064c063a328c14c538538ae 100644
--- a/csharp/generated-csharp/NumberRangeProcessor.cs
+++ b/csharp/generated-csharp/NumberRangeProcessor.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/NumberValueRangeProcessor.cs b/csharp/generated-csharp/NumberValueRangeProcessor.cs
index b009ef30e5507341ed24dcc20073467234e7bee1..385f70550e9e33db3a5dd2e6df7420f4de8b4d39 100644
--- a/csharp/generated-csharp/NumberValueRangeProcessor.cs
+++ b/csharp/generated-csharp/NumberValueRangeProcessor.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/PL2PlusWeight.cs b/csharp/generated-csharp/PL2PlusWeight.cs
index d856bbf48389ffabac249a5127c6a8601f02e05e..f922f4babdeb1a20e0b38f9f9c87691274651d1b 100644
--- a/csharp/generated-csharp/PL2PlusWeight.cs
+++ b/csharp/generated-csharp/PL2PlusWeight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/PL2Weight.cs b/csharp/generated-csharp/PL2Weight.cs
index d75f0e9ab80d6a85aee70f3044193541c86d1c34..f86d2a6992799e1ae9ee133cdac8983fc14d138b 100644
--- a/csharp/generated-csharp/PL2Weight.cs
+++ b/csharp/generated-csharp/PL2Weight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/PositionIterator.cs b/csharp/generated-csharp/PositionIterator.cs
index d5ce8470c1f47b341d7b315559f3c45afa87d039..17c6bcf16c8a409d6f31b16653c6b16ad141baa6 100644
--- a/csharp/generated-csharp/PositionIterator.cs
+++ b/csharp/generated-csharp/PositionIterator.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/PostingIterator.cs b/csharp/generated-csharp/PostingIterator.cs
index 60ce1e5ee347d1d2a4cc1ebccdf946a67d13651b..311cf4314cceb549b786d76dcd101a36cfa3640c 100644
--- a/csharp/generated-csharp/PostingIterator.cs
+++ b/csharp/generated-csharp/PostingIterator.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/PostingSource.cs b/csharp/generated-csharp/PostingSource.cs
index 60ffe89fd40c0318a31f11057fc6685403331b58..44ecd40626eb99362cf827dd6133fe29f43bf294 100644
--- a/csharp/generated-csharp/PostingSource.cs
+++ b/csharp/generated-csharp/PostingSource.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/Query.cs b/csharp/generated-csharp/Query.cs
index 45a1306ee1d2da7e5bb48c2788e8e9031c29723b..7a5d4c4356a2f1c253e423dc67cfe0025f6c9352 100644
--- a/csharp/generated-csharp/Query.cs
+++ b/csharp/generated-csharp/Query.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
@@ -198,7 +198,7 @@ public class Query : global::System.IDisposable {
     return ret;
   }
 
-  public Query(Query.op op_) : this(XapianPINVOKE.new_Query__SWIG_17((int)op_), true) {
+  public Query(Query.op op_) : this(XapianPINVOKE.new_Query__SWIG_15((int)op_), true) {
     if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
   }
 
diff --git a/csharp/generated-csharp/QueryParser.cs b/csharp/generated-csharp/QueryParser.cs
index d2cefc27cc6c32192e8986264eef155c7ffc9660..6241194c6cc4074908df3c5f9a2357ad5e827fa7 100644
--- a/csharp/generated-csharp/QueryParser.cs
+++ b/csharp/generated-csharp/QueryParser.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
@@ -238,7 +238,8 @@ public class QueryParser : global::System.IDisposable {
     FLAG_SYNONYM = 256,
     FLAG_AUTO_SYNONYMS = 512,
     FLAG_AUTO_MULTIWORD_SYNONYMS = 1024,
-    FLAG_CJK_NGRAM = 2048,
+    FLAG_NGRAMS = 2048,
+    FLAG_CJK_NGRAM = FLAG_NGRAMS,
     FLAG_ACCUMULATE = 65536,
     FLAG_NO_POSITIONS = 0x20000,
     FLAG_DEFAULT = FLAG_PHRASE|FLAG_BOOLEAN|FLAG_LOVEHATE
diff --git a/csharp/generated-csharp/RSet.cs b/csharp/generated-csharp/RSet.cs
index e1daa7c6ef7d39888edb37d361d186ac5e93d04d..bc41abd003decd3fdc2bc7c8e5bab8b5b25acd76 100644
--- a/csharp/generated-csharp/RSet.cs
+++ b/csharp/generated-csharp/RSet.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/RangeProcessor.cs b/csharp/generated-csharp/RangeProcessor.cs
index 0a130d6609421b335cd28fe3b5ece0635e8cc055..df5f9b8aeb0ce79d1ef15956cf3ccb0c5c351480 100644
--- a/csharp/generated-csharp/RangeProcessor.cs
+++ b/csharp/generated-csharp/RangeProcessor.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/Registry.cs b/csharp/generated-csharp/Registry.cs
index 501a598ebca4712b3152fabc69b1c0e1a6a65b31..609a7eb5aeeea86fc9035c1ae155296dca2fd219 100644
--- a/csharp/generated-csharp/Registry.cs
+++ b/csharp/generated-csharp/Registry.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/Remote.cs b/csharp/generated-csharp/Remote.cs
index 66344d0a08211e2e6ca086485ec475c9f27fca1f..c26e1ee46edd641976c2ed9fac766e78bcdb1e33 100644
--- a/csharp/generated-csharp/Remote.cs
+++ b/csharp/generated-csharp/Remote.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/SWIGTYPE_p_std__string.cs b/csharp/generated-csharp/SWIGTYPE_p_std__string.cs
index 47f06bde6c4e56e8b11de5a267af996281d1fd66..cfddc6a88f96cf18d41ad28251c12538eccf683b 100644
--- a/csharp/generated-csharp/SWIGTYPE_p_std__string.cs
+++ b/csharp/generated-csharp/SWIGTYPE_p_std__string.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/SimpleStopper.cs b/csharp/generated-csharp/SimpleStopper.cs
index d7806391181a5c883d6e55f0bb65377ab68589b4..346fae0c72109133a8e39b2f6a34c37b4f9566f9 100644
--- a/csharp/generated-csharp/SimpleStopper.cs
+++ b/csharp/generated-csharp/SimpleStopper.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
@@ -68,7 +68,7 @@ public class SimpleStopper : Stopper {
     return ret;
   }
 
-  public SimpleStopper(string file) : this(XapianPINVOKE.new_SimpleStopper__SWIG_2(file), true) {
+  public SimpleStopper(string file) : this(XapianPINVOKE.new_SimpleStopper__SWIG_1(file), true) {
     if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
   }
 
diff --git a/csharp/generated-csharp/Stem.cs b/csharp/generated-csharp/Stem.cs
index c84b80f476436aa554d8c7a629f8d1f00d7367d0..111375a0324736aa07fd3a4599b58208c88fc1df 100644
--- a/csharp/generated-csharp/Stem.cs
+++ b/csharp/generated-csharp/Stem.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/StemImplementation.cs b/csharp/generated-csharp/StemImplementation.cs
index fd4ba67f92c63695aef57cd876f1a773d1d5aa2b..66089893344987bc6b46e4e024a0f9caf47d46a3 100644
--- a/csharp/generated-csharp/StemImplementation.cs
+++ b/csharp/generated-csharp/StemImplementation.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/Stopper.cs b/csharp/generated-csharp/Stopper.cs
index 9d6904f6bc54def9cc2cf4e717a8828b819d153f..39dbe4e9efd2ef08711fa8bf9fb3a416fe0c8cf9 100644
--- a/csharp/generated-csharp/Stopper.cs
+++ b/csharp/generated-csharp/Stopper.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/StringValueRangeProcessor.cs b/csharp/generated-csharp/StringValueRangeProcessor.cs
index 9a9cf635a4ce5ff83ef0110be71d6e3871ed62cc..d7f045cd511745452f678f39cd63e742262d5dae 100644
--- a/csharp/generated-csharp/StringValueRangeProcessor.cs
+++ b/csharp/generated-csharp/StringValueRangeProcessor.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/TermGenerator.cs b/csharp/generated-csharp/TermGenerator.cs
index cbb6a50fa6bc2452683a4c27c822f0ad473c6ebf..5737d44279637419b4eac42c585d7c43f71f451d 100644
--- a/csharp/generated-csharp/TermGenerator.cs
+++ b/csharp/generated-csharp/TermGenerator.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
@@ -177,6 +177,7 @@ public class TermGenerator : global::System.IDisposable {
   }
 
   public static readonly int FLAG_SPELLING = XapianPINVOKE.TermGenerator_FLAG_SPELLING_get();
+  public static readonly int FLAG_NGRAMS = XapianPINVOKE.TermGenerator_FLAG_NGRAMS_get();
   public static readonly int FLAG_CJK_NGRAM = XapianPINVOKE.TermGenerator_FLAG_CJK_NGRAM_get();
 
   public enum stem_strategy {
diff --git a/csharp/generated-csharp/TermIterator.cs b/csharp/generated-csharp/TermIterator.cs
index 753dbca80799635fae2ebdd50da023e45bfd7890..7ae6c009e7fc34b397abc6b861f90143b36b94da 100644
--- a/csharp/generated-csharp/TermIterator.cs
+++ b/csharp/generated-csharp/TermIterator.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/TfIdfWeight.cs b/csharp/generated-csharp/TfIdfWeight.cs
index a23d983fe89da80e50b112dde70e133427d53231..95c8a89f8ab0e3632a9e80b5b6f1918e2d23b939 100644
--- a/csharp/generated-csharp/TfIdfWeight.cs
+++ b/csharp/generated-csharp/TfIdfWeight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/TradWeight.cs b/csharp/generated-csharp/TradWeight.cs
index de303e0f8b937ce38f3c3120a05fd739dac4381e..586a6706765ae846f3a101ab2a39947d89ca91a3 100644
--- a/csharp/generated-csharp/TradWeight.cs
+++ b/csharp/generated-csharp/TradWeight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/ValueCountMatchSpy.cs b/csharp/generated-csharp/ValueCountMatchSpy.cs
index d5d9d78344738aa0aae68ec17aa5042ce348e090..0820e1d7744315f8dc683279a2f096f8ff46910d 100644
--- a/csharp/generated-csharp/ValueCountMatchSpy.cs
+++ b/csharp/generated-csharp/ValueCountMatchSpy.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/ValueIterator.cs b/csharp/generated-csharp/ValueIterator.cs
index 6dc07a2ef76a3e73ef213c49601c6f0dbd45beea..09c794ee067c85abca78ebbdfe73b914ee6232f7 100644
--- a/csharp/generated-csharp/ValueIterator.cs
+++ b/csharp/generated-csharp/ValueIterator.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/ValueMapPostingSource.cs b/csharp/generated-csharp/ValueMapPostingSource.cs
index 7df4a789cd09f9bae83ee8d6ee4cb31488d17d8f..71cbeb22286956425bcda2ca5d12bbcab6c24881 100644
--- a/csharp/generated-csharp/ValueMapPostingSource.cs
+++ b/csharp/generated-csharp/ValueMapPostingSource.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/ValuePostingSource.cs b/csharp/generated-csharp/ValuePostingSource.cs
index 9c6fca5a44df8760dabedf9a06133b90446d80f2..c65eda8aa5d9b7e5c1a6850a08a828ed529df0d2 100644
--- a/csharp/generated-csharp/ValuePostingSource.cs
+++ b/csharp/generated-csharp/ValuePostingSource.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/ValueRangeProcessor.cs b/csharp/generated-csharp/ValueRangeProcessor.cs
index 6bc8c01764876e851565145b5079e99879b3b260..3db33a6153805f067881024445183649d11e9d55 100644
--- a/csharp/generated-csharp/ValueRangeProcessor.cs
+++ b/csharp/generated-csharp/ValueRangeProcessor.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/ValueSetMatchDecider.cs b/csharp/generated-csharp/ValueSetMatchDecider.cs
index 7f7ad336df844289b0ebddc43dfb127094858e4e..fd775956c9ef416205201efc37c0e0d4c8ce111e 100644
--- a/csharp/generated-csharp/ValueSetMatchDecider.cs
+++ b/csharp/generated-csharp/ValueSetMatchDecider.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/ValueWeightPostingSource.cs b/csharp/generated-csharp/ValueWeightPostingSource.cs
index e3636325951d19265db9c5ddd00912a16b302d2d..13d2e25821ab4bb75f728603611b36f30334e741 100644
--- a/csharp/generated-csharp/ValueWeightPostingSource.cs
+++ b/csharp/generated-csharp/ValueWeightPostingSource.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/Version.cs b/csharp/generated-csharp/Version.cs
index c955ed01315b1fa173a9a13092b7665eb493d9ad..b1105b2ea1da34f25bc8e6ea1b28ccdb6da9397c 100644
--- a/csharp/generated-csharp/Version.cs
+++ b/csharp/generated-csharp/Version.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/Weight.cs b/csharp/generated-csharp/Weight.cs
index 301e21b20edf2ee3eff2eb02bbd629b4b66d124d..33a38066f81a949c8cc2fac9f95a505bd3454fde 100644
--- a/csharp/generated-csharp/Weight.cs
+++ b/csharp/generated-csharp/Weight.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/WritableDatabase.cs b/csharp/generated-csharp/WritableDatabase.cs
index 33fcad4b8312ce36bb5d891f46fe6faadb6a5026..040f5f4a791b87e80012050e98bfbd4508e642de 100644
--- a/csharp/generated-csharp/WritableDatabase.cs
+++ b/csharp/generated-csharp/WritableDatabase.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/Xapian.cs b/csharp/generated-csharp/Xapian.cs
index 459e8409335a6f3982065a07baf537634b6136c8..70edcb737aa97cad2cf59dd0b75e2092b7173105 100644
--- a/csharp/generated-csharp/Xapian.cs
+++ b/csharp/generated-csharp/Xapian.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
diff --git a/csharp/generated-csharp/XapianPINVOKE.cs b/csharp/generated-csharp/XapianPINVOKE.cs
index 9465ccaff1803d756f256d4f6c517810f8fb84b1..618c70eeae04fc3ec814565a1c0926971f913abc 100644
--- a/csharp/generated-csharp/XapianPINVOKE.cs
+++ b/csharp/generated-csharp/XapianPINVOKE.cs
@@ -2,7 +2,7 @@
 // <auto-generated />
 //
 // This file was automatically generated by SWIG (https://www.swig.org).
-// Version 4.1.1
+// Version 4.2.0
 //
 // Do not make changes to this file unless you know what you are doing - modify
 // the SWIG interface file instead.
@@ -610,8 +610,8 @@ class XapianPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_Query_GetDescription")]
   public static extern string Query_GetDescription(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-  [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_new_Query__SWIG_17")]
-  public static extern global::System.IntPtr new_Query__SWIG_17(int jarg1);
+  [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_new_Query__SWIG_15")]
+  public static extern global::System.IntPtr new_Query__SWIG_15(int jarg1);
 
   [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_new_StemImplementation")]
   public static extern global::System.IntPtr new_StemImplementation();
@@ -679,6 +679,9 @@ class XapianPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_TermGenerator_FLAG_SPELLING_get")]
   public static extern int TermGenerator_FLAG_SPELLING_get();
 
+  [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_TermGenerator_FLAG_NGRAMS_get")]
+  public static extern int TermGenerator_FLAG_NGRAMS_get();
+
   [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_TermGenerator_FLAG_CJK_NGRAM_get")]
   public static extern int TermGenerator_FLAG_CJK_NGRAM_get();
 
@@ -784,6 +787,9 @@ class XapianPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_MSet_SNIPPET_EMPTY_WITHOUT_MATCH_get")]
   public static extern int MSet_SNIPPET_EMPTY_WITHOUT_MATCH_get();
 
+  [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_MSet_SNIPPET_NGRAMS_get")]
+  public static extern int MSet_SNIPPET_NGRAMS_get();
+
   [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_MSet_SNIPPET_CJK_NGRAM_get")]
   public static extern int MSet_SNIPPET_CJK_NGRAM_get();
 
@@ -1249,8 +1255,8 @@ class XapianPINVOKE {
   [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_SimpleStopper_GetDescription")]
   public static extern string SimpleStopper_GetDescription(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-  [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_new_SimpleStopper__SWIG_2")]
-  public static extern global::System.IntPtr new_SimpleStopper__SWIG_2(string jarg1);
+  [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_new_SimpleStopper__SWIG_1")]
+  public static extern global::System.IntPtr new_SimpleStopper__SWIG_1(string jarg1);
 
   [global::System.Runtime.InteropServices.DllImport("_XapianSharp", EntryPoint="CSharp_Xapian_delete_SimpleStopper")]
   public static extern void delete_SimpleStopper(global::System.Runtime.InteropServices.HandleRef jarg1);
diff --git a/csharp/xapian_wrap.cc b/csharp/xapian_wrap.cc
index 76b1c62b74bd6505b21cbd37352a32dccd0a07fe..cc3eeabd51e73683a7c9d04f5245d157ac84b556 100644
--- a/csharp/xapian_wrap.cc
+++ b/csharp/xapian_wrap.cc
@@ -1,13 +1,13 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
  * ----------------------------------------------------------------------------- */
 
 
-#define SWIG_VERSION 0x040101
+#define SWIG_VERSION 0x040200
 #define SWIGCSHARP
 #define SWIG_DIRECTORS
 
@@ -135,6 +135,32 @@
 # pragma warning disable 592
 #endif
 
+#if __cplusplus >=201103L
+# define SWIG_NULLPTR nullptr
+#else
+# define SWIG_NULLPTR NULL
+#endif 
+
+
+/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
+ * if you're missing it.
+ */
+#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
+     (defined __cplusplus && __cplusplus >= 201103L) || \
+     defined SWIG_HAVE_SNPRINTF) && \
+    !defined SWIG_NO_SNPRINTF
+# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
+#else
+/* Fallback versions ignore the buffer size, but most of our uses either have a
+ * fixed maximum possible size or dynamically allocate a buffer that's large
+ * enough.
+ */
+# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
+#endif
+
+
 
 #include <stdlib.h>
 #include <string.h>
@@ -703,7 +729,7 @@ SWIGINTERN bool Xapian_ESetIterator_equals(Xapian::ESetIterator const *self,Xapi
 SWIGINTERN std::string Xapian_ESetIterator_get_term(Xapian::ESetIterator const *self){ return **self; }
 SWIGINTERN Xapian::ESetIterator Xapian_ESetIterator_next(Xapian::ESetIterator *self){ return ++(*self); }
 SWIGINTERN Xapian::ESetIterator Xapian_ESetIterator_prev(Xapian::ESetIterator *self){ return --(*self); }
-SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_2(std::string const &file){
+SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_1(std::string const &file){
 	ifstream in_file(file.c_str());
 	if (!in_file.is_open())
 	    throw Xapian::InvalidArgumentError("Stopword file not found: " + file);
@@ -1100,14 +1126,14 @@ std::string SwigDirector_Compactor::resolve_duplicate_metadata(std::string const
   std::string c_result ;
   const char * jresult = 0 ;
   const char * jkey = 0 ;
-  unsigned long jnum_tags  ;
+  unsigned int jnum_tags  ;
   void * jtags  ;
   
   if (!swig_callbackResolveDuplicateMetadata) {
     return Xapian::Compactor::resolve_duplicate_metadata(key,num_tags,tags);
   } else {
     jkey = (&key)->c_str(); 
-    jnum_tags = (unsigned long)num_tags;
+    jnum_tags = (unsigned int)num_tags;
     jtags = (void *) tags; 
     jresult = (const char *) swig_callbackResolveDuplicateMetadata(jkey, jnum_tags, jtags);
     if (!jresult) {
@@ -1227,7 +1253,7 @@ void SwigDirector_PostingSource::skip_to(Xapian::docid did,double min_wt) {
     Xapian::PostingSource::skip_to(did,min_wt);
     return;
   } else {
-    jdid = did;
+    jdid = (unsigned int)did;
     jmin_wt = min_wt;
     swig_callbackSkipTo(jdid, jmin_wt);
   }
@@ -1242,7 +1268,7 @@ bool SwigDirector_PostingSource::check(Xapian::docid did,double min_wt) {
   if (!swig_callbackCheck) {
     return Xapian::PostingSource::check(did,min_wt);
   } else {
-    jdid = did;
+    jdid = (unsigned int)did;
     jmin_wt = min_wt;
     jresult = (unsigned int) swig_callbackCheck(jdid, jmin_wt);
     c_result = jresult ? true : false; 
@@ -1450,7 +1476,7 @@ void SwigDirector_ValuePostingSource::skip_to(Xapian::docid min_docid,double min
     Xapian::ValuePostingSource::skip_to(min_docid,min_wt);
     return;
   } else {
-    jmin_docid = min_docid;
+    jmin_docid = (unsigned int)min_docid;
     jmin_wt = min_wt;
     swig_callbackSkipTo(jmin_docid, jmin_wt);
   }
@@ -1465,7 +1491,7 @@ bool SwigDirector_ValuePostingSource::check(Xapian::docid min_docid,double min_w
   if (!swig_callbackCheck) {
     return Xapian::ValuePostingSource::check(min_docid,min_wt);
   } else {
-    jmin_docid = min_docid;
+    jmin_docid = (unsigned int)min_docid;
     jmin_wt = min_wt;
     jresult = (unsigned int) swig_callbackCheck(jmin_docid, jmin_wt);
     c_result = jresult ? true : false; 
@@ -1672,7 +1698,7 @@ void SwigDirector_ValueWeightPostingSource::skip_to(Xapian::docid min_docid,doub
     Xapian::ValuePostingSource::skip_to(min_docid,min_wt);
     return;
   } else {
-    jmin_docid = min_docid;
+    jmin_docid = (unsigned int)min_docid;
     jmin_wt = min_wt;
     swig_callbackSkipTo(jmin_docid, jmin_wt);
   }
@@ -1687,7 +1713,7 @@ bool SwigDirector_ValueWeightPostingSource::check(Xapian::docid min_docid,double
   if (!swig_callbackCheck) {
     return Xapian::ValuePostingSource::check(min_docid,min_wt);
   } else {
-    jmin_docid = min_docid;
+    jmin_docid = (unsigned int)min_docid;
     jmin_wt = min_wt;
     jresult = (unsigned int) swig_callbackCheck(jmin_docid, jmin_wt);
     c_result = jresult ? true : false; 
@@ -2025,7 +2051,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_BAD_VALUENO_get() {
   Xapian::valueno result;
   
   result = (Xapian::valueno)(Xapian::BAD_VALUENO);
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -2355,7 +2381,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_PositionIterator_GetTermPos(vo
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -2417,7 +2443,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_PostingIterator_GetWdf(void *
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -2439,7 +2465,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_PostingIterator_GetDocLength(v
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -2461,7 +2487,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_PostingIterator_GetUniqueTerms
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -2587,7 +2613,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_PostingIterator_GetDocId(void
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -2649,7 +2675,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_TermIterator_GetWdf(void * jar
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -2671,7 +2697,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_TermIterator_GetTermFreq(void
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -2693,7 +2719,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_TermIterator_PositionlistCount
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -2886,7 +2912,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ValueIterator_GetDocId(void *
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -2908,7 +2934,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ValueIterator_GetValueNo(void
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -3434,7 +3460,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Document_RemovePostings__SWIG_
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -3467,7 +3493,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Document_RemovePostings__SWIG_
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -3532,7 +3558,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Document_TermListCount(void *
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -3588,7 +3614,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Document_ValuesCount(void * ja
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -3644,7 +3670,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Document_GetDocId(void * jarg1
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -4517,7 +4543,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Query_GetLength(void * jarg1)
   
   arg1 = (Xapian::Query *)jarg1; 
   result = (Xapian::termcount)((Xapian::Query const *)arg1)->get_length();
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -4628,19 +4654,19 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Xapian_Query_GetType(void * jarg1) {
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Query_GetNumSubqueries(void * jarg1) {
-  unsigned long jresult ;
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Query_GetNumSubqueries(void * jarg1) {
+  unsigned int jresult ;
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   size_t result;
   
   arg1 = (Xapian::Query *)jarg1; 
   result = ((Xapian::Query const *)arg1)->get_num_subqueries();
-  jresult = (unsigned long)result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_Query_GetSubquery(void * jarg1, unsigned long jarg2) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_Query_GetSubquery(void * jarg1, unsigned int jarg2) {
   void * jresult ;
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   size_t arg2 ;
@@ -4686,7 +4712,7 @@ SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_Query_GetDescription(void * ja
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_new_Query__SWIG_17(int jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_new_Query__SWIG_15(int jarg1) {
   void * jresult ;
   Xapian::Query::op arg1 ;
   Xapian::Query *result = 0 ;
@@ -5143,6 +5169,16 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Xapian_TermGenerator_FLAG_SPELLING_get() {
 }
 
 
+SWIGEXPORT int SWIGSTDCALL CSharp_Xapian_TermGenerator_FLAG_NGRAMS_get() {
+  int jresult ;
+  int result;
+  
+  result = (int)Xapian::TermGenerator::FLAG_NGRAMS;
+  jresult = (int)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT int SWIGSTDCALL CSharp_Xapian_TermGenerator_FLAG_CJK_NGRAM_get() {
   int jresult ;
   int result;
@@ -5490,7 +5526,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_TermGenerator_GetTermPos(void
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -5641,7 +5677,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSet_GetTermFreq(void * jarg1,
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -5692,7 +5728,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSet_GetFirstItem(void * jarg1
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -5714,7 +5750,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSet_GetMatchesLowerBound(void
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -5736,7 +5772,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSet_GetMatchesEstimated(void
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -5758,7 +5794,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSet_GetMatchesUpperBound(void
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -5780,7 +5816,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSet_GetUncollapsedMatchesLowe
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -5802,7 +5838,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSet_GetUncollapsedMatchesEsti
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -5824,7 +5860,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSet_GetUncollapsedMatchesUppe
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -5903,6 +5939,16 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Xapian_MSet_SNIPPET_EMPTY_WITHOUT_MATCH_get()
 }
 
 
+SWIGEXPORT int SWIGSTDCALL CSharp_Xapian_MSet_SNIPPET_NGRAMS_get() {
+  int jresult ;
+  int result;
+  
+  result = (int)Xapian::MSet::SNIPPET_NGRAMS;
+  jresult = (int)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT int SWIGSTDCALL CSharp_Xapian_MSet_SNIPPET_CJK_NGRAM_get() {
   int jresult ;
   int result;
@@ -5913,7 +5959,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Xapian_MSet_SNIPPET_CJK_NGRAM_get() {
 }
 
 
-SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_0(void * jarg1, const char * jarg2, unsigned long jarg3, void * jarg4, unsigned int jarg5, const char * jarg6, const char * jarg7, const char * jarg8) {
+SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_0(void * jarg1, const char * jarg2, unsigned int jarg3, void * jarg4, unsigned int jarg5, const char * jarg6, const char * jarg7, const char * jarg8) {
   const char * jresult ;
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
@@ -5973,7 +6019,7 @@ SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_0(void * ja
 }
 
 
-SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_1(void * jarg1, const char * jarg2, unsigned long jarg3, void * jarg4, unsigned int jarg5, const char * jarg6, const char * jarg7) {
+SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_1(void * jarg1, const char * jarg2, unsigned int jarg3, void * jarg4, unsigned int jarg5, const char * jarg6, const char * jarg7) {
   const char * jresult ;
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
@@ -6026,7 +6072,7 @@ SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_1(void * ja
 }
 
 
-SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_2(void * jarg1, const char * jarg2, unsigned long jarg3, void * jarg4, unsigned int jarg5, const char * jarg6) {
+SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_2(void * jarg1, const char * jarg2, unsigned int jarg3, void * jarg4, unsigned int jarg5, const char * jarg6) {
   const char * jresult ;
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
@@ -6072,7 +6118,7 @@ SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_2(void * ja
 }
 
 
-SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_3(void * jarg1, const char * jarg2, unsigned long jarg3, void * jarg4, unsigned int jarg5) {
+SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_3(void * jarg1, const char * jarg2, unsigned int jarg3, void * jarg4, unsigned int jarg5) {
   const char * jresult ;
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
@@ -6111,7 +6157,7 @@ SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_3(void * ja
 }
 
 
-SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_4(void * jarg1, const char * jarg2, unsigned long jarg3, void * jarg4) {
+SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_4(void * jarg1, const char * jarg2, unsigned int jarg3, void * jarg4) {
   const char * jresult ;
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
@@ -6148,7 +6194,7 @@ SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_4(void * ja
 }
 
 
-SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_5(void * jarg1, const char * jarg2, unsigned long jarg3) {
+SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_MSet_Snippet__SWIG_5(void * jarg1, const char * jarg2, unsigned int jarg3) {
   const char * jresult ;
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
@@ -6297,7 +6343,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSet_Size(void * jarg1) {
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -6431,7 +6477,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSet_GetDocId(void * jarg1, un
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -6547,7 +6593,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSetIterator_off_from_end_get(
   
   arg1 = (Xapian::MSetIterator *)jarg1; 
   result = (Xapian::MSet::size_type) ((arg1)->off_from_end);
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -6589,7 +6635,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSetIterator_GetRank(void * ja
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -6677,7 +6723,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSetIterator_GetCollapseCount(
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -6793,7 +6839,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_MSetIterator_GetDocId(void * j
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -6895,7 +6941,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ESet_Size(void * jarg1) {
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -6939,7 +6985,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ESet_GetEbound(void * jarg1) {
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -7071,7 +7117,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ESetIterator_off_from_end_get(
   
   arg1 = (Xapian::ESetIterator *)jarg1; 
   result = (Xapian::ESet::size_type) ((arg1)->off_from_end);
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -7287,7 +7333,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_RSet_Size(void * jarg1) {
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -9292,7 +9338,7 @@ SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_SimpleStopper_GetDescription(v
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_new_SimpleStopper__SWIG_2(const char * jarg1) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_new_SimpleStopper__SWIG_1(const char * jarg1) {
   void * jresult ;
   std::string *arg1 = 0 ;
   Xapian::SimpleStopper *result = 0 ;
@@ -9305,7 +9351,7 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_new_SimpleStopper__SWIG_2(const char
   arg1 = &arg1_str; 
   {
     try {
-      result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_2((std::string const &)*arg1);
+      result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_1((std::string const &)*arg1);
     } catch (...) {
       string msg;
       int code = XapianExceptionHandler(msg);
@@ -9966,7 +10012,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ValueRangeProcessor_Apply(void
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -10111,7 +10157,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_StringValueRangeProcessor_Appl
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -10363,7 +10409,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_DateValueRangeProcessor_Apply(
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -10497,7 +10543,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_NumberValueRangeProcessor_Appl
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -14322,7 +14368,7 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Xapian_delete_Compactor(void * jarg1) {
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_Xapian_Compactor_SetBlockSize(void * jarg1, unsigned long jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_Xapian_Compactor_SetBlockSize(void * jarg1, unsigned int jarg2) {
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   size_t arg2 ;
   
@@ -14534,12 +14580,12 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Xapian_Compactor_SetStatusSwigExplicitCompact
 }
 
 
-SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_Compactor_ResolveDuplicateMetadata(void * jarg1, const char * jarg2, unsigned long jarg3, void * jarg4) {
+SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_Compactor_ResolveDuplicateMetadata(void * jarg1, const char * jarg2, unsigned int jarg3, void * jarg4) {
   const char * jresult ;
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
-  std::string *arg4 ;
+  std::string *arg4 = (std::string *) (std::string *)0 ;
   std::string result;
   
   arg1 = (Xapian::Compactor *)jarg1; 
@@ -14567,12 +14613,12 @@ SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_Compactor_ResolveDuplicateMeta
 }
 
 
-SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_Compactor_ResolveDuplicateMetadataSwigExplicitCompactor(void * jarg1, const char * jarg2, unsigned long jarg3, void * jarg4) {
+SWIGEXPORT const char * SWIGSTDCALL CSharp_Xapian_Compactor_ResolveDuplicateMetadataSwigExplicitCompactor(void * jarg1, const char * jarg2, unsigned int jarg3, void * jarg4) {
   const char * jresult ;
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
-  std::string *arg4 ;
+  std::string *arg4 = (std::string *) (std::string *)0 ;
   std::string result;
   
   arg1 = (Xapian::Compactor *)jarg1; 
@@ -14642,7 +14688,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_PostingSource_GetTermfreqMin(v
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -14664,7 +14710,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_PostingSource_GetTermfreqEst(v
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -14686,7 +14732,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_PostingSource_GetTermfreqMax(v
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -14784,7 +14830,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_PostingSource_GetDocId(void *
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -15107,7 +15153,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ValuePostingSource_GetTermfreq
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -15129,7 +15175,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ValuePostingSource_GetTermfreq
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -15151,7 +15197,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ValuePostingSource_GetTermfreq
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -15173,7 +15219,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ValuePostingSource_GetTermfreq
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -15195,7 +15241,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ValuePostingSource_GetTermfreq
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -15217,7 +15263,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ValuePostingSource_GetTermfreq
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -15419,7 +15465,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ValuePostingSource_GetDocId(vo
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -15441,7 +15487,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ValuePostingSource_GetDocIdSwi
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -15533,7 +15579,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ValuePostingSource_GetSlot(voi
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -16354,7 +16400,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_FixedWeightPostingSource_GetTe
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -16376,7 +16422,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_FixedWeightPostingSource_GetTe
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -16398,7 +16444,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_FixedWeightPostingSource_GetTe
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -16532,7 +16578,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_FixedWeightPostingSource_GetDo
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -16866,14 +16912,14 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_new_ValueCountMatchSpy__SWIG_1(unsig
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_ValueCountMatchSpy_GetTotal(void * jarg1) {
-  unsigned long jresult ;
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_ValueCountMatchSpy_GetTotal(void * jarg1) {
+  unsigned int jresult ;
   Xapian::ValueCountMatchSpy *arg1 = (Xapian::ValueCountMatchSpy *) 0 ;
   size_t result;
   
   arg1 = (Xapian::ValueCountMatchSpy *)jarg1; 
   result = ((Xapian::ValueCountMatchSpy const *)arg1)->get_total();
-  jresult = (unsigned long)result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -16912,7 +16958,7 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_ValueCountMatchSpy_ValuesEnd(void *
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_ValueCountMatchSpy_TopValuesBegin(void * jarg1, unsigned long jarg2) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_ValueCountMatchSpy_TopValuesBegin(void * jarg1, unsigned int jarg2) {
   void * jresult ;
   Xapian::ValueCountMatchSpy *arg1 = (Xapian::ValueCountMatchSpy *) 0 ;
   size_t arg2 ;
@@ -16936,7 +16982,7 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_ValueCountMatchSpy_TopValuesBegin(vo
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_ValueCountMatchSpy_TopValuesEnd(void * jarg1, unsigned long jarg2) {
+SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_ValueCountMatchSpy_TopValuesEnd(void * jarg1, unsigned int jarg2) {
   void * jresult ;
   Xapian::ValueCountMatchSpy *arg1 = (Xapian::ValueCountMatchSpy *) 0 ;
   size_t arg2 ;
@@ -17416,8 +17462,8 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Xapian_LatLongCoords_End(void * jarg1) {
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_LatLongCoords_Size(void * jarg1) {
-  unsigned long jresult ;
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_LatLongCoords_Size(void * jarg1) {
+  unsigned int jresult ;
   Xapian::LatLongCoords *arg1 = (Xapian::LatLongCoords *) 0 ;
   size_t result;
   
@@ -17433,7 +17479,7 @@ SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_LatLongCoords_Size(void * jar
       };
     }
   }
-  jresult = (unsigned long)result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -17718,7 +17764,7 @@ SWIGEXPORT double SWIGSTDCALL CSharp_Xapian_LatLongMetric_Apply__SWIG_1(void * j
 }
 
 
-SWIGEXPORT double SWIGSTDCALL CSharp_Xapian_LatLongMetric_Apply__SWIG_2(void * jarg1, void * jarg2, char * jarg3, unsigned long jarg4) {
+SWIGEXPORT double SWIGSTDCALL CSharp_Xapian_LatLongMetric_Apply__SWIG_2(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
   double jresult ;
   Xapian::LatLongMetric *arg1 = (Xapian::LatLongMetric *) 0 ;
   Xapian::LatLongCoords *arg2 = 0 ;
@@ -18599,8 +18645,8 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Xapian_Database_AddDatabase(void * jarg1, voi
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_Size(void * jarg1) {
-  unsigned long jresult ;
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_Size(void * jarg1) {
+  unsigned int jresult ;
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   size_t result;
   
@@ -18616,7 +18662,7 @@ SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_Size(void * jarg1) {
       };
     }
   }
-  jresult = (unsigned long)result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -19072,7 +19118,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_GetDocCount(void * ja
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -19094,7 +19140,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_GetLastDocId(void * j
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -19143,8 +19189,8 @@ SWIGEXPORT double SWIGSTDCALL CSharp_Xapian_Database_GetAverageLength(void * jar
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_GetTotalLength(void * jarg1) {
-  unsigned long jresult ;
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_GetTotalLength(void * jarg1) {
+  unsigned int jresult ;
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::totallength result;
   
@@ -19160,7 +19206,7 @@ SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_GetTotalLength(void
       };
     }
   }
-  jresult = (unsigned long)result; 
+  jresult = result; 
   return jresult;
 }
 
@@ -19189,7 +19235,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_GetTermFreq(void * ja
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -19247,7 +19293,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_GetCollectionFreq(voi
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -19271,7 +19317,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_GetValueFreq(void * j
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -19341,7 +19387,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_GetDoclengthLowerBoun
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -19363,7 +19409,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_GetDoclengthUpperBoun
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -19392,7 +19438,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_GetWdfUpperBound(void
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -19454,7 +19500,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_GetDocLength(void * j
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -19478,7 +19524,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_GetUniqueTerms(void *
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -19930,8 +19976,8 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_Locked(void * jarg1)
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_GetRevision(void * jarg1) {
-  unsigned long jresult ;
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_GetRevision(void * jarg1) {
+  unsigned int jresult ;
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::rev result;
   
@@ -19947,13 +19993,13 @@ SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_GetRevision(void * j
       };
     }
   }
-  jresult = (unsigned long)result; 
+  jresult = result; 
   return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_Check__SWIG_0(const char * jarg1, int jarg2) {
-  unsigned long jresult ;
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_Check__SWIG_0(const char * jarg1, int jarg2) {
+  unsigned int jresult ;
   std::string *arg1 = 0 ;
   int arg2 ;
   size_t result;
@@ -19976,13 +20022,13 @@ SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_Check__SWIG_0(const
       };
     }
   }
-  jresult = (unsigned long)result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_Check__SWIG_1(const char * jarg1) {
-  unsigned long jresult ;
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_Check__SWIG_1(const char * jarg1) {
+  unsigned int jresult ;
   std::string *arg1 = 0 ;
   size_t result;
   
@@ -20003,13 +20049,13 @@ SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_Check__SWIG_1(const
       };
     }
   }
-  jresult = (unsigned long)result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_Check__SWIG_2(int jarg1, int jarg2) {
-  unsigned long jresult ;
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_Check__SWIG_2(int jarg1, int jarg2) {
+  unsigned int jresult ;
   int arg1 ;
   int arg2 ;
   size_t result;
@@ -20027,13 +20073,13 @@ SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_Check__SWIG_2(int ja
       };
     }
   }
-  jresult = (unsigned long)result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
 
-SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_Check__SWIG_3(int jarg1) {
-  unsigned long jresult ;
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_Database_Check__SWIG_3(int jarg1) {
+  unsigned int jresult ;
   int arg1 ;
   size_t result;
   
@@ -20049,7 +20095,7 @@ SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Xapian_Database_Check__SWIG_3(int ja
       };
     }
   }
-  jresult = (unsigned long)result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -20538,7 +20584,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_WritableDatabase_AddDocument(v
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
@@ -20644,7 +20690,7 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Xapian_WritableDatabase_ReplaceDocume
       };
     }
   }
-  jresult = result; 
+  jresult = (unsigned int)result; 
   return jresult;
 }
 
diff --git a/csharp/xapian_wrap.h b/csharp/xapian_wrap.h
index 2f8debb2c915e1be6958612164e078c457f320e1..e4fb0a3078e2c3e04eb6aafab28fe84bd7007e80 100644
--- a/csharp/xapian_wrap.h
+++ b/csharp/xapian_wrap.h
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -145,7 +145,7 @@ public:
     virtual std::string resolve_duplicate_metadata(std::string const &key,size_t num_tags,std::string const tags[]);
 
     typedef void (SWIGSTDCALL* SWIG_Callback0_t)(const char *, const char *);
-    typedef const char * (SWIGSTDCALL* SWIG_Callback1_t)(const char *, unsigned long, void *);
+    typedef const char * (SWIGSTDCALL* SWIG_Callback1_t)(const char *, unsigned int, void *);
     void swig_connect_director(SWIG_Callback0_t callbackSetStatus, SWIG_Callback1_t callbackResolveDuplicateMetadata);
 
 private:
diff --git a/debian/apertis/copyright b/debian/apertis/copyright
index 06685adee4b1b1a18673ce01aee63face00672e7..5140413b3a3d8fe035b7a26866006e3e18edae40 100644
--- a/debian/apertis/copyright
+++ b/debian/apertis/copyright
@@ -1,7 +1,7 @@
 Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 
 Files: *
-Copyright: 2004-2022, Olly Betts
+Copyright: 2004-2023, Olly Betts
 License: GPL-2+
 
 Files: INSTALL
@@ -11,6 +11,7 @@ License: FSFAP
 Files: Makefile.in
 Copyright: 1994-2021, Free Software Foundation, Inc.
 License: UNKNOWN
+ Please fill license text from header of files
 
 Files: aclocal.m4
 Copyright: 1996-2021, Free Software Foundation, Inc.
@@ -30,24 +31,25 @@ License: FSFUL
 Files: csharp/Makefile.in
 Copyright: 1994-2021, Free Software Foundation, Inc.
 License: UNKNOWN
+ Please fill license text from header of files
 
 Files: csharp/docs/*
-Copyright: This stylesheet has been placed in the public domain.
-License: public-domain
-
-Files: csharp/docs/examples/*
 Copyright: 2004, 2006, 2007, 2009, 2012-2014, Olly Betts
  2003, James Aylett
 License: GPL-2+
 
-Files: debian/*
+Files: csharp/docs/index.html
+Copyright: This stylesheet has been placed in the public domain.
+License: public-domain
+
+Files: debian/rules
 Copyright: 2006-2022, Olly Betts
  2004-2006, Lemur Consulting Ltd
 License: Expat
 
 Files: fake_dbfactory.i
 Copyright: 2007, Lemur Consulting Ltd
- 2002-2011, Olly Betts
+ 2002-2011, 2013, 2016, 2017, 2019, Olly Betts
  2002, 2003, 2005, James Aylett
  2001, 2002, Ananova Ltd
  1999-2001, BrightStation PLC
@@ -55,30 +57,27 @@ License: GPL-2+
 
 Files: generic/*
 Copyright: 2007, Lemur Consulting Ltd
- 2004-2008, 2010-2019, Olly Betts
+ 2004-2023, Olly Betts
 License: GPL-2+
 
 Files: install-sh
 Copyright: 1994, X Consortium
 License: X11
 
-Files: java/*
-Copyright: This stylesheet has been placed in the public domain.
-License: public-domain
-
 Files: java/Makefile.in
 Copyright: 1994-2021, Free Software Foundation, Inc.
 License: UNKNOWN
+ Please fill license text from header of files
 
-Files: java/SmokeTest.java
-Copyright: 2004-2022, Olly Betts
-License: GPL-2+
-
-Files: java/docs/examples/*
+Files: java/docs/*
 Copyright: 2011, 2017, Olly Betts
  2003, Technology Concepts & Design, Inc.
 License: BSD-3-clause
 
+Files: java/docs/index.html
+Copyright: This stylesheet has been placed in the public domain.
+License: public-domain
+
 Files: java/java.i
 Copyright: 2012, Dan Colish
  2007, 2009, 2011, 2012, 2014, 2016-2019, Olly Betts
@@ -86,29 +85,31 @@ License: GPL-2+
 
 Files: ltmain.sh
 Copyright: 1996-2015, Free Software Foundation, Inc.
-License: (GPL-2+ and/or GPL-3+) with Libtool exception
+License: (GPL-2+ or GPL-3+) with Libtool exception
 
 Files: lua/*
 Copyright: 2011, Xiaona Han
- 2007, Richard Boulton
- 2007, Lemur Consulting Ltd
- 2003, 2004, 2006-2008, 2011, 2012, Olly Betts
 License: GPL-2+
 
 Files: lua/Makefile.in
 Copyright: 1994-2021, Free Software Foundation, Inc.
 License: UNKNOWN
+ Please fill license text from header of files
 
-Files: lua/docs/*
+Files: lua/docs/index.html
 Copyright: This stylesheet has been placed in the public domain.
 License: public-domain
 
-Files: lua/docs/examples/*
+Files: lua/except.i
+ lua/generate-lua-exceptions
 Copyright: 2011, Xiaona Han
+ 2007, Richard Boulton
+ 2007, Lemur Consulting Ltd
+ 2003, 2004, 2006-2008, 2011, 2012, Olly Betts
 License: GPL-2+
 
 Files: lua/lua.i
-Copyright: 2004-2022, Olly Betts
+Copyright: 2004-2023, Olly Betts
 License: GPL-2+
 
 Files: lua/smoketest.lua
@@ -118,10 +119,6 @@ Copyright: 2011, Xiaona Han
 License: GPL-2+
 
 Files: m4/*
-Copyright: 2004, 2005, 2007-2009, 2011-2015, Free Software
-License: FSFULLR
-
-Files: m4/ax_cxx_compile_stdcxx.m4
 Copyright: 2021, Jörn Heusipp <osmanx@problemloesungsmaschine.de>
  2020, Jason Merrill <jason@redhat.com>
  2019, Enji Cooper <yaneurabeya@gmail.com>
@@ -134,26 +131,14 @@ Copyright: 2021, Jörn Heusipp <osmanx@problemloesungsmaschine.de>
  2008, Benjamin Kosnik <bkoz@redhat.com>
 License: FSFAP
 
-Files: m4/libtool.m4
-Copyright: 1996-2001, 2003-2015, Free Software Foundation, Inc.
-License: (FSFULLR and/or GPL-2) with Libtool exception
-
-Files: m4/ltversion.m4
-Copyright: 1996-2021, Free Software Foundation, Inc.
-License: FSFULLR
-
-Files: perl/*
-Copyright: 2011-2013, 2015, 2016, 2018-2020, Olly Betts
- 2009, Kosei Moriyama
-License: GPL-2+
-
 Files: perl/Makefile.in
 Copyright: 1994-2021, Free Software Foundation, Inc.
 License: UNKNOWN
+ Please fill license text from header of files
 
 Files: perl/Xapian.pm
 Copyright: no-info-found
-License: Perl
+License: Artistic-1.0 or GPL-1+
 
 Files: perl/docs/*
 Copyright: 2004, 2006, 2007, 2009, 2012-2014, Olly Betts
@@ -162,39 +147,39 @@ License: GPL-2+
 
 Files: perl/docs/examples/full-indexer.pl
  perl/docs/examples/full-searcher.pl
-Copyright: 2004-2022, Olly Betts
+Copyright: 2004-2023, Olly Betts
 License: GPL-2+
 
 Files: perl/except.i
  perl/generate-perl-exceptions
-Copyright: 2007, Richard Boulton
- 2007, Lemur Consulting Ltd
- 2003, 2004, 2006-2009, 2011-2013, Olly Betts
+Copyright: 2007, Lemur Consulting Ltd
+ 2007, 2010, 2011, Richard Boulton
+ 2003, 2004, 2006-2016, 2019, Olly Betts
 License: GPL-2+
 
-Files: php/*
-Copyright: 2007, Lemur Consulting Ltd
- 2004-2008, 2010-2019, Olly Betts
+Files: perl/extra.i
+ perl/perl.i
+Copyright: 2011-2013, 2015, 2016, 2018-2020, Olly Betts
+ 2009, Kosei Moriyama
 License: GPL-2+
 
 Files: php/Makefile.in
 Copyright: 1994-2021, Free Software Foundation, Inc.
 License: UNKNOWN
+ Please fill license text from header of files
 
 Files: php/add-php-ref-handling
 Copyright: 2013, 2014, 2016, 2017, 2019, 2022, Olly Betts
 License: Expat
 
-Files: php/docs/*
+Files: php/docs/index.html
 Copyright: This stylesheet has been placed in the public domain.
 License: public-domain
 
-Files: php/docs/examples/*
-Copyright: 2004-2022, Olly Betts
-License: GPL-2+
-
-Files: php/php.i
-Copyright: 2004-2022, Olly Betts
+Files: php/except.i
+ php/generate-php-exceptions
+Copyright: 2007, Lemur Consulting Ltd
+ 2004-2023, Olly Betts
 License: GPL-2+
 
 Files: php/smoketest.php
@@ -205,17 +190,19 @@ License: GPL-2+
 Files: python/Makefile.in
 Copyright: 1994-2021, Free Software Foundation, Inc.
 License: UNKNOWN
+ Please fill license text from header of files
 
-Files: python/docs/*
+Files: python/docs/examples/*
 Copyright: 2004, 2006, 2007, 2009, 2012-2014, Olly Betts
  2003, James Aylett
 License: GPL-2+
 
 Files: python/except.i
  python/generate-python-exceptions
-Copyright: 2007, Richard Boulton
- 2007, Lemur Consulting Ltd
- 2003, 2004, 2006-2009, 2011-2013, Olly Betts
+ python/pythontest.py
+Copyright: 2007, Lemur Consulting Ltd
+ 2007, 2010, 2011, Richard Boulton
+ 2003, 2004, 2006-2016, 2019, Olly Betts
 License: GPL-2+
 
 Files: python/extra.i
@@ -233,50 +220,43 @@ Files: python/fixup-swig-py2-wrapper
 Copyright: 2013, 2014, 2016, 2017, 2019, 2022, Olly Betts
 License: Expat
 
-Files: python/pythontest.py
-Copyright: 2010, 2011, Richard Boulton
- 2008-2011, 2013-2016, 2019, Olly Betts
- 2007, Lemur Consulting Ltd
-License: GPL-2+
-
 Files: python/smoketest.py
+ python/testsuite.py
 Copyright: 2007, Lemur Consulting Ltd
- 2004-2008, 2010-2019, Olly Betts
-License: GPL-2+
-
-Files: python/testsuite.py
-Copyright: 2008, 2011, Olly Betts
- 2007, Lemur Consulting Ltd
+ 2004-2023, Olly Betts
 License: GPL-2+
 
 Files: python/util.i
 Copyright: 2007, Lemur Consulting Ltd
  2002-2011, 2013, 2016, 2017, 2019, Olly Betts
- 2002, Ananova Ltd
- 2002, 2003, James Aylett
+ 2002, 2003, 2005, James Aylett
+ 2001, 2002, Ananova Ltd
  1999-2001, BrightStation PLC
 License: GPL-2+
 
 Files: python3/Makefile.in
 Copyright: 1994-2021, Free Software Foundation, Inc.
 License: UNKNOWN
-
-Files: python3/docs/*
-Copyright: 2007, 2008, 2010, Richard Boulton
- 2004-2022, Olly Betts
- 2003, James Aylett
-License: UNKNOWN
+ Please fill license text from header of files
 
 Files: python3/docs/examples/*
 Copyright: 2004, 2006, 2007, 2009, 2012-2014, Olly Betts
  2003, James Aylett
 License: GPL-2+
 
+Files: python3/docs/introduction.rst
+Copyright: 2007, 2008, 2010, Richard Boulton
+ 2004-2022, Olly Betts
+ 2003, James Aylett
+License: UNKNOWN
+ Please fill license text from header of files
+
 Files: python3/except.i
  python3/generate-python-exceptions
-Copyright: 2007, Richard Boulton
- 2007, Lemur Consulting Ltd
- 2003, 2004, 2006-2009, 2011-2013, Olly Betts
+ python3/pythontest.py
+Copyright: 2007, Lemur Consulting Ltd
+ 2007, 2010, 2011, Richard Boulton
+ 2003, 2004, 2006-2016, 2019, Olly Betts
 License: GPL-2+
 
 Files: python3/extra.i
@@ -294,53 +274,33 @@ Files: python3/fixup-swig-py3-wrapper
 Copyright: 2013, 2014, 2016, 2017, 2019, 2022, Olly Betts
 License: Expat
 
-Files: python3/pythontest.py
-Copyright: 2010, 2011, Richard Boulton
- 2008-2011, 2013-2016, 2019, Olly Betts
- 2007, Lemur Consulting Ltd
-License: GPL-2+
-
 Files: python3/smoketest.py
+ python3/testsuite.py
 Copyright: 2007, Lemur Consulting Ltd
- 2004-2008, 2010-2019, Olly Betts
-License: GPL-2+
-
-Files: python3/testsuite.py
-Copyright: 2008, 2011, Olly Betts
- 2007, Lemur Consulting Ltd
+ 2004-2023, Olly Betts
 License: GPL-2+
 
 Files: python3/util.i
 Copyright: 2007, Lemur Consulting Ltd
  2002-2011, 2013, 2016, 2017, 2019, Olly Betts
- 2002, Ananova Ltd
- 2002, 2003, James Aylett
+ 2002, 2003, 2005, James Aylett
+ 2001, 2002, Ananova Ltd
  1999-2001, BrightStation PLC
 License: GPL-2+
 
-Files: ruby/*
-Copyright: 2010, Richard Boulton
- 2006-2012, 2016, 2019, Olly Betts
- 2006, Networked Knowledge Systems, Inc.
-License: GPL-2+
-
 Files: ruby/Makefile.in
 Copyright: 1994-2021, Free Software Foundation, Inc.
 License: UNKNOWN
+ Please fill license text from header of files
 
 Files: ruby/docs/*
-Copyright: This stylesheet has been placed in the public domain.
-License: public-domain
-
-Files: ruby/docs/examples/*
 Copyright: 2006, Networked Knowledge Systems, Inc.
  2006, 2007, 2016, Olly Betts
 License: GPL-2+
 
-Files: ruby/docs/examples/simpleindex.rb
-Copyright: 2007, Olly Betts
- 2006, Networked Knowledge Systems, Inc.
-License: GPL-2+
+Files: ruby/docs/index.html
+Copyright: This stylesheet has been placed in the public domain.
+License: public-domain
 
 Files: ruby/docs/xapian.rb
 Copyright: 2010, Richard Boulton
@@ -348,23 +308,28 @@ Copyright: 2010, Richard Boulton
  2006, Networked Knowledge Systems, Inc.
 License: GPL-2+
 
-Files: ruby/extra.i
-Copyright: 2004-2022, Olly Betts
+Files: ruby/ruby.i
+ ruby/smoketest.rb
+ ruby/xapian.rb
+Copyright: 2010, Richard Boulton
+ 2006-2012, 2016, 2019, Olly Betts
+ 2006, Networked Knowledge Systems, Inc.
 License: GPL-2+
 
 Files: tcl8/Makefile.in
 Copyright: 1994-2021, Free Software Foundation, Inc.
 License: UNKNOWN
+ Please fill license text from header of files
 
 Files: tcl8/docs/*
-Copyright: This stylesheet has been placed in the public domain.
-License: public-domain
-
-Files: tcl8/docs/examples/*
 Copyright: 2004, Michael Schlenker
  2004, 2006, 2007, 2009, Olly Betts
 License: GPL-2+
 
+Files: tcl8/docs/index.html
+Copyright: This stylesheet has been placed in the public domain.
+License: public-domain
+
 Files: xapian-bindings.spec
  xapian-bindings.spec.in
 Copyright: no-info-found
@@ -374,4 +339,3 @@ Files: xapian-headers.i
 Copyright: 2014, Assem Chelli
  2004, 2006, 2011-2016, 2019, 2020, Olly Betts
 License: GPL-2+
-
diff --git a/debian/changelog b/debian/changelog
index 3e0fdb70c84f7de18db0d8bec516917ebea47d6e..cc8ce3f5ecb95132be730696a56d290f624a60d4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,30 @@
+xapian-bindings (1.4.25-1+apertis1) apertis; urgency=medium
+
+  * Sync from debian/trixie.
+  * Remaining Apertis specific changes:
+    - Disable java support. This allows us to decouple the
+      Java ecosystem from the target/development repositories.
+
+ -- Dylan Aïssi <dylan.aissi@collabora.com>  Mon, 10 Mar 2025 16:01:04 +0100
+
+xapian-bindings (1.4.25-1) unstable; urgency=medium
+
+  * New upstream release:
+    + debian/control.in: Add pkgconf to Build-Depends, needed since upstream
+      1.4.24.
+  * debian/clean: Remove python3/__pycache__/ on clean.  (Closes: #1047428)
+  * debian/copyright: Update copyright holders and years.
+
+ -- Olly Betts <olly@survex.com>  Wed, 10 Apr 2024 10:45:09 +1200
+
+xapian-bindings (1.4.22-2) unstable; urgency=medium
+
+  * debian/control.in: Mark conformance with policy 4.7.0.
+  * debian/rules: Adjust ruby-xapian generated "Depends" to pick up t64
+    suffix.  (Closes: #1068599)
+
+ -- Olly Betts <olly@survex.com>  Mon, 08 Apr 2024 17:05:15 +1200
+
 xapian-bindings (1.4.22-1+apertis1) apertis; urgency=medium
 
   * Disable java support. This allows us to decouple the
diff --git a/debian/clean b/debian/clean
index 7fe3f6baedca120ed11c056151129f3421f8e08b..2689670807968ac9e6b5ec68c50e3d7ae6d22d71 100644
--- a/debian/clean
+++ b/debian/clean
@@ -1,2 +1,3 @@
 debian/build/
 java/built/xapian.jar
+python/__pycache__/
diff --git a/debian/control b/debian/control
index e4e851b5f13dcfe9ed9eae865dbe0f8a6956e2ba..936d869158d2ed37c48e96eb93c3a6bce4d24245 100644
--- a/debian/control
+++ b/debian/control
@@ -2,9 +2,9 @@ Source: xapian-bindings
 Section: libs
 Priority: optional
 Maintainer: Olly Betts <olly@survex.com>
-Build-Depends: ruby-all-dev, ruby, ruby-test-unit, dh-python, python3, python3-all-dev, python3-sphinx, tcl-dev, libxapian-dev (>= 1.4.22), libxapian-dev (<< 1.5.0), debhelper-compat (= 12)
+Build-Depends: ruby-all-dev, ruby, ruby-test-unit, dh-python, python3, python3-all-dev, python3-sphinx, tcl-dev, libxapian-dev (>= 1.4.25), libxapian-dev (<< 1.5.0), debhelper-compat (= 12), pkgconf
 XS-Ruby-Versions: all
-Standards-Version: 4.6.2
+Standards-Version: 4.7.0
 Homepage: https://xapian.org/
 Rules-Requires-Root: no
 Vcs-Browser: https://salsa.debian.org/olly/xapian-bindings
diff --git a/debian/control.in b/debian/control.in
index 022db3b71f018ac51ddbc327cc1ebbdc230d5acb..2a57d250c1b8661127f7a47febdff73ad4800877 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -2,9 +2,9 @@ Source: xapian-bindings
 Section: libs
 Priority: optional
 Maintainer: Olly Betts <olly@survex.com>
-Build-Depends: @BUILD_DEPS@ debhelper-compat (= 12)
+Build-Depends: @BUILD_DEPS@ debhelper-compat (= 12), pkgconf
 @XS_RUBY_VERSIONS@
-Standards-Version: 4.6.2
+Standards-Version: 4.7.0
 Homepage: https://xapian.org/
 Rules-Requires-Root: no
 Vcs-Browser: https://salsa.debian.org/olly/xapian-bindings
diff --git a/debian/copyright b/debian/copyright
index 37a663e1b689f26ac2c6501ac306fef6d9f639d7..5550dc754e76fe12385c0f1b065c7ab805d836d5 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -23,7 +23,7 @@ Upstream Authors:
 
 Copyright:
 
-  Copyright (C) 2002-2017 Olly Betts
+  Copyright (C) 2002-2023 Olly Betts
   Copyright (C) 2002,2003,2004,2005 James Aylett
   Copyright (C) 2001,2002 Ananova Ltd
   Copyright (C) 1999,2000,2001 BrightStation PLC
@@ -91,6 +91,12 @@ m4/ax_cxx_compile_stdcxx_11.m4 bears the following licence:
   Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
   Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
   Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
+  Copyright (c) 2015 Paul Norman <penorman@mac.com>
+  Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
+  Copyright (c) 2016, 2018 Krzesimir Nowak <qdlacz@gmail.com>
+  Copyright (c) 2019 Enji Cooper <yaneurabeya@gmail.com>    
+  Copyright (c) 2020 Jason Merrill <jason@redhat.com>
+  Copyright (c) 2021 Jörn Heusipp <osmanx@problemloesungsmaschine.de>
 
   Copying and distribution of this file, with or without modification, are
   permitted in any medium without royalty provided the copyright notice
diff --git a/debian/libxapian-java-doc.install b/debian/libxapian-java-doc.install
index 77e66782404e43180da5bf1198f2a7d021ab63ba..98f0d0f462cd7664719fcbaff47fe9793cef5c4b 100644
--- a/debian/libxapian-java-doc.install
+++ b/debian/libxapian-java-doc.install
@@ -1 +1 @@
-#usr/share/doc/xapian-bindings/java/
+usr/share/doc/xapian-bindings/java/
diff --git a/debian/libxapian-jni.install b/debian/libxapian-jni.install
index 2b68010e5ad2d30b3c3203cd81dc19e5fdd7dfe8..df157a41772531d72ee07d8865470ba038a1b651 100644
--- a/debian/libxapian-jni.install
+++ b/debian/libxapian-jni.install
@@ -1 +1 @@
-#usr/lib/*/jni/libxapian_jni.so
+usr/lib/*/jni/libxapian_jni.so
diff --git a/debian/rules b/debian/rules
index 2211fef7ce133ee698a9e5d473249b201b21a22c..53bbd20c86a6a3ca93ebea84bd197d71c57fb060 100755
--- a/debian/rules
+++ b/debian/rules
@@ -447,8 +447,17 @@ ifneq ($(RUBY_VERSIONS), )
 	# users and for transitions (https://bugs.debian.org/816775) so
 	# generate a suitable dependency.
 	#
-	# If RUBY_VERSIONS is 2.1 2.2 2.3, Depends: libruby2.3|libruby2.1 |libruby2.2
-	echo "ruby:Depends=libruby$(lastword $(RUBY_VERSIONS))$(wordlist 1, $(shell expr $(words $(RUBY_VERSIONS)) - 1), $(RUBY_VERSIONS:%=|libruby%))" \
+	# We don't want to hardcode this library being e.g. libruby3.1 because
+	# it might be libruby3.1t64, and we don't want to hardcode the t64
+	# suffix because that will go away again with future Ruby versions,
+	# so extract the appropriate libruby package from the versioned ruby
+	# package's "Depends:".
+	#
+	# E.g. if RUBY_VERSIONS is "3.1 3.2 3.3" and 3.1 is suffixed t64 we
+	# generate:
+	#
+	# Depends: libruby3.3|libruby3.2|libruby3.1t64
+	echo "ruby:Depends=$(subst $(subst x, ,x),|,$(shell dpkg -s $(patsubst %,ruby%,$(RUBY_VERSIONS))|sed -n 's/^Depends:.*\(libruby[a-z0-9.]*\).*/\1/p;d'|tac))" \
 	    >> debian/ruby-xapian.substvars
 endif
 
diff --git a/java/Makefile.am b/java/Makefile.am
index b3b7684dd02bbb40d2aa83b46198aa8198dc0c44..291eb7480441deaa596ed8944702e409f49fc085 100644
--- a/java/Makefile.am
+++ b/java/Makefile.am
@@ -14,9 +14,11 @@ AM_TESTS_ENVIRONMENT = \
 	LIBTOOL="$(LIBTOOL)" ;\
 	JAVA="$(JAVA) $(JAVA_CHECK_JNI_OPTION)" ;\
 	PATHSEP="$(JAVA_PATHSEP)" ;\
+	_libs="$(_libs)" ;\
 	export LIBTOOL ;\
 	export JAVA ;\
-	export PATHSEP ;
+	export PATHSEP ;\
+	export _libs ;
 LOG_COMPILER = $(srcdir)/run-java-test
 
 CLEANFILES = SmokeTest.class MyMatchDecider.class MyExpandDecider.class\
@@ -135,7 +137,7 @@ built/xapian.jar: $(XAPIAN_SWIG_JAVA_CLASS)
 	$(JAR) -cf built/xapian.jar org/xapian/*.class
 ##$(XAPIAN_SWIG_JAVA_CLASS) $(XAPIAN_SWIG_JAVA_EXTRA_CLASSES)
 
-jnidir = `pwd`/built
+jnidir = $(abs_builddir)/built
 
 jni_LTLIBRARIES = libxapian_jni.la
 
diff --git a/java/Makefile.in b/java/Makefile.in
index 1bf77e420ef39067db8c86ccbbf0866ffde5d267..5b991fbffa75aa1d35111a69902755e721a7d2dc 100644
--- a/java/Makefile.in
+++ b/java/Makefile.in
@@ -94,9 +94,7 @@ host_triplet = @host@
 subdir = java
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(dist_docdata_DATA) \
@@ -455,9 +453,9 @@ LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 LUA = @LUA@
-LUA_CPPFLAGS = @LUA_CPPFLAGS@
-LUA_INC = @LUA_INC@
+LUA_CFLAGS = @LUA_CFLAGS@
 LUA_LIB = @LUA_LIB@
+LUA_LIBS = @LUA_LIBS@
 LUA_SO = @LUA_SO@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
@@ -491,6 +489,10 @@ PHP_INC = @PHP_INC@
 PHP_LIBS = @PHP_LIBS@
 PHP_MAJOR_VERSION = @PHP_MAJOR_VERSION@
 PHP_PATH_SEPARATOR = @PHP_PATH_SEPARATOR@
+PHP_SHLIB_SUFFIX = @PHP_SHLIB_SUFFIX@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 PYTHON = @PYTHON@
 PYTHON2 = @PYTHON2@
 PYTHON2_INC = @PYTHON2_INC@
@@ -528,6 +530,7 @@ TCL_CPPFLAGS = @TCL_CPPFLAGS@
 TCL_INC = @TCL_INC@
 TCL_LIB = @TCL_LIB@
 TCL_LIBS = @TCL_LIBS@
+TCL_SHLIB_EXT = @TCL_SHLIB_EXT@
 THREAD_LOCAL = @THREAD_LOCAL@
 VERSION = @VERSION@
 VERSION_NO_SNAPSHOT = @VERSION_NO_SNAPSHOT@
@@ -537,6 +540,7 @@ XAPIAN_HEADERS = @XAPIAN_HEADERS@
 XAPIAN_HEADER_DIRS = @XAPIAN_HEADER_DIRS@
 XAPIAN_LIBS = @XAPIAN_LIBS@
 XAPIAN_VERSION = @XAPIAN_VERSION@
+_libs = @_libs@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -617,9 +621,11 @@ AM_TESTS_ENVIRONMENT = \
 	LIBTOOL="$(LIBTOOL)" ;\
 	JAVA="$(JAVA) $(JAVA_CHECK_JNI_OPTION)" ;\
 	PATHSEP="$(JAVA_PATHSEP)" ;\
+	_libs="$(_libs)" ;\
 	export LIBTOOL ;\
 	export JAVA ;\
-	export PATHSEP ;
+	export PATHSEP ;\
+	export _libs ;
 
 LOG_COMPILER = $(srcdir)/run-java-test
 CLEANFILES = SmokeTest.class MyMatchDecider.class \
@@ -725,7 +731,7 @@ XAPIAN_SWIG_JAVA_EXTRA_CLASSES = \
 	org/xapian/Weight*type_smoothing.class
 
 noinst_DATA = built/xapian.jar
-jnidir = `pwd`/built
+jnidir = $(abs_builddir)/built
 jni_LTLIBRARIES = libxapian_jni.la
 @NEED_JNILIB_EXT_FALSE@SHREXT = 
 @NEED_JNILIB_EXT_TRUE@SHREXT = -shrext .jnilib
diff --git a/java/docs/index.html b/java/docs/index.html
index d604c28b674759c3fd6925c3945fade6eeb6691f..ea5315556b2868c84ee412a5c96d1895d9fadd73 100644
--- a/java/docs/index.html
+++ b/java/docs/index.html
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
+<meta name="generator" content="Docutils 0.20.1: https://docutils.sourceforge.io/" />
 <title>Xapian Java Bindings</title>
 <style type="text/css">
 
@@ -368,6 +368,8 @@ possibly make some changes and then declare it stable early in the 1.4.x
 release series.</p>
 <div class="section" id="how-to-build-the-bindings">
 <h1>How to build the bindings:</h1>
+<p>If you want to install from source you'll need to <a class="reference external" href="https://xapian.org/download">download the source
+code</a> if you haven't already done so.</p>
 <p>Running &quot;make&quot; and then &quot;make install&quot; will &quot;install&quot; a JNI glue shared library
 into a &quot;built&quot; subdirectory of the java build directory.  The jar file is built
 into the &quot;built&quot; subdirectory too.</p>
diff --git a/java/docs/index.rst b/java/docs/index.rst
index 725d5ece4d8fcf66d6526ae813bffaaf59e5fa84..d92b8cf2d6da870b1ca4e73ca4341d246994e8b6 100644
--- a/java/docs/index.rst
+++ b/java/docs/index.rst
@@ -8,6 +8,9 @@ release series.
 How to build the bindings:
 ##########################
 
+If you want to install from source you'll need to `download the source
+code <https://xapian.org/download>`_ if you haven't already done so.
+
 Running "make" and then "make install" will "install" a JNI glue shared library
 into a "built" subdirectory of the java build directory.  The jar file is built
 into the "built" subdirectory too.
diff --git a/java/org/xapian/Auto.java b/java/org/xapian/Auto.java
index b4cf3b9339acab0250c9bb4b23eaecc86325e583..d44f66374e6697a1882ed24b4c65cc09a08da98e 100644
--- a/java/org/xapian/Auto.java
+++ b/java/org/xapian/Auto.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/java/org/xapian/BB2Weight.java b/java/org/xapian/BB2Weight.java
index 031f076e2a6288fb2722351d68fe77601f8c8254..d42253ff73adb02bd5620c3dbd4d82a1499e1b23 100644
--- a/java/org/xapian/BB2Weight.java
+++ b/java/org/xapian/BB2Weight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class BB2Weight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/BM25PlusWeight.java b/java/org/xapian/BM25PlusWeight.java
index d5e0846c3975c5e9cd3ac81fe3350dbe3f0c1950..eb4b907199a7813ab6fd6b15555f70c94076ffc3 100644
--- a/java/org/xapian/BM25PlusWeight.java
+++ b/java/org/xapian/BM25PlusWeight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class BM25PlusWeight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/BM25Weight.java b/java/org/xapian/BM25Weight.java
index 755a575c83bea8dd93ebf86f8f7cf4e1507f8d4f..c63b3b8b746ece2e72d513d3bf9d07bf0701dc4b 100644
--- a/java/org/xapian/BM25Weight.java
+++ b/java/org/xapian/BM25Weight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class BM25Weight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/BoolWeight.java b/java/org/xapian/BoolWeight.java
index 2edfdbeb165cad25ca90f761548b3821f4cf5429..1259edb3b4eda0a87befb261c7697832048d565e 100644
--- a/java/org/xapian/BoolWeight.java
+++ b/java/org/xapian/BoolWeight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class BoolWeight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/Chert.java b/java/org/xapian/Chert.java
index a87e4c9724cd8d245d10dabe0bfd5c8daeae07ec..6b6b0585dba25236b2402e47b9f7ec18a67324b5 100644
--- a/java/org/xapian/Chert.java
+++ b/java/org/xapian/Chert.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/java/org/xapian/Compactor.java b/java/org/xapian/Compactor.java
index 2f0e50ecd23510d1492ef65bcf4c9c9af4edfa15..5504af6c2ec66e644dd723dd2cbdb13ea5a4db08 100644
--- a/java/org/xapian/Compactor.java
+++ b/java/org/xapian/Compactor.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class Compactor {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/CoordWeight.java b/java/org/xapian/CoordWeight.java
index 239aa1f328a59e6a9383ffc6b210736af15a09d8..dde2fcac647bb2e53663190a198bf2f958c91ac9 100644
--- a/java/org/xapian/CoordWeight.java
+++ b/java/org/xapian/CoordWeight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class CoordWeight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/DLHWeight.java b/java/org/xapian/DLHWeight.java
index ea45acb6fdf9bb4851b5a6ba5fb7d7164d3c1619..70f4c0d33c571e8a6fd3e355310eeef0529aa804 100644
--- a/java/org/xapian/DLHWeight.java
+++ b/java/org/xapian/DLHWeight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class DLHWeight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/DPHWeight.java b/java/org/xapian/DPHWeight.java
index 844f3ec46591a23af7133563d9134ee5c73d16f6..2d05383e2bab8e42d8f262ead0f5f7649218e18a 100644
--- a/java/org/xapian/DPHWeight.java
+++ b/java/org/xapian/DPHWeight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class DPHWeight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/Database.java b/java/org/xapian/Database.java
index 189375fb0de5ff103b4bc4708e87a0c0e9ee8168..e64fb53d0315c6dce6f671a4b5fe672d7f036246 100644
--- a/java/org/xapian/Database.java
+++ b/java/org/xapian/Database.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class Database {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/DateRangeProcessor.java b/java/org/xapian/DateRangeProcessor.java
index 45901e20e0e70bb98749e44e815486a7744f8a51..2e4f70c4784bc7b3b94df4d30439c92f7fe4c398 100644
--- a/java/org/xapian/DateRangeProcessor.java
+++ b/java/org/xapian/DateRangeProcessor.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class DateRangeProcessor extends RangeProcessor {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/DateValueRangeProcessor.java b/java/org/xapian/DateValueRangeProcessor.java
index 543e1f6b99c097b6dbd7c8d6b267b0f55fe80f9b..5cf55b377387effaf5452336c62bbd53babf02e1 100644
--- a/java/org/xapian/DateValueRangeProcessor.java
+++ b/java/org/xapian/DateValueRangeProcessor.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class DateValueRangeProcessor extends StringValueRangeProcessor {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/DecreasingValueWeightPostingSource.java b/java/org/xapian/DecreasingValueWeightPostingSource.java
index 7b37a6868baa9808b6160438d12044665b950511..9b994604336ca8947a4a0067497eb9cb37b161e8 100644
--- a/java/org/xapian/DecreasingValueWeightPostingSource.java
+++ b/java/org/xapian/DecreasingValueWeightPostingSource.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class DecreasingValueWeightPostingSource extends ValueWeightPostingSource
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/Document.java b/java/org/xapian/Document.java
index 3acc2f7cece75ab442259acee76fc45c24d69251..f9640d857337b5752f21c786349774731773fab8 100644
--- a/java/org/xapian/Document.java
+++ b/java/org/xapian/Document.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class Document {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/ESet.java b/java/org/xapian/ESet.java
index dda9e10247b4e1fae3a8b5698a06288d34c51ad8..022d58bca36f4dc217f320ef5c7f12bdc59fc4b9 100644
--- a/java/org/xapian/ESet.java
+++ b/java/org/xapian/ESet.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class ESet {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/ESetIterator.java b/java/org/xapian/ESetIterator.java
index 40ef0a26dc9019132e8103aaa87761c591aa454f..8a841e4ee7f4526512fbafb007296a5e9c65b580 100644
--- a/java/org/xapian/ESetIterator.java
+++ b/java/org/xapian/ESetIterator.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class ESetIterator {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/Enquire.java b/java/org/xapian/Enquire.java
index bc28d3955001afc8744781cbc595dd100e784e45..ade5f5cddf1ef07e9dfbe67d7fbb94581fcbfe2d 100644
--- a/java/org/xapian/Enquire.java
+++ b/java/org/xapian/Enquire.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class Enquire {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/ExpandDecider.java b/java/org/xapian/ExpandDecider.java
index 8d03bb95a79540fae2e8ec4afd1baf8f8f2364fe..803f9b70d2352f43959c5682381055c2a6da46b8 100644
--- a/java/org/xapian/ExpandDecider.java
+++ b/java/org/xapian/ExpandDecider.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class ExpandDecider {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/ExpandDeciderAnd.java b/java/org/xapian/ExpandDeciderAnd.java
index abf456b8323ddab13b2bf6fc4ac8340f7e1b4439..ee532a611776ecef82adac3782b639d4b0688bfc 100644
--- a/java/org/xapian/ExpandDeciderAnd.java
+++ b/java/org/xapian/ExpandDeciderAnd.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class ExpandDeciderAnd extends ExpandDecider {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/ExpandDeciderFilterPrefix.java b/java/org/xapian/ExpandDeciderFilterPrefix.java
index b77d8b5da680d16c2f273f9b5f5273f06d6579ed..dab9c7e4c2856b5921e4ec7afa84e0d43707ff5d 100644
--- a/java/org/xapian/ExpandDeciderFilterPrefix.java
+++ b/java/org/xapian/ExpandDeciderFilterPrefix.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class ExpandDeciderFilterPrefix extends ExpandDecider {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/FieldProcessor.java b/java/org/xapian/FieldProcessor.java
index 768acb3985b0c86a8159a10e039fa98280fad7b0..c937b079aa9ec9a377ad834a64e2dee3e20c8a1d 100644
--- a/java/org/xapian/FieldProcessor.java
+++ b/java/org/xapian/FieldProcessor.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class FieldProcessor {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/FixedWeightPostingSource.java b/java/org/xapian/FixedWeightPostingSource.java
index b8036db9324a06841ff71c2b661fe59755a4f6cc..be23b77a37e81330f2a2490bc0a830852df9f17c 100644
--- a/java/org/xapian/FixedWeightPostingSource.java
+++ b/java/org/xapian/FixedWeightPostingSource.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class FixedWeightPostingSource extends PostingSource {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/GreatCircleMetric.java b/java/org/xapian/GreatCircleMetric.java
index 02bd799c882ea4907494761361a40797d0ec6cda..8e5bdd000c4d14aa1d29c27ed720326194780f9c 100644
--- a/java/org/xapian/GreatCircleMetric.java
+++ b/java/org/xapian/GreatCircleMetric.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class GreatCircleMetric extends LatLongMetric {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/IfB2Weight.java b/java/org/xapian/IfB2Weight.java
index abfd903acc7cc7828983fc401794e0bd3d051c2c..d087216197a910e7a0b2118b25b6058f1a556ba2 100644
--- a/java/org/xapian/IfB2Weight.java
+++ b/java/org/xapian/IfB2Weight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class IfB2Weight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/InL2Weight.java b/java/org/xapian/InL2Weight.java
index 284dceb2a137d380dcf8458c95186679b3297905..3f96265b75ae7256caa18bcbb59f9027c2483e86 100644
--- a/java/org/xapian/InL2Weight.java
+++ b/java/org/xapian/InL2Weight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class InL2Weight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/InMemory.java b/java/org/xapian/InMemory.java
index 71d48fc359406772ffeeb1cfb156e136031de626..bd90ea8f217f2cb7bbdfa2d523d24413cdc98cd0 100644
--- a/java/org/xapian/InMemory.java
+++ b/java/org/xapian/InMemory.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/java/org/xapian/IneB2Weight.java b/java/org/xapian/IneB2Weight.java
index 92866671921f5056775fee09df62426f3cbc7763..ae17b9e63474f729e44b10e77caa0a0d27f7955c 100644
--- a/java/org/xapian/IneB2Weight.java
+++ b/java/org/xapian/IneB2Weight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class IneB2Weight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/KeyMaker.java b/java/org/xapian/KeyMaker.java
index 39c5df5ce3eddbaf6ddc046c4a787b24f195f9a2..b58280f79c08752b32c5a099b6e776fdb58ee418 100644
--- a/java/org/xapian/KeyMaker.java
+++ b/java/org/xapian/KeyMaker.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class KeyMaker {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/LMWeight.java b/java/org/xapian/LMWeight.java
index 8c08aa91c9bc733a03f2cd241f5478f92e1b8261..08ee78585a0d698b8d93da3ab07e931e00ee6d9f 100644
--- a/java/org/xapian/LMWeight.java
+++ b/java/org/xapian/LMWeight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class LMWeight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/LatLongCoord.java b/java/org/xapian/LatLongCoord.java
index b5f2e8d3178779ff6dfebdbd470ad8abdc242170..741f82d0fcb515e3ab9f457d49b3318b3c1e5d19 100644
--- a/java/org/xapian/LatLongCoord.java
+++ b/java/org/xapian/LatLongCoord.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class LatLongCoord {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/LatLongCoords.java b/java/org/xapian/LatLongCoords.java
index e0bff4dc11dd4d69a2e1d4e4d90e0ee09f623c6c..605c506fe5b278b8646fcde7dcc146a1cb331f2b 100644
--- a/java/org/xapian/LatLongCoords.java
+++ b/java/org/xapian/LatLongCoords.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class LatLongCoords {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/LatLongCoordsIterator.java b/java/org/xapian/LatLongCoordsIterator.java
index 325e7fdc6dc8af496a8c3a04a1e4819d9c27ccf9..cffc899ffee2701eaa5649d0668ab2856e9ddfd5 100644
--- a/java/org/xapian/LatLongCoordsIterator.java
+++ b/java/org/xapian/LatLongCoordsIterator.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class LatLongCoordsIterator {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/LatLongDistanceKeyMaker.java b/java/org/xapian/LatLongDistanceKeyMaker.java
index 89528f3a3430057eda5078714053a1fb46dd9e72..f5c9c673fdf74f1a9bd539500aa6fc4fc4d465a5 100644
--- a/java/org/xapian/LatLongDistanceKeyMaker.java
+++ b/java/org/xapian/LatLongDistanceKeyMaker.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class LatLongDistanceKeyMaker extends KeyMaker {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/LatLongDistancePostingSource.java b/java/org/xapian/LatLongDistancePostingSource.java
index 3c01e67521133bc74862fa877b0f6cc2f3df810f..327bea63cb31be586b067b42a787e769718d0e6b 100644
--- a/java/org/xapian/LatLongDistancePostingSource.java
+++ b/java/org/xapian/LatLongDistancePostingSource.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class LatLongDistancePostingSource extends ValuePostingSource {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/LatLongMetric.java b/java/org/xapian/LatLongMetric.java
index 6dcc1084a1d6cc1ce692edde6d9af0c62ad37fdf..0bcb16d441ab54882a8dbec01c0d3ba0d4aff641 100644
--- a/java/org/xapian/LatLongMetric.java
+++ b/java/org/xapian/LatLongMetric.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class LatLongMetric {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/MSet.java b/java/org/xapian/MSet.java
index 446d1bd63e64f1382a3abce1f11a8c8c4eda1ee1..e16d05fecf8fb97fcb801b1e5fd0d61bd58383d0 100644
--- a/java/org/xapian/MSet.java
+++ b/java/org/xapian/MSet.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class MSet {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
@@ -191,6 +191,7 @@ public class MSet {
   public final static int SNIPPET_BACKGROUND_MODEL = XapianJNI.MSet_SNIPPET_BACKGROUND_MODEL_get();
   public final static int SNIPPET_EXHAUSTIVE = XapianJNI.MSet_SNIPPET_EXHAUSTIVE_get();
   public final static int SNIPPET_EMPTY_WITHOUT_MATCH = XapianJNI.MSet_SNIPPET_EMPTY_WITHOUT_MATCH_get();
+  public final static int SNIPPET_NGRAMS = XapianJNI.MSet_SNIPPET_NGRAMS_get();
   public final static int SNIPPET_CJK_NGRAM = XapianJNI.MSet_SNIPPET_CJK_NGRAM_get();
 
 }
diff --git a/java/org/xapian/MSetIterator.java b/java/org/xapian/MSetIterator.java
index 5e0f9549a4774fddc1987495b09fa309dfbd7551..8b5cfe73dabe03d2aa82ad7854d994f61d04ced8 100644
--- a/java/org/xapian/MSetIterator.java
+++ b/java/org/xapian/MSetIterator.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class MSetIterator {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/MatchDecider.java b/java/org/xapian/MatchDecider.java
index ebcafe4cd80e9de794d8364d13671557473ae5c2..2d8cd18ba199a01d011de1305888bb862889a6cd 100644
--- a/java/org/xapian/MatchDecider.java
+++ b/java/org/xapian/MatchDecider.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class MatchDecider {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/MatchSpy.java b/java/org/xapian/MatchSpy.java
index e6fc7a0d7047ac8d7b6b0a3a5939be906dd7a506..3f4044be7a6bb2ec3b357793c18786b5f5291dc9 100644
--- a/java/org/xapian/MatchSpy.java
+++ b/java/org/xapian/MatchSpy.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class MatchSpy {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/MultiValueKeyMaker.java b/java/org/xapian/MultiValueKeyMaker.java
index 5ead8c95adf561873cbe48a0f3156c22c7686a89..00117a24ba09690b5dd45308b667a9d7d305c619 100644
--- a/java/org/xapian/MultiValueKeyMaker.java
+++ b/java/org/xapian/MultiValueKeyMaker.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class MultiValueKeyMaker extends KeyMaker {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/NumberRangeProcessor.java b/java/org/xapian/NumberRangeProcessor.java
index 545bfa3e5788637cb4ab96165c0dd6699d633aed..036381ed26cec6434b16cdcc0e7b24dd4abcc1a1 100644
--- a/java/org/xapian/NumberRangeProcessor.java
+++ b/java/org/xapian/NumberRangeProcessor.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class NumberRangeProcessor extends RangeProcessor {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/NumberValueRangeProcessor.java b/java/org/xapian/NumberValueRangeProcessor.java
index 2c0878377b4debd4f4245396b46be6f11d132f98..6d84e20642d49a9b5ca4f55c826ec0a6ab17168d 100644
--- a/java/org/xapian/NumberValueRangeProcessor.java
+++ b/java/org/xapian/NumberValueRangeProcessor.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class NumberValueRangeProcessor extends StringValueRangeProcessor {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/PL2PlusWeight.java b/java/org/xapian/PL2PlusWeight.java
index 128545feaa56bc86c712cce01bffb2ccb1007b62..ee4d0041f3c9f6e3b1e381c5c2f94eea862fa836 100644
--- a/java/org/xapian/PL2PlusWeight.java
+++ b/java/org/xapian/PL2PlusWeight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class PL2PlusWeight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/PL2Weight.java b/java/org/xapian/PL2Weight.java
index ce88b72ed1c4573ccc99a9da623df3b268fcc411..e06216a7937a6049d5d846b272069a394f387e41 100644
--- a/java/org/xapian/PL2Weight.java
+++ b/java/org/xapian/PL2Weight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class PL2Weight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/PositionIterator.java b/java/org/xapian/PositionIterator.java
index dfbe73e9fd875273ac91a329b09231730c2a65c8..39a8b8cee011f1334231de97cf02551a09bf891f 100644
--- a/java/org/xapian/PositionIterator.java
+++ b/java/org/xapian/PositionIterator.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class PositionIterator {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/PostingIterator.java b/java/org/xapian/PostingIterator.java
index 72b07c4adfc0406f159fe8440e4facdb5a334235..22b496e5c318ed4dd2c8b987fa479a48523e16ca 100644
--- a/java/org/xapian/PostingIterator.java
+++ b/java/org/xapian/PostingIterator.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class PostingIterator {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/PostingSource.java b/java/org/xapian/PostingSource.java
index 0203d30ca2568b1bfdbe525c7a5e16a61ad736b3..85c23a15a3f5d968336aff4bf770676313da01af 100644
--- a/java/org/xapian/PostingSource.java
+++ b/java/org/xapian/PostingSource.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class PostingSource {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/Query.java b/java/org/xapian/Query.java
index a201f8c0edda3e33ab6a8675943ca8e009741e42..964d979007f42ef003947895be65477dfefe110c 100644
--- a/java/org/xapian/Query.java
+++ b/java/org/xapian/Query.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class Query {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
@@ -131,19 +131,19 @@ public class Query {
   }
 
   public Query(Query.op op_, Query[] qbegin, long parameter) {
-    this(XapianJNI.new_Query__SWIG_17(op_.swigValue(), Query.cArrayUnwrap(qbegin), parameter), true);
+    this(XapianJNI.new_Query__SWIG_15(op_.swigValue(), Query.cArrayUnwrap(qbegin), parameter), true);
   }
 
   public Query(Query.op op_, Query[] qbegin) {
-    this(XapianJNI.new_Query__SWIG_18(op_.swigValue(), Query.cArrayUnwrap(qbegin)), true);
+    this(XapianJNI.new_Query__SWIG_16(op_.swigValue(), Query.cArrayUnwrap(qbegin)), true);
   }
 
   public Query(Query.op op_, String[] qbegin, long parameter) {
-    this(XapianJNI.new_Query__SWIG_19(op_.swigValue(), qbegin, parameter), true);
+    this(XapianJNI.new_Query__SWIG_17(op_.swigValue(), qbegin, parameter), true);
   }
 
   public Query(Query.op op_, String[] qbegin) {
-    this(XapianJNI.new_Query__SWIG_20(op_.swigValue(), qbegin), true);
+    this(XapianJNI.new_Query__SWIG_18(op_.swigValue(), qbegin), true);
   }
 
   public TermIterator getTermsBegin() {
@@ -199,7 +199,7 @@ public class Query {
   }
 
   public Query(Query.op op_) {
-    this(XapianJNI.new_Query__SWIG_21(op_.swigValue()), true);
+    this(XapianJNI.new_Query__SWIG_19(op_.swigValue()), true);
   }
 
   public final static class op {
diff --git a/java/org/xapian/QueryParser.java b/java/org/xapian/QueryParser.java
index d5e3a1cb4529febc6146eea95bec9ab04bf7d246..471a7ba935b1fa09348371c8f480e477411dde51 100644
--- a/java/org/xapian/QueryParser.java
+++ b/java/org/xapian/QueryParser.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class QueryParser {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
@@ -188,6 +188,7 @@ public class QueryParser {
     public final static QueryParser.feature_flag FLAG_SYNONYM = new QueryParser.feature_flag("FLAG_SYNONYM", XapianJNI.QueryParser_FLAG_SYNONYM_get());
     public final static QueryParser.feature_flag FLAG_AUTO_SYNONYMS = new QueryParser.feature_flag("FLAG_AUTO_SYNONYMS", XapianJNI.QueryParser_FLAG_AUTO_SYNONYMS_get());
     public final static QueryParser.feature_flag FLAG_AUTO_MULTIWORD_SYNONYMS = new QueryParser.feature_flag("FLAG_AUTO_MULTIWORD_SYNONYMS", XapianJNI.QueryParser_FLAG_AUTO_MULTIWORD_SYNONYMS_get());
+    public final static QueryParser.feature_flag FLAG_NGRAMS = new QueryParser.feature_flag("FLAG_NGRAMS", XapianJNI.QueryParser_FLAG_NGRAMS_get());
     public final static QueryParser.feature_flag FLAG_CJK_NGRAM = new QueryParser.feature_flag("FLAG_CJK_NGRAM", XapianJNI.QueryParser_FLAG_CJK_NGRAM_get());
     public final static QueryParser.feature_flag FLAG_ACCUMULATE = new QueryParser.feature_flag("FLAG_ACCUMULATE", XapianJNI.QueryParser_FLAG_ACCUMULATE_get());
     public final static QueryParser.feature_flag FLAG_NO_POSITIONS = new QueryParser.feature_flag("FLAG_NO_POSITIONS", XapianJNI.QueryParser_FLAG_NO_POSITIONS_get());
@@ -227,7 +228,7 @@ public class QueryParser {
       swigNext = this.swigValue+1;
     }
 
-    private static feature_flag[] swigValues = { FLAG_BOOLEAN, FLAG_PHRASE, FLAG_LOVEHATE, FLAG_BOOLEAN_ANY_CASE, FLAG_WILDCARD, FLAG_PURE_NOT, FLAG_PARTIAL, FLAG_SPELLING_CORRECTION, FLAG_SYNONYM, FLAG_AUTO_SYNONYMS, FLAG_AUTO_MULTIWORD_SYNONYMS, FLAG_CJK_NGRAM, FLAG_ACCUMULATE, FLAG_NO_POSITIONS, FLAG_DEFAULT };
+    private static feature_flag[] swigValues = { FLAG_BOOLEAN, FLAG_PHRASE, FLAG_LOVEHATE, FLAG_BOOLEAN_ANY_CASE, FLAG_WILDCARD, FLAG_PURE_NOT, FLAG_PARTIAL, FLAG_SPELLING_CORRECTION, FLAG_SYNONYM, FLAG_AUTO_SYNONYMS, FLAG_AUTO_MULTIWORD_SYNONYMS, FLAG_NGRAMS, FLAG_CJK_NGRAM, FLAG_ACCUMULATE, FLAG_NO_POSITIONS, FLAG_DEFAULT };
     private static int swigNext = 0;
     private final int swigValue;
     private final String swigName;
diff --git a/java/org/xapian/RSet.java b/java/org/xapian/RSet.java
index 147e95e9f2baca55e4c84895a9ca7d1bc8a297cc..90b12378676bff3efb304e5bdd6ae4bc09272c3d 100644
--- a/java/org/xapian/RSet.java
+++ b/java/org/xapian/RSet.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class RSet {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/RangeProcessor.java b/java/org/xapian/RangeProcessor.java
index 32d4d8e476d79e221e835cc84cde7665e9b55757..4a0019e5b131984847c06ffb4e6ded6eb4a55d34 100644
--- a/java/org/xapian/RangeProcessor.java
+++ b/java/org/xapian/RangeProcessor.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class RangeProcessor {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/Registry.java b/java/org/xapian/Registry.java
index b0683ff0bfae2632cb273993988e962cc8a135fa..4b1ad29040b64c9c6f877b773f5887a7a81f5258 100644
--- a/java/org/xapian/Registry.java
+++ b/java/org/xapian/Registry.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class Registry {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/Remote.java b/java/org/xapian/Remote.java
index b3a3358553dc2703daac6c15f814d9cb6797de5c..b68f19fc38d8b50a1aeca4f97178228b8ab086e0 100644
--- a/java/org/xapian/Remote.java
+++ b/java/org/xapian/Remote.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/java/org/xapian/SWIGTYPE_p_std__string.java b/java/org/xapian/SWIGTYPE_p_std__string.java
index ab6acd53c3dd93954692023e2ffc75deafe91699..8c762d9d56ec23e46d6e9f05313accd720e6ce99 100644
--- a/java/org/xapian/SWIGTYPE_p_std__string.java
+++ b/java/org/xapian/SWIGTYPE_p_std__string.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/java/org/xapian/SimpleStopper.java b/java/org/xapian/SimpleStopper.java
index 5eb55d98059f26d72ee135a2fdc89e29a28869e9..652ce5848eedf51a9ecd46b5dee2c1d1ae5a0ff5 100644
--- a/java/org/xapian/SimpleStopper.java
+++ b/java/org/xapian/SimpleStopper.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class SimpleStopper extends Stopper {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
@@ -65,7 +65,7 @@ public class SimpleStopper extends Stopper {
   }
 
   public SimpleStopper(String file) {
-    this(XapianJNI.new_SimpleStopper__SWIG_2(file), true);
+    this(XapianJNI.new_SimpleStopper__SWIG_1(file), true);
   }
 
 }
diff --git a/java/org/xapian/Stem.java b/java/org/xapian/Stem.java
index 9eb09a3551525093d5883e4d323f7c40bce81d9a..d52df2d7033a6e952904da2df8e0fb6f286e64d0 100644
--- a/java/org/xapian/Stem.java
+++ b/java/org/xapian/Stem.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class Stem {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/StemImplementation.java b/java/org/xapian/StemImplementation.java
index edf5a51996afb8b2beb79fafa2b74c9530d424b2..22e3beefb822f0e0aee25138335cb3af6c36d234 100644
--- a/java/org/xapian/StemImplementation.java
+++ b/java/org/xapian/StemImplementation.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class StemImplementation {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/Stopper.java b/java/org/xapian/Stopper.java
index d05641d96cd32aac14f6abd636e8c43934522449..d155ef4bc650153e8fc9a96047e33d7803136fb7 100644
--- a/java/org/xapian/Stopper.java
+++ b/java/org/xapian/Stopper.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class Stopper {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/StringValueRangeProcessor.java b/java/org/xapian/StringValueRangeProcessor.java
index 22f854f8a91fb3c35f0dfc0ee9ace98f802c1d69..2d58fb0b5e8be3e8de014e7f6753bbf5e6e987a8 100644
--- a/java/org/xapian/StringValueRangeProcessor.java
+++ b/java/org/xapian/StringValueRangeProcessor.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class StringValueRangeProcessor extends ValueRangeProcessor {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/TermGenerator.java b/java/org/xapian/TermGenerator.java
index f087f930379fedbd7c931f16225797e0c02f057e..cfb1b39b117b0cb128a8b05fa8f41836c2aa8c15 100644
--- a/java/org/xapian/TermGenerator.java
+++ b/java/org/xapian/TermGenerator.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class TermGenerator {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
@@ -141,6 +141,7 @@ public class TermGenerator {
   }
 
   public final static int FLAG_SPELLING = XapianJNI.TermGenerator_FLAG_SPELLING_get();
+  public final static int FLAG_NGRAMS = XapianJNI.TermGenerator_FLAG_NGRAMS_get();
   public final static int FLAG_CJK_NGRAM = XapianJNI.TermGenerator_FLAG_CJK_NGRAM_get();
 
   public final static class stem_strategy {
diff --git a/java/org/xapian/TermIterator.java b/java/org/xapian/TermIterator.java
index 36098fdeb396875f40cadac57016113afcdf8e15..c4543895a7f96d8abdbb95346befe630b50b1cfb 100644
--- a/java/org/xapian/TermIterator.java
+++ b/java/org/xapian/TermIterator.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class TermIterator {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/TfIdfWeight.java b/java/org/xapian/TfIdfWeight.java
index 4865674abdd25b73fc146f5d0facc298cc7b2ce0..93cbff12e68cbdf53da615346535043ff122e755 100644
--- a/java/org/xapian/TfIdfWeight.java
+++ b/java/org/xapian/TfIdfWeight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class TfIdfWeight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/TradWeight.java b/java/org/xapian/TradWeight.java
index 7120b29540172cf3a5aee1a53fbbb53ec2b48101..5d9513bbad006498e12ca7edf02c54211dc85867 100644
--- a/java/org/xapian/TradWeight.java
+++ b/java/org/xapian/TradWeight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class TradWeight extends Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/ValueCountMatchSpy.java b/java/org/xapian/ValueCountMatchSpy.java
index ca5ba547d90b080b969e642128dca37413974317..e5c3580d578e7da0e27aaf7b4912f704ff575e53 100644
--- a/java/org/xapian/ValueCountMatchSpy.java
+++ b/java/org/xapian/ValueCountMatchSpy.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class ValueCountMatchSpy extends MatchSpy {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/ValueIterator.java b/java/org/xapian/ValueIterator.java
index b20bddd4698fca08bcbb742a0ef271b396d70e7e..ab8ff9569803c4b2ddab315ead84f9cf3cf98503 100644
--- a/java/org/xapian/ValueIterator.java
+++ b/java/org/xapian/ValueIterator.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class ValueIterator {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/ValueMapPostingSource.java b/java/org/xapian/ValueMapPostingSource.java
index f15241b0c5c93d939289f05d362f1ace8a9e520a..a4fa343251512d2f545866a910c856ddad4fcc32 100644
--- a/java/org/xapian/ValueMapPostingSource.java
+++ b/java/org/xapian/ValueMapPostingSource.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class ValueMapPostingSource extends ValuePostingSource {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/ValuePostingSource.java b/java/org/xapian/ValuePostingSource.java
index f9d99c11d8c40ef9f684d742e9896fbe8ed1a7f2..a6d16145708b2a549e9b15730495aad4e017e3ed 100644
--- a/java/org/xapian/ValuePostingSource.java
+++ b/java/org/xapian/ValuePostingSource.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class ValuePostingSource extends PostingSource {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/ValueRangeProcessor.java b/java/org/xapian/ValueRangeProcessor.java
index c313af1ff178e5d1f009bb11a2235069fdf7f3fc..f508bc5213af1a0226987704fd36b968aa9b585c 100644
--- a/java/org/xapian/ValueRangeProcessor.java
+++ b/java/org/xapian/ValueRangeProcessor.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class ValueRangeProcessor {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/ValueSetMatchDecider.java b/java/org/xapian/ValueSetMatchDecider.java
index eeaa556427ade66cd503e1a902a56f137eaeda67..1be00969e4aca3d6685c6517340944a2bbe60c78 100644
--- a/java/org/xapian/ValueSetMatchDecider.java
+++ b/java/org/xapian/ValueSetMatchDecider.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class ValueSetMatchDecider extends MatchDecider {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/ValueWeightPostingSource.java b/java/org/xapian/ValueWeightPostingSource.java
index 399fb6408d30e5067760d76a5dcb374311612985..72d7840e3a699b935bfb8d10d826159076042383 100644
--- a/java/org/xapian/ValueWeightPostingSource.java
+++ b/java/org/xapian/ValueWeightPostingSource.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class ValueWeightPostingSource extends ValuePostingSource {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/Version.java b/java/org/xapian/Version.java
index c5ab35f28d6974af7db9789cc44cfd531e84f3dd..11bbe5f935c2469eadfe08c6690aca05c3bc04f3 100644
--- a/java/org/xapian/Version.java
+++ b/java/org/xapian/Version.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/java/org/xapian/Weight.java b/java/org/xapian/Weight.java
index 00e3132e747be6e0b28bd31bea921501af3181ce..bc6bdb88db2b92bd8d442852261ada48d6b0c83f 100644
--- a/java/org/xapian/Weight.java
+++ b/java/org/xapian/Weight.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -33,7 +33,7 @@ public class Weight {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/WritableDatabase.java b/java/org/xapian/WritableDatabase.java
index 36cfbc87e918bde26c8611c35fb2892260b95b36..cd84f53af182bb71dc6ba39c4b6a2a21a1274c46 100644
--- a/java/org/xapian/WritableDatabase.java
+++ b/java/org/xapian/WritableDatabase.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ public class WritableDatabase extends Database {
     return ptr;
   }
 
-  @SuppressWarnings("deprecation")
+  @SuppressWarnings({"deprecation", "removal"})
   protected void finalize() {
     delete();
   }
diff --git a/java/org/xapian/Xapian.java b/java/org/xapian/Xapian.java
index 761c7502165eb625689ff04729225a808c0ee1d0..98fe79a1f7e6f2e6af4d10d41d0aac6e76c34bba 100644
--- a/java/org/xapian/Xapian.java
+++ b/java/org/xapian/Xapian.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/java/org/xapian/XapianConstants.java b/java/org/xapian/XapianConstants.java
index 3bbc361f5b6437f6793718a1470a59d9c1a94ae8..500bd4ecdc47e0ebdcb745fbec631e51e3fcce2d 100644
--- a/java/org/xapian/XapianConstants.java
+++ b/java/org/xapian/XapianConstants.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/java/org/xapian/XapianJNI.java b/java/org/xapian/XapianJNI.java
index f99d17313b9f33683166736003052e9adc79ee0b..6c4251009056baffbd618bdce9d2b3d9b5e159ba 100644
--- a/java/org/xapian/XapianJNI.java
+++ b/java/org/xapian/XapianJNI.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -160,10 +160,10 @@ public class XapianJNI {
   public final static native long new_Query__SWIG_12(int jarg1, String jarg2, long jarg3, int jarg4);
   public final static native long new_Query__SWIG_13(int jarg1, String jarg2, long jarg3);
   public final static native long new_Query__SWIG_14(int jarg1, String jarg2);
-  public final static native long new_Query__SWIG_17(int jarg1, long[] jarg2, long jarg4);
-  public final static native long new_Query__SWIG_18(int jarg1, long[] jarg2);
-  public final static native long new_Query__SWIG_19(int jarg1, String[] jarg2, long jarg4);
-  public final static native long new_Query__SWIG_20(int jarg1, String[] jarg2);
+  public final static native long new_Query__SWIG_15(int jarg1, long[] jarg2, long jarg4);
+  public final static native long new_Query__SWIG_16(int jarg1, long[] jarg2);
+  public final static native long new_Query__SWIG_17(int jarg1, String[] jarg2, long jarg4);
+  public final static native long new_Query__SWIG_18(int jarg1, String[] jarg2);
   public final static native long Query_getTermsBegin(long jarg1, Query jarg1_);
   public final static native long Query_getTermsEnd(long jarg1, Query jarg1_);
   public final static native long Query_getUniqueTermsBegin(long jarg1, Query jarg1_);
@@ -177,7 +177,7 @@ public class XapianJNI {
   public final static native long Query_getNumSubqueries(long jarg1, Query jarg1_);
   public final static native long Query_getSubquery(long jarg1, Query jarg1_, long jarg2);
   public final static native String Query_toString(long jarg1, Query jarg1_);
-  public final static native long new_Query__SWIG_21(int jarg1);
+  public final static native long new_Query__SWIG_19(int jarg1);
   public final static native long new_StemImplementation();
   public final static native void delete_StemImplementation(long jarg1);
   public final static native String StemImplementation_apply(long jarg1, StemImplementation jarg1_, String jarg2);
@@ -201,6 +201,7 @@ public class XapianJNI {
   public final static native long TermGenerator_getDocument(long jarg1, TermGenerator jarg1_);
   public final static native void TermGenerator_setDatabase(long jarg1, TermGenerator jarg1_, long jarg2, WritableDatabase jarg2_);
   public final static native int TermGenerator_FLAG_SPELLING_get();
+  public final static native int TermGenerator_FLAG_NGRAMS_get();
   public final static native int TermGenerator_FLAG_CJK_NGRAM_get();
   public final static native int TermGenerator_setFlags__SWIG_0(long jarg1, TermGenerator jarg1_, int jarg2, int jarg3);
   public final static native int TermGenerator_setFlags__SWIG_1(long jarg1, TermGenerator jarg1_, int jarg2);
@@ -236,6 +237,7 @@ public class XapianJNI {
   public final static native int MSet_SNIPPET_BACKGROUND_MODEL_get();
   public final static native int MSet_SNIPPET_EXHAUSTIVE_get();
   public final static native int MSet_SNIPPET_EMPTY_WITHOUT_MATCH_get();
+  public final static native int MSet_SNIPPET_NGRAMS_get();
   public final static native int MSet_SNIPPET_CJK_NGRAM_get();
   public final static native String MSet_snippet__SWIG_0(long jarg1, MSet jarg1_, String jarg2, long jarg3, long jarg4, Stem jarg4_, long jarg5, String jarg6, String jarg7, String jarg8);
   public final static native String MSet_snippet__SWIG_1(long jarg1, MSet jarg1_, String jarg2, long jarg3, long jarg4, Stem jarg4_, long jarg5, String jarg6, String jarg7);
@@ -402,7 +404,7 @@ public class XapianJNI {
   public final static native void SimpleStopper_add(long jarg1, SimpleStopper jarg1_, String jarg2);
   public final static native boolean SimpleStopper_apply(long jarg1, SimpleStopper jarg1_, String jarg2);
   public final static native String SimpleStopper_toString(long jarg1, SimpleStopper jarg1_);
-  public final static native long new_SimpleStopper__SWIG_2(String jarg1);
+  public final static native long new_SimpleStopper__SWIG_1(String jarg1);
   public final static native void delete_SimpleStopper(long jarg1);
   public final static native long new_RangeProcessor__SWIG_0();
   public final static native long new_RangeProcessor__SWIG_1(int jarg1, String jarg2, long jarg3);
@@ -470,6 +472,7 @@ public class XapianJNI {
   public final static native int QueryParser_FLAG_SYNONYM_get();
   public final static native int QueryParser_FLAG_AUTO_SYNONYMS_get();
   public final static native int QueryParser_FLAG_AUTO_MULTIWORD_SYNONYMS_get();
+  public final static native int QueryParser_FLAG_NGRAMS_get();
   public final static native int QueryParser_FLAG_CJK_NGRAM_get();
   public final static native int QueryParser_FLAG_ACCUMULATE_get();
   public final static native int QueryParser_FLAG_NO_POSITIONS_get();
diff --git a/java/run-java-test b/java/run-java-test
index 244ef131b34360883ea13afd2feadfb2efc78c96..abd9485f695f06a8e02e17efa5ab840632bcf7c5 100755
--- a/java/run-java-test
+++ b/java/run-java-test
@@ -1,11 +1,9 @@
 #!/bin/sh
 # To run `jdb` instead of `java` set JAVA=jdb
 # To run under gdb, set JAVA='gdb --args java'
+set -e
 arg=`echo "$1"|sed 's!.*/!!;s!\.class$!!'`
 # Use libtool's -dlopen option to ensure that libxapian_jni.so (or whatever)
 # is in the shared library path.
-${LIBTOOL-../libtool} --config > libtoolconfig.$$
-. ./libtoolconfig.$$
-rm -f libtoolconfig.$$
 ${LIBTOOL-../libtool} -dlopen libxapian_jni.la --mode=execute \
-  $MACOS_SIP_HACK_ENV ${JAVA-java} -Djava.library.path="$objdir" -classpath built/xapian.jar${PATHSEP-:}. "$arg"
+  $MACOS_SIP_HACK_ENV ${JAVA-java} -Djava.library.path="${_libs-.libs}" -classpath built/xapian.jar${PATHSEP-:}. "$arg"
diff --git a/java/xapian_wrap.cc b/java/xapian_wrap.cc
index dd24997dea6c5c3d6c64605682d30435ed396391..17017165d5101520ffed7a5ccd51bad8ee2ce76f 100644
--- a/java/xapian_wrap.cc
+++ b/java/xapian_wrap.cc
@@ -1,13 +1,13 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
  * ----------------------------------------------------------------------------- */
 
 
-#define SWIG_VERSION 0x040101
+#define SWIG_VERSION 0x040200
 #define SWIGJAVA
 #define SWIG_DIRECTORS
 
@@ -135,6 +135,32 @@
 # pragma warning disable 592
 #endif
 
+#if __cplusplus >=201103L
+# define SWIG_NULLPTR nullptr
+#else
+# define SWIG_NULLPTR NULL
+#endif 
+
+
+/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
+ * if you're missing it.
+ */
+#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
+     (defined __cplusplus && __cplusplus >= 201103L) || \
+     defined SWIG_HAVE_SNPRINTF) && \
+    !defined SWIG_NO_SNPRINTF
+# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
+#else
+/* Fallback versions ignore the buffer size, but most of our uses either have a
+ * fixed maximum possible size or dynamically allocate a buffer that's large
+ * enough.
+ */
+# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
+#endif
+
+
 
 #include <jni.h>
 #include <stdlib.h>
@@ -285,11 +311,11 @@ namespace Swig {
   /* Java object wrapper */
   class JObjectWrapper {
   public:
-    JObjectWrapper() : jthis_(NULL), weak_global_(true) {
+    JObjectWrapper() : jthis_(SWIG_NULLPTR), weak_global_(true) {
     }
 
     ~JObjectWrapper() {
-      jthis_ = NULL;
+      jthis_ = SWIG_NULLPTR;
       weak_global_ = true;
     }
 
@@ -328,13 +354,13 @@ namespace Swig {
 #endif
       if (jthis_) {
         if (weak_global_) {
-          if (jenv->IsSameObject(jthis_, NULL) == JNI_FALSE)
+          if (jenv->IsSameObject(jthis_, SWIG_NULLPTR) == JNI_FALSE)
             jenv->DeleteWeakGlobalRef((jweak)jthis_);
         } else
           jenv->DeleteGlobalRef(jthis_);
       }
 
-      jthis_ = NULL;
+      jthis_ = SWIG_NULLPTR;
       weak_global_ = true;
     }
 
@@ -418,7 +444,7 @@ namespace Swig {
       JNIEnv *jenv_;
       int env_status;
     public:
-      JNIEnvWrapper(const Director *director) : director_(director), jenv_(0), env_status(0) {
+      JNIEnvWrapper(const Director *director) : director_(director), jenv_(SWIG_NULLPTR), env_status(0) {
 #if defined(__ANDROID__)
         JNIEnv **jenv = &jenv_;
 #else
@@ -427,8 +453,8 @@ namespace Swig {
         env_status = director_->swig_jvm_->GetEnv((void **)&jenv_, JNI_VERSION_1_2);
         JavaVMAttachArgs args;
         args.version = JNI_VERSION_1_2;
-        args.group = NULL;
-        args.name = NULL;
+        args.group = SWIG_NULLPTR;
+        args.name = SWIG_NULLPTR;
 #if defined(SWIG_JAVA_USE_THREAD_NAME)
         char thread_name[64];  // MAX_TASK_COMM_LEN=16 is hard-coded in the Linux kernel and MacOS has MAXTHREADNAMESIZE=64.
         if (Swig::GetThreadName(thread_name, sizeof(thread_name)) == 0) {
@@ -492,7 +518,7 @@ namespace Swig {
 #if defined(DEBUG_DIRECTOR_OWNED)
       std::cout << "Swig::Director::disconnect_director_self(" << jobj << ")" << std::endl;
 #endif
-      if (jobj && jenv->IsSameObject(jobj, NULL) == JNI_FALSE) {
+      if (jobj && jenv->IsSameObject(jobj, SWIG_NULLPTR) == JNI_FALSE) {
         jmethodID disconn_meth = jenv->GetMethodID(jenv->GetObjectClass(jobj), disconn_method, "()V");
         if (disconn_meth) {
 #if defined(DEBUG_DIRECTOR_OWNED)
@@ -505,11 +531,11 @@ namespace Swig {
 
     jclass swig_new_global_ref(JNIEnv *jenv, const char *classname) {
       jclass clz = jenv->FindClass(classname);
-      return clz ? (jclass)jenv->NewGlobalRef(clz) : 0;
+      return clz ? (jclass)jenv->NewGlobalRef(clz) : SWIG_NULLPTR;
     }
 
   public:
-    Director(JNIEnv *jenv) : swig_jvm_((JavaVM *) NULL), swig_self_() {
+    Director(JNIEnv *jenv) : swig_jvm_((JavaVM *) SWIG_NULLPTR), swig_self_() {
       /* Acquire the Java VM pointer */
       jenv->GetJavaVM(&swig_jvm_);
     }
@@ -554,9 +580,9 @@ namespace Swig {
   // Simple holder for a Java string during exception handling, providing access to a c-style string
   class JavaString {
   public:
-    JavaString(JNIEnv *jenv, jstring jstr) : jenv_(jenv), jstr_(jstr), cstr_(0) {
+    JavaString(JNIEnv *jenv, jstring jstr) : jenv_(jenv), jstr_(jstr), cstr_(SWIG_NULLPTR) {
       if (jenv_ && jstr_)
-	cstr_ = (const char *) jenv_->GetStringUTFChars(jstr_, NULL);
+	cstr_ = (const char *) jenv_->GetStringUTFChars(jstr_, SWIG_NULLPTR);
     }
 
     ~JavaString() {
@@ -597,7 +623,7 @@ namespace Swig {
 
     // Get exception message by calling Java method Throwable.getMessage()
     static jstring exceptionMessageFromThrowable(JNIEnv *jenv, jthrowable throwable) {
-      jstring jmsg = NULL;
+      jstring jmsg = SWIG_NULLPTR;
       if (jenv && throwable) {
 	jenv->ExceptionClear(); // Cannot invoke methods with any pending exceptions
 	jclass throwclz = jenv->GetObjectClass(throwable);
@@ -607,7 +633,7 @@ namespace Swig {
 	  if (getMessageMethodID)
 	    jmsg = (jstring)jenv->CallObjectMethod(throwable, getMessageMethodID);
 	}
-	if (jmsg == NULL && jenv->ExceptionCheck())
+	if (jmsg == SWIG_NULLPTR && jenv->ExceptionCheck())
 	  jenv->ExceptionClear();
       }
       return jmsg;
@@ -621,7 +647,7 @@ namespace Swig {
   public:
 
     // Construct exception from a Java throwable
-    DirectorException(JNIEnv *jenv, jthrowable throwable) : jenv_(jenv), throwable_(throwable), classname_(0), msg_(0) {
+    DirectorException(JNIEnv *jenv, jthrowable throwable) : jenv_(jenv), throwable_(throwable), classname_(SWIG_NULLPTR), msg_(SWIG_NULLPTR) {
 
       // Call Java method Object.getClass().getName() to obtain the throwable's class name (delimited by '/')
       if (jenv && throwable) {
@@ -636,7 +662,7 @@ namespace Swig {
               // Copy strings, since there is no guarantee that jenv will be active when handled
               if (jstr_classname) {
                 JavaString jsclassname(jenv, jstr_classname);
-                const char *classname = jsclassname.c_str(0);
+                const char *classname = jsclassname.c_str(SWIG_NULLPTR);
                 if (classname)
                   classname_ = copypath(classname);
               }
@@ -646,11 +672,11 @@ namespace Swig {
       }
 
       JavaExceptionMessage exceptionmsg(jenv, throwable);
-      msg_ = copystr(exceptionmsg.message(0));
+      msg_ = copystr(exceptionmsg.message(SWIG_NULLPTR));
     }
 
     // More general constructor for handling as a java.lang.RuntimeException
-    DirectorException(const char *msg) : jenv_(0), throwable_(0), classname_(0), msg_(msg ? copystr(msg) : 0) {
+    DirectorException(const char *msg) : jenv_(SWIG_NULLPTR), throwable_(SWIG_NULLPTR), classname_(SWIG_NULLPTR), msg_(msg ? copystr(msg) : SWIG_NULLPTR) {
     }
 
     ~DirectorException() throw() {
@@ -671,7 +697,7 @@ namespace Swig {
           jthrowable throwable = jenv->ExceptionOccurred();
           if (throwable && jenv->IsSameObject(throwable, throwable_) == JNI_FALSE) {
             jenv->ExceptionClear();
-            throwable = 0;
+            throwable = SWIG_NULLPTR;
           }
           if (!throwable)
             jenv->Throw(throwable_);
@@ -679,8 +705,8 @@ namespace Swig {
           // Try and reconstruct original exception, but original stacktrace is not reconstructed
           jenv->ExceptionClear();
 
-          jmethodID ctorMethodID = 0;
-          jclass throwableclass = 0;
+          jmethodID ctorMethodID = SWIG_NULLPTR;
+          jclass throwableclass = SWIG_NULLPTR;
           if (classname_) {
             throwableclass = jenv->FindClass(classname_);
             if (throwableclass)
@@ -717,7 +743,7 @@ namespace Swig {
     }
 
     static char *copystr(const char *srcmsg) {
-      char *target = 0;
+      char *target = SWIG_NULLPTR;
       if (srcmsg) {
 	size_t msglen = strlen(srcmsg) + 1;
 	target = new char[msglen];
@@ -1263,7 +1289,7 @@ SWIGINTERN std::pair< Xapian::TermIterator,Xapian::TermIterator > Xapian_Enquire
 	return std::make_pair(self->get_matching_terms_begin(item),
 			      self->get_matching_terms_end(item));
     }
-SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_2(std::string const &file){
+SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_1(std::string const &file){
 	ifstream in_file(file.c_str());
 	if (!in_file.is_open())
 	    throw Xapian::InvalidArgumentError("Stopword file not found: " + file);
@@ -6602,7 +6628,7 @@ SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_114(JNIEnv
 }
 
 
-SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_117(JNIEnv *jenv, jclass jcls, jint jarg1, jlongArray jarg2, jlong jarg4) {
+SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_115(JNIEnv *jenv, jclass jcls, jint jarg1, jlongArray jarg2, jlong jarg4) {
   jlong jresult = 0 ;
   Xapian::Query::op arg1 ;
   XapianSWIGQueryItor arg2 ;
@@ -6644,7 +6670,7 @@ SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_117(JNIEnv
 }
 
 
-SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_118(JNIEnv *jenv, jclass jcls, jint jarg1, jlongArray jarg2) {
+SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_116(JNIEnv *jenv, jclass jcls, jint jarg1, jlongArray jarg2) {
   jlong jresult = 0 ;
   Xapian::Query::op arg1 ;
   XapianSWIGQueryItor arg2 ;
@@ -6684,7 +6710,7 @@ SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_118(JNIEnv
 }
 
 
-SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_119(JNIEnv *jenv, jclass jcls, jint jarg1, jobjectArray jarg2, jlong jarg4) {
+SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_117(JNIEnv *jenv, jclass jcls, jint jarg1, jobjectArray jarg2, jlong jarg4) {
   jlong jresult = 0 ;
   Xapian::Query::op arg1 ;
   XapianSWIGStrItor arg2 ;
@@ -6716,7 +6742,7 @@ SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_119(JNIEnv
 }
 
 
-SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_120(JNIEnv *jenv, jclass jcls, jint jarg1, jobjectArray jarg2) {
+SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_118(JNIEnv *jenv, jclass jcls, jint jarg1, jobjectArray jarg2) {
   jlong jresult = 0 ;
   Xapian::Query::op arg1 ;
   XapianSWIGStrItor arg2 ;
@@ -7046,7 +7072,7 @@ SWIGEXPORT jstring JNICALL Java_org_xapian_XapianJNI_Query_1toString(JNIEnv *jen
 }
 
 
-SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_121(JNIEnv *jenv, jclass jcls, jint jarg1) {
+SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1Query_1_1SWIG_119(JNIEnv *jenv, jclass jcls, jint jarg1) {
   jlong jresult = 0 ;
   Xapian::Query::op arg1 ;
   Xapian::Query *result = 0 ;
@@ -7586,6 +7612,18 @@ SWIGEXPORT jint JNICALL Java_org_xapian_XapianJNI_TermGenerator_1FLAG_1SPELLING_
 }
 
 
+SWIGEXPORT jint JNICALL Java_org_xapian_XapianJNI_TermGenerator_1FLAG_1NGRAMS_1get(JNIEnv *jenv, jclass jcls) {
+  jint jresult = 0 ;
+  int result;
+  
+  (void)jenv;
+  (void)jcls;
+  result = (int)Xapian::TermGenerator::FLAG_NGRAMS;
+  jresult = (jint)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT jint JNICALL Java_org_xapian_XapianJNI_TermGenerator_1FLAG_1CJK_1NGRAM_1get(JNIEnv *jenv, jclass jcls) {
   jint jresult = 0 ;
   int result;
@@ -8476,6 +8514,18 @@ SWIGEXPORT jint JNICALL Java_org_xapian_XapianJNI_MSet_1SNIPPET_1EMPTY_1WITHOUT_
 }
 
 
+SWIGEXPORT jint JNICALL Java_org_xapian_XapianJNI_MSet_1SNIPPET_1NGRAMS_1get(JNIEnv *jenv, jclass jcls) {
+  jint jresult = 0 ;
+  int result;
+  
+  (void)jenv;
+  (void)jcls;
+  result = (int)Xapian::MSet::SNIPPET_NGRAMS;
+  jresult = (jint)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT jint JNICALL Java_org_xapian_XapianJNI_MSet_1SNIPPET_1CJK_1NGRAM_1get(JNIEnv *jenv, jclass jcls) {
   jint jresult = 0 ;
   int result;
@@ -12590,7 +12640,7 @@ SWIGEXPORT jstring JNICALL Java_org_xapian_XapianJNI_SimpleStopper_1toString(JNI
 }
 
 
-SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1SimpleStopper_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1) {
+SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1SimpleStopper_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) {
   jlong jresult = 0 ;
   std::string *arg1 = 0 ;
   Xapian::SimpleStopper *result = 0 ;
@@ -12608,7 +12658,7 @@ SWIGEXPORT jlong JNICALL Java_org_xapian_XapianJNI_new_1SimpleStopper_1_1SWIG_12
   jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
   {
     try {
-      result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_2((std::string const &)*arg1);
+      result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_1((std::string const &)*arg1);
     } catch (...) {
       string msg;
       int code = XapianExceptionHandler(msg);
@@ -14265,6 +14315,18 @@ SWIGEXPORT jint JNICALL Java_org_xapian_XapianJNI_QueryParser_1FLAG_1AUTO_1MULTI
 }
 
 
+SWIGEXPORT jint JNICALL Java_org_xapian_XapianJNI_QueryParser_1FLAG_1NGRAMS_1get(JNIEnv *jenv, jclass jcls) {
+  jint jresult = 0 ;
+  Xapian::QueryParser::feature_flag result;
+  
+  (void)jenv;
+  (void)jcls;
+  result = (Xapian::QueryParser::feature_flag)Xapian::QueryParser::FLAG_NGRAMS;
+  jresult = (jint)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT jint JNICALL Java_org_xapian_XapianJNI_QueryParser_1FLAG_1CJK_1NGRAM_1get(JNIEnv *jenv, jclass jcls) {
   jint jresult = 0 ;
   Xapian::QueryParser::feature_flag result;
@@ -18929,7 +18991,7 @@ SWIGEXPORT jstring JNICALL Java_org_xapian_XapianJNI_Compactor_1resolveDuplicate
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
-  std::string *arg4 ;
+  std::string *arg4 = (std::string *) (std::string *)0 ;
   std::string result;
   
   (void)jenv;
@@ -18969,7 +19031,7 @@ SWIGEXPORT jstring JNICALL Java_org_xapian_XapianJNI_Compactor_1resolveDuplicate
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
-  std::string *arg4 ;
+  std::string *arg4 = (std::string *) (std::string *)0 ;
   std::string result;
   
   (void)jenv;
diff --git a/java/xapian_wrap.h b/java/xapian_wrap.h
index 4d376ad2c58fafe457644e332d99c0e38f17ce99..14bd89ca1c8a2a53d5a59143caa2a2478ffd3958 100644
--- a/java/xapian_wrap.h
+++ b/java/xapian_wrap.h
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/lua/Makefile.am b/lua/Makefile.am
index 6d8ed222fffa7efa9bef3f3190c9299ffa03fdd5..fcafb496a4c11549fb384be9b62308206e00477a 100644
--- a/lua/Makefile.am
+++ b/lua/Makefile.am
@@ -5,7 +5,7 @@ include ../generic/generic.mk
 ## Test programs to be run
 TESTS = smoketest.lua
 AM_TESTS_ENVIRONMENT = \
-	LUA_CPATH='.libs/?$(LUA_SO)' ;\
+	LUA_CPATH='$(_libs)/?$(LUA_SO)' ;\
 	export LUA_CPATH ;
 LOG_COMPILER = $(MACOS_SIP_HACK_ENV) $(LUA)
 
@@ -32,11 +32,10 @@ install-data-hook:
 uninstall-local:
 	rm -f $(DESTDIR)$(lualibdir)/xapian$(LUA_SO)
 
-AM_CPPFLAGS = @LUA_CPPFLAGS@
-AM_CXXFLAGS = @SWIG_CXXFLAGS@ $(XAPIAN_CXXFLAGS)
+AM_CXXFLAGS = @SWIG_CXXFLAGS@ $(XAPIAN_CXXFLAGS) $(LUA_CFLAGS)
 xapian_la_LDFLAGS = -avoid-version -module -shrext "$(LUA_SO)" $(NO_UNDEFINED)
 nodist_xapian_la_SOURCES = xapian_wrap.cc
-xapian_la_LIBADD = $(XAPIAN_LIBS)
+xapian_la_LIBADD = $(XAPIAN_LIBS) $(LUA_LIBS)
 
 SWIG_GENERATED = xapian_wrap.cc
 
diff --git a/lua/Makefile.in b/lua/Makefile.in
index 7450ef334026d12404e5cbf5028a4e2111af4cb1..555a17dba554e252e8ea1f815c3096ae80d8ec22 100644
--- a/lua/Makefile.in
+++ b/lua/Makefile.in
@@ -94,9 +94,7 @@ host_triplet = @host@
 subdir = lua
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(dist_docdata_DATA) \
@@ -136,7 +134,7 @@ am__installdirs = "$(DESTDIR)$(lualibdir)" "$(DESTDIR)$(docdatadir)" \
 	"$(DESTDIR)$(exampledatadir)"
 LTLIBRARIES = $(lualib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-xapian_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+xapian_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 nodist_xapian_la_OBJECTS = xapian_wrap.lo
 xapian_la_OBJECTS = $(nodist_xapian_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
@@ -454,9 +452,9 @@ LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 LUA = @LUA@
-LUA_CPPFLAGS = @LUA_CPPFLAGS@
-LUA_INC = @LUA_INC@
+LUA_CFLAGS = @LUA_CFLAGS@
 LUA_LIB = @LUA_LIB@
+LUA_LIBS = @LUA_LIBS@
 LUA_SO = @LUA_SO@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
@@ -490,6 +488,10 @@ PHP_INC = @PHP_INC@
 PHP_LIBS = @PHP_LIBS@
 PHP_MAJOR_VERSION = @PHP_MAJOR_VERSION@
 PHP_PATH_SEPARATOR = @PHP_PATH_SEPARATOR@
+PHP_SHLIB_SUFFIX = @PHP_SHLIB_SUFFIX@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 PYTHON = @PYTHON@
 PYTHON2 = @PYTHON2@
 PYTHON2_INC = @PYTHON2_INC@
@@ -527,6 +529,7 @@ TCL_CPPFLAGS = @TCL_CPPFLAGS@
 TCL_INC = @TCL_INC@
 TCL_LIB = @TCL_LIB@
 TCL_LIBS = @TCL_LIBS@
+TCL_SHLIB_EXT = @TCL_SHLIB_EXT@
 THREAD_LOCAL = @THREAD_LOCAL@
 VERSION = @VERSION@
 VERSION_NO_SNAPSHOT = @VERSION_NO_SNAPSHOT@
@@ -536,6 +539,7 @@ XAPIAN_HEADERS = @XAPIAN_HEADERS@
 XAPIAN_HEADER_DIRS = @XAPIAN_HEADER_DIRS@
 XAPIAN_LIBS = @XAPIAN_LIBS@
 XAPIAN_VERSION = @XAPIAN_VERSION@
+_libs = @_libs@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -613,7 +617,7 @@ multitarget_begin = @rm -f $@-t; touch $@-t
 multitarget_end = @mv -f $@-t $@
 TESTS = smoketest.lua
 AM_TESTS_ENVIRONMENT = \
-	LUA_CPATH='.libs/?$(LUA_SO)' ;\
+	LUA_CPATH='$(_libs)/?$(LUA_SO)' ;\
 	export LUA_CPATH ;
 
 LOG_COMPILER = $(MACOS_SIP_HACK_ENV) $(LUA)
@@ -624,11 +628,10 @@ EXTRA_DIST = lua.i util.i except.i \
 
 lualibdir = @LUA_LIB@
 lualib_LTLIBRARIES = xapian.la
-AM_CPPFLAGS = @LUA_CPPFLAGS@
-AM_CXXFLAGS = @SWIG_CXXFLAGS@ $(XAPIAN_CXXFLAGS)
+AM_CXXFLAGS = @SWIG_CXXFLAGS@ $(XAPIAN_CXXFLAGS) $(LUA_CFLAGS)
 xapian_la_LDFLAGS = -avoid-version -module -shrext "$(LUA_SO)" $(NO_UNDEFINED)
 nodist_xapian_la_SOURCES = xapian_wrap.cc
-xapian_la_LIBADD = $(XAPIAN_LIBS)
+xapian_la_LIBADD = $(XAPIAN_LIBS) $(LUA_LIBS)
 SWIG_GENERATED = xapian_wrap.cc
 BUILT_SOURCES = $(SWIG_GENERATED) $(am__append_1) $(am__append_2)
 @MAINTAINER_MODE_TRUE@RUN_SWIG = $(PERL) '$(top_srcdir)'/swig-depcomp $(SWIG)
diff --git a/lua/docs/index.html b/lua/docs/index.html
index e1880542514682976a1c78ad535940cba3a8c333..d227b2dc1b0ae939f147e20896a0360bdfe37121 100644
--- a/lua/docs/index.html
+++ b/lua/docs/index.html
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
+<meta name="generator" content="Docutils 0.20.1: https://docutils.sourceforge.io/" />
 <title>Lua bindings for Xapian</title>
 <style type="text/css">
 
diff --git a/lua/xapian_wrap.cc b/lua/xapian_wrap.cc
index 29c6b20a445674f51217122a205c01becdee537b..2c1eafbd914dc9023dadc391bfefc5760fb09681 100644
--- a/lua/xapian_wrap.cc
+++ b/lua/xapian_wrap.cc
@@ -1,13 +1,13 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
  * ----------------------------------------------------------------------------- */
 
 
-#define SWIG_VERSION 0x040101
+#define SWIG_VERSION 0x040200
 #define SWIGLUA
 #define SWIG_LUA_TARGET SWIG_LUA_FLAVOR_LUA
 #define SWIG_LUA_MODULE_GLOBAL
@@ -136,6 +136,32 @@
 # pragma warning disable 592
 #endif
 
+#if __cplusplus >=201103L
+# define SWIG_NULLPTR nullptr
+#else
+# define SWIG_NULLPTR NULL
+#endif 
+
+
+/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
+ * if you're missing it.
+ */
+#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
+     (defined __cplusplus && __cplusplus >= 201103L) || \
+     defined SWIG_HAVE_SNPRINTF) && \
+    !defined SWIG_NO_SNPRINTF
+# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
+#else
+/* Fallback versions ignore the buffer size, but most of our uses either have a
+ * fixed maximum possible size or dynamically allocate a buffer that's large
+ * enough.
+ */
+# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
+#endif
+
+
 /* -----------------------------------------------------------------------------
  * swigrun.swg
  *
@@ -283,7 +309,7 @@
 #define SWIG_CASTRANKLIMIT         (1 << 8)
 /* The NewMask denotes the object was created (using new/malloc) */
 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
-/* The TmpMask is for in/out typemaps that use temporal objects */
+/* The TmpMask is for in/out typemaps that use temporary objects */
 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
 /* Simple returning values */
 #define SWIG_BADOBJ                (SWIG_ERROR)
@@ -885,6 +911,20 @@ typedef struct swig_elua_entry {
 # define lua_rawlen lua_objlen
 #endif
 
+/* lua_tolstring() was added in Lua 5.1.  It should be a little more
+   efficient than making two separate calls and it avoids problems with order
+   of evaluation so SWIG calls lua_tolstring() when it wants the length and
+   we provide a compatibility implementation for Lua 5.0.  */
+#if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 501
+static const char *(lua_tolstring)(lua_State *L, int idx, size_t *len) {
+  /* Call lua_tostring() first as it may convert the value from number to
+     string. */
+  const char *result = lua_tostring(L, idx);
+  if (len) *len = lua_strlen(L, idx);
+  return result;
+}
+#endif
+
 
 /* lua_pushglobaltable is the recommended "future-proof" way to get
    the global table for Lua 5.2 and later.  Here we define
@@ -3621,7 +3661,7 @@ SWIGINTERN std::pair< Xapian::TermIterator,Xapian::TermIterator > Xapian_Enquire
 SWIGINTERN std::pair< Xapian::TermIterator,Xapian::TermIterator > Xapian_Enquire_get_matching_terms__SWIG_1(Xapian::Enquire *self,Xapian::MSetIterator const &it){
 	return std::make_pair(self->get_matching_terms_begin(it), self->get_matching_terms_end(it));
     }
-SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_2(std::string const &file){
+SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_1(std::string const &file){
 	ifstream in_file(file.c_str());
 	if (!in_file.is_open())
 	    throw Xapian::InvalidArgumentError("Stopword file not found: " + file);
@@ -4195,8 +4235,18 @@ static int _wrap_new_AssertionError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::AssertionError::AssertionError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::AssertionError::AssertionError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::AssertionError::AssertionError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::AssertionError *)new Xapian::AssertionError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__AssertionError,1); SWIG_arg++; 
@@ -4223,8 +4273,18 @@ static int _wrap_new_AssertionError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::AssertionError::AssertionError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::AssertionError::AssertionError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::AssertionError::AssertionError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::AssertionError *)new Xapian::AssertionError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__AssertionError,1); SWIG_arg++; 
@@ -4249,8 +4309,18 @@ static int _wrap_new_AssertionError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::AssertionError::AssertionError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::AssertionError::AssertionError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::AssertionError::AssertionError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::AssertionError *)new Xapian::AssertionError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__AssertionError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -4271,7 +4341,12 @@ static int _wrap_new_AssertionError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::AssertionError::AssertionError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::AssertionError::AssertionError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::AssertionError *)new Xapian::AssertionError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__AssertionError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -4294,7 +4369,12 @@ static int _wrap_new_AssertionError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::AssertionError::AssertionError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::AssertionError::AssertionError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::AssertionError::AssertionError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::AssertionError *)new Xapian::AssertionError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__AssertionError,1); SWIG_arg++; 
@@ -4462,8 +4542,18 @@ static int _wrap_new_InvalidArgumentError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InvalidArgumentError::InvalidArgumentError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::InvalidArgumentError::InvalidArgumentError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::InvalidArgumentError::InvalidArgumentError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::InvalidArgumentError *)new Xapian::InvalidArgumentError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InvalidArgumentError,1); SWIG_arg++; 
@@ -4490,8 +4580,18 @@ static int _wrap_new_InvalidArgumentError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InvalidArgumentError::InvalidArgumentError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::InvalidArgumentError::InvalidArgumentError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::InvalidArgumentError::InvalidArgumentError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::InvalidArgumentError *)new Xapian::InvalidArgumentError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InvalidArgumentError,1); SWIG_arg++; 
@@ -4516,8 +4616,18 @@ static int _wrap_new_InvalidArgumentError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::InvalidArgumentError::InvalidArgumentError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InvalidArgumentError::InvalidArgumentError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::InvalidArgumentError::InvalidArgumentError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::InvalidArgumentError *)new Xapian::InvalidArgumentError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InvalidArgumentError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -4538,7 +4648,12 @@ static int _wrap_new_InvalidArgumentError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::InvalidArgumentError::InvalidArgumentError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InvalidArgumentError::InvalidArgumentError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::InvalidArgumentError *)new Xapian::InvalidArgumentError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InvalidArgumentError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -4561,7 +4676,12 @@ static int _wrap_new_InvalidArgumentError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::InvalidArgumentError::InvalidArgumentError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InvalidArgumentError::InvalidArgumentError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::InvalidArgumentError::InvalidArgumentError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::InvalidArgumentError *)new Xapian::InvalidArgumentError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InvalidArgumentError,1); SWIG_arg++; 
@@ -4729,8 +4849,18 @@ static int _wrap_new_InvalidOperationError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InvalidOperationError::InvalidOperationError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::InvalidOperationError::InvalidOperationError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::InvalidOperationError::InvalidOperationError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::InvalidOperationError *)new Xapian::InvalidOperationError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InvalidOperationError,1); SWIG_arg++; 
@@ -4757,8 +4887,18 @@ static int _wrap_new_InvalidOperationError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InvalidOperationError::InvalidOperationError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::InvalidOperationError::InvalidOperationError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::InvalidOperationError::InvalidOperationError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::InvalidOperationError *)new Xapian::InvalidOperationError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InvalidOperationError,1); SWIG_arg++; 
@@ -4783,8 +4923,18 @@ static int _wrap_new_InvalidOperationError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::InvalidOperationError::InvalidOperationError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InvalidOperationError::InvalidOperationError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::InvalidOperationError::InvalidOperationError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::InvalidOperationError *)new Xapian::InvalidOperationError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InvalidOperationError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -4805,7 +4955,12 @@ static int _wrap_new_InvalidOperationError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::InvalidOperationError::InvalidOperationError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InvalidOperationError::InvalidOperationError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::InvalidOperationError *)new Xapian::InvalidOperationError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InvalidOperationError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -4828,7 +4983,12 @@ static int _wrap_new_InvalidOperationError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::InvalidOperationError::InvalidOperationError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InvalidOperationError::InvalidOperationError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::InvalidOperationError::InvalidOperationError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::InvalidOperationError *)new Xapian::InvalidOperationError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InvalidOperationError,1); SWIG_arg++; 
@@ -4996,8 +5156,18 @@ static int _wrap_new_UnimplementedError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::UnimplementedError::UnimplementedError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::UnimplementedError::UnimplementedError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::UnimplementedError::UnimplementedError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::UnimplementedError *)new Xapian::UnimplementedError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__UnimplementedError,1); SWIG_arg++; 
@@ -5024,8 +5194,18 @@ static int _wrap_new_UnimplementedError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::UnimplementedError::UnimplementedError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::UnimplementedError::UnimplementedError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::UnimplementedError::UnimplementedError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::UnimplementedError *)new Xapian::UnimplementedError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__UnimplementedError,1); SWIG_arg++; 
@@ -5050,8 +5230,18 @@ static int _wrap_new_UnimplementedError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::UnimplementedError::UnimplementedError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::UnimplementedError::UnimplementedError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::UnimplementedError::UnimplementedError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::UnimplementedError *)new Xapian::UnimplementedError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__UnimplementedError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -5072,7 +5262,12 @@ static int _wrap_new_UnimplementedError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::UnimplementedError::UnimplementedError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::UnimplementedError::UnimplementedError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::UnimplementedError *)new Xapian::UnimplementedError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__UnimplementedError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -5095,7 +5290,12 @@ static int _wrap_new_UnimplementedError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::UnimplementedError::UnimplementedError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::UnimplementedError::UnimplementedError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::UnimplementedError::UnimplementedError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::UnimplementedError *)new Xapian::UnimplementedError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__UnimplementedError,1); SWIG_arg++; 
@@ -5263,8 +5463,18 @@ static int _wrap_new_DatabaseError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseError::DatabaseError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseError::DatabaseError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::DatabaseError::DatabaseError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::DatabaseError *)new Xapian::DatabaseError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseError,1); SWIG_arg++; 
@@ -5291,8 +5501,18 @@ static int _wrap_new_DatabaseError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseError::DatabaseError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseError::DatabaseError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::DatabaseError::DatabaseError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::DatabaseError *)new Xapian::DatabaseError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseError,1); SWIG_arg++; 
@@ -5317,8 +5537,18 @@ static int _wrap_new_DatabaseError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseError::DatabaseError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseError::DatabaseError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseError::DatabaseError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::DatabaseError *)new Xapian::DatabaseError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -5339,7 +5569,12 @@ static int _wrap_new_DatabaseError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::DatabaseError::DatabaseError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseError::DatabaseError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::DatabaseError *)new Xapian::DatabaseError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -5362,7 +5597,12 @@ static int _wrap_new_DatabaseError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseError::DatabaseError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseError::DatabaseError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::DatabaseError::DatabaseError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::DatabaseError *)new Xapian::DatabaseError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseError,1); SWIG_arg++; 
@@ -5530,8 +5770,18 @@ static int _wrap_new_DatabaseCorruptError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseCorruptError::DatabaseCorruptError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseCorruptError::DatabaseCorruptError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::DatabaseCorruptError::DatabaseCorruptError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::DatabaseCorruptError *)new Xapian::DatabaseCorruptError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseCorruptError,1); SWIG_arg++; 
@@ -5558,8 +5808,18 @@ static int _wrap_new_DatabaseCorruptError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseCorruptError::DatabaseCorruptError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseCorruptError::DatabaseCorruptError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::DatabaseCorruptError::DatabaseCorruptError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::DatabaseCorruptError *)new Xapian::DatabaseCorruptError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseCorruptError,1); SWIG_arg++; 
@@ -5584,8 +5844,18 @@ static int _wrap_new_DatabaseCorruptError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseCorruptError::DatabaseCorruptError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseCorruptError::DatabaseCorruptError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseCorruptError::DatabaseCorruptError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::DatabaseCorruptError *)new Xapian::DatabaseCorruptError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseCorruptError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -5606,7 +5876,12 @@ static int _wrap_new_DatabaseCorruptError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::DatabaseCorruptError::DatabaseCorruptError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseCorruptError::DatabaseCorruptError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::DatabaseCorruptError *)new Xapian::DatabaseCorruptError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseCorruptError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -5629,7 +5904,12 @@ static int _wrap_new_DatabaseCorruptError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseCorruptError::DatabaseCorruptError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseCorruptError::DatabaseCorruptError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::DatabaseCorruptError::DatabaseCorruptError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::DatabaseCorruptError *)new Xapian::DatabaseCorruptError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseCorruptError,1); SWIG_arg++; 
@@ -5797,8 +6077,18 @@ static int _wrap_new_DatabaseCreateError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseCreateError::DatabaseCreateError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseCreateError::DatabaseCreateError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::DatabaseCreateError::DatabaseCreateError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::DatabaseCreateError *)new Xapian::DatabaseCreateError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseCreateError,1); SWIG_arg++; 
@@ -5825,8 +6115,18 @@ static int _wrap_new_DatabaseCreateError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseCreateError::DatabaseCreateError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseCreateError::DatabaseCreateError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::DatabaseCreateError::DatabaseCreateError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::DatabaseCreateError *)new Xapian::DatabaseCreateError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseCreateError,1); SWIG_arg++; 
@@ -5851,8 +6151,18 @@ static int _wrap_new_DatabaseCreateError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseCreateError::DatabaseCreateError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseCreateError::DatabaseCreateError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseCreateError::DatabaseCreateError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::DatabaseCreateError *)new Xapian::DatabaseCreateError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseCreateError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -5873,7 +6183,12 @@ static int _wrap_new_DatabaseCreateError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::DatabaseCreateError::DatabaseCreateError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseCreateError::DatabaseCreateError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::DatabaseCreateError *)new Xapian::DatabaseCreateError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseCreateError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -5896,7 +6211,12 @@ static int _wrap_new_DatabaseCreateError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseCreateError::DatabaseCreateError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseCreateError::DatabaseCreateError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::DatabaseCreateError::DatabaseCreateError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::DatabaseCreateError *)new Xapian::DatabaseCreateError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseCreateError,1); SWIG_arg++; 
@@ -6064,8 +6384,18 @@ static int _wrap_new_DatabaseLockError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseLockError::DatabaseLockError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseLockError::DatabaseLockError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::DatabaseLockError::DatabaseLockError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::DatabaseLockError *)new Xapian::DatabaseLockError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseLockError,1); SWIG_arg++; 
@@ -6092,8 +6422,18 @@ static int _wrap_new_DatabaseLockError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseLockError::DatabaseLockError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseLockError::DatabaseLockError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::DatabaseLockError::DatabaseLockError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::DatabaseLockError *)new Xapian::DatabaseLockError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseLockError,1); SWIG_arg++; 
@@ -6118,8 +6458,18 @@ static int _wrap_new_DatabaseLockError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseLockError::DatabaseLockError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseLockError::DatabaseLockError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseLockError::DatabaseLockError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::DatabaseLockError *)new Xapian::DatabaseLockError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseLockError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -6140,7 +6490,12 @@ static int _wrap_new_DatabaseLockError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::DatabaseLockError::DatabaseLockError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseLockError::DatabaseLockError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::DatabaseLockError *)new Xapian::DatabaseLockError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseLockError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -6163,7 +6518,12 @@ static int _wrap_new_DatabaseLockError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseLockError::DatabaseLockError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseLockError::DatabaseLockError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::DatabaseLockError::DatabaseLockError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::DatabaseLockError *)new Xapian::DatabaseLockError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseLockError,1); SWIG_arg++; 
@@ -6331,8 +6691,18 @@ static int _wrap_new_DatabaseModifiedError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseModifiedError::DatabaseModifiedError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseModifiedError::DatabaseModifiedError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::DatabaseModifiedError::DatabaseModifiedError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::DatabaseModifiedError *)new Xapian::DatabaseModifiedError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseModifiedError,1); SWIG_arg++; 
@@ -6359,8 +6729,18 @@ static int _wrap_new_DatabaseModifiedError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseModifiedError::DatabaseModifiedError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseModifiedError::DatabaseModifiedError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::DatabaseModifiedError::DatabaseModifiedError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::DatabaseModifiedError *)new Xapian::DatabaseModifiedError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseModifiedError,1); SWIG_arg++; 
@@ -6385,8 +6765,18 @@ static int _wrap_new_DatabaseModifiedError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseModifiedError::DatabaseModifiedError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseModifiedError::DatabaseModifiedError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseModifiedError::DatabaseModifiedError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::DatabaseModifiedError *)new Xapian::DatabaseModifiedError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseModifiedError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -6407,7 +6797,12 @@ static int _wrap_new_DatabaseModifiedError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::DatabaseModifiedError::DatabaseModifiedError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseModifiedError::DatabaseModifiedError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::DatabaseModifiedError *)new Xapian::DatabaseModifiedError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseModifiedError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -6430,7 +6825,12 @@ static int _wrap_new_DatabaseModifiedError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseModifiedError::DatabaseModifiedError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseModifiedError::DatabaseModifiedError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::DatabaseModifiedError::DatabaseModifiedError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::DatabaseModifiedError *)new Xapian::DatabaseModifiedError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseModifiedError,1); SWIG_arg++; 
@@ -6598,8 +6998,18 @@ static int _wrap_new_DatabaseOpeningError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseOpeningError::DatabaseOpeningError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseOpeningError::DatabaseOpeningError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::DatabaseOpeningError::DatabaseOpeningError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::DatabaseOpeningError *)new Xapian::DatabaseOpeningError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseOpeningError,1); SWIG_arg++; 
@@ -6626,8 +7036,18 @@ static int _wrap_new_DatabaseOpeningError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseOpeningError::DatabaseOpeningError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseOpeningError::DatabaseOpeningError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::DatabaseOpeningError::DatabaseOpeningError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::DatabaseOpeningError *)new Xapian::DatabaseOpeningError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseOpeningError,1); SWIG_arg++; 
@@ -6652,8 +7072,18 @@ static int _wrap_new_DatabaseOpeningError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseOpeningError::DatabaseOpeningError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseOpeningError::DatabaseOpeningError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseOpeningError::DatabaseOpeningError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::DatabaseOpeningError *)new Xapian::DatabaseOpeningError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseOpeningError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -6674,7 +7104,12 @@ static int _wrap_new_DatabaseOpeningError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::DatabaseOpeningError::DatabaseOpeningError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseOpeningError::DatabaseOpeningError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::DatabaseOpeningError *)new Xapian::DatabaseOpeningError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseOpeningError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -6697,7 +7132,12 @@ static int _wrap_new_DatabaseOpeningError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseOpeningError::DatabaseOpeningError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseOpeningError::DatabaseOpeningError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::DatabaseOpeningError::DatabaseOpeningError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::DatabaseOpeningError *)new Xapian::DatabaseOpeningError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseOpeningError,1); SWIG_arg++; 
@@ -6865,8 +7305,18 @@ static int _wrap_new_DatabaseVersionError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseVersionError::DatabaseVersionError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseVersionError::DatabaseVersionError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::DatabaseVersionError::DatabaseVersionError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::DatabaseVersionError *)new Xapian::DatabaseVersionError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseVersionError,1); SWIG_arg++; 
@@ -6893,8 +7343,18 @@ static int _wrap_new_DatabaseVersionError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseVersionError::DatabaseVersionError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseVersionError::DatabaseVersionError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::DatabaseVersionError::DatabaseVersionError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::DatabaseVersionError *)new Xapian::DatabaseVersionError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseVersionError,1); SWIG_arg++; 
@@ -6919,8 +7379,18 @@ static int _wrap_new_DatabaseVersionError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseVersionError::DatabaseVersionError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseVersionError::DatabaseVersionError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseVersionError::DatabaseVersionError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::DatabaseVersionError *)new Xapian::DatabaseVersionError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseVersionError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -6941,7 +7411,12 @@ static int _wrap_new_DatabaseVersionError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::DatabaseVersionError::DatabaseVersionError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseVersionError::DatabaseVersionError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::DatabaseVersionError *)new Xapian::DatabaseVersionError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseVersionError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -6964,7 +7439,12 @@ static int _wrap_new_DatabaseVersionError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseVersionError::DatabaseVersionError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseVersionError::DatabaseVersionError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::DatabaseVersionError::DatabaseVersionError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::DatabaseVersionError *)new Xapian::DatabaseVersionError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseVersionError,1); SWIG_arg++; 
@@ -7132,8 +7612,18 @@ static int _wrap_new_DocNotFoundError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DocNotFoundError::DocNotFoundError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DocNotFoundError::DocNotFoundError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::DocNotFoundError::DocNotFoundError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::DocNotFoundError *)new Xapian::DocNotFoundError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DocNotFoundError,1); SWIG_arg++; 
@@ -7160,8 +7650,18 @@ static int _wrap_new_DocNotFoundError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DocNotFoundError::DocNotFoundError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DocNotFoundError::DocNotFoundError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::DocNotFoundError::DocNotFoundError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::DocNotFoundError *)new Xapian::DocNotFoundError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DocNotFoundError,1); SWIG_arg++; 
@@ -7186,8 +7686,18 @@ static int _wrap_new_DocNotFoundError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::DocNotFoundError::DocNotFoundError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DocNotFoundError::DocNotFoundError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DocNotFoundError::DocNotFoundError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::DocNotFoundError *)new Xapian::DocNotFoundError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DocNotFoundError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -7208,7 +7718,12 @@ static int _wrap_new_DocNotFoundError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::DocNotFoundError::DocNotFoundError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DocNotFoundError::DocNotFoundError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::DocNotFoundError *)new Xapian::DocNotFoundError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DocNotFoundError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -7231,7 +7746,12 @@ static int _wrap_new_DocNotFoundError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::DocNotFoundError::DocNotFoundError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DocNotFoundError::DocNotFoundError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::DocNotFoundError::DocNotFoundError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::DocNotFoundError *)new Xapian::DocNotFoundError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DocNotFoundError,1); SWIG_arg++; 
@@ -7399,8 +7919,18 @@ static int _wrap_new_FeatureUnavailableError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::FeatureUnavailableError::FeatureUnavailableError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::FeatureUnavailableError::FeatureUnavailableError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::FeatureUnavailableError::FeatureUnavailableError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::FeatureUnavailableError *)new Xapian::FeatureUnavailableError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__FeatureUnavailableError,1); SWIG_arg++; 
@@ -7427,8 +7957,18 @@ static int _wrap_new_FeatureUnavailableError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::FeatureUnavailableError::FeatureUnavailableError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::FeatureUnavailableError::FeatureUnavailableError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::FeatureUnavailableError::FeatureUnavailableError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::FeatureUnavailableError *)new Xapian::FeatureUnavailableError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__FeatureUnavailableError,1); SWIG_arg++; 
@@ -7453,8 +7993,18 @@ static int _wrap_new_FeatureUnavailableError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::FeatureUnavailableError::FeatureUnavailableError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::FeatureUnavailableError::FeatureUnavailableError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::FeatureUnavailableError::FeatureUnavailableError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::FeatureUnavailableError *)new Xapian::FeatureUnavailableError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__FeatureUnavailableError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -7475,7 +8025,12 @@ static int _wrap_new_FeatureUnavailableError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::FeatureUnavailableError::FeatureUnavailableError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::FeatureUnavailableError::FeatureUnavailableError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::FeatureUnavailableError *)new Xapian::FeatureUnavailableError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__FeatureUnavailableError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -7498,7 +8053,12 @@ static int _wrap_new_FeatureUnavailableError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::FeatureUnavailableError::FeatureUnavailableError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::FeatureUnavailableError::FeatureUnavailableError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::FeatureUnavailableError::FeatureUnavailableError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::FeatureUnavailableError *)new Xapian::FeatureUnavailableError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__FeatureUnavailableError,1); SWIG_arg++; 
@@ -7666,8 +8226,18 @@ static int _wrap_new_InternalError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InternalError::InternalError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::InternalError::InternalError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::InternalError::InternalError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::InternalError *)new Xapian::InternalError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InternalError,1); SWIG_arg++; 
@@ -7694,8 +8264,18 @@ static int _wrap_new_InternalError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InternalError::InternalError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::InternalError::InternalError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::InternalError::InternalError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::InternalError *)new Xapian::InternalError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InternalError,1); SWIG_arg++; 
@@ -7720,8 +8300,18 @@ static int _wrap_new_InternalError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::InternalError::InternalError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InternalError::InternalError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::InternalError::InternalError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::InternalError *)new Xapian::InternalError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InternalError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -7742,7 +8332,12 @@ static int _wrap_new_InternalError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::InternalError::InternalError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InternalError::InternalError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::InternalError *)new Xapian::InternalError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InternalError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -7765,7 +8360,12 @@ static int _wrap_new_InternalError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::InternalError::InternalError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::InternalError::InternalError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::InternalError::InternalError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::InternalError *)new Xapian::InternalError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__InternalError,1); SWIG_arg++; 
@@ -7933,8 +8533,18 @@ static int _wrap_new_NetworkError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::NetworkError::NetworkError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::NetworkError::NetworkError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::NetworkError::NetworkError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::NetworkError *)new Xapian::NetworkError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__NetworkError,1); SWIG_arg++; 
@@ -7961,8 +8571,18 @@ static int _wrap_new_NetworkError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::NetworkError::NetworkError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::NetworkError::NetworkError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::NetworkError::NetworkError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::NetworkError *)new Xapian::NetworkError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__NetworkError,1); SWIG_arg++; 
@@ -7987,8 +8607,18 @@ static int _wrap_new_NetworkError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::NetworkError::NetworkError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::NetworkError::NetworkError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::NetworkError::NetworkError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::NetworkError *)new Xapian::NetworkError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__NetworkError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -8009,7 +8639,12 @@ static int _wrap_new_NetworkError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::NetworkError::NetworkError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::NetworkError::NetworkError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::NetworkError *)new Xapian::NetworkError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__NetworkError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -8032,7 +8667,12 @@ static int _wrap_new_NetworkError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::NetworkError::NetworkError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::NetworkError::NetworkError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::NetworkError::NetworkError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::NetworkError *)new Xapian::NetworkError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__NetworkError,1); SWIG_arg++; 
@@ -8200,8 +8840,18 @@ static int _wrap_new_NetworkTimeoutError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::NetworkTimeoutError::NetworkTimeoutError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::NetworkTimeoutError::NetworkTimeoutError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::NetworkTimeoutError::NetworkTimeoutError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::NetworkTimeoutError *)new Xapian::NetworkTimeoutError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__NetworkTimeoutError,1); SWIG_arg++; 
@@ -8228,8 +8878,18 @@ static int _wrap_new_NetworkTimeoutError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::NetworkTimeoutError::NetworkTimeoutError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::NetworkTimeoutError::NetworkTimeoutError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::NetworkTimeoutError::NetworkTimeoutError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::NetworkTimeoutError *)new Xapian::NetworkTimeoutError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__NetworkTimeoutError,1); SWIG_arg++; 
@@ -8254,8 +8914,18 @@ static int _wrap_new_NetworkTimeoutError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::NetworkTimeoutError::NetworkTimeoutError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::NetworkTimeoutError::NetworkTimeoutError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::NetworkTimeoutError::NetworkTimeoutError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::NetworkTimeoutError *)new Xapian::NetworkTimeoutError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__NetworkTimeoutError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -8276,7 +8946,12 @@ static int _wrap_new_NetworkTimeoutError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::NetworkTimeoutError::NetworkTimeoutError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::NetworkTimeoutError::NetworkTimeoutError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::NetworkTimeoutError *)new Xapian::NetworkTimeoutError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__NetworkTimeoutError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -8299,7 +8974,12 @@ static int _wrap_new_NetworkTimeoutError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::NetworkTimeoutError::NetworkTimeoutError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::NetworkTimeoutError::NetworkTimeoutError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::NetworkTimeoutError::NetworkTimeoutError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::NetworkTimeoutError *)new Xapian::NetworkTimeoutError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__NetworkTimeoutError,1); SWIG_arg++; 
@@ -8467,8 +9147,18 @@ static int _wrap_new_QueryParserError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::QueryParserError::QueryParserError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::QueryParserError::QueryParserError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::QueryParserError::QueryParserError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::QueryParserError *)new Xapian::QueryParserError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__QueryParserError,1); SWIG_arg++; 
@@ -8495,8 +9185,18 @@ static int _wrap_new_QueryParserError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::QueryParserError::QueryParserError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::QueryParserError::QueryParserError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::QueryParserError::QueryParserError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::QueryParserError *)new Xapian::QueryParserError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__QueryParserError,1); SWIG_arg++; 
@@ -8521,8 +9221,18 @@ static int _wrap_new_QueryParserError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::QueryParserError::QueryParserError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::QueryParserError::QueryParserError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::QueryParserError::QueryParserError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::QueryParserError *)new Xapian::QueryParserError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__QueryParserError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -8543,7 +9253,12 @@ static int _wrap_new_QueryParserError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::QueryParserError::QueryParserError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::QueryParserError::QueryParserError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::QueryParserError *)new Xapian::QueryParserError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__QueryParserError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -8566,7 +9281,12 @@ static int _wrap_new_QueryParserError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::QueryParserError::QueryParserError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::QueryParserError::QueryParserError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::QueryParserError::QueryParserError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::QueryParserError *)new Xapian::QueryParserError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__QueryParserError,1); SWIG_arg++; 
@@ -8734,8 +9454,18 @@ static int _wrap_new_SerialisationError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::SerialisationError::SerialisationError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::SerialisationError::SerialisationError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::SerialisationError::SerialisationError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::SerialisationError *)new Xapian::SerialisationError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__SerialisationError,1); SWIG_arg++; 
@@ -8762,8 +9492,18 @@ static int _wrap_new_SerialisationError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::SerialisationError::SerialisationError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::SerialisationError::SerialisationError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::SerialisationError::SerialisationError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::SerialisationError *)new Xapian::SerialisationError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__SerialisationError,1); SWIG_arg++; 
@@ -8788,8 +9528,18 @@ static int _wrap_new_SerialisationError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::SerialisationError::SerialisationError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::SerialisationError::SerialisationError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::SerialisationError::SerialisationError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::SerialisationError *)new Xapian::SerialisationError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__SerialisationError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -8810,7 +9560,12 @@ static int _wrap_new_SerialisationError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::SerialisationError::SerialisationError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::SerialisationError::SerialisationError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::SerialisationError *)new Xapian::SerialisationError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__SerialisationError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -8833,7 +9588,12 @@ static int _wrap_new_SerialisationError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::SerialisationError::SerialisationError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::SerialisationError::SerialisationError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::SerialisationError::SerialisationError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::SerialisationError *)new Xapian::SerialisationError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__SerialisationError,1); SWIG_arg++; 
@@ -9001,8 +9761,18 @@ static int _wrap_new_RangeError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::RangeError::RangeError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::RangeError::RangeError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::RangeError::RangeError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::RangeError *)new Xapian::RangeError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__RangeError,1); SWIG_arg++; 
@@ -9029,8 +9799,18 @@ static int _wrap_new_RangeError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::RangeError::RangeError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::RangeError::RangeError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::RangeError::RangeError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::RangeError *)new Xapian::RangeError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__RangeError,1); SWIG_arg++; 
@@ -9055,8 +9835,18 @@ static int _wrap_new_RangeError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::RangeError::RangeError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::RangeError::RangeError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::RangeError::RangeError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::RangeError *)new Xapian::RangeError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__RangeError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -9077,7 +9867,12 @@ static int _wrap_new_RangeError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::RangeError::RangeError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::RangeError::RangeError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::RangeError *)new Xapian::RangeError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__RangeError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -9100,7 +9895,12 @@ static int _wrap_new_RangeError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::RangeError::RangeError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::RangeError::RangeError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::RangeError::RangeError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::RangeError *)new Xapian::RangeError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__RangeError,1); SWIG_arg++; 
@@ -9268,8 +10068,18 @@ static int _wrap_new_WildcardError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::WildcardError::WildcardError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::WildcardError::WildcardError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::WildcardError::WildcardError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::WildcardError *)new Xapian::WildcardError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__WildcardError,1); SWIG_arg++; 
@@ -9296,8 +10106,18 @@ static int _wrap_new_WildcardError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::WildcardError::WildcardError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::WildcardError::WildcardError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::WildcardError::WildcardError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::WildcardError *)new Xapian::WildcardError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__WildcardError,1); SWIG_arg++; 
@@ -9322,8 +10142,18 @@ static int _wrap_new_WildcardError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::WildcardError::WildcardError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::WildcardError::WildcardError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::WildcardError::WildcardError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::WildcardError *)new Xapian::WildcardError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__WildcardError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -9344,7 +10174,12 @@ static int _wrap_new_WildcardError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::WildcardError::WildcardError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::WildcardError::WildcardError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::WildcardError *)new Xapian::WildcardError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__WildcardError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -9367,7 +10202,12 @@ static int _wrap_new_WildcardError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::WildcardError::WildcardError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::WildcardError::WildcardError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::WildcardError::WildcardError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::WildcardError *)new Xapian::WildcardError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__WildcardError,1); SWIG_arg++; 
@@ -9535,8 +10375,18 @@ static int _wrap_new_DatabaseNotFoundError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::DatabaseNotFoundError *)new Xapian::DatabaseNotFoundError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseNotFoundError,1); SWIG_arg++; 
@@ -9563,8 +10413,18 @@ static int _wrap_new_DatabaseNotFoundError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::DatabaseNotFoundError *)new Xapian::DatabaseNotFoundError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseNotFoundError,1); SWIG_arg++; 
@@ -9589,8 +10449,18 @@ static int _wrap_new_DatabaseNotFoundError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::DatabaseNotFoundError *)new Xapian::DatabaseNotFoundError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseNotFoundError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -9611,7 +10481,12 @@ static int _wrap_new_DatabaseNotFoundError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::DatabaseNotFoundError *)new Xapian::DatabaseNotFoundError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseNotFoundError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -9634,7 +10509,12 @@ static int _wrap_new_DatabaseNotFoundError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::DatabaseNotFoundError::DatabaseNotFoundError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::DatabaseNotFoundError *)new Xapian::DatabaseNotFoundError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseNotFoundError,1); SWIG_arg++; 
@@ -9802,8 +10682,18 @@ static int _wrap_new_DatabaseClosedError__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseClosedError::DatabaseClosedError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseClosedError::DatabaseClosedError",2,"std::string const &");
     if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Xapian::DatabaseClosedError::DatabaseClosedError",3,"char const *");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (char *)lua_tostring(L, 3);
     result = (Xapian::DatabaseClosedError *)new Xapian::DatabaseClosedError((std::string const &)*arg1,(std::string const &)*arg2,(char const *)arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseClosedError,1); SWIG_arg++; 
@@ -9830,8 +10720,18 @@ static int _wrap_new_DatabaseClosedError__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseClosedError::DatabaseClosedError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseClosedError::DatabaseClosedError",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::DatabaseClosedError::DatabaseClosedError",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (int)lua_tonumber(L, 3);
     result = (Xapian::DatabaseClosedError *)new Xapian::DatabaseClosedError((std::string const &)*arg1,(std::string const &)*arg2,arg3);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseClosedError,1); SWIG_arg++; 
@@ -9856,8 +10756,18 @@ static int _wrap_new_DatabaseClosedError__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseClosedError::DatabaseClosedError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseClosedError::DatabaseClosedError",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DatabaseClosedError::DatabaseClosedError",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = (Xapian::DatabaseClosedError *)new Xapian::DatabaseClosedError((std::string const &)*arg1,(std::string const &)*arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseClosedError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -9878,7 +10788,12 @@ static int _wrap_new_DatabaseClosedError__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::DatabaseClosedError::DatabaseClosedError",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseClosedError::DatabaseClosedError",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     result = (Xapian::DatabaseClosedError *)new Xapian::DatabaseClosedError((std::string const &)*arg1);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseClosedError,1); SWIG_arg++; 
     return SWIG_arg;
@@ -9901,7 +10816,12 @@ static int _wrap_new_DatabaseClosedError__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::DatabaseClosedError::DatabaseClosedError",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::DatabaseClosedError::DatabaseClosedError",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::DatabaseClosedError::DatabaseClosedError",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     result = (Xapian::DatabaseClosedError *)new Xapian::DatabaseClosedError((std::string const &)*arg1,arg2);
     SWIG_NewPointerObj(L,result,SWIGTYPE_p_Xapian__DatabaseClosedError,1); SWIG_arg++; 
@@ -11012,7 +11932,12 @@ static int _wrap_TermIterator_skip_to(lua_State* L) {
       SWIG_fail_ptr("TermIterator_skip_to",1,SWIGTYPE_p_Xapian__TermIterator);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->skip_to((std::string const &)*arg2);
@@ -11705,7 +12630,12 @@ static int _wrap_Document_add_value(lua_State* L) {
     }
     
     arg2 = (Xapian::valueno)lua_tonumber(L, 2);
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         (arg1)->add_value(arg2,(std::string const &)*arg3);
@@ -11833,7 +12763,12 @@ static int _wrap_Document_set_data(lua_State* L) {
       SWIG_fail_ptr("Document_set_data",1,SWIGTYPE_p_Xapian__Document);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->set_data((std::string const &)*arg2);
@@ -11871,7 +12806,12 @@ static int _wrap_Document_add_posting__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("Document_add_posting",1,SWIGTYPE_p_Xapian__Document);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termpos)lua_tonumber(L, 3);
     SWIG_contract_assert((lua_tonumber(L,4)>=0),"number must not be negative");
@@ -11911,7 +12851,12 @@ static int _wrap_Document_add_posting__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("Document_add_posting",1,SWIGTYPE_p_Xapian__Document);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termpos)lua_tonumber(L, 3);
     {
@@ -12018,7 +12963,12 @@ static int _wrap_Document_add_term__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("Document_add_term",1,SWIGTYPE_p_Xapian__Document);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termcount)lua_tonumber(L, 3);
     {
@@ -12054,7 +13004,12 @@ static int _wrap_Document_add_term__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("Document_add_term",1,SWIGTYPE_p_Xapian__Document);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->add_term((std::string const &)*arg2);
@@ -12147,7 +13102,12 @@ static int _wrap_Document_add_boolean_term(lua_State* L) {
       SWIG_fail_ptr("Document_add_boolean_term",1,SWIGTYPE_p_Xapian__Document);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->add_boolean_term((std::string const &)*arg2);
@@ -12185,7 +13145,12 @@ static int _wrap_Document_remove_posting__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("Document_remove_posting",1,SWIGTYPE_p_Xapian__Document);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termpos)lua_tonumber(L, 3);
     SWIG_contract_assert((lua_tonumber(L,4)>=0),"number must not be negative");
@@ -12225,7 +13190,12 @@ static int _wrap_Document_remove_posting__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("Document_remove_posting",1,SWIGTYPE_p_Xapian__Document);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termpos)lua_tonumber(L, 3);
     {
@@ -12337,7 +13307,12 @@ static int _wrap_Document_remove_postings__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("Document_remove_postings",1,SWIGTYPE_p_Xapian__Document);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termpos)lua_tonumber(L, 3);
     SWIG_contract_assert((lua_tonumber(L,4)>=0),"number must not be negative");
@@ -12382,7 +13357,12 @@ static int _wrap_Document_remove_postings__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("Document_remove_postings",1,SWIGTYPE_p_Xapian__Document);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termpos)lua_tonumber(L, 3);
     SWIG_contract_assert((lua_tonumber(L,4)>=0),"number must not be negative");
@@ -12499,7 +13479,12 @@ static int _wrap_Document_remove_term(lua_State* L) {
       SWIG_fail_ptr("Document_remove_term",1,SWIGTYPE_p_Xapian__Document);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->remove_term((std::string const &)*arg2);
@@ -12803,7 +13788,12 @@ static int _wrap_Document_unserialise(lua_State* L) {
     
     SWIG_check_num_args("Xapian::Document::unserialise",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Document::unserialise",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     {
       try {
         result = Xapian::Document::unserialise((std::string const &)*arg1);
@@ -13096,7 +14086,12 @@ static int _wrap_Registry_get_weighting_scheme(lua_State* L) {
       SWIG_fail_ptr("Registry_get_weighting_scheme",1,SWIGTYPE_p_Xapian__Registry);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::Weight *)((Xapian::Registry const *)arg1)->get_weighting_scheme((std::string const &)*arg2);
@@ -13168,7 +14163,12 @@ static int _wrap_Registry_get_posting_source(lua_State* L) {
       SWIG_fail_ptr("Registry_get_posting_source",1,SWIGTYPE_p_Xapian__Registry);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::PostingSource *)((Xapian::Registry const *)arg1)->get_posting_source((std::string const &)*arg2);
@@ -13240,7 +14240,12 @@ static int _wrap_Registry_get_match_spy(lua_State* L) {
       SWIG_fail_ptr("Registry_get_match_spy",1,SWIGTYPE_p_Xapian__Registry);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::MatchSpy *)((Xapian::Registry const *)arg1)->get_match_spy((std::string const &)*arg2);
@@ -13312,7 +14317,12 @@ static int _wrap_Registry_get_lat_long_metric(lua_State* L) {
       SWIG_fail_ptr("Registry_get_lat_long_metric",1,SWIGTYPE_p_Xapian__Registry);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::LatLongMetric *)((Xapian::Registry const *)arg1)->get_lat_long_metric((std::string const &)*arg2);
@@ -13450,7 +14460,12 @@ static int _wrap_new_Query__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Query::Query",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::Query::Query",2,"Xapian::termcount");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::Query::Query",3,"Xapian::termpos");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative");
     arg2 = (Xapian::termcount)lua_tonumber(L, 2);
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
@@ -13484,7 +14499,12 @@ static int _wrap_new_Query__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::Query::Query",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Query::Query",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::Query::Query",2,"Xapian::termcount");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative");
     arg2 = (Xapian::termcount)lua_tonumber(L, 2);
     {
@@ -13514,7 +14534,12 @@ static int _wrap_new_Query__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::Query::Query",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Query::Query",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     {
       try {
         result = (Xapian::Query *)new Xapian::Query((std::string const &)*arg1);
@@ -13691,8 +14716,18 @@ static int _wrap_new_Query__SWIG_8(lua_State* L) {
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::Query::Query",2,"std::string const &");
     if(!lua_isstring(L,3)) SWIG_fail_arg("Xapian::Query::Query",3,"std::string const &");
     arg1 = (Xapian::Query::op)(int)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         result = (Xapian::Query *)new Xapian::Query(arg1,(std::string const &)*arg2,(std::string const &)*arg3);
@@ -13726,7 +14761,12 @@ static int _wrap_new_Query__SWIG_9(lua_State* L) {
     if(!lua_isstring(L,3)) SWIG_fail_arg("Xapian::Query::Query",3,"std::string const &");
     arg1 = (Xapian::Query::op)(int)lua_tonumber(L, 1);
     arg2 = (Xapian::valueno)lua_tonumber(L, 2);
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         result = (Xapian::Query *)new Xapian::Query(arg1,arg2,(std::string const &)*arg3);
@@ -13763,8 +14803,18 @@ static int _wrap_new_Query__SWIG_10(lua_State* L) {
     if(!lua_isstring(L,4)) SWIG_fail_arg("Xapian::Query::Query",4,"std::string const &");
     arg1 = (Xapian::Query::op)(int)lua_tonumber(L, 1);
     arg2 = (Xapian::valueno)lua_tonumber(L, 2);
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
-    temp4.assign(lua_tostring(L,4),lua_rawlen(L,4)); arg4=&temp4;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 4, &len);
+      temp4.assign(ptr, len);
+      arg4=&temp4;
+    }
     {
       try {
         result = (Xapian::Query *)new Xapian::Query(arg1,arg2,(std::string const &)*arg3,(std::string const &)*arg4);
@@ -13801,7 +14851,12 @@ static int _wrap_new_Query__SWIG_11(lua_State* L) {
     if(!lua_isnumber(L,4)) SWIG_fail_arg("Xapian::Query::Query",4,"int");
     if(!lua_isnumber(L,5)) SWIG_fail_arg("Xapian::Query::Query",5,"Xapian::Query::op");
     arg1 = (Xapian::Query::op)(int)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termcount)lua_tonumber(L, 3);
     arg4 = (int)lua_tonumber(L, 4);
@@ -13840,7 +14895,12 @@ static int _wrap_new_Query__SWIG_12(lua_State* L) {
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::Query::Query",3,"Xapian::termcount");
     if(!lua_isnumber(L,4)) SWIG_fail_arg("Xapian::Query::Query",4,"int");
     arg1 = (Xapian::Query::op)(int)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termcount)lua_tonumber(L, 3);
     arg4 = (int)lua_tonumber(L, 4);
@@ -13876,7 +14936,12 @@ static int _wrap_new_Query__SWIG_13(lua_State* L) {
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::Query::Query",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::Query::Query",3,"Xapian::termcount");
     arg1 = (Xapian::Query::op)(int)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termcount)lua_tonumber(L, 3);
     {
@@ -13909,7 +14974,12 @@ static int _wrap_new_Query__SWIG_14(lua_State* L) {
     if(!lua_isnumber(L,1)) SWIG_fail_arg("Xapian::Query::Query",1,"Xapian::Query::op");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::Query::Query",2,"std::string const &");
     arg1 = (Xapian::Query::op)(int)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::Query *)new Xapian::Query(arg1,(std::string const &)*arg2);
@@ -13928,7 +14998,7 @@ static int _wrap_new_Query__SWIG_14(lua_State* L) {
 }
 
 
-static int _wrap_new_Query__SWIG_17(lua_State* L) {
+static int _wrap_new_Query__SWIG_15(lua_State* L) {
   {
     int SWIG_arg = 0;
     Xapian::Query::op arg1 ;
@@ -13970,7 +15040,7 @@ static int _wrap_new_Query__SWIG_17(lua_State* L) {
 }
 
 
-static int _wrap_new_Query__SWIG_18(lua_State* L) {
+static int _wrap_new_Query__SWIG_16(lua_State* L) {
   {
     int SWIG_arg = 0;
     Xapian::Query::op arg1 ;
@@ -14220,7 +15290,12 @@ static int _wrap_Query_unserialise__SWIG_0(lua_State* L) {
     SWIG_check_num_args("Xapian::Query::unserialise",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Query::unserialise",1,"std::string const &");
     if(!lua_isuserdata(L,2)) SWIG_fail_arg("Xapian::Query::unserialise",2,"Xapian::Registry const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     
     if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Xapian__Registry,0))){
       SWIG_fail_ptr("Query_unserialise",2,SWIGTYPE_p_Xapian__Registry);
@@ -14256,7 +15331,12 @@ static int _wrap_Query_unserialise__SWIG_1(lua_State* L) {
     
     SWIG_check_num_args("Xapian::Query::unserialise",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Query::unserialise",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     {
       try {
         result = Xapian::Query::unserialise((std::string const &)*arg1);
@@ -14439,7 +15519,7 @@ static int _wrap_Query___tostring(lua_State* L) {
 }
 
 
-static int _wrap_new_Query__SWIG_19(lua_State* L) {
+static int _wrap_new_Query__SWIG_17(lua_State* L) {
   {
     int SWIG_arg = 0;
     Xapian::Query::op arg1 ;
@@ -14496,7 +15576,7 @@ static int _wrap_new_Query(lua_State* L) {
       _v = lua_isnumber(L,argv[0]);
     }
     if (_v) {
-      return _wrap_new_Query__SWIG_19(L);
+      return _wrap_new_Query__SWIG_17(L);
     }
   }
   if (argc == 1) {
@@ -14554,9 +15634,9 @@ static int _wrap_new_Query(lua_State* L) {
       }
       if (_v) {
         if (argc <= 2) {
-          return _wrap_new_Query__SWIG_18(L);
+          return _wrap_new_Query__SWIG_16(L);
         }
-        return _wrap_new_Query__SWIG_18(L);
+        return _wrap_new_Query__SWIG_16(L);
       }
     }
   }
@@ -14700,7 +15780,7 @@ static int _wrap_new_Query(lua_State* L) {
           _v = lua_isnumber(L,argv[2]);
         }
         if (_v) {
-          return _wrap_new_Query__SWIG_17(L);
+          return _wrap_new_Query__SWIG_15(L);
         }
       }
     }
@@ -14912,26 +15992,26 @@ static swig_lua_attribute swig_Query_Sf_SwigStatic_attributes[] = {
     {0,0,0}
 };
 static swig_lua_const_info swig_Query_Sf_SwigStatic_constants[]= {
-    {SWIG_LUA_CONSTTAB_INT("OP_AND", Xapian::Query::OP_AND)},
-    {SWIG_LUA_CONSTTAB_INT("OP_OR", Xapian::Query::OP_OR)},
-    {SWIG_LUA_CONSTTAB_INT("OP_AND_NOT", Xapian::Query::OP_AND_NOT)},
-    {SWIG_LUA_CONSTTAB_INT("OP_XOR", Xapian::Query::OP_XOR)},
-    {SWIG_LUA_CONSTTAB_INT("OP_AND_MAYBE", Xapian::Query::OP_AND_MAYBE)},
-    {SWIG_LUA_CONSTTAB_INT("OP_FILTER", Xapian::Query::OP_FILTER)},
-    {SWIG_LUA_CONSTTAB_INT("OP_NEAR", Xapian::Query::OP_NEAR)},
-    {SWIG_LUA_CONSTTAB_INT("OP_PHRASE", Xapian::Query::OP_PHRASE)},
-    {SWIG_LUA_CONSTTAB_INT("OP_VALUE_RANGE", Xapian::Query::OP_VALUE_RANGE)},
-    {SWIG_LUA_CONSTTAB_INT("OP_SCALE_WEIGHT", Xapian::Query::OP_SCALE_WEIGHT)},
-    {SWIG_LUA_CONSTTAB_INT("OP_ELITE_SET", Xapian::Query::OP_ELITE_SET)},
-    {SWIG_LUA_CONSTTAB_INT("OP_VALUE_GE", Xapian::Query::OP_VALUE_GE)},
-    {SWIG_LUA_CONSTTAB_INT("OP_VALUE_LE", Xapian::Query::OP_VALUE_LE)},
-    {SWIG_LUA_CONSTTAB_INT("OP_SYNONYM", Xapian::Query::OP_SYNONYM)},
-    {SWIG_LUA_CONSTTAB_INT("OP_MAX", Xapian::Query::OP_MAX)},
-    {SWIG_LUA_CONSTTAB_INT("OP_WILDCARD", Xapian::Query::OP_WILDCARD)},
-    {SWIG_LUA_CONSTTAB_INT("OP_INVALID", Xapian::Query::OP_INVALID)},
-    {SWIG_LUA_CONSTTAB_INT("WILDCARD_LIMIT_ERROR", Xapian::Query::WILDCARD_LIMIT_ERROR)},
-    {SWIG_LUA_CONSTTAB_INT("WILDCARD_LIMIT_FIRST", Xapian::Query::WILDCARD_LIMIT_FIRST)},
-    {SWIG_LUA_CONSTTAB_INT("WILDCARD_LIMIT_MOST_FREQUENT", Xapian::Query::WILDCARD_LIMIT_MOST_FREQUENT)},
+    {SWIG_LUA_CONSTTAB_INT("OP_AND", (Xapian::Query::OP_AND))},
+    {SWIG_LUA_CONSTTAB_INT("OP_OR", (Xapian::Query::OP_OR))},
+    {SWIG_LUA_CONSTTAB_INT("OP_AND_NOT", (Xapian::Query::OP_AND_NOT))},
+    {SWIG_LUA_CONSTTAB_INT("OP_XOR", (Xapian::Query::OP_XOR))},
+    {SWIG_LUA_CONSTTAB_INT("OP_AND_MAYBE", (Xapian::Query::OP_AND_MAYBE))},
+    {SWIG_LUA_CONSTTAB_INT("OP_FILTER", (Xapian::Query::OP_FILTER))},
+    {SWIG_LUA_CONSTTAB_INT("OP_NEAR", (Xapian::Query::OP_NEAR))},
+    {SWIG_LUA_CONSTTAB_INT("OP_PHRASE", (Xapian::Query::OP_PHRASE))},
+    {SWIG_LUA_CONSTTAB_INT("OP_VALUE_RANGE", (Xapian::Query::OP_VALUE_RANGE))},
+    {SWIG_LUA_CONSTTAB_INT("OP_SCALE_WEIGHT", (Xapian::Query::OP_SCALE_WEIGHT))},
+    {SWIG_LUA_CONSTTAB_INT("OP_ELITE_SET", (Xapian::Query::OP_ELITE_SET))},
+    {SWIG_LUA_CONSTTAB_INT("OP_VALUE_GE", (Xapian::Query::OP_VALUE_GE))},
+    {SWIG_LUA_CONSTTAB_INT("OP_VALUE_LE", (Xapian::Query::OP_VALUE_LE))},
+    {SWIG_LUA_CONSTTAB_INT("OP_SYNONYM", (Xapian::Query::OP_SYNONYM))},
+    {SWIG_LUA_CONSTTAB_INT("OP_MAX", (Xapian::Query::OP_MAX))},
+    {SWIG_LUA_CONSTTAB_INT("OP_WILDCARD", (Xapian::Query::OP_WILDCARD))},
+    {SWIG_LUA_CONSTTAB_INT("OP_INVALID", (Xapian::Query::OP_INVALID))},
+    {SWIG_LUA_CONSTTAB_INT("WILDCARD_LIMIT_ERROR", (Xapian::Query::WILDCARD_LIMIT_ERROR))},
+    {SWIG_LUA_CONSTTAB_INT("WILDCARD_LIMIT_FIRST", (Xapian::Query::WILDCARD_LIMIT_FIRST))},
+    {SWIG_LUA_CONSTTAB_INT("WILDCARD_LIMIT_MOST_FREQUENT", (Xapian::Query::WILDCARD_LIMIT_MOST_FREQUENT))},
     {0,0,0,0,0,0}
 };
 static swig_lua_method swig_Query_Sf_SwigStatic_methods[]= {
@@ -14963,7 +16043,12 @@ static int _wrap_new_Stem__SWIG_0(lua_State* L) {
     
     SWIG_check_num_args("Xapian::Stem::Stem",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Stem::Stem",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     {
       try {
         result = (Xapian::Stem *)new Xapian::Stem((std::string const &)*arg1);
@@ -14993,7 +16078,12 @@ static int _wrap_new_Stem__SWIG_1(lua_State* L) {
     SWIG_check_num_args("Xapian::Stem::Stem",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Stem::Stem",1,"std::string const &");
     if(!lua_isboolean(L,2)) SWIG_fail_arg("Xapian::Stem::Stem",2,"bool");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (lua_toboolean(L, 2)!=0);
     {
       try {
@@ -15117,7 +16207,12 @@ static int _wrap_Stem___call(lua_State* L) {
       SWIG_fail_ptr("Stem___call",1,SWIGTYPE_p_Xapian__Stem);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = ((Xapian::Stem const *)arg1)->operator ()((std::string const &)*arg2);
@@ -15815,10 +16910,20 @@ static int _wrap_TermGenerator_index_text__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("TermGenerator_index_text",1,SWIGTYPE_p_Xapian__TermGenerator);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termcount)lua_tonumber(L, 3);
-    temp4.assign(lua_tostring(L,4),lua_rawlen(L,4)); arg4=&temp4;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 4, &len);
+      temp4.assign(ptr, len);
+      arg4=&temp4;
+    }
     {
       try {
         (arg1)->index_text((std::string const &)*arg2,arg3,(std::string const &)*arg4);
@@ -15854,7 +16959,12 @@ static int _wrap_TermGenerator_index_text__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("TermGenerator_index_text",1,SWIGTYPE_p_Xapian__TermGenerator);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termcount)lua_tonumber(L, 3);
     {
@@ -15890,7 +17000,12 @@ static int _wrap_TermGenerator_index_text__SWIG_2(lua_State* L) {
       SWIG_fail_ptr("TermGenerator_index_text",1,SWIGTYPE_p_Xapian__TermGenerator);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->index_text((std::string const &)*arg2);
@@ -16018,10 +17133,20 @@ static int _wrap_TermGenerator_index_text_without_positions__SWIG_0(lua_State* L
       SWIG_fail_ptr("TermGenerator_index_text_without_positions",1,SWIGTYPE_p_Xapian__TermGenerator);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termcount)lua_tonumber(L, 3);
-    temp4.assign(lua_tostring(L,4),lua_rawlen(L,4)); arg4=&temp4;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 4, &len);
+      temp4.assign(ptr, len);
+      arg4=&temp4;
+    }
     {
       try {
         (arg1)->index_text_without_positions((std::string const &)*arg2,arg3,(std::string const &)*arg4);
@@ -16057,7 +17182,12 @@ static int _wrap_TermGenerator_index_text_without_positions__SWIG_1(lua_State* L
       SWIG_fail_ptr("TermGenerator_index_text_without_positions",1,SWIGTYPE_p_Xapian__TermGenerator);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termcount)lua_tonumber(L, 3);
     {
@@ -16093,7 +17223,12 @@ static int _wrap_TermGenerator_index_text_without_positions__SWIG_2(lua_State* L
       SWIG_fail_ptr("TermGenerator_index_text_without_positions",1,SWIGTYPE_p_Xapian__TermGenerator);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->index_text_without_positions((std::string const &)*arg2);
@@ -16452,16 +17587,17 @@ static swig_lua_attribute swig_TermGenerator_Sf_SwigStatic_attributes[] = {
     {0,0,0}
 };
 static swig_lua_const_info swig_TermGenerator_Sf_SwigStatic_constants[]= {
-    {SWIG_LUA_CONSTTAB_INT("FLAG_SPELLING", Xapian::TermGenerator::FLAG_SPELLING)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_CJK_NGRAM", Xapian::TermGenerator::FLAG_CJK_NGRAM)},
-    {SWIG_LUA_CONSTTAB_INT("STEM_NONE", Xapian::TermGenerator::STEM_NONE)},
-    {SWIG_LUA_CONSTTAB_INT("STEM_SOME", Xapian::TermGenerator::STEM_SOME)},
-    {SWIG_LUA_CONSTTAB_INT("STEM_ALL", Xapian::TermGenerator::STEM_ALL)},
-    {SWIG_LUA_CONSTTAB_INT("STEM_ALL_Z", Xapian::TermGenerator::STEM_ALL_Z)},
-    {SWIG_LUA_CONSTTAB_INT("STEM_SOME_FULL_POS", Xapian::TermGenerator::STEM_SOME_FULL_POS)},
-    {SWIG_LUA_CONSTTAB_INT("STOP_NONE", Xapian::TermGenerator::STOP_NONE)},
-    {SWIG_LUA_CONSTTAB_INT("STOP_ALL", Xapian::TermGenerator::STOP_ALL)},
-    {SWIG_LUA_CONSTTAB_INT("STOP_STEMMED", Xapian::TermGenerator::STOP_STEMMED)},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_SPELLING", (Xapian::TermGenerator::FLAG_SPELLING))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_NGRAMS", (Xapian::TermGenerator::FLAG_NGRAMS))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_CJK_NGRAM", (Xapian::TermGenerator::FLAG_CJK_NGRAM))},
+    {SWIG_LUA_CONSTTAB_INT("STEM_NONE", (Xapian::TermGenerator::STEM_NONE))},
+    {SWIG_LUA_CONSTTAB_INT("STEM_SOME", (Xapian::TermGenerator::STEM_SOME))},
+    {SWIG_LUA_CONSTTAB_INT("STEM_ALL", (Xapian::TermGenerator::STEM_ALL))},
+    {SWIG_LUA_CONSTTAB_INT("STEM_ALL_Z", (Xapian::TermGenerator::STEM_ALL_Z))},
+    {SWIG_LUA_CONSTTAB_INT("STEM_SOME_FULL_POS", (Xapian::TermGenerator::STEM_SOME_FULL_POS))},
+    {SWIG_LUA_CONSTTAB_INT("STOP_NONE", (Xapian::TermGenerator::STOP_NONE))},
+    {SWIG_LUA_CONSTTAB_INT("STOP_ALL", (Xapian::TermGenerator::STOP_ALL))},
+    {SWIG_LUA_CONSTTAB_INT("STOP_STEMMED", (Xapian::TermGenerator::STOP_STEMMED))},
     {0,0,0,0,0,0}
 };
 static swig_lua_method swig_TermGenerator_Sf_SwigStatic_methods[]= {
@@ -16654,7 +17790,12 @@ static int _wrap_MSet_get_termfreq(lua_State* L) {
       SWIG_fail_ptr("MSet_get_termfreq",1,SWIGTYPE_p_Xapian__MSet);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::doccount)((Xapian::MSet const *)arg1)->get_termfreq((std::string const &)*arg2);
@@ -16689,7 +17830,12 @@ static int _wrap_MSet_get_termweight(lua_State* L) {
       SWIG_fail_ptr("MSet_get_termweight",1,SWIGTYPE_p_Xapian__MSet);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (double)((Xapian::MSet const *)arg1)->get_termweight((std::string const &)*arg2);
@@ -17018,7 +18164,12 @@ static int _wrap_MSet_snippet__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("MSet_snippet",1,SWIGTYPE_p_Xapian__MSet);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (size_t)lua_tonumber(L, 3);
     
@@ -17028,9 +18179,24 @@ static int _wrap_MSet_snippet__SWIG_0(lua_State* L) {
     
     SWIG_contract_assert((lua_tonumber(L,5)>=0),"number must not be negative");
     arg5 = (unsigned int)lua_tonumber(L, 5);
-    temp6.assign(lua_tostring(L,6),lua_rawlen(L,6)); arg6=&temp6;
-    temp7.assign(lua_tostring(L,7),lua_rawlen(L,7)); arg7=&temp7;
-    temp8.assign(lua_tostring(L,8),lua_rawlen(L,8)); arg8=&temp8;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 6, &len);
+      temp6.assign(ptr, len);
+      arg6=&temp6;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 7, &len);
+      temp7.assign(ptr, len);
+      arg7=&temp7;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 8, &len);
+      temp8.assign(ptr, len);
+      arg8=&temp8;
+    }
     {
       try {
         result = ((Xapian::MSet const *)arg1)->snippet((std::string const &)*arg2,arg3,(Xapian::Stem const &)*arg4,arg5,(std::string const &)*arg6,(std::string const &)*arg7,(std::string const &)*arg8);
@@ -17077,7 +18243,12 @@ static int _wrap_MSet_snippet__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("MSet_snippet",1,SWIGTYPE_p_Xapian__MSet);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (size_t)lua_tonumber(L, 3);
     
@@ -17087,8 +18258,18 @@ static int _wrap_MSet_snippet__SWIG_1(lua_State* L) {
     
     SWIG_contract_assert((lua_tonumber(L,5)>=0),"number must not be negative");
     arg5 = (unsigned int)lua_tonumber(L, 5);
-    temp6.assign(lua_tostring(L,6),lua_rawlen(L,6)); arg6=&temp6;
-    temp7.assign(lua_tostring(L,7),lua_rawlen(L,7)); arg7=&temp7;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 6, &len);
+      temp6.assign(ptr, len);
+      arg6=&temp6;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 7, &len);
+      temp7.assign(ptr, len);
+      arg7=&temp7;
+    }
     {
       try {
         result = ((Xapian::MSet const *)arg1)->snippet((std::string const &)*arg2,arg3,(Xapian::Stem const &)*arg4,arg5,(std::string const &)*arg6,(std::string const &)*arg7);
@@ -17132,7 +18313,12 @@ static int _wrap_MSet_snippet__SWIG_2(lua_State* L) {
       SWIG_fail_ptr("MSet_snippet",1,SWIGTYPE_p_Xapian__MSet);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (size_t)lua_tonumber(L, 3);
     
@@ -17142,7 +18328,12 @@ static int _wrap_MSet_snippet__SWIG_2(lua_State* L) {
     
     SWIG_contract_assert((lua_tonumber(L,5)>=0),"number must not be negative");
     arg5 = (unsigned int)lua_tonumber(L, 5);
-    temp6.assign(lua_tostring(L,6),lua_rawlen(L,6)); arg6=&temp6;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 6, &len);
+      temp6.assign(ptr, len);
+      arg6=&temp6;
+    }
     {
       try {
         result = ((Xapian::MSet const *)arg1)->snippet((std::string const &)*arg2,arg3,(Xapian::Stem const &)*arg4,arg5,(std::string const &)*arg6);
@@ -17183,7 +18374,12 @@ static int _wrap_MSet_snippet__SWIG_3(lua_State* L) {
       SWIG_fail_ptr("MSet_snippet",1,SWIGTYPE_p_Xapian__MSet);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (size_t)lua_tonumber(L, 3);
     
@@ -17231,7 +18427,12 @@ static int _wrap_MSet_snippet__SWIG_4(lua_State* L) {
       SWIG_fail_ptr("MSet_snippet",1,SWIGTYPE_p_Xapian__MSet);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (size_t)lua_tonumber(L, 3);
     
@@ -17275,7 +18476,12 @@ static int _wrap_MSet_snippet__SWIG_5(lua_State* L) {
       SWIG_fail_ptr("MSet_snippet",1,SWIGTYPE_p_Xapian__MSet);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (size_t)lua_tonumber(L, 3);
     {
@@ -17312,7 +18518,12 @@ static int _wrap_MSet_snippet__SWIG_6(lua_State* L) {
       SWIG_fail_ptr("MSet_snippet",1,SWIGTYPE_p_Xapian__MSet);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = ((Xapian::MSet const *)arg1)->snippet((std::string const &)*arg2);
@@ -18253,10 +19464,11 @@ static swig_lua_attribute swig_MSet_Sf_SwigStatic_attributes[] = {
     {0,0,0}
 };
 static swig_lua_const_info swig_MSet_Sf_SwigStatic_constants[]= {
-    {SWIG_LUA_CONSTTAB_INT("SNIPPET_BACKGROUND_MODEL", Xapian::MSet::SNIPPET_BACKGROUND_MODEL)},
-    {SWIG_LUA_CONSTTAB_INT("SNIPPET_EXHAUSTIVE", Xapian::MSet::SNIPPET_EXHAUSTIVE)},
-    {SWIG_LUA_CONSTTAB_INT("SNIPPET_EMPTY_WITHOUT_MATCH", Xapian::MSet::SNIPPET_EMPTY_WITHOUT_MATCH)},
-    {SWIG_LUA_CONSTTAB_INT("SNIPPET_CJK_NGRAM", Xapian::MSet::SNIPPET_CJK_NGRAM)},
+    {SWIG_LUA_CONSTTAB_INT("SNIPPET_BACKGROUND_MODEL", (Xapian::MSet::SNIPPET_BACKGROUND_MODEL))},
+    {SWIG_LUA_CONSTTAB_INT("SNIPPET_EXHAUSTIVE", (Xapian::MSet::SNIPPET_EXHAUSTIVE))},
+    {SWIG_LUA_CONSTTAB_INT("SNIPPET_EMPTY_WITHOUT_MATCH", (Xapian::MSet::SNIPPET_EMPTY_WITHOUT_MATCH))},
+    {SWIG_LUA_CONSTTAB_INT("SNIPPET_NGRAMS", (Xapian::MSet::SNIPPET_NGRAMS))},
+    {SWIG_LUA_CONSTTAB_INT("SNIPPET_CJK_NGRAM", (Xapian::MSet::SNIPPET_CJK_NGRAM))},
     {0,0,0,0,0,0}
 };
 static swig_lua_method swig_MSet_Sf_SwigStatic_methods[]= {
@@ -21203,7 +22415,12 @@ static int _wrap_Enquire_set_expansion_scheme__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("Enquire_set_expansion_scheme",1,SWIGTYPE_p_Xapian__Enquire);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (double)lua_tonumber(L, 3);
     {
       try {
@@ -21238,7 +22455,12 @@ static int _wrap_Enquire_set_expansion_scheme__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("Enquire_set_expansion_scheme",1,SWIGTYPE_p_Xapian__Enquire);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         ((Xapian::Enquire const *)arg1)->set_expansion_scheme((std::string const &)*arg2);
@@ -23769,11 +24991,11 @@ static swig_lua_attribute swig_Enquire_Sf_SwigStatic_attributes[] = {
     {0,0,0}
 };
 static swig_lua_const_info swig_Enquire_Sf_SwigStatic_constants[]= {
-    {SWIG_LUA_CONSTTAB_INT("ASCENDING", Xapian::Enquire::ASCENDING)},
-    {SWIG_LUA_CONSTTAB_INT("DESCENDING", Xapian::Enquire::DESCENDING)},
-    {SWIG_LUA_CONSTTAB_INT("DONT_CARE", Xapian::Enquire::DONT_CARE)},
-    {SWIG_LUA_CONSTTAB_INT("INCLUDE_QUERY_TERMS", Xapian::Enquire::INCLUDE_QUERY_TERMS)},
-    {SWIG_LUA_CONSTTAB_INT("USE_EXACT_TERMFREQ", Xapian::Enquire::USE_EXACT_TERMFREQ)},
+    {SWIG_LUA_CONSTTAB_INT("ASCENDING", (Xapian::Enquire::ASCENDING))},
+    {SWIG_LUA_CONSTTAB_INT("DESCENDING", (Xapian::Enquire::DESCENDING))},
+    {SWIG_LUA_CONSTTAB_INT("DONT_CARE", (Xapian::Enquire::DONT_CARE))},
+    {SWIG_LUA_CONSTTAB_INT("INCLUDE_QUERY_TERMS", (Xapian::Enquire::INCLUDE_QUERY_TERMS))},
+    {SWIG_LUA_CONSTTAB_INT("USE_EXACT_TERMFREQ", (Xapian::Enquire::USE_EXACT_TERMFREQ))},
     {0,0,0,0,0,0}
 };
 static swig_lua_method swig_Enquire_Sf_SwigStatic_methods[]= {
@@ -23815,7 +25037,12 @@ static int _wrap_ExpandDecider___call(lua_State* L) {
         SWIG_fail;
       }
     }
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (bool)((Xapian::ExpandDecider const *)arg1)->operator ()((std::string const &)*arg2);
@@ -23965,7 +25192,12 @@ static int _wrap_ExpandDeciderAnd___call(lua_State* L) {
       SWIG_fail_ptr("ExpandDeciderAnd___call",1,SWIGTYPE_p_Xapian__ExpandDeciderAnd);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (bool)((Xapian::ExpandDeciderAnd const *)arg1)->operator ()((std::string const &)*arg2);
@@ -24042,7 +25274,12 @@ static int _wrap_new_ExpandDeciderFilterPrefix(lua_State* L) {
     
     SWIG_check_num_args("Xapian::ExpandDeciderFilterPrefix::ExpandDeciderFilterPrefix",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::ExpandDeciderFilterPrefix::ExpandDeciderFilterPrefix",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     {
       try {
         result = (Xapian::ExpandDeciderFilterPrefix *)new Xapian::ExpandDeciderFilterPrefix((std::string const &)*arg1);
@@ -24077,7 +25314,12 @@ static int _wrap_ExpandDeciderFilterPrefix___call(lua_State* L) {
       SWIG_fail_ptr("ExpandDeciderFilterPrefix___call",1,SWIGTYPE_p_Xapian__ExpandDeciderFilterPrefix);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (bool)((Xapian::ExpandDeciderFilterPrefix const *)arg1)->operator ()((std::string const &)*arg2);
@@ -24345,7 +25587,12 @@ static int _wrap_MultiValueKeyMaker_add_value__SWIG_0(lua_State* L) {
     
     arg2 = (Xapian::valueno)lua_tonumber(L, 2);
     arg3 = (lua_toboolean(L, 3)!=0);
-    temp4.assign(lua_tostring(L,4),lua_rawlen(L,4)); arg4=&temp4;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 4, &len);
+      temp4.assign(ptr, len);
+      arg4=&temp4;
+    }
     {
       try {
         (arg1)->add_value(arg2,arg3,(std::string const &)*arg4);
@@ -24591,7 +25838,12 @@ static int _wrap_Stopper___call(lua_State* L) {
         SWIG_fail;
       }
     }
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (bool)((Xapian::Stopper const *)arg1)->operator ()((std::string const &)*arg2);
@@ -24761,7 +26013,12 @@ static int _wrap_SimpleStopper_add(lua_State* L) {
       SWIG_fail_ptr("SimpleStopper_add",1,SWIGTYPE_p_Xapian__SimpleStopper);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->add((std::string const &)*arg2);
@@ -24796,7 +26053,12 @@ static int _wrap_SimpleStopper___call(lua_State* L) {
       SWIG_fail_ptr("SimpleStopper___call",1,SWIGTYPE_p_Xapian__SimpleStopper);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (bool)((Xapian::SimpleStopper const *)arg1)->operator ()((std::string const &)*arg2);
@@ -24846,7 +26108,7 @@ static int _wrap_SimpleStopper___tostring(lua_State* L) {
 }
 
 
-static int _wrap_new_SimpleStopper__SWIG_2(lua_State* L) {
+static int _wrap_new_SimpleStopper__SWIG_1(lua_State* L) {
   {
     int SWIG_arg = 0;
     std::string *arg1 = 0 ;
@@ -24855,10 +26117,15 @@ static int _wrap_new_SimpleStopper__SWIG_2(lua_State* L) {
     
     SWIG_check_num_args("Xapian::SimpleStopper::SimpleStopper",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::SimpleStopper::SimpleStopper",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     {
       try {
-        result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_2((std::string const &)*arg1);
+        result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_1((std::string const &)*arg1);
       } catch (...) {
         Xapian::handle_exception(L);
         SWIG_fail;
@@ -24890,7 +26157,7 @@ static int _wrap_new_SimpleStopper(lua_State* L) {
       _v = lua_isstring(L,argv[0]);
     }
     if (_v) {
-      return _wrap_new_SimpleStopper__SWIG_2(L);
+      return _wrap_new_SimpleStopper__SWIG_1(L);
     }
   }
   
@@ -24992,7 +26259,12 @@ static int _wrap_new_RangeProcessor__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::RangeProcessor::RangeProcessor",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::RangeProcessor::RangeProcessor",3,"unsigned int");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (unsigned int)lua_tonumber(L, 3);
     {
@@ -25025,7 +26297,12 @@ static int _wrap_new_RangeProcessor__SWIG_2(lua_State* L) {
     if(!lua_isnumber(L,1)) SWIG_fail_arg("Xapian::RangeProcessor::RangeProcessor",1,"Xapian::valueno");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::RangeProcessor::RangeProcessor",2,"std::string const &");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::RangeProcessor *)new Xapian::RangeProcessor(arg1,(std::string const &)*arg2);
@@ -25156,8 +26433,18 @@ static int _wrap_RangeProcessor_check_range(lua_State* L) {
         SWIG_fail;
       }
     }
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         result = (arg1)->check_range((std::string const &)*arg2,(std::string const &)*arg3);
@@ -25201,8 +26488,18 @@ static int _wrap_RangeProcessor___call(lua_State* L) {
         SWIG_fail;
       }
     }
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         result = (arg1)->operator ()((std::string const &)*arg2,(std::string const &)*arg3);
@@ -25417,7 +26714,12 @@ static int _wrap_new_DateRangeProcessor__SWIG_3(lua_State* L) {
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::DateRangeProcessor::DateRangeProcessor",3,"unsigned int");
     if(!lua_isnumber(L,4)) SWIG_fail_arg("Xapian::DateRangeProcessor::DateRangeProcessor",4,"int");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (unsigned int)lua_tonumber(L, 3);
     arg4 = (int)lua_tonumber(L, 4);
@@ -25453,7 +26755,12 @@ static int _wrap_new_DateRangeProcessor__SWIG_4(lua_State* L) {
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DateRangeProcessor::DateRangeProcessor",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::DateRangeProcessor::DateRangeProcessor",3,"unsigned int");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (unsigned int)lua_tonumber(L, 3);
     {
@@ -25486,7 +26793,12 @@ static int _wrap_new_DateRangeProcessor__SWIG_5(lua_State* L) {
     if(!lua_isnumber(L,1)) SWIG_fail_arg("Xapian::DateRangeProcessor::DateRangeProcessor",1,"Xapian::valueno");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DateRangeProcessor::DateRangeProcessor",2,"std::string const &");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::DateRangeProcessor *)new Xapian::DateRangeProcessor(arg1,(std::string const &)*arg2);
@@ -25643,8 +26955,18 @@ static int _wrap_DateRangeProcessor___call(lua_State* L) {
       SWIG_fail_ptr("DateRangeProcessor___call",1,SWIGTYPE_p_Xapian__DateRangeProcessor);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         result = (arg1)->operator ()((std::string const &)*arg2,(std::string const &)*arg3);
@@ -25729,7 +27051,12 @@ static int _wrap_new_NumberRangeProcessor__SWIG_0(lua_State* L) {
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::NumberRangeProcessor::NumberRangeProcessor",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::NumberRangeProcessor::NumberRangeProcessor",3,"unsigned int");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (unsigned int)lua_tonumber(L, 3);
     {
@@ -25762,7 +27089,12 @@ static int _wrap_new_NumberRangeProcessor__SWIG_1(lua_State* L) {
     if(!lua_isnumber(L,1)) SWIG_fail_arg("Xapian::NumberRangeProcessor::NumberRangeProcessor",1,"Xapian::valueno");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::NumberRangeProcessor::NumberRangeProcessor",2,"std::string const &");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::NumberRangeProcessor *)new Xapian::NumberRangeProcessor(arg1,(std::string const &)*arg2);
@@ -25886,8 +27218,18 @@ static int _wrap_NumberRangeProcessor___call(lua_State* L) {
       SWIG_fail_ptr("NumberRangeProcessor___call",1,SWIGTYPE_p_Xapian__NumberRangeProcessor);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         result = (arg1)->operator ()((std::string const &)*arg2,(std::string const &)*arg3);
@@ -26123,7 +27465,12 @@ static int _wrap_new_StringValueRangeProcessor__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::StringValueRangeProcessor::StringValueRangeProcessor",2,"std::string const &");
     if(!lua_isboolean(L,3)) SWIG_fail_arg("Xapian::StringValueRangeProcessor::StringValueRangeProcessor",3,"bool");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (lua_toboolean(L, 3)!=0);
     {
       try {
@@ -26155,7 +27502,12 @@ static int _wrap_new_StringValueRangeProcessor__SWIG_2(lua_State* L) {
     if(!lua_isnumber(L,1)) SWIG_fail_arg("Xapian::StringValueRangeProcessor::StringValueRangeProcessor",1,"Xapian::valueno");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::StringValueRangeProcessor::StringValueRangeProcessor",2,"std::string const &");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::StringValueRangeProcessor *)new Xapian::StringValueRangeProcessor(arg1,(std::string const &)*arg2);
@@ -26435,7 +27787,12 @@ static int _wrap_new_DateValueRangeProcessor__SWIG_3(lua_State* L) {
     if(!lua_isboolean(L,4)) SWIG_fail_arg("Xapian::DateValueRangeProcessor::DateValueRangeProcessor",4,"bool");
     if(!lua_isnumber(L,5)) SWIG_fail_arg("Xapian::DateValueRangeProcessor::DateValueRangeProcessor",5,"int");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (lua_toboolean(L, 3)!=0);
     arg4 = (lua_toboolean(L, 4)!=0);
     arg5 = (int)lua_tonumber(L, 5);
@@ -26473,7 +27830,12 @@ static int _wrap_new_DateValueRangeProcessor__SWIG_4(lua_State* L) {
     if(!lua_isboolean(L,3)) SWIG_fail_arg("Xapian::DateValueRangeProcessor::DateValueRangeProcessor",3,"bool");
     if(!lua_isboolean(L,4)) SWIG_fail_arg("Xapian::DateValueRangeProcessor::DateValueRangeProcessor",4,"bool");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (lua_toboolean(L, 3)!=0);
     arg4 = (lua_toboolean(L, 4)!=0);
     {
@@ -26508,7 +27870,12 @@ static int _wrap_new_DateValueRangeProcessor__SWIG_5(lua_State* L) {
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DateValueRangeProcessor::DateValueRangeProcessor",2,"std::string const &");
     if(!lua_isboolean(L,3)) SWIG_fail_arg("Xapian::DateValueRangeProcessor::DateValueRangeProcessor",3,"bool");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (lua_toboolean(L, 3)!=0);
     {
       try {
@@ -26540,7 +27907,12 @@ static int _wrap_new_DateValueRangeProcessor__SWIG_6(lua_State* L) {
     if(!lua_isnumber(L,1)) SWIG_fail_arg("Xapian::DateValueRangeProcessor::DateValueRangeProcessor",1,"Xapian::valueno");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::DateValueRangeProcessor::DateValueRangeProcessor",2,"std::string const &");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::DateValueRangeProcessor *)new Xapian::DateValueRangeProcessor(arg1,(std::string const &)*arg2);
@@ -26843,7 +28215,12 @@ static int _wrap_new_NumberValueRangeProcessor__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::NumberValueRangeProcessor::NumberValueRangeProcessor",2,"std::string const &");
     if(!lua_isboolean(L,3)) SWIG_fail_arg("Xapian::NumberValueRangeProcessor::NumberValueRangeProcessor",3,"bool");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (lua_toboolean(L, 3)!=0);
     {
       try {
@@ -26875,7 +28252,12 @@ static int _wrap_new_NumberValueRangeProcessor__SWIG_2(lua_State* L) {
     if(!lua_isnumber(L,1)) SWIG_fail_arg("Xapian::NumberValueRangeProcessor::NumberValueRangeProcessor",1,"Xapian::valueno");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::NumberValueRangeProcessor::NumberValueRangeProcessor",2,"std::string const &");
     arg1 = (Xapian::valueno)lua_tonumber(L, 1);
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::NumberValueRangeProcessor *)new Xapian::NumberValueRangeProcessor(arg1,(std::string const &)*arg2);
@@ -27066,7 +28448,12 @@ static int _wrap_FieldProcessor___call(lua_State* L) {
         SWIG_fail;
       }
     }
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (arg1)->operator ()((std::string const &)*arg2);
@@ -27739,10 +29126,20 @@ static int _wrap_QueryParser_parse_query__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("QueryParser_parse_query",1,SWIGTYPE_p_Xapian__QueryParser);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (unsigned int)lua_tonumber(L, 3);
-    temp4.assign(lua_tostring(L,4),lua_rawlen(L,4)); arg4=&temp4;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 4, &len);
+      temp4.assign(ptr, len);
+      arg4=&temp4;
+    }
     {
       try {
         result = (arg1)->parse_query((std::string const &)*arg2,arg3,(std::string const &)*arg4);
@@ -27782,7 +29179,12 @@ static int _wrap_QueryParser_parse_query__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("QueryParser_parse_query",1,SWIGTYPE_p_Xapian__QueryParser);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (unsigned int)lua_tonumber(L, 3);
     {
@@ -27822,7 +29224,12 @@ static int _wrap_QueryParser_parse_query__SWIG_2(lua_State* L) {
       SWIG_fail_ptr("QueryParser_parse_query",1,SWIGTYPE_p_Xapian__QueryParser);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (arg1)->parse_query((std::string const &)*arg2);
@@ -27951,8 +29358,18 @@ static int _wrap_QueryParser_add_prefix__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("QueryParser_add_prefix",1,SWIGTYPE_p_Xapian__QueryParser);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         (arg1)->add_prefix((std::string const &)*arg2,(std::string const &)*arg3);
@@ -27987,7 +29404,12 @@ static int _wrap_QueryParser_add_prefix__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("QueryParser_add_prefix",1,SWIGTYPE_p_Xapian__QueryParser);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     if (lua_isfunction(L, 3)) {
       auto functor = new luaFieldProcessor(L);
       functor->release();
@@ -28104,8 +29526,18 @@ static int _wrap_QueryParser_add_boolean_prefix__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("QueryParser_add_boolean_prefix",1,SWIGTYPE_p_Xapian__QueryParser);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     
     if (!SWIG_IsOK(SWIG_ConvertPtr(L,4,(void**)&arg4,SWIGTYPE_p_std__string,0))){
       SWIG_fail_ptr("QueryParser_add_boolean_prefix",4,SWIGTYPE_p_std__string);
@@ -28147,8 +29579,18 @@ static int _wrap_QueryParser_add_boolean_prefix__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("QueryParser_add_boolean_prefix",1,SWIGTYPE_p_Xapian__QueryParser);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         (arg1)->add_boolean_prefix((std::string const &)*arg2,(std::string const &)*arg3);
@@ -28187,8 +29629,18 @@ static int _wrap_QueryParser_add_boolean_prefix__SWIG_2(lua_State* L) {
       SWIG_fail_ptr("QueryParser_add_boolean_prefix",1,SWIGTYPE_p_Xapian__QueryParser);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     arg4 = (lua_toboolean(L, 4)!=0);
     {
       try {
@@ -28226,7 +29678,12 @@ static int _wrap_QueryParser_add_boolean_prefix__SWIG_3(lua_State* L) {
       SWIG_fail_ptr("QueryParser_add_boolean_prefix",1,SWIGTYPE_p_Xapian__QueryParser);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     if (lua_isfunction(L, 3)) {
       auto functor = new luaFieldProcessor(L);
       functor->release();
@@ -28275,7 +29732,12 @@ static int _wrap_QueryParser_add_boolean_prefix__SWIG_4(lua_State* L) {
       SWIG_fail_ptr("QueryParser_add_boolean_prefix",1,SWIGTYPE_p_Xapian__QueryParser);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     if (lua_isfunction(L, 3)) {
       auto functor = new luaFieldProcessor(L);
       functor->release();
@@ -28321,7 +29783,12 @@ static int _wrap_QueryParser_add_boolean_prefix__SWIG_5(lua_State* L) {
       SWIG_fail_ptr("QueryParser_add_boolean_prefix",1,SWIGTYPE_p_Xapian__QueryParser);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     if (lua_isfunction(L, 3)) {
       auto functor = new luaFieldProcessor(L);
       functor->release();
@@ -28636,7 +30103,12 @@ static int _wrap_QueryParser_unstem_begin(lua_State* L) {
       SWIG_fail_ptr("QueryParser_unstem_begin",1,SWIGTYPE_p_Xapian__QueryParser);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = ((Xapian::QueryParser const *)arg1)->unstem_begin((std::string const &)*arg2);
@@ -28674,7 +30146,12 @@ static int _wrap_QueryParser_unstem_end(lua_State* L) {
       SWIG_fail_ptr("QueryParser_unstem_end",1,SWIGTYPE_p_Xapian__QueryParser);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = ((Xapian::QueryParser const *)arg1)->unstem_end((std::string const &)*arg2);
     {
       Xapian::TermIterator * resultptr = new Xapian::TermIterator(result);
@@ -29044,26 +30521,27 @@ static swig_lua_attribute swig_QueryParser_Sf_SwigStatic_attributes[] = {
     {0,0,0}
 };
 static swig_lua_const_info swig_QueryParser_Sf_SwigStatic_constants[]= {
-    {SWIG_LUA_CONSTTAB_INT("FLAG_BOOLEAN", Xapian::QueryParser::FLAG_BOOLEAN)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_PHRASE", Xapian::QueryParser::FLAG_PHRASE)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_LOVEHATE", Xapian::QueryParser::FLAG_LOVEHATE)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_BOOLEAN_ANY_CASE", Xapian::QueryParser::FLAG_BOOLEAN_ANY_CASE)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_WILDCARD", Xapian::QueryParser::FLAG_WILDCARD)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_PURE_NOT", Xapian::QueryParser::FLAG_PURE_NOT)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_PARTIAL", Xapian::QueryParser::FLAG_PARTIAL)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_SPELLING_CORRECTION", Xapian::QueryParser::FLAG_SPELLING_CORRECTION)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_SYNONYM", Xapian::QueryParser::FLAG_SYNONYM)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_AUTO_SYNONYMS", Xapian::QueryParser::FLAG_AUTO_SYNONYMS)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_AUTO_MULTIWORD_SYNONYMS", Xapian::QueryParser::FLAG_AUTO_MULTIWORD_SYNONYMS)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_CJK_NGRAM", Xapian::QueryParser::FLAG_CJK_NGRAM)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_ACCUMULATE", Xapian::QueryParser::FLAG_ACCUMULATE)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_NO_POSITIONS", Xapian::QueryParser::FLAG_NO_POSITIONS)},
-    {SWIG_LUA_CONSTTAB_INT("FLAG_DEFAULT", Xapian::QueryParser::FLAG_DEFAULT)},
-    {SWIG_LUA_CONSTTAB_INT("STEM_NONE", Xapian::QueryParser::STEM_NONE)},
-    {SWIG_LUA_CONSTTAB_INT("STEM_SOME", Xapian::QueryParser::STEM_SOME)},
-    {SWIG_LUA_CONSTTAB_INT("STEM_ALL", Xapian::QueryParser::STEM_ALL)},
-    {SWIG_LUA_CONSTTAB_INT("STEM_ALL_Z", Xapian::QueryParser::STEM_ALL_Z)},
-    {SWIG_LUA_CONSTTAB_INT("STEM_SOME_FULL_POS", Xapian::QueryParser::STEM_SOME_FULL_POS)},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_BOOLEAN", (Xapian::QueryParser::FLAG_BOOLEAN))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_PHRASE", (Xapian::QueryParser::FLAG_PHRASE))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_LOVEHATE", (Xapian::QueryParser::FLAG_LOVEHATE))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_BOOLEAN_ANY_CASE", (Xapian::QueryParser::FLAG_BOOLEAN_ANY_CASE))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_WILDCARD", (Xapian::QueryParser::FLAG_WILDCARD))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_PURE_NOT", (Xapian::QueryParser::FLAG_PURE_NOT))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_PARTIAL", (Xapian::QueryParser::FLAG_PARTIAL))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_SPELLING_CORRECTION", (Xapian::QueryParser::FLAG_SPELLING_CORRECTION))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_SYNONYM", (Xapian::QueryParser::FLAG_SYNONYM))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_AUTO_SYNONYMS", (Xapian::QueryParser::FLAG_AUTO_SYNONYMS))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_AUTO_MULTIWORD_SYNONYMS", (Xapian::QueryParser::FLAG_AUTO_MULTIWORD_SYNONYMS))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_NGRAMS", (Xapian::QueryParser::FLAG_NGRAMS))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_CJK_NGRAM", (Xapian::QueryParser::FLAG_CJK_NGRAM))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_ACCUMULATE", (Xapian::QueryParser::FLAG_ACCUMULATE))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_NO_POSITIONS", (Xapian::QueryParser::FLAG_NO_POSITIONS))},
+    {SWIG_LUA_CONSTTAB_INT("FLAG_DEFAULT", (Xapian::QueryParser::FLAG_DEFAULT))},
+    {SWIG_LUA_CONSTTAB_INT("STEM_NONE", (Xapian::QueryParser::STEM_NONE))},
+    {SWIG_LUA_CONSTTAB_INT("STEM_SOME", (Xapian::QueryParser::STEM_SOME))},
+    {SWIG_LUA_CONSTTAB_INT("STEM_ALL", (Xapian::QueryParser::STEM_ALL))},
+    {SWIG_LUA_CONSTTAB_INT("STEM_ALL_Z", (Xapian::QueryParser::STEM_ALL_Z))},
+    {SWIG_LUA_CONSTTAB_INT("STEM_SOME_FULL_POS", (Xapian::QueryParser::STEM_SOME_FULL_POS))},
     {0,0,0,0,0,0}
 };
 static swig_lua_method swig_QueryParser_Sf_SwigStatic_methods[]= {
@@ -29121,7 +30599,12 @@ static int _wrap_sortable_unserialise(lua_State* L) {
     
     SWIG_check_num_args("Xapian::sortable_unserialise",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::sortable_unserialise",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     {
       try {
         result = (double)Xapian::sortable_unserialise((std::string const &)*arg1);
@@ -29185,7 +30668,12 @@ static int _wrap_ValueSetMatchDecider_add_value(lua_State* L) {
       SWIG_fail_ptr("ValueSetMatchDecider_add_value",1,SWIGTYPE_p_Xapian__ValueSetMatchDecider);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->add_value((std::string const &)*arg2);
@@ -29219,7 +30707,12 @@ static int _wrap_ValueSetMatchDecider_remove_value(lua_State* L) {
       SWIG_fail_ptr("ValueSetMatchDecider_remove_value",1,SWIGTYPE_p_Xapian__ValueSetMatchDecider);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->remove_value((std::string const &)*arg2);
@@ -29525,11 +31018,11 @@ static swig_lua_attribute swig_Weight_Sf_SwigStatic_attributes[] = {
     {0,0,0}
 };
 static swig_lua_const_info swig_Weight_Sf_SwigStatic_constants[]= {
-    {SWIG_LUA_CONSTTAB_INT("TWO_STAGE_SMOOTHING", Xapian::Weight::TWO_STAGE_SMOOTHING)},
-    {SWIG_LUA_CONSTTAB_INT("DIRICHLET_SMOOTHING", Xapian::Weight::DIRICHLET_SMOOTHING)},
-    {SWIG_LUA_CONSTTAB_INT("ABSOLUTE_DISCOUNT_SMOOTHING", Xapian::Weight::ABSOLUTE_DISCOUNT_SMOOTHING)},
-    {SWIG_LUA_CONSTTAB_INT("JELINEK_MERCER_SMOOTHING", Xapian::Weight::JELINEK_MERCER_SMOOTHING)},
-    {SWIG_LUA_CONSTTAB_INT("DIRICHLET_PLUS_SMOOTHING", Xapian::Weight::DIRICHLET_PLUS_SMOOTHING)},
+    {SWIG_LUA_CONSTTAB_INT("TWO_STAGE_SMOOTHING", (Xapian::Weight::TWO_STAGE_SMOOTHING))},
+    {SWIG_LUA_CONSTTAB_INT("DIRICHLET_SMOOTHING", (Xapian::Weight::DIRICHLET_SMOOTHING))},
+    {SWIG_LUA_CONSTTAB_INT("ABSOLUTE_DISCOUNT_SMOOTHING", (Xapian::Weight::ABSOLUTE_DISCOUNT_SMOOTHING))},
+    {SWIG_LUA_CONSTTAB_INT("JELINEK_MERCER_SMOOTHING", (Xapian::Weight::JELINEK_MERCER_SMOOTHING))},
+    {SWIG_LUA_CONSTTAB_INT("DIRICHLET_PLUS_SMOOTHING", (Xapian::Weight::DIRICHLET_PLUS_SMOOTHING))},
     {0,0,0,0,0,0}
 };
 static swig_lua_method swig_Weight_Sf_SwigStatic_methods[]= {
@@ -29811,7 +31304,12 @@ static int _wrap_new_TfIdfWeight__SWIG_0(lua_State* L) {
     
     SWIG_check_num_args("Xapian::TfIdfWeight::TfIdfWeight",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::TfIdfWeight::TfIdfWeight",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     {
       try {
         result = (Xapian::TfIdfWeight *)new Xapian::TfIdfWeight((std::string const &)*arg1);
@@ -34367,7 +35865,12 @@ static int _wrap_Compactor_set_destdir(lua_State* L) {
       SWIG_fail_ptr("Compactor_set_destdir",1,SWIGTYPE_p_Xapian__Compactor);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->set_destdir((std::string const &)*arg2);
@@ -34401,7 +35904,12 @@ static int _wrap_Compactor_add_source(lua_State* L) {
       SWIG_fail_ptr("Compactor_add_source",1,SWIGTYPE_p_Xapian__Compactor);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->add_source((std::string const &)*arg2);
@@ -34468,8 +35976,18 @@ static int _wrap_Compactor_set_status(lua_State* L) {
       SWIG_fail_ptr("Compactor_set_status",1,SWIGTYPE_p_Xapian__Compactor);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         (arg1)->set_status((std::string const &)*arg2,(std::string const &)*arg3);
@@ -34494,7 +36012,7 @@ static int _wrap_Compactor_resolve_duplicate_metadata(lua_State* L) {
     Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
     std::string *arg2 = 0 ;
     size_t arg3 ;
-    std::string *arg4 ;
+    std::string *arg4 = (std::string *) (std::string *)0 ;
     std::string temp2 ;
     std::string result;
     
@@ -34508,7 +36026,12 @@ static int _wrap_Compactor_resolve_duplicate_metadata(lua_State* L) {
       SWIG_fail_ptr("Compactor_resolve_duplicate_metadata",1,SWIGTYPE_p_Xapian__Compactor);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (size_t)lua_tonumber(L, 3);
     
@@ -34569,9 +36092,9 @@ static swig_lua_attribute swig_Compactor_Sf_SwigStatic_attributes[] = {
     {0,0,0}
 };
 static swig_lua_const_info swig_Compactor_Sf_SwigStatic_constants[]= {
-    {SWIG_LUA_CONSTTAB_INT("STANDARD", Xapian::Compactor::STANDARD)},
-    {SWIG_LUA_CONSTTAB_INT("FULL", Xapian::Compactor::FULL)},
-    {SWIG_LUA_CONSTTAB_INT("FULLER", Xapian::Compactor::FULLER)},
+    {SWIG_LUA_CONSTTAB_INT("STANDARD", (Xapian::Compactor::STANDARD))},
+    {SWIG_LUA_CONSTTAB_INT("FULL", (Xapian::Compactor::FULL))},
+    {SWIG_LUA_CONSTTAB_INT("FULLER", (Xapian::Compactor::FULLER))},
     {0,0,0,0,0,0}
 };
 static swig_lua_method swig_Compactor_Sf_SwigStatic_methods[]= {
@@ -36477,7 +38000,12 @@ static int _wrap_ValueMapPostingSource_add_mapping(lua_State* L) {
       SWIG_fail_ptr("ValueMapPostingSource_add_mapping",1,SWIGTYPE_p_Xapian__ValueMapPostingSource);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     arg3 = (double)lua_tonumber(L, 3);
     {
       try {
@@ -37320,7 +38848,12 @@ static int _wrap_MatchSpy_merge_results(lua_State* L) {
         SWIG_fail;
       }
     }
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->merge_results((std::string const &)*arg2);
@@ -37772,7 +39305,12 @@ static int _wrap_ValueCountMatchSpy_merge_results(lua_State* L) {
       SWIG_fail_ptr("ValueCountMatchSpy_merge_results",1,SWIGTYPE_p_Xapian__ValueCountMatchSpy);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->merge_results((std::string const &)*arg2);
@@ -38232,7 +39770,12 @@ static int _wrap_LatLongCoord_unserialise(lua_State* L) {
       SWIG_fail_ptr("LatLongCoord_unserialise",1,SWIGTYPE_p_Xapian__LatLongCoord);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->unserialise((std::string const &)*arg2);
@@ -38852,7 +40395,12 @@ static int _wrap_LatLongCoords_unserialise(lua_State* L) {
       SWIG_fail_ptr("LatLongCoords_unserialise",1,SWIGTYPE_p_Xapian__LatLongCoords);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->unserialise((std::string const &)*arg2);
@@ -39102,7 +40650,12 @@ static int _wrap_LatLongMetric___call__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("LatLongMetric___call",2,SWIGTYPE_p_Xapian__LatLongCoords);
     }
     
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         result = (double)((Xapian::LatLongMetric const *)arg1)->operator ()((Xapian::LatLongCoords const &)*arg2,(std::string const &)*arg3);
@@ -41073,7 +42626,12 @@ static int _wrap_new_Database__SWIG_1(lua_State* L) {
     SWIG_check_num_args("Xapian::Database::Database",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Database::Database",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::Database::Database",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     {
       try {
@@ -41102,7 +42660,12 @@ static int _wrap_new_Database__SWIG_2(lua_State* L) {
     
     SWIG_check_num_args("Xapian::Database::Database",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Database::Database",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     {
       try {
         result = (Xapian::Database *)new Xapian::Database((std::string const &)*arg1);
@@ -41354,7 +42917,12 @@ static int _wrap_Database_postlist_begin(lua_State* L) {
       SWIG_fail_ptr("Database_postlist_begin",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = ((Xapian::Database const *)arg1)->postlist_begin((std::string const &)*arg2);
@@ -41392,7 +42960,12 @@ static int _wrap_Database_postlist_end(lua_State* L) {
       SWIG_fail_ptr("Database_postlist_end",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = ((Xapian::Database const *)arg1)->postlist_end((std::string const &)*arg2);
     {
       Xapian::PostingIterator * resultptr = new Xapian::PostingIterator(result);
@@ -41527,7 +43100,12 @@ static int _wrap_Database_positionlist_begin(lua_State* L) {
     
     SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative");
     arg2 = (Xapian::docid)lua_tonumber(L, 2);
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         result = ((Xapian::Database const *)arg1)->positionlist_begin(arg2,(std::string const &)*arg3);
@@ -41569,7 +43147,12 @@ static int _wrap_Database_positionlist_end(lua_State* L) {
     
     SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative");
     arg2 = (Xapian::docid)lua_tonumber(L, 2);
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     result = ((Xapian::Database const *)arg1)->positionlist_end(arg2,(std::string const &)*arg3);
     {
       Xapian::PositionIterator * resultptr = new Xapian::PositionIterator(result);
@@ -41600,7 +43183,12 @@ static int _wrap_Database_allterms_begin__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("Database_allterms_begin",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = ((Xapian::Database const *)arg1)->allterms_begin((std::string const &)*arg2);
@@ -41721,7 +43309,12 @@ static int _wrap_Database_allterms_end__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("Database_allterms_end",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = ((Xapian::Database const *)arg1)->allterms_end((std::string const &)*arg2);
     {
       Xapian::TermIterator * resultptr = new Xapian::TermIterator(result);
@@ -41983,7 +43576,12 @@ static int _wrap_Database_get_termfreq(lua_State* L) {
       SWIG_fail_ptr("Database_get_termfreq",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::doccount)((Xapian::Database const *)arg1)->get_termfreq((std::string const &)*arg2);
@@ -42018,7 +43616,12 @@ static int _wrap_Database_term_exists(lua_State* L) {
       SWIG_fail_ptr("Database_term_exists",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (bool)((Xapian::Database const *)arg1)->term_exists((std::string const &)*arg2);
@@ -42053,7 +43656,12 @@ static int _wrap_Database_get_collection_freq(lua_State* L) {
       SWIG_fail_ptr("Database_get_collection_freq",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::termcount)((Xapian::Database const *)arg1)->get_collection_freq((std::string const &)*arg2);
@@ -42252,7 +43860,12 @@ static int _wrap_Database_get_wdf_upper_bound(lua_State* L) {
       SWIG_fail_ptr("Database_get_wdf_upper_bound",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = (Xapian::termcount)((Xapian::Database const *)arg1)->get_wdf_upper_bound((std::string const &)*arg2);
@@ -42595,7 +44208,12 @@ static int _wrap_Database_get_spelling_suggestion__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("Database_get_spelling_suggestion",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (unsigned int)lua_tonumber(L, 3);
     {
@@ -42632,7 +44250,12 @@ static int _wrap_Database_get_spelling_suggestion__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("Database_get_spelling_suggestion",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = ((Xapian::Database const *)arg1)->get_spelling_suggestion((std::string const &)*arg2);
@@ -42787,7 +44410,12 @@ static int _wrap_Database_synonyms_begin(lua_State* L) {
       SWIG_fail_ptr("Database_synonyms_begin",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = ((Xapian::Database const *)arg1)->synonyms_begin((std::string const &)*arg2);
@@ -42825,7 +44453,12 @@ static int _wrap_Database_synonyms_end(lua_State* L) {
       SWIG_fail_ptr("Database_synonyms_end",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = ((Xapian::Database const *)arg1)->synonyms_end((std::string const &)*arg2);
     {
       Xapian::TermIterator * resultptr = new Xapian::TermIterator(result);
@@ -42856,7 +44489,12 @@ static int _wrap_Database_synonym_keys_begin__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("Database_synonym_keys_begin",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = ((Xapian::Database const *)arg1)->synonym_keys_begin((std::string const &)*arg2);
@@ -42977,7 +44615,12 @@ static int _wrap_Database_synonym_keys_end__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("Database_synonym_keys_end",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = ((Xapian::Database const *)arg1)->synonym_keys_end((std::string const &)*arg2);
     {
       Xapian::TermIterator * resultptr = new Xapian::TermIterator(result);
@@ -43084,7 +44727,12 @@ static int _wrap_Database_get_metadata(lua_State* L) {
       SWIG_fail_ptr("Database_get_metadata",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = ((Xapian::Database const *)arg1)->get_metadata((std::string const &)*arg2);
@@ -43119,7 +44767,12 @@ static int _wrap_Database_metadata_keys_begin__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("Database_metadata_keys_begin",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = ((Xapian::Database const *)arg1)->metadata_keys_begin((std::string const &)*arg2);
@@ -43240,7 +44893,12 @@ static int _wrap_Database_metadata_keys_end__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("Database_metadata_keys_end",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = ((Xapian::Database const *)arg1)->metadata_keys_end((std::string const &)*arg2);
     {
       Xapian::TermIterator * resultptr = new Xapian::TermIterator(result);
@@ -43435,7 +45093,12 @@ static int _wrap_Database_check__SWIG_0(lua_State* L) {
     SWIG_check_num_args("Xapian::Database::check",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Database::check",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::Database::check",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     {
       try {
@@ -43464,7 +45127,12 @@ static int _wrap_Database_check__SWIG_1(lua_State* L) {
     
     SWIG_check_num_args("Xapian::Database::check",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Database::check",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     {
       try {
         result = Xapian::Database::check((std::string const &)*arg1);
@@ -43623,7 +45291,12 @@ static int _wrap_Database_compact__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("Database_compact",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (unsigned int)lua_tonumber(L, 3);
     arg4 = (int)lua_tonumber(L, 4);
@@ -43662,7 +45335,12 @@ static int _wrap_Database_compact__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("Database_compact",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (unsigned int)lua_tonumber(L, 3);
     {
@@ -43698,7 +45376,12 @@ static int _wrap_Database_compact__SWIG_2(lua_State* L) {
       SWIG_fail_ptr("Database_compact",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->compact((std::string const &)*arg2);
@@ -43848,7 +45531,12 @@ static int _wrap_Database_compact__SWIG_6(lua_State* L) {
       SWIG_fail_ptr("Database_compact",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (unsigned int)lua_tonumber(L, 3);
     arg4 = (int)lua_tonumber(L, 4);
@@ -44272,7 +45960,12 @@ static int _wrap_Database_postlist(lua_State* L) {
       SWIG_fail_ptr("Database_postlist",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = Xapian_Database_postlist(arg1,(std::string const &)*arg2);
     {
       lua_getglobal(L, "xapian");
@@ -44418,7 +46111,12 @@ static int _wrap_Database_allterms__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("Database_allterms",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = Xapian_Database_allterms__SWIG_1(arg1,(std::string const &)*arg2);
     {
       lua_getglobal(L, "xapian");
@@ -44516,7 +46214,12 @@ static int _wrap_Database_synonyms(lua_State* L) {
       SWIG_fail_ptr("Database_synonyms",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = Xapian_Database_synonyms(arg1,(std::string const &)*arg2);
     {
       lua_getglobal(L, "xapian");
@@ -44565,7 +46268,12 @@ static int _wrap_Database_synonym_keys(lua_State* L) {
       SWIG_fail_ptr("Database_synonym_keys",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = Xapian_Database_synonym_keys(arg1,(std::string const &)*arg2);
     {
       lua_getglobal(L, "xapian");
@@ -44614,7 +46322,12 @@ static int _wrap_Database_metadata_keys(lua_State* L) {
       SWIG_fail_ptr("Database_metadata_keys",1,SWIGTYPE_p_Xapian__Database);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     result = Xapian_Database_metadata_keys(arg1,(std::string const &)*arg2);
     {
       lua_getglobal(L, "xapian");
@@ -44667,7 +46380,12 @@ static int _wrap_Database_positionlist(lua_State* L) {
     
     SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative");
     arg2 = (Xapian::docid)lua_tonumber(L, 2);
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     result = Xapian_Database_positionlist(arg1,arg2,(std::string const &)*arg3);
     {
       lua_getglobal(L, "xapian");
@@ -44843,7 +46561,12 @@ static int _wrap_new_WritableDatabase__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::WritableDatabase::WritableDatabase",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::WritableDatabase::WritableDatabase",2,"int");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::WritableDatabase::WritableDatabase",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     arg3 = (int)lua_tonumber(L, 3);
     {
@@ -44875,7 +46598,12 @@ static int _wrap_new_WritableDatabase__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::WritableDatabase::WritableDatabase",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::WritableDatabase::WritableDatabase",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::WritableDatabase::WritableDatabase",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     {
       try {
@@ -44904,7 +46632,12 @@ static int _wrap_new_WritableDatabase__SWIG_3(lua_State* L) {
     
     SWIG_check_num_args("Xapian::WritableDatabase::WritableDatabase",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::WritableDatabase::WritableDatabase",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     {
       try {
         result = (Xapian::WritableDatabase *)new Xapian::WritableDatabase((std::string const &)*arg1);
@@ -45342,7 +47075,12 @@ static int _wrap_WritableDatabase_delete_document__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("WritableDatabase_delete_document",1,SWIGTYPE_p_Xapian__WritableDatabase);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         (arg1)->delete_document((std::string const &)*arg2);
@@ -45474,7 +47212,12 @@ static int _wrap_WritableDatabase_replace_document__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("WritableDatabase_replace_document",1,SWIGTYPE_p_Xapian__WritableDatabase);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     
     if (!SWIG_IsOK(SWIG_ConvertPtr(L,3,(void**)&arg3,SWIGTYPE_p_Xapian__Document,0))){
       SWIG_fail_ptr("WritableDatabase_replace_document",3,SWIGTYPE_p_Xapian__Document);
@@ -45589,7 +47332,12 @@ static int _wrap_WritableDatabase_add_spelling__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("WritableDatabase_add_spelling",1,SWIGTYPE_p_Xapian__WritableDatabase);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termcount)lua_tonumber(L, 3);
     {
@@ -45625,7 +47373,12 @@ static int _wrap_WritableDatabase_add_spelling__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("WritableDatabase_add_spelling",1,SWIGTYPE_p_Xapian__WritableDatabase);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         ((Xapian::WritableDatabase const *)arg1)->add_spelling((std::string const &)*arg2);
@@ -45720,7 +47473,12 @@ static int _wrap_WritableDatabase_remove_spelling__SWIG_0(lua_State* L) {
       SWIG_fail_ptr("WritableDatabase_remove_spelling",1,SWIGTYPE_p_Xapian__WritableDatabase);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (Xapian::termcount)lua_tonumber(L, 3);
     {
@@ -45756,7 +47514,12 @@ static int _wrap_WritableDatabase_remove_spelling__SWIG_1(lua_State* L) {
       SWIG_fail_ptr("WritableDatabase_remove_spelling",1,SWIGTYPE_p_Xapian__WritableDatabase);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         ((Xapian::WritableDatabase const *)arg1)->remove_spelling((std::string const &)*arg2);
@@ -45852,8 +47615,18 @@ static int _wrap_WritableDatabase_add_synonym(lua_State* L) {
       SWIG_fail_ptr("WritableDatabase_add_synonym",1,SWIGTYPE_p_Xapian__WritableDatabase);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         ((Xapian::WritableDatabase const *)arg1)->add_synonym((std::string const &)*arg2,(std::string const &)*arg3);
@@ -45890,8 +47663,18 @@ static int _wrap_WritableDatabase_remove_synonym(lua_State* L) {
       SWIG_fail_ptr("WritableDatabase_remove_synonym",1,SWIGTYPE_p_Xapian__WritableDatabase);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         ((Xapian::WritableDatabase const *)arg1)->remove_synonym((std::string const &)*arg2,(std::string const &)*arg3);
@@ -45925,7 +47708,12 @@ static int _wrap_WritableDatabase_clear_synonyms(lua_State* L) {
       SWIG_fail_ptr("WritableDatabase_clear_synonyms",1,SWIGTYPE_p_Xapian__WritableDatabase);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         ((Xapian::WritableDatabase const *)arg1)->clear_synonyms((std::string const &)*arg2);
@@ -45962,8 +47750,18 @@ static int _wrap_WritableDatabase_set_metadata(lua_State* L) {
       SWIG_fail_ptr("WritableDatabase_set_metadata",1,SWIGTYPE_p_Xapian__WritableDatabase);
     }
     
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
-    temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 3, &len);
+      temp3.assign(ptr, len);
+      arg3=&temp3;
+    }
     {
       try {
         (arg1)->set_metadata((std::string const &)*arg2,(std::string const &)*arg3);
@@ -46086,7 +47884,12 @@ static int _wrap_open_stub__SWIG_0(lua_State* L) {
     
     SWIG_check_num_args("Xapian::Auto::open_stub",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Auto::open_stub",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     {
       try {
         result = Xapian::Auto::open_stub((std::string const &)*arg1);
@@ -46119,7 +47922,12 @@ static int _wrap_open_stub__SWIG_1(lua_State* L) {
     SWIG_check_num_args("Xapian::Auto::open_stub",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Auto::open_stub",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::Auto::open_stub",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     {
       try {
@@ -46217,7 +48025,12 @@ static int _wrap_chert_open__SWIG_0(lua_State* L) {
     
     SWIG_check_num_args("Xapian::Chert::open",1,1)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Chert::open",1,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     {
       try {
         result = Xapian::Chert::open((std::string const &)*arg1);
@@ -46252,7 +48065,12 @@ static int _wrap_chert_open__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Chert::open",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::Chert::open",2,"int");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::Chert::open",3,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     arg3 = (int)lua_tonumber(L, 3);
     {
@@ -46287,7 +48105,12 @@ static int _wrap_chert_open__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::Chert::open",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Chert::open",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::Chert::open",2,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     arg2 = (int)lua_tonumber(L, 2);
     {
       try {
@@ -46384,7 +48207,12 @@ static int _wrap_remote_open__SWIG_0(lua_State* L) {
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::Remote::open",2,"unsigned int");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::Remote::open",3,"useconds_t");
     if(!lua_isnumber(L,4)) SWIG_fail_arg("Xapian::Remote::open",4,"useconds_t");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative");
     arg2 = (unsigned int)lua_tonumber(L, 2);
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
@@ -46425,7 +48253,12 @@ static int _wrap_remote_open__SWIG_1(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Remote::open",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::Remote::open",2,"unsigned int");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::Remote::open",3,"useconds_t");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative");
     arg2 = (unsigned int)lua_tonumber(L, 2);
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
@@ -46462,7 +48295,12 @@ static int _wrap_remote_open__SWIG_2(lua_State* L) {
     SWIG_check_num_args("Xapian::Remote::open",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Remote::open",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::Remote::open",2,"unsigned int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative");
     arg2 = (unsigned int)lua_tonumber(L, 2);
     {
@@ -46503,7 +48341,12 @@ static int _wrap_remote_open_writable__SWIG_0(lua_State* L) {
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::Remote::open_writable",3,"useconds_t");
     if(!lua_isnumber(L,4)) SWIG_fail_arg("Xapian::Remote::open_writable",4,"useconds_t");
     if(!lua_isnumber(L,5)) SWIG_fail_arg("Xapian::Remote::open_writable",5,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative");
     arg2 = (unsigned int)lua_tonumber(L, 2);
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
@@ -46547,7 +48390,12 @@ static int _wrap_remote_open_writable__SWIG_1(lua_State* L) {
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::Remote::open_writable",2,"unsigned int");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::Remote::open_writable",3,"useconds_t");
     if(!lua_isnumber(L,4)) SWIG_fail_arg("Xapian::Remote::open_writable",4,"useconds_t");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative");
     arg2 = (unsigned int)lua_tonumber(L, 2);
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
@@ -46588,7 +48436,12 @@ static int _wrap_remote_open_writable__SWIG_2(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Remote::open_writable",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::Remote::open_writable",2,"unsigned int");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::Remote::open_writable",3,"useconds_t");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative");
     arg2 = (unsigned int)lua_tonumber(L, 2);
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
@@ -46625,7 +48478,12 @@ static int _wrap_remote_open_writable__SWIG_3(lua_State* L) {
     SWIG_check_num_args("Xapian::Remote::open_writable",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Remote::open_writable",1,"std::string const &");
     if(!lua_isnumber(L,2)) SWIG_fail_arg("Xapian::Remote::open_writable",2,"unsigned int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
     SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative");
     arg2 = (unsigned int)lua_tonumber(L, 2);
     {
@@ -46663,8 +48521,18 @@ static int _wrap_remote_open__SWIG_3(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Remote::open",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::Remote::open",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::Remote::open",3,"useconds_t");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (useconds_t)lua_tonumber(L, 3);
     {
@@ -46700,8 +48568,18 @@ static int _wrap_remote_open__SWIG_4(lua_State* L) {
     SWIG_check_num_args("Xapian::Remote::open",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Remote::open",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::Remote::open",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = Xapian::Remote::open((std::string const &)*arg1,(std::string const &)*arg2);
@@ -46848,8 +48726,18 @@ static int _wrap_remote_open_writable__SWIG_4(lua_State* L) {
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::Remote::open_writable",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::Remote::open_writable",3,"useconds_t");
     if(!lua_isnumber(L,4)) SWIG_fail_arg("Xapian::Remote::open_writable",4,"int");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (useconds_t)lua_tonumber(L, 3);
     arg4 = (int)lua_tonumber(L, 4);
@@ -46888,8 +48776,18 @@ static int _wrap_remote_open_writable__SWIG_5(lua_State* L) {
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Remote::open_writable",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::Remote::open_writable",2,"std::string const &");
     if(!lua_isnumber(L,3)) SWIG_fail_arg("Xapian::Remote::open_writable",3,"useconds_t");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative");
     arg3 = (useconds_t)lua_tonumber(L, 3);
     {
@@ -46925,8 +48823,18 @@ static int _wrap_remote_open_writable__SWIG_6(lua_State* L) {
     SWIG_check_num_args("Xapian::Remote::open_writable",2,2)
     if(!lua_isstring(L,1)) SWIG_fail_arg("Xapian::Remote::open_writable",1,"std::string const &");
     if(!lua_isstring(L,2)) SWIG_fail_arg("Xapian::Remote::open_writable",2,"std::string const &");
-    temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1;
-    temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2;
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 1, &len);
+      temp1.assign(ptr, len);
+      arg1=&temp1;
+    }
+    {
+      size_t len;
+      const char *ptr = lua_tolstring(L, 2, &len);
+      temp2.assign(ptr, len);
+      arg2=&temp2;
+    }
     {
       try {
         result = Xapian::Remote::open_writable((std::string const &)*arg1,(std::string const &)*arg2);
@@ -47119,98 +49027,101 @@ static swig_lua_attribute swig_SwigModule_attributes[] = {
 };
 static swig_lua_const_info swig_SwigModule_constants[]= {
     {SWIG_LUA_CONSTTAB_FLOAT("BAD_VALUENO", Xapian::BAD_VALUENO)},
-    {SWIG_LUA_CONSTTAB_INT("DB_CREATE", Xapian::DB_CREATE)},
-    {SWIG_LUA_CONSTTAB_INT("DB_CREATE_OR_OPEN", Xapian::DB_CREATE_OR_OPEN)},
-    {SWIG_LUA_CONSTTAB_INT("DB_CREATE_OR_OVERWRITE", Xapian::DB_CREATE_OR_OVERWRITE)},
-    {SWIG_LUA_CONSTTAB_INT("DB_OPEN", Xapian::DB_OPEN)},
-    {SWIG_LUA_CONSTTAB_INT("DB_NO_SYNC", Xapian::DB_NO_SYNC)},
-    {SWIG_LUA_CONSTTAB_INT("DB_FULL_SYNC", Xapian::DB_FULL_SYNC)},
-    {SWIG_LUA_CONSTTAB_INT("DB_DANGEROUS", Xapian::DB_DANGEROUS)},
-    {SWIG_LUA_CONSTTAB_INT("DB_NO_TERMLIST", Xapian::DB_NO_TERMLIST)},
-    {SWIG_LUA_CONSTTAB_INT("DB_BACKEND_CHERT", Xapian::DB_BACKEND_CHERT)},
-    {SWIG_LUA_CONSTTAB_INT("DB_BACKEND_GLASS", Xapian::DB_BACKEND_GLASS)},
-    {SWIG_LUA_CONSTTAB_INT("DB_BACKEND_INMEMORY", Xapian::DB_BACKEND_INMEMORY)},
-    {SWIG_LUA_CONSTTAB_INT("DB_BACKEND_STUB", Xapian::DB_BACKEND_STUB)},
-    {SWIG_LUA_CONSTTAB_INT("DB_RETRY_LOCK", Xapian::DB_RETRY_LOCK)},
-    {SWIG_LUA_CONSTTAB_INT("DBCHECK_SHORT_TREE", Xapian::DBCHECK_SHORT_TREE)},
-    {SWIG_LUA_CONSTTAB_INT("DBCHECK_FULL_TREE", Xapian::DBCHECK_FULL_TREE)},
-    {SWIG_LUA_CONSTTAB_INT("DBCHECK_SHOW_FREELIST", Xapian::DBCHECK_SHOW_FREELIST)},
-    {SWIG_LUA_CONSTTAB_INT("DBCHECK_SHOW_STATS", Xapian::DBCHECK_SHOW_STATS)},
-    {SWIG_LUA_CONSTTAB_INT("DBCHECK_FIX", Xapian::DBCHECK_FIX)},
-    {SWIG_LUA_CONSTTAB_INT("DBCOMPACT_MULTIPASS", Xapian::DBCOMPACT_MULTIPASS)},
-    {SWIG_LUA_CONSTTAB_INT("DBCOMPACT_NO_RENUMBER", Xapian::DBCOMPACT_NO_RENUMBER)},
-    {SWIG_LUA_CONSTTAB_INT("DBCOMPACT_SINGLE_FILE", Xapian::DBCOMPACT_SINGLE_FILE)},
-    {SWIG_LUA_CONSTTAB_INT("DOC_ASSUME_VALID", Xapian::DOC_ASSUME_VALID)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_AND", Xapian::Query::OP_AND)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_OR", Xapian::Query::OP_OR)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_AND_NOT", Xapian::Query::OP_AND_NOT)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_XOR", Xapian::Query::OP_XOR)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_AND_MAYBE", Xapian::Query::OP_AND_MAYBE)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_FILTER", Xapian::Query::OP_FILTER)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_NEAR", Xapian::Query::OP_NEAR)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_PHRASE", Xapian::Query::OP_PHRASE)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_VALUE_RANGE", Xapian::Query::OP_VALUE_RANGE)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_SCALE_WEIGHT", Xapian::Query::OP_SCALE_WEIGHT)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_ELITE_SET", Xapian::Query::OP_ELITE_SET)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_VALUE_GE", Xapian::Query::OP_VALUE_GE)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_VALUE_LE", Xapian::Query::OP_VALUE_LE)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_SYNONYM", Xapian::Query::OP_SYNONYM)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_MAX", Xapian::Query::OP_MAX)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_WILDCARD", Xapian::Query::OP_WILDCARD)},
-    {SWIG_LUA_CONSTTAB_INT("Query_OP_INVALID", Xapian::Query::OP_INVALID)},
-    {SWIG_LUA_CONSTTAB_INT("Query_WILDCARD_LIMIT_ERROR", Xapian::Query::WILDCARD_LIMIT_ERROR)},
-    {SWIG_LUA_CONSTTAB_INT("Query_WILDCARD_LIMIT_FIRST", Xapian::Query::WILDCARD_LIMIT_FIRST)},
-    {SWIG_LUA_CONSTTAB_INT("Query_WILDCARD_LIMIT_MOST_FREQUENT", Xapian::Query::WILDCARD_LIMIT_MOST_FREQUENT)},
-    {SWIG_LUA_CONSTTAB_INT("TermGenerator_FLAG_SPELLING", Xapian::TermGenerator::FLAG_SPELLING)},
-    {SWIG_LUA_CONSTTAB_INT("TermGenerator_FLAG_CJK_NGRAM", Xapian::TermGenerator::FLAG_CJK_NGRAM)},
-    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STEM_NONE", Xapian::TermGenerator::STEM_NONE)},
-    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STEM_SOME", Xapian::TermGenerator::STEM_SOME)},
-    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STEM_ALL", Xapian::TermGenerator::STEM_ALL)},
-    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STEM_ALL_Z", Xapian::TermGenerator::STEM_ALL_Z)},
-    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STEM_SOME_FULL_POS", Xapian::TermGenerator::STEM_SOME_FULL_POS)},
-    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STOP_NONE", Xapian::TermGenerator::STOP_NONE)},
-    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STOP_ALL", Xapian::TermGenerator::STOP_ALL)},
-    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STOP_STEMMED", Xapian::TermGenerator::STOP_STEMMED)},
-    {SWIG_LUA_CONSTTAB_INT("MSet_SNIPPET_BACKGROUND_MODEL", Xapian::MSet::SNIPPET_BACKGROUND_MODEL)},
-    {SWIG_LUA_CONSTTAB_INT("MSet_SNIPPET_EXHAUSTIVE", Xapian::MSet::SNIPPET_EXHAUSTIVE)},
-    {SWIG_LUA_CONSTTAB_INT("MSet_SNIPPET_EMPTY_WITHOUT_MATCH", Xapian::MSet::SNIPPET_EMPTY_WITHOUT_MATCH)},
-    {SWIG_LUA_CONSTTAB_INT("MSet_SNIPPET_CJK_NGRAM", Xapian::MSet::SNIPPET_CJK_NGRAM)},
-    {SWIG_LUA_CONSTTAB_INT("Enquire_ASCENDING", Xapian::Enquire::ASCENDING)},
-    {SWIG_LUA_CONSTTAB_INT("Enquire_DESCENDING", Xapian::Enquire::DESCENDING)},
-    {SWIG_LUA_CONSTTAB_INT("Enquire_DONT_CARE", Xapian::Enquire::DONT_CARE)},
-    {SWIG_LUA_CONSTTAB_INT("Enquire_INCLUDE_QUERY_TERMS", Xapian::Enquire::INCLUDE_QUERY_TERMS)},
-    {SWIG_LUA_CONSTTAB_INT("Enquire_USE_EXACT_TERMFREQ", Xapian::Enquire::USE_EXACT_TERMFREQ)},
-    {SWIG_LUA_CONSTTAB_INT("RP_SUFFIX", Xapian::RP_SUFFIX)},
-    {SWIG_LUA_CONSTTAB_INT("RP_REPEATED", Xapian::RP_REPEATED)},
-    {SWIG_LUA_CONSTTAB_INT("RP_DATE_PREFER_MDY", Xapian::RP_DATE_PREFER_MDY)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_BOOLEAN", Xapian::QueryParser::FLAG_BOOLEAN)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_PHRASE", Xapian::QueryParser::FLAG_PHRASE)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_LOVEHATE", Xapian::QueryParser::FLAG_LOVEHATE)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_BOOLEAN_ANY_CASE", Xapian::QueryParser::FLAG_BOOLEAN_ANY_CASE)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_WILDCARD", Xapian::QueryParser::FLAG_WILDCARD)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_PURE_NOT", Xapian::QueryParser::FLAG_PURE_NOT)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_PARTIAL", Xapian::QueryParser::FLAG_PARTIAL)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_SPELLING_CORRECTION", Xapian::QueryParser::FLAG_SPELLING_CORRECTION)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_SYNONYM", Xapian::QueryParser::FLAG_SYNONYM)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_AUTO_SYNONYMS", Xapian::QueryParser::FLAG_AUTO_SYNONYMS)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_AUTO_MULTIWORD_SYNONYMS", Xapian::QueryParser::FLAG_AUTO_MULTIWORD_SYNONYMS)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_CJK_NGRAM", Xapian::QueryParser::FLAG_CJK_NGRAM)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_ACCUMULATE", Xapian::QueryParser::FLAG_ACCUMULATE)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_NO_POSITIONS", Xapian::QueryParser::FLAG_NO_POSITIONS)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_DEFAULT", Xapian::QueryParser::FLAG_DEFAULT)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_STEM_NONE", Xapian::QueryParser::STEM_NONE)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_STEM_SOME", Xapian::QueryParser::STEM_SOME)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_STEM_ALL", Xapian::QueryParser::STEM_ALL)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_STEM_ALL_Z", Xapian::QueryParser::STEM_ALL_Z)},
-    {SWIG_LUA_CONSTTAB_INT("QueryParser_STEM_SOME_FULL_POS", Xapian::QueryParser::STEM_SOME_FULL_POS)},
-    {SWIG_LUA_CONSTTAB_INT("Weight_TWO_STAGE_SMOOTHING", Xapian::Weight::TWO_STAGE_SMOOTHING)},
-    {SWIG_LUA_CONSTTAB_INT("Weight_DIRICHLET_SMOOTHING", Xapian::Weight::DIRICHLET_SMOOTHING)},
-    {SWIG_LUA_CONSTTAB_INT("Weight_ABSOLUTE_DISCOUNT_SMOOTHING", Xapian::Weight::ABSOLUTE_DISCOUNT_SMOOTHING)},
-    {SWIG_LUA_CONSTTAB_INT("Weight_JELINEK_MERCER_SMOOTHING", Xapian::Weight::JELINEK_MERCER_SMOOTHING)},
-    {SWIG_LUA_CONSTTAB_INT("Weight_DIRICHLET_PLUS_SMOOTHING", Xapian::Weight::DIRICHLET_PLUS_SMOOTHING)},
-    {SWIG_LUA_CONSTTAB_INT("Compactor_STANDARD", Xapian::Compactor::STANDARD)},
-    {SWIG_LUA_CONSTTAB_INT("Compactor_FULL", Xapian::Compactor::FULL)},
-    {SWIG_LUA_CONSTTAB_INT("Compactor_FULLER", Xapian::Compactor::FULLER)},
+    {SWIG_LUA_CONSTTAB_INT("DB_CREATE", (Xapian::DB_CREATE))},
+    {SWIG_LUA_CONSTTAB_INT("DB_CREATE_OR_OPEN", (Xapian::DB_CREATE_OR_OPEN))},
+    {SWIG_LUA_CONSTTAB_INT("DB_CREATE_OR_OVERWRITE", (Xapian::DB_CREATE_OR_OVERWRITE))},
+    {SWIG_LUA_CONSTTAB_INT("DB_OPEN", (Xapian::DB_OPEN))},
+    {SWIG_LUA_CONSTTAB_INT("DB_NO_SYNC", (Xapian::DB_NO_SYNC))},
+    {SWIG_LUA_CONSTTAB_INT("DB_FULL_SYNC", (Xapian::DB_FULL_SYNC))},
+    {SWIG_LUA_CONSTTAB_INT("DB_DANGEROUS", (Xapian::DB_DANGEROUS))},
+    {SWIG_LUA_CONSTTAB_INT("DB_NO_TERMLIST", (Xapian::DB_NO_TERMLIST))},
+    {SWIG_LUA_CONSTTAB_INT("DB_BACKEND_CHERT", (Xapian::DB_BACKEND_CHERT))},
+    {SWIG_LUA_CONSTTAB_INT("DB_BACKEND_GLASS", (Xapian::DB_BACKEND_GLASS))},
+    {SWIG_LUA_CONSTTAB_INT("DB_BACKEND_INMEMORY", (Xapian::DB_BACKEND_INMEMORY))},
+    {SWIG_LUA_CONSTTAB_INT("DB_BACKEND_STUB", (Xapian::DB_BACKEND_STUB))},
+    {SWIG_LUA_CONSTTAB_INT("DB_RETRY_LOCK", (Xapian::DB_RETRY_LOCK))},
+    {SWIG_LUA_CONSTTAB_INT("DBCHECK_SHORT_TREE", (Xapian::DBCHECK_SHORT_TREE))},
+    {SWIG_LUA_CONSTTAB_INT("DBCHECK_FULL_TREE", (Xapian::DBCHECK_FULL_TREE))},
+    {SWIG_LUA_CONSTTAB_INT("DBCHECK_SHOW_FREELIST", (Xapian::DBCHECK_SHOW_FREELIST))},
+    {SWIG_LUA_CONSTTAB_INT("DBCHECK_SHOW_STATS", (Xapian::DBCHECK_SHOW_STATS))},
+    {SWIG_LUA_CONSTTAB_INT("DBCHECK_FIX", (Xapian::DBCHECK_FIX))},
+    {SWIG_LUA_CONSTTAB_INT("DBCOMPACT_MULTIPASS", (Xapian::DBCOMPACT_MULTIPASS))},
+    {SWIG_LUA_CONSTTAB_INT("DBCOMPACT_NO_RENUMBER", (Xapian::DBCOMPACT_NO_RENUMBER))},
+    {SWIG_LUA_CONSTTAB_INT("DBCOMPACT_SINGLE_FILE", (Xapian::DBCOMPACT_SINGLE_FILE))},
+    {SWIG_LUA_CONSTTAB_INT("DOC_ASSUME_VALID", (Xapian::DOC_ASSUME_VALID))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_AND", (Xapian::Query::OP_AND))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_OR", (Xapian::Query::OP_OR))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_AND_NOT", (Xapian::Query::OP_AND_NOT))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_XOR", (Xapian::Query::OP_XOR))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_AND_MAYBE", (Xapian::Query::OP_AND_MAYBE))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_FILTER", (Xapian::Query::OP_FILTER))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_NEAR", (Xapian::Query::OP_NEAR))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_PHRASE", (Xapian::Query::OP_PHRASE))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_VALUE_RANGE", (Xapian::Query::OP_VALUE_RANGE))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_SCALE_WEIGHT", (Xapian::Query::OP_SCALE_WEIGHT))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_ELITE_SET", (Xapian::Query::OP_ELITE_SET))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_VALUE_GE", (Xapian::Query::OP_VALUE_GE))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_VALUE_LE", (Xapian::Query::OP_VALUE_LE))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_SYNONYM", (Xapian::Query::OP_SYNONYM))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_MAX", (Xapian::Query::OP_MAX))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_WILDCARD", (Xapian::Query::OP_WILDCARD))},
+    {SWIG_LUA_CONSTTAB_INT("Query_OP_INVALID", (Xapian::Query::OP_INVALID))},
+    {SWIG_LUA_CONSTTAB_INT("Query_WILDCARD_LIMIT_ERROR", (Xapian::Query::WILDCARD_LIMIT_ERROR))},
+    {SWIG_LUA_CONSTTAB_INT("Query_WILDCARD_LIMIT_FIRST", (Xapian::Query::WILDCARD_LIMIT_FIRST))},
+    {SWIG_LUA_CONSTTAB_INT("Query_WILDCARD_LIMIT_MOST_FREQUENT", (Xapian::Query::WILDCARD_LIMIT_MOST_FREQUENT))},
+    {SWIG_LUA_CONSTTAB_INT("TermGenerator_FLAG_SPELLING", (Xapian::TermGenerator::FLAG_SPELLING))},
+    {SWIG_LUA_CONSTTAB_INT("TermGenerator_FLAG_NGRAMS", (Xapian::TermGenerator::FLAG_NGRAMS))},
+    {SWIG_LUA_CONSTTAB_INT("TermGenerator_FLAG_CJK_NGRAM", (Xapian::TermGenerator::FLAG_CJK_NGRAM))},
+    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STEM_NONE", (Xapian::TermGenerator::STEM_NONE))},
+    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STEM_SOME", (Xapian::TermGenerator::STEM_SOME))},
+    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STEM_ALL", (Xapian::TermGenerator::STEM_ALL))},
+    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STEM_ALL_Z", (Xapian::TermGenerator::STEM_ALL_Z))},
+    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STEM_SOME_FULL_POS", (Xapian::TermGenerator::STEM_SOME_FULL_POS))},
+    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STOP_NONE", (Xapian::TermGenerator::STOP_NONE))},
+    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STOP_ALL", (Xapian::TermGenerator::STOP_ALL))},
+    {SWIG_LUA_CONSTTAB_INT("TermGenerator_STOP_STEMMED", (Xapian::TermGenerator::STOP_STEMMED))},
+    {SWIG_LUA_CONSTTAB_INT("MSet_SNIPPET_BACKGROUND_MODEL", (Xapian::MSet::SNIPPET_BACKGROUND_MODEL))},
+    {SWIG_LUA_CONSTTAB_INT("MSet_SNIPPET_EXHAUSTIVE", (Xapian::MSet::SNIPPET_EXHAUSTIVE))},
+    {SWIG_LUA_CONSTTAB_INT("MSet_SNIPPET_EMPTY_WITHOUT_MATCH", (Xapian::MSet::SNIPPET_EMPTY_WITHOUT_MATCH))},
+    {SWIG_LUA_CONSTTAB_INT("MSet_SNIPPET_NGRAMS", (Xapian::MSet::SNIPPET_NGRAMS))},
+    {SWIG_LUA_CONSTTAB_INT("MSet_SNIPPET_CJK_NGRAM", (Xapian::MSet::SNIPPET_CJK_NGRAM))},
+    {SWIG_LUA_CONSTTAB_INT("Enquire_ASCENDING", (Xapian::Enquire::ASCENDING))},
+    {SWIG_LUA_CONSTTAB_INT("Enquire_DESCENDING", (Xapian::Enquire::DESCENDING))},
+    {SWIG_LUA_CONSTTAB_INT("Enquire_DONT_CARE", (Xapian::Enquire::DONT_CARE))},
+    {SWIG_LUA_CONSTTAB_INT("Enquire_INCLUDE_QUERY_TERMS", (Xapian::Enquire::INCLUDE_QUERY_TERMS))},
+    {SWIG_LUA_CONSTTAB_INT("Enquire_USE_EXACT_TERMFREQ", (Xapian::Enquire::USE_EXACT_TERMFREQ))},
+    {SWIG_LUA_CONSTTAB_INT("RP_SUFFIX", (Xapian::RP_SUFFIX))},
+    {SWIG_LUA_CONSTTAB_INT("RP_REPEATED", (Xapian::RP_REPEATED))},
+    {SWIG_LUA_CONSTTAB_INT("RP_DATE_PREFER_MDY", (Xapian::RP_DATE_PREFER_MDY))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_BOOLEAN", (Xapian::QueryParser::FLAG_BOOLEAN))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_PHRASE", (Xapian::QueryParser::FLAG_PHRASE))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_LOVEHATE", (Xapian::QueryParser::FLAG_LOVEHATE))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_BOOLEAN_ANY_CASE", (Xapian::QueryParser::FLAG_BOOLEAN_ANY_CASE))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_WILDCARD", (Xapian::QueryParser::FLAG_WILDCARD))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_PURE_NOT", (Xapian::QueryParser::FLAG_PURE_NOT))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_PARTIAL", (Xapian::QueryParser::FLAG_PARTIAL))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_SPELLING_CORRECTION", (Xapian::QueryParser::FLAG_SPELLING_CORRECTION))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_SYNONYM", (Xapian::QueryParser::FLAG_SYNONYM))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_AUTO_SYNONYMS", (Xapian::QueryParser::FLAG_AUTO_SYNONYMS))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_AUTO_MULTIWORD_SYNONYMS", (Xapian::QueryParser::FLAG_AUTO_MULTIWORD_SYNONYMS))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_NGRAMS", (Xapian::QueryParser::FLAG_NGRAMS))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_CJK_NGRAM", (Xapian::QueryParser::FLAG_CJK_NGRAM))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_ACCUMULATE", (Xapian::QueryParser::FLAG_ACCUMULATE))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_NO_POSITIONS", (Xapian::QueryParser::FLAG_NO_POSITIONS))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_FLAG_DEFAULT", (Xapian::QueryParser::FLAG_DEFAULT))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_STEM_NONE", (Xapian::QueryParser::STEM_NONE))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_STEM_SOME", (Xapian::QueryParser::STEM_SOME))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_STEM_ALL", (Xapian::QueryParser::STEM_ALL))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_STEM_ALL_Z", (Xapian::QueryParser::STEM_ALL_Z))},
+    {SWIG_LUA_CONSTTAB_INT("QueryParser_STEM_SOME_FULL_POS", (Xapian::QueryParser::STEM_SOME_FULL_POS))},
+    {SWIG_LUA_CONSTTAB_INT("Weight_TWO_STAGE_SMOOTHING", (Xapian::Weight::TWO_STAGE_SMOOTHING))},
+    {SWIG_LUA_CONSTTAB_INT("Weight_DIRICHLET_SMOOTHING", (Xapian::Weight::DIRICHLET_SMOOTHING))},
+    {SWIG_LUA_CONSTTAB_INT("Weight_ABSOLUTE_DISCOUNT_SMOOTHING", (Xapian::Weight::ABSOLUTE_DISCOUNT_SMOOTHING))},
+    {SWIG_LUA_CONSTTAB_INT("Weight_JELINEK_MERCER_SMOOTHING", (Xapian::Weight::JELINEK_MERCER_SMOOTHING))},
+    {SWIG_LUA_CONSTTAB_INT("Weight_DIRICHLET_PLUS_SMOOTHING", (Xapian::Weight::DIRICHLET_PLUS_SMOOTHING))},
+    {SWIG_LUA_CONSTTAB_INT("Compactor_STANDARD", (Xapian::Compactor::STANDARD))},
+    {SWIG_LUA_CONSTTAB_INT("Compactor_FULL", (Xapian::Compactor::FULL))},
+    {SWIG_LUA_CONSTTAB_INT("Compactor_FULLER", (Xapian::Compactor::FULLER))},
     {0,0,0,0,0,0}
 };
 static swig_lua_method swig_SwigModule_methods[]= {
diff --git a/m4/libtool.m4 b/m4/libtool.m4
deleted file mode 100644
index 13089604193791da9fb814986a3e22653eee6d4b..0000000000000000000000000000000000000000
--- a/m4/libtool.m4
+++ /dev/null
@@ -1,8369 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-#   Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-m4_define([_LT_COPYING], [dnl
-# Copyright (C) 2014 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions.  There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# GNU Libtool 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 of of the License, or
-# (at your option) any later version.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program or library that is built
-# using GNU Libtool, you may include this file under the  same
-# distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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, see <http://www.gnu.org/licenses/>.
-])
-
-# serial 58 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
-       [m4_default([$3],
-		   [m4_fatal([Libtool version $1 or higher is required],
-		             63)])],
-       [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
-  *\ * | *\	*)
-    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
-AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS=$ltmain
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_PREPARE_CC_BASENAME
-# -----------------------
-m4_defun([_LT_PREPARE_CC_BASENAME], [
-# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
-func_cc_basename ()
-{
-    for cc_temp in @S|@*""; do
-      case $cc_temp in
-        compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
-        distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
-        \-*) ;;
-        *) break;;
-      esac
-    done
-    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-}
-])# _LT_PREPARE_CC_BASENAME
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME,
-# but that macro is also expanded into generated libtool script, which
-# arranges for $SED and $ECHO to be set by different means.
-m4_defun([_LT_CC_BASENAME],
-[m4_require([_LT_PREPARE_CC_BASENAME])dnl
-AC_REQUIRE([_LT_DECL_SED])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-func_cc_basename $1
-cc_basename=$func_cc_basename_result
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-
-_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
-dnl
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_WITH_SYSROOT])dnl
-m4_require([_LT_CMD_TRUNCATE])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options that allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}"; then
-   setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}"; then
-   setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test set != "${COLLECT_NAMES+set}"; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a '.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-old_CC=$CC
-old_CFLAGS=$CFLAGS
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    _LT_PATH_MAGIC
-  fi
-  ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PREPARE_SED_QUOTE_VARS
-# --------------------------
-# Define a few sed substitution that help us do robust quoting.
-m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-[# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-])
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from 'configure', and 'config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
-# 'config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain=$ac_aux_dir/ltmain.sh
-])# _LT_PROG_LTMAIN
-
-
-## ------------------------------------- ##
-## Accumulate code for creating libtool. ##
-## ------------------------------------- ##
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the 'libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
-          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
-                     [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
-          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
-                     [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
-              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-## ------------------------ ##
-## FIXME: Eliminate VARNAME ##
-## ------------------------ ##
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME.  Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
-    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
-	[m4_ifval([$1], [$1], [$2])])
-    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
-    m4_ifval([$4],
-	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
-    lt_dict_add_subkey([lt_decl_dict], [$2],
-	[tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
-  [0], [m4_fatal([$0: too few arguments: $#])],
-  [1], [m4_fatal([$0: too few arguments: $#: $1])],
-  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
-  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
-  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
-    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
-    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
-     m4_if([$2], [],
-	   m4_quote(lt_decl_varnames),
-	m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
-			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to 'config.status' so that its
-# declaration there will have the same value as in 'configure'.  VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly.  In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
-    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags='_LT_TAGS'dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-#    # Some comment about what VAR is for.
-#    visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
-					   [description])))[]dnl
-m4_pushdef([_libtool_name],
-    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
-    [0], [_libtool_name=[$]$1],
-    [1], [_libtool_name=$lt_[]$1],
-    [2], [_libtool_name=$lt_[]$1],
-    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool'
-# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
-    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into 'config.status', and then the shell code to quote escape them in
-# for loops in 'config.status'.  Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
-	dnl If the libtool generation code has been placed in $CONFIG_LT,
-	dnl instead of duplicating it all over again into config.status,
-	dnl then we will have config.status run $CONFIG_LT later, so it
-	dnl needs to know what name is stored there:
-        [AC_CONFIG_COMMANDS([libtool],
-            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
-    dnl If the libtool generation code is destined for config.status,
-    dnl expand the accumulated commands and init code now:
-    [AC_CONFIG_COMMANDS([libtool],
-        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-\$[]1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-# ------------------------------------
-# Generate a child script FILE with all initialization necessary to
-# reuse the environment learned by the parent script, and make the
-# file executable.  If COMMENT is supplied, it is inserted after the
-# '#!' sequence but before initialization text begins.  After this
-# macro, additional text can be appended to FILE to form the body of
-# the child script.  The macro ends with non-zero status if the
-# file could not be fully written (such as if the disk is full).
-m4_ifdef([AS_INIT_GENERATED],
-[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-[m4_defun([_LT_GENERATED_FILE_INIT],
-[m4_require([AS_PREPARE])]dnl
-[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-[lt_write_fail=0
-cat >$1 <<_ASEOF || lt_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-$2
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$1 <<\_ASEOF || lt_write_fail=1
-AS_SHELL_SANITIZE
-_AS_PREPARE
-exec AS_MESSAGE_FD>&1
-_ASEOF
-test 0 = "$lt_write_fail" && chmod +x $1[]dnl
-m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-[# Run this file to recreate a libtool stub with the current configuration.])
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec AS_MESSAGE_LOG_FD>>config.log
-{
-  echo
-  AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-'$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
-  -h, --help      print this help, then exit
-  -V, --version   print version number, then exit
-  -q, --quiet     do not print progress messages
-  -d, --debug     don't remove temporary files
-
-Report bugs to <bug-libtool@gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2011 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test 0 != $[#]
-do
-  case $[1] in
-    --version | --v* | -V )
-      echo "$lt_cl_version"; exit 0 ;;
-    --help | --h* | -h )
-      echo "$lt_cl_help"; exit 0 ;;
-    --debug | --d* | -d )
-      debug=: ;;
-    --quiet | --q* | --silent | --s* | -q )
-      lt_cl_silent=: ;;
-
-    -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try '$[0] --help' for more information.]) ;;
-
-    *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try '$[0] --help' for more information.]) ;;
-  esac
-  shift
-done
-
-if $lt_cl_silent; then
-  exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure.  Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test yes = "$silent" &&
-  lt_config_lt_args="$lt_config_lt_args --quiet"
-exec AS_MESSAGE_LOG_FD>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec AS_MESSAGE_LOG_FD>>config.log
-$lt_cl_success || AS_EXIT(1)
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars.  Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
-  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
-  m4_if(_LT_TAG, [C], [
-    # See if we are running on zsh, and set the options that allow our
-    # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}"; then
-      setopt NO_GLOB_SUBST
-    fi
-
-    cfgfile=${ofile}T
-    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-    $RM "$cfgfile"
-
-    cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-# Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-
-# Provide generalized library-building support services.
-# Written by Gordon Matzigkeit, 1996
-
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# Configured defaults for sys_lib_dlsearch_path munging.
-: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
-    cat <<'_LT_EOF' >> "$cfgfile"
-
-# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
-
-_LT_PREPARE_MUNGE_PATH_LIST
-_LT_PREPARE_CC_BASENAME
-
-# ### END FUNCTIONS SHARED WITH CONFIGURE
-
-_LT_EOF
-
-  case $host_os in
-  aix3*)
-    cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test set != "${COLLECT_NAMES+set}"; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-_LT_EOF
-    ;;
-  esac
-
-  _LT_PROG_LTMAIN
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" \
-     || (rm -f "$cfgfile"; exit 1)
-
-   mv -f "$cfgfile" "$ofile" ||
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
-    PACKAGE='$PACKAGE'
-    VERSION='$VERSION'
-    RM='$RM'
-    ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
-  [C],			[_LT_LANG(C)],
-  [C++],		[_LT_LANG(CXX)],
-  [Go],			[_LT_LANG(GO)],
-  [Java],		[_LT_LANG(GCJ)],
-  [Fortran 77],		[_LT_LANG(F77)],
-  [Fortran],		[_LT_LANG(FC)],
-  [Windows Resource],	[_LT_LANG(RC)],
-  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
-    [_LT_LANG($1)],
-    [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
-  [LT_SUPPORTED_TAG([$1])dnl
-  m4_append([_LT_TAGS], [$1 ])dnl
-  m4_define([_LT_LANG_]$1[_enabled], [])dnl
-  _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-m4_ifndef([AC_PROG_GO], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-############################################################
-m4_defun([AC_PROG_GO],
-[AC_LANG_PUSH(Go)dnl
-AC_ARG_VAR([GOC],     [Go compiler command])dnl
-AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
-_AC_ARG_VAR_LDFLAGS()dnl
-AC_CHECK_TOOL(GOC, gccgo)
-if test -z "$GOC"; then
-  if test -n "$ac_tool_prefix"; then
-    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
-  fi
-fi
-if test -z "$GOC"; then
-  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
-fi
-])#m4_defun
-])#m4_ifndef
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
-  [LT_LANG(CXX)],
-  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
-  [LT_LANG(F77)],
-  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
-  [LT_LANG(FC)],
-  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-  [LT_LANG(GCJ)],
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-    [LT_LANG(GCJ)],
-    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
-      [LT_LANG(GCJ)],
-      [m4_ifdef([AC_PROG_GCJ],
-	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
-       m4_ifdef([A][M_PROG_GCJ],
-	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
-       m4_ifdef([LT_PROG_GCJ],
-	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([AC_PROG_GO],
-  [LT_LANG(GO)],
-  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
-  [LT_LANG(RC)],
-  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
-  case $host_os in
-    rhapsody* | darwin*)
-    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
-    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
-    AC_CHECK_TOOL([LIPO], [lipo], [:])
-    AC_CHECK_TOOL([OTOOL], [otool], [:])
-    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
-    _LT_DECL([], [DSYMUTIL], [1],
-      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
-    _LT_DECL([], [NMEDIT], [1],
-      [Tool to change global to local symbols on Mac OS X])
-    _LT_DECL([], [LIPO], [1],
-      [Tool to manipulate fat objects and archives on Mac OS X])
-    _LT_DECL([], [OTOOL], [1],
-      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
-    _LT_DECL([], [OTOOL64], [1],
-      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
-    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
-      [lt_cv_apple_cc_single_mod=no
-      if test -z "$LT_MULTI_MODULE"; then
-	# By default we will add the -single_module flag. You can override
-	# by either setting the environment variable LT_MULTI_MODULE
-	# non-empty at configure time, or by adding -multi_module to the
-	# link flags.
-	rm -rf libconftest.dylib*
-	echo "int foo(void){return 1;}" > conftest.c
-	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
-	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-        _lt_result=$?
-	# If there is a non-empty error log, and "single_module"
-	# appears in it, assume the flag caused a linker warning
-        if test -s conftest.err && $GREP single_module conftest.err; then
-	  cat conftest.err >&AS_MESSAGE_LOG_FD
-	# Otherwise, if the output was created with a 0 exit code from
-	# the compiler, it worked.
-	elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
-	  lt_cv_apple_cc_single_mod=yes
-	else
-	  cat conftest.err >&AS_MESSAGE_LOG_FD
-	fi
-	rm -rf libconftest.dylib*
-	rm -f conftest.*
-      fi])
-
-    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
-      [lt_cv_ld_exported_symbols_list],
-      [lt_cv_ld_exported_symbols_list=no
-      save_LDFLAGS=$LDFLAGS
-      echo "_main" > conftest.sym
-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-	[lt_cv_ld_exported_symbols_list=yes],
-	[lt_cv_ld_exported_symbols_list=no])
-	LDFLAGS=$save_LDFLAGS
-    ])
-
-    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
-      [lt_cv_ld_force_load=no
-      cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
-      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
-      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
-      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
-      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
-      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
-      cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
-      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
-      _lt_result=$?
-      if test -s conftest.err && $GREP force_load conftest.err; then
-	cat conftest.err >&AS_MESSAGE_LOG_FD
-      elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
-	lt_cv_ld_force_load=yes
-      else
-	cat conftest.err >&AS_MESSAGE_LOG_FD
-      fi
-        rm -f conftest.err libconftest.a conftest conftest.c
-        rm -rf conftest.dSYM
-    ])
-    case $host_os in
-    rhapsody* | darwin1.[[012]])
-      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
-    darwin1.*)
-      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
-    darwin*) # darwin 5.x on
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
-	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
-	10.[[012]][[,.]]*)
-	  _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
-	10.*)
-	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
-      esac
-    ;;
-  esac
-    if test yes = "$lt_cv_apple_cc_single_mod"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test yes = "$lt_cv_ld_exported_symbols_list"; then
-      _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
-    else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
-    fi
-    if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES([TAG])
-# ---------------------------------
-# Checks for linker and compiler features on darwin
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
-  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
-  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-  _LT_TAGVAR(hardcode_direct, $1)=no
-  _LT_TAGVAR(hardcode_automatic, $1)=yes
-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  if test yes = "$lt_cv_ld_force_load"; then
-    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
-                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
-  else
-    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
-  fi
-  _LT_TAGVAR(link_all_deplibs, $1)=yes
-  _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined
-  case $cc_basename in
-     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test yes = "$_lt_dar_can_shared"; then
-    output_verbose_link_cmd=func_echo_all
-    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
-    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
-    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
-    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
-    m4_if([$1], [CXX],
-[   if test yes != "$lt_cv_apple_cc_single_mod"; then
-      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
-      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
-    fi
-],[])
-  else
-  _LT_TAGVAR(ld_shlibs, $1)=no
-  fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
-# ----------------------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-# Store the results from the different compilers for each TAGNAME.
-# Allow to override them for all tags through lt_cv_aix_libpath.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-if test set = "${lt_cv_aix_libpath+set}"; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
-  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
-  lt_aix_libpath_sed='[
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }]'
-  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi],[])
-  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib
-  fi
-  ])
-  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
-fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[m4_divert_text([M4SH-INIT], [$1
-])])# _LT_SHELL_INIT
-
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Find how we can fake an echo command that does not interpret backslash.
-# In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script that will find a shell with a builtin
-# printf (that we can use as an echo command).
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-AC_MSG_CHECKING([how to print strings])
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
-   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='printf %s\n'
-else
-  # Use this function as a fallback that always works.
-  func_fallback_echo ()
-  {
-    eval 'cat <<_LTECHO_EOF
-$[]1
-_LTECHO_EOF'
-  }
-  ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO "$*"
-}
-
-case $ECHO in
-  printf*) AC_MSG_RESULT([printf]) ;;
-  print*) AC_MSG_RESULT([print -r]) ;;
-  *) AC_MSG_RESULT([cat]) ;;
-esac
-
-m4_ifdef([_AS_DETECT_SUGGESTED],
-[_AS_DETECT_SUGGESTED([
-  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
-    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-    PATH=/empty FPATH=/empty; export PATH FPATH
-    test "X`printf %s $ECHO`" = "X$ECHO" \
-      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_WITH_SYSROOT
-# ----------------
-AC_DEFUN([_LT_WITH_SYSROOT],
-[AC_MSG_CHECKING([for sysroot])
-AC_ARG_WITH([sysroot],
-[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
-  [Search for dependent libraries within DIR (or the compiler's sysroot
-   if not specified).])],
-[], [with_sysroot=no])
-
-dnl lt_sysroot will always be passed unquoted.  We quote it here
-dnl in case the user passed a directory name.
-lt_sysroot=
-case $with_sysroot in #(
- yes)
-   if test yes = "$GCC"; then
-     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
-   fi
-   ;; #(
- /*)
-   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-   ;; #(
- no|'')
-   ;; #(
- *)
-   AC_MSG_RESULT([$with_sysroot])
-   AC_MSG_ERROR([The sysroot must be an absolute path.])
-   ;;
-esac
-
- AC_MSG_RESULT([${lt_sysroot:-no}])
-_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and where our libraries should be installed.])])
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
-  [AS_HELP_STRING([--disable-libtool-lock],
-    [avoid locking (might break parallel builds)])])
-test no = "$enable_libtool_lock" || enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out what ABI is being produced by ac_compile, and set mode
-  # options accordingly.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-	HPUX_IA64_MODE=32
-	;;
-      *ELF-64*)
-	HPUX_IA64_MODE=64
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out what ABI is being produced by ac_compile, and set linker
-  # options accordingly.
-  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    if test yes = "$lt_cv_prog_gnu_ld"; then
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -melf32bsmip"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -melf32bmipn32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -melf64bmip"
-	;;
-      esac
-    else
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -32"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -n32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -64"
-	  ;;
-      esac
-    fi
-  fi
-  rm -rf conftest*
-  ;;
-
-mips64*-*linux*)
-  # Find out what ABI is being produced by ac_compile, and set linker
-  # options accordingly.
-  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    emul=elf
-    case `/usr/bin/file conftest.$ac_objext` in
-      *32-bit*)
-	emul="${emul}32"
-	;;
-      *64-bit*)
-	emul="${emul}64"
-	;;
-    esac
-    case `/usr/bin/file conftest.$ac_objext` in
-      *MSB*)
-	emul="${emul}btsmip"
-	;;
-      *LSB*)
-	emul="${emul}ltsmip"
-	;;
-    esac
-    case `/usr/bin/file conftest.$ac_objext` in
-      *N32*)
-	emul="${emul}n32"
-	;;
-    esac
-    LD="${LD-ld} -m $emul"
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out what ABI is being produced by ac_compile, and set linker
-  # options accordingly.  Note that the listed cases only cover the
-  # situations where additional linker options are needed (such as when
-  # doing 32-bit compilation for a host where ld defaults to 64-bit, or
-  # vice versa); the common cases where no linker options are needed do
-  # not appear in the list.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-      *32-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_i386_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    case `/usr/bin/file conftest.o` in
-	      *x86-64*)
-		LD="${LD-ld} -m elf32_x86_64"
-		;;
-	      *)
-		LD="${LD-ld} -m elf_i386"
-		;;
-	    esac
-	    ;;
-	  powerpc64le-*linux*)
-	    LD="${LD-ld} -m elf32lppclinux"
-	    ;;
-	  powerpc64-*linux*)
-	    LD="${LD-ld} -m elf32ppclinux"
-	    ;;
-	  s390x-*linux*)
-	    LD="${LD-ld} -m elf_s390"
-	    ;;
-	  sparc64-*linux*)
-	    LD="${LD-ld} -m elf32_sparc"
-	    ;;
-	esac
-	;;
-      *64-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_x86_64_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_x86_64"
-	    ;;
-	  powerpcle-*linux*)
-	    LD="${LD-ld} -m elf64lppc"
-	    ;;
-	  powerpc-*linux*)
-	    LD="${LD-ld} -m elf64ppc"
-	    ;;
-	  s390*-*linux*|s390*-*tpf*)
-	    LD="${LD-ld} -m elf64_s390"
-	    ;;
-	  sparc*-*linux*)
-	    LD="${LD-ld} -m elf64_sparc"
-	    ;;
-	esac
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS=$CFLAGS
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_PUSH(C)
-     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_POP])
-  if test yes != "$lt_cv_cc_needs_belf"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS=$SAVE_CFLAGS
-  fi
-  ;;
-*-*solaris*)
-  # Find out what ABI is being produced by ac_compile, and set linker
-  # options accordingly.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*)
-        case $host in
-        i?86-*-solaris*|x86_64-*-solaris*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        sparc*-*-solaris*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-        esac
-        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
-        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD=${LD-ld}_sol2
-        fi
-        ;;
-      *)
-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-	  LD="${LD-ld} -64"
-	fi
-	;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-esac
-
-need_locks=$enable_libtool_lock
-])# _LT_ENABLE_LOCK
-
-
-# _LT_PROG_AR
-# -----------
-m4_defun([_LT_PROG_AR],
-[AC_CHECK_TOOLS(AR, [ar], false)
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-
-AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
-  [lt_cv_ar_at_file=no
-   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
-     [echo conftest.$ac_objext > conftest.lst
-      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
-      AC_TRY_EVAL([lt_ar_try])
-      if test 0 -eq "$ac_status"; then
-	# Ensure the archiver fails upon bogus file names.
-	rm -f conftest.$ac_objext libconftest.a
-	AC_TRY_EVAL([lt_ar_try])
-	if test 0 -ne "$ac_status"; then
-          lt_cv_ar_at_file=@
-        fi
-      fi
-      rm -f conftest.* libconftest.a
-     ])
-  ])
-
-if test no = "$lt_cv_ar_at_file"; then
-  archiver_list_spec=
-else
-  archiver_list_spec=$lt_cv_ar_at_file
-fi
-_LT_DECL([], [archiver_list_spec], [1],
-  [How to feed a file listing to the archiver])
-])# _LT_PROG_AR
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[_LT_PROG_AR
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
-    [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  bitrig* | openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
-  darwin*)
-    lock_old_archive_extraction=yes ;;
-  *)
-    lock_old_archive_extraction=no ;;
-esac
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
-    [Commands used to build an old-style archive])
-_LT_DECL([], [lock_old_archive_extraction], [0],
-    [Whether to use a lock for old archive extraction])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"  ## exclude from sc_useless_quotes_in_assignment
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       $2=yes
-     fi
-   fi
-   $RM conftest*
-])
-
-if test yes = "[$]$2"; then
-    m4_if([$5], , :, [$5])
-else
-    m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#                  [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS=$LDFLAGS
-   LDFLAGS="$LDFLAGS $3"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         $2=yes
-       fi
-     else
-       $2=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS=$save_LDFLAGS
-])
-
-if test yes = "[$]$2"; then
-    m4_if([$4], , :, [$4])
-else
-    m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  teststring=ABCD
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw* | cegcc*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  mint*)
-    # On MiNT this can take a long time and run out of memory.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  os2*)
-    # The test takes a long time on OS/2.
-    lt_cv_sys_max_cmd_len=8192
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len" && \
-       test undefined != "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      # Make teststring a little bigger before we do anything with it.
-      # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8; do
-        teststring=$teststring$teststring
-      done
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      # If test is not a shell built-in, we'll probably end up computing a
-      # maximum length that is only half of the actual maximum length, but
-      # we can't tell.
-      while { test X`env echo "$teststring$teststring" 2>/dev/null` \
-	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test 17 != "$i" # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      # Only check the string length outside the loop.
-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on
-      # massive amounts of additional arguments before passing them to the
-      # linker.  It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
-])
-if test -n "$lt_cv_sys_max_cmd_len"; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
-    [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test yes = "$cross_compiling"; then :
-  [$4]
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-[#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-/* When -fvisibility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else
-        {
-	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-          else puts (dlerror ());
-	}
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}]
-_LT_EOF
-  if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
-    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) $1 ;;
-      x$lt_dlneed_uscore) $2 ;;
-      x$lt_dlunknown|x*) $3 ;;
-    esac
-  else :
-    # compilation failed
-    $3
-  fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test yes != "$enable_dlopen"; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen=load_add_on
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32* | cegcc*)
-    lt_cv_dlopen=LoadLibrary
-    lt_cv_dlopen_libs=
-    ;;
-
-  cygwin*)
-    lt_cv_dlopen=dlopen
-    lt_cv_dlopen_libs=
-    ;;
-
-  darwin*)
-    # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[
-    lt_cv_dlopen=dyld
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-    ;;
-
-  tpf*)
-    # Don't try to run any link tests for TPF.  We know it's impossible
-    # because TPF is a cross-compiler, and we know how we open DSOs.
-    lt_cv_dlopen=dlopen
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=no
-    ;;
-
-  *)
-    AC_CHECK_FUNC([shl_load],
-	  [lt_cv_dlopen=shl_load],
-      [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld],
-	[AC_CHECK_FUNC([dlopen],
-	      [lt_cv_dlopen=dlopen],
-	  [AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],
-	    [AC_CHECK_LIB([svld], [dlopen],
-		  [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld],
-	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld])
-	      ])
-	    ])
-	  ])
-	])
-      ])
-    ;;
-  esac
-
-  if test no = "$lt_cv_dlopen"; then
-    enable_dlopen=no
-  else
-    enable_dlopen=yes
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS=$CPPFLAGS
-    test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS=$LDFLAGS
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS=$LIBS
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-	  lt_cv_dlopen_self, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test yes = "$lt_cv_dlopen_self"; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-	  lt_cv_dlopen_self_static, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS=$save_CPPFLAGS
-    LDFLAGS=$save_LDFLAGS
-    LIBS=$save_LIBS
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
-	 [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
-	 [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
-	 [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-     fi
-   fi
-   chmod u+w . 2>&AS_MESSAGE_LOG_FD
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
-	[Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links=nottested
-if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test no = "$hard_links"; then
-    AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
-         [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/",
-  [Define to the sub-directory where libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
-   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
-   test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then
-
-  # We can hardcode non-existent directories.
-  if test no != "$_LT_TAGVAR(hardcode_direct, $1)" &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" &&
-     test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then
-    # Linking always hardcodes the temporary library directory.
-    _LT_TAGVAR(hardcode_action, $1)=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    _LT_TAGVAR(hardcode_action, $1)=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test relink = "$_LT_TAGVAR(hardcode_action, $1)" ||
-   test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test yes = "$shlibpath_overrides_runpath" ||
-     test no = "$enable_shared"; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
-    [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP"; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      AC_MSG_RESULT([yes])
-    else
-      AC_MSG_RESULT([no])
-    fi
-    ;;
-  *)
-    AC_MSG_RESULT([no])
-    ;;
-  esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_PREPARE_MUNGE_PATH_LIST
-# ---------------------------
-# Make sure func_munge_path_list() is defined correctly.
-m4_defun([_LT_PREPARE_MUNGE_PATH_LIST],
-[[# func_munge_path_list VARIABLE PATH
-# -----------------------------------
-# VARIABLE is name of variable containing _space_ separated list of
-# directories to be munged by the contents of PATH, which is string
-# having a format:
-# "DIR[:DIR]:"
-#       string "DIR[ DIR]" will be prepended to VARIABLE
-# ":DIR[:DIR]"
-#       string "DIR[ DIR]" will be appended to VARIABLE
-# "DIRP[:DIRP]::[DIRA:]DIRA"
-#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
-#       "DIRA[ DIRA]" will be appended to VARIABLE
-# "DIR[:DIR]"
-#       VARIABLE will be replaced by "DIR[ DIR]"
-func_munge_path_list ()
-{
-    case x@S|@2 in
-    x)
-        ;;
-    *:)
-        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
-        ;;
-    x:*)
-        eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
-        ;;
-    *::*)
-        eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
-        eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
-        ;;
-    *)
-        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
-        ;;
-    esac
-}
-]])# _LT_PREPARE_PATH_LIST
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
-	[], [
-if test yes = "$GCC"; then
-  case $host_os in
-    darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
-    *) lt_awk_arg='/^libraries:/' ;;
-  esac
-  case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
-    *) lt_sed_strip_eq='s|=/|/|g' ;;
-  esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
-  case $lt_search_path_spec in
-  *\;*)
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
-    ;;
-  *)
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
-    ;;
-  esac
-  # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary...
-  lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-  # ...but if some path component already ends with the multilib dir we assume
-  # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
-  case "$lt_multi_os_dir; $lt_search_path_spec " in
-  "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
-    lt_multi_os_dir=
-    ;;
-  esac
-  for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
-    elif test -n "$lt_multi_os_dir"; then
-      test -d "$lt_sys_path" && \
-	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-    fi
-  done
-  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS = " "; FS = "/|\n";} {
-  lt_foo = "";
-  lt_count = 0;
-  for (lt_i = NF; lt_i > 0; lt_i--) {
-    if ($lt_i != "" && $lt_i != ".") {
-      if ($lt_i == "..") {
-        lt_count++;
-      } else {
-        if (lt_count == 0) {
-          lt_foo = "/" $lt_i lt_foo;
-        } else {
-          lt_count--;
-        }
-      }
-    }
-  }
-  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
-  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
-  # AWK program above erroneously prepends '/' to C:/dos/paths
-  # for these hosts.
-  case $host_os in
-    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
-  esac
-  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=.so
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-AC_ARG_VAR([LT_SYS_LIBRARY_PATH],
-[User-defined run-time library search path.])
-
-case $host_os in
-aix3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='$libname$release$shared_ext$major'
-  ;;
-
-aix[[4-9]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test ia64 = "$host_cpu"; then
-    # AIX 5 supports IA64
-    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line '#! .'.  This would cause the generated library to
-    # depend on '.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[[01]] | aix4.[[01]].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # Using Import Files as archive members, it is possible to support
-    # filename-based versioning of shared library archives on AIX. While
-    # this would work for both with and without runtime linking, it will
-    # prevent static linking of such archives. So we do filename-based
-    # shared library versioning with .so extension only, which is used
-    # when both runtime linking and shared linking is enabled.
-    # Unfortunately, runtime linking may impact performance, so we do
-    # not want this to be the default eventually. Also, we use the
-    # versioned .so libs for executables only if there is the -brtl
-    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
-    # To allow for filename-based versioning support, we need to create
-    # libNAME.so.V as an archive file, containing:
-    # *) an Import File, referring to the versioned filename of the
-    #    archive as well as the shared archive member, telling the
-    #    bitwidth (32 or 64) of that shared object, and providing the
-    #    list of exported symbols of that shared object, eventually
-    #    decorated with the 'weak' keyword
-    # *) the shared object with the F_LOADONLY flag set, to really avoid
-    #    it being seen by the linker.
-    # At run time we better use the real file rather than another symlink,
-    # but for link time we create the symlink libNAME.so -> libNAME.so.V
-
-    case $with_aix_soname,$aix_use_runtimelinking in
-    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    aix,yes) # traditional libtool
-      dynamic_linker='AIX unversionable lib.so'
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-      ;;
-    aix,no) # traditional AIX only
-      dynamic_linker='AIX lib.a[(]lib.so.V[)]'
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='$libname$release.a $libname.a'
-      soname_spec='$libname$release$shared_ext$major'
-      ;;
-    svr4,*) # full svr4 only
-      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]"
-      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
-      # We do not specify a path in Import Files, so LIBPATH fires.
-      shlibpath_overrides_runpath=yes
-      ;;
-    *,yes) # both, prefer svr4
-      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]"
-      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
-      # unpreferred sharedlib libNAME.a needs extra handling
-      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
-      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
-      # We do not specify a path in Import Files, so LIBPATH fires.
-      shlibpath_overrides_runpath=yes
-      ;;
-    *,no) # both, prefer aix
-      dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]"
-      library_names_spec='$libname$release.a $libname.a'
-      soname_spec='$libname$release$shared_ext$major'
-      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
-      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
-      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
-      ;;
-    esac
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='$libname$shared_ext'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[[45]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=.dll
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$cc_basename in
-  yes,*)
-    # gcc
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \$file`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
-m4_if([$1], [],[
-      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
-      ;;
-    esac
-    dynamic_linker='Win32 ld.exe'
-    ;;
-
-  *,cl*)
-    # Native MSVC
-    libname_spec='$name'
-    soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
-    library_names_spec='$libname.dll.lib'
-
-    case $build_os in
-    mingw*)
-      sys_lib_search_path_spec=
-      lt_save_ifs=$IFS
-      IFS=';'
-      for lt_path in $LIB
-      do
-        IFS=$lt_save_ifs
-        # Let DOS variable expansion print the short 8.3 style file name.
-        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-      done
-      IFS=$lt_save_ifs
-      # Convert to MSYS style.
-      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
-      ;;
-    cygwin*)
-      # Convert to unix form, then to dos form, then back to unix form
-      # but this time dos style (no spaces!) so that the unix form looks
-      # like /cygdrive/c/PROGRA~1:/cygdr...
-      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      ;;
-    *)
-      sys_lib_search_path_spec=$LIB
-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      # FIXME: find the short name or the path components, as spaces are
-      # common. (e.g. "Program Files" -> "PROGRA~1")
-      ;;
-    esac
-
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \$file`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-    dynamic_linker='Win32 link.exe'
-    ;;
-
-  *)
-    # Assume MSVC wrapper
-    library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
-    dynamic_linker='Win32 ld.exe'
-    ;;
-  esac
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
-  soname_spec='$libname$release$major$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[[23]].*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-      soname_spec='$libname$release$shared_ext$major'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2.*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
-  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-haiku*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  dynamic_linker="$host_os runtime_loader"
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-    soname_spec='$libname$release$shared_ext$major'
-    if test 32 = "$HPUX_IA64_MODE"; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
-    fi
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-    soname_spec='$libname$release$shared_ext$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-    soname_spec='$libname$release$shared_ext$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
-  postinstall_cmds='chmod 555 $lib'
-  # or fails outright, so override atomically:
-  install_override_mode=555
-  ;;
-
-interix[[3-9]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test yes = "$lt_cv_prog_gnu_ld"; then
-		version_type=linux # correct to gnu/linux during the next big refactor
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='$libname$release$shared_ext$major'
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
-  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-linux*android*)
-  version_type=none # Android doesn't support versioned libraries.
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext'
-  soname_spec='$libname$release$shared_ext'
-  finish_cmds=
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  dynamic_linker='Android linker'
-  # Don't embed -rpath directories since the linker doesn't support them.
-  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-
-  # Some binutils ld are patched to set DT_RUNPATH
-  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
-    [lt_cv_shlibpath_overrides_runpath=no
-    save_LDFLAGS=$LDFLAGS
-    save_libdir=$libdir
-    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
-	 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
-    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
-	 [lt_cv_shlibpath_overrides_runpath=yes])])
-    LDFLAGS=$save_LDFLAGS
-    libdir=$save_libdir
-    ])
-  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Ideally, we could use ldconfig to report *all* directores which are
-  # searched for libraries, however this is still not possible.  Aside from not
-  # being certain /sbin/ldconfig is available, command
-  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
-  # even though it is searched at run-time.  Try to do the best guess by
-  # appending ld.so.conf contents (and includes) to the search path.
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-    soname_spec='$libname$release$shared_ext$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd* | bitrig*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec=/usr/lib
-  need_lib_prefix=no
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
-    need_version=no
-  else
-    need_version=yes
-  fi
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-os2*)
-  libname_spec='$name'
-  version_type=windows
-  shrext_cmds=.dll
-  need_version=no
-  need_lib_prefix=no
-  # OS/2 can only load a DLL with a base name of 8 characters or less.
-  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
-    v=$($ECHO $release$versuffix | tr -d .-);
-    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
-    $ECHO $n$v`$shared_ext'
-  library_names_spec='${libname}_dll.$libext'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=BEGINLIBPATH
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-  postinstall_cmds='base_file=`basename \$file`~
-    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
-    dldir=$destdir/`dirname \$dlpath`~
-    test -d \$dldir || mkdir -p \$dldir~
-    $install_prog $dir/$dlname \$dldir/$dlname~
-    chmod a+x \$dldir/$dlname~
-    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-    fi'
-  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
-    dlpath=$dir/\$dldll~
-    $RM \$dlpath'
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='$libname$release$shared_ext$major'
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test yes = "$with_gnu_ld"; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec; then
-    version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
-    soname_spec='$libname$shared_ext.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=sco
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test yes = "$with_gnu_ld"; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test no = "$dynamic_linker" && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test yes = "$GCC"; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
-  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
-fi
-
-if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
-  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
-fi
-
-# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
-configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
-
-# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
-func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
-
-# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
-configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
-
-_LT_DECL([], [variables_saved_for_relink], [1],
-    [Variables whose values should be saved in libtool wrapper scripts and
-    restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
-    [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
-    [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
-    [[List of archive names.  First name is the real one, the rest are links.
-    The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
-    [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [install_override_mode], [1],
-    [Permission mode override for installation of shared libraries])
-_LT_DECL([], [postinstall_cmds], [2],
-    [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
-    [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
-    [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
-    [[As "finish_cmds", except a single script fragment to be evaled but
-    not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
-    [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
-    [Compile-time system search path for libraries])
-_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2],
-    [Detected run-time system search path for libraries])
-_LT_DECL([], [configure_time_lt_sys_library_path], [2],
-    [Explicit LT_SYS_LIBRARY_PATH set during ./configure time])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program that can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD=$MAGIC_CMD
-  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="m4_if([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS=$lt_save_ifs
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$1"; then
-      lt_cv_path_MAGIC_CMD=$ac_dir/"$1"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD=$lt_cv_path_MAGIC_CMD
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS=$lt_save_ifs
-  MAGIC_CMD=$lt_save_MAGIC_CMD
-  ;;
-esac])
-MAGIC_CMD=$lt_cv_path_MAGIC_CMD
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
-	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program that can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-
-AC_ARG_WITH([gnu-ld],
-    [AS_HELP_STRING([--with-gnu-ld],
-	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test no = "$withval" || with_gnu_ld=yes],
-    [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test yes = "$GCC"; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return, which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD=$ac_prog
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test yes = "$with_gnu_ld"; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS=$lt_save_ifs
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD=$ac_dir/$ac_prog
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test no != "$with_gnu_ld" && break
-	;;
-      *)
-	test yes != "$with_gnu_ld" && break
-	;;
-      esac
-    fi
-  done
-  IFS=$lt_save_ifs
-else
-  lt_cv_path_LD=$LD # Let the user override the test with a path.
-fi])
-LD=$lt_cv_path_LD
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
-  lt_cv_ld_reload_flag,
-  [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    if test yes != "$GCC"; then
-      reload_cmds=false
-    fi
-    ;;
-  darwin*)
-    if test yes = "$GCC"; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_TAGDECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_PATH_DD
-# -----------
-# find a working dd
-m4_defun([_LT_PATH_DD],
-[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD],
-[printf 0123456789abcdef0123456789abcdef >conftest.i
-cat conftest.i conftest.i >conftest2.i
-: ${lt_DD:=$DD}
-AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd],
-[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
-  cmp -s conftest.i conftest.out \
-  && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
-fi])
-rm -f conftest.i conftest2.i conftest.out])
-])# _LT_PATH_DD
-
-
-# _LT_CMD_TRUNCATE
-# ----------------
-# find command to truncate a binary pipe
-m4_defun([_LT_CMD_TRUNCATE],
-[m4_require([_LT_PATH_DD])
-AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin],
-[printf 0123456789abcdef0123456789abcdef >conftest.i
-cat conftest.i conftest.i >conftest2.i
-lt_cv_truncate_bin=
-if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
-  cmp -s conftest.i conftest.out \
-  && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
-fi
-rm -f conftest.i conftest2.i conftest.out
-test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"])
-_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1],
-  [Command to truncate a binary pipe])
-])# _LT_CMD_TRUNCATE
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# 'unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# that responds to the $file_magic_cmd with a given extended regex.
-# If you have 'file' or equivalent on your system and you're not sure
-# whether 'pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi[[45]]*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-  # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-    lt_cv_file_magic_cmd='func_win32_libid'
-  else
-    # Keep this pattern in sync with the one in func_win32_libid.
-    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
-    lt_cv_file_magic_cmd='$OBJDUMP -f'
-  fi
-  ;;
-
-cegcc*)
-  # use the weaker test based on 'objdump'. See mingw*.
-  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | dragonfly*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-haiku*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix[[3-9]]*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-*nto* | *qnx*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-openbsd* | bitrig*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-tpf*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-os2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-])
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
-  case $host_os in
-  mingw* | pw32*)
-    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
-      want_nocaseglob=yes
-    else
-      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
-    fi
-    ;;
-  esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
-    [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
-    [Command to use when deplibs_check_method = "file_magic"])
-_LT_DECL([], [file_magic_glob], [1],
-    [How to find potential files when deplibs_check_method = "file_magic"])
-_LT_DECL([], [want_nocaseglob], [1],
-    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM=$NM
-else
-  lt_nm_to_check=${ac_tool_prefix}nm
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS=$lt_save_ifs
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm=$ac_dir/$lt_tmp_nm
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the 'sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	# Tru64's nm complains that /dev/null is an invalid object file
-	# MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
-	case $build_os in
-	mingw*) lt_bad_file=conftest.nm/nofile ;;
-	*) lt_bad_file=/dev/null ;;
-	esac
-	case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
-	*$lt_bad_file* | *'Invalid file or object type'*)
-	  lt_cv_path_NM="$tmp_nm -B"
-	  break 2
-	  ;;
-	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	  */dev/null*)
-	    lt_cv_path_NM="$tmp_nm -p"
-	    break 2
-	    ;;
-	  *)
-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	    continue # so that we can try to find one that supports BSD flags
-	    ;;
-	  esac
-	  ;;
-	esac
-      fi
-    done
-    IFS=$lt_save_ifs
-  done
-  : ${lt_cv_path_NM=no}
-fi])
-if test no != "$lt_cv_path_NM"; then
-  NM=$lt_cv_path_NM
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$DUMPBIN"; then :
-    # Let the user override the test.
-  else
-    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
-    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
-    *COFF*)
-      DUMPBIN="$DUMPBIN -symbols -headers"
-      ;;
-    *)
-      DUMPBIN=:
-      ;;
-    esac
-  fi
-  AC_SUBST([DUMPBIN])
-  if test : != "$DUMPBIN"; then
-    NM=$DUMPBIN
-  fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
-  [lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
-  cat conftest.out >&AS_MESSAGE_LOG_FD
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-# --------------------------------
-# how to determine the name of the shared library
-# associated with a specific link library.
-#  -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-m4_require([_LT_DECL_DLLTOOL])
-AC_CACHE_CHECK([how to associate runtime and link libraries],
-lt_cv_sharedlib_from_linklib_cmd,
-[lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh;
-  # decide which one to use based on capabilities of $DLLTOOL
-  case `$DLLTOOL --help 2>&1` in
-  *--identify-strict*)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
-    ;;
-  *)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
-    ;;
-  esac
-  ;;
-*)
-  # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd=$ECHO
-  ;;
-esac
-])
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
-    [Command to associate shared and link libraries])
-])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-
-
-# _LT_PATH_MANIFEST_TOOL
-# ----------------------
-# locate the manifest tool
-m4_defun([_LT_PATH_MANIFEST_TOOL],
-[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
-  [lt_cv_path_mainfest_tool=no
-  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
-  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
-    lt_cv_path_mainfest_tool=yes
-  fi
-  rm -f conftest*])
-if test yes != "$lt_cv_path_mainfest_tool"; then
-  MANIFEST_TOOL=:
-fi
-_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
-])# _LT_PATH_MANIFEST_TOOL
-
-
-# _LT_DLL_DEF_P([FILE])
-# ---------------------
-# True iff FILE is a Windows DLL '.def' file.
-# Keep in sync with func_dll_def_p in the libtool script
-AC_DEFUN([_LT_DLL_DEF_P],
-[dnl
-  test DEF = "`$SED -n dnl
-    -e '\''s/^[[	 ]]*//'\'' dnl Strip leading whitespace
-    -e '\''/^\(;.*\)*$/d'\'' dnl      Delete empty lines and comments
-    -e '\''s/^\(EXPORTS\|LIBRARY\)\([[	 ]].*\)*$/DEF/p'\'' dnl
-    -e q dnl                          Only consider the first "real" line
-    $1`" dnl
-])# _LT_DLL_DEF_P
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw)
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM=-lm)
-  ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test yes = "$GCC"; then
-  case $cc_basename in
-  nvcc*)
-    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
-  *)
-    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
-  esac
-
-  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-    lt_cv_prog_compiler_rtti_exceptions,
-    [-fno-rtti -fno-exceptions], [],
-    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
-	[Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[[BCDT]]'
-  ;;
-cygwin* | mingw* | pw32* | cegcc*)
-  symcode='[[ABCDGISTW]]'
-  ;;
-hpux*)
-  if test ia64 = "$host_cpu"; then
-    symcode='[[ABCDEGRST]]'
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[[BCDEGRST]]'
-  ;;
-osf*)
-  symcode='[[BCDEGQRST]]'
-  ;;
-solaris*)
-  symcode='[[BDRT]]'
-  ;;
-sco3.2v5*)
-  symcode='[[DT]]'
-  ;;
-sysv4.2uw2*)
-  symcode='[[DT]]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[[ABDT]]'
-  ;;
-sysv4)
-  symcode='[[DFNSTU]]'
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-  # Gets list of data symbols to import.
-  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
-  # Adjust the below global symbol transforms to fixup imported variables.
-  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
-  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
-  lt_c_name_lib_hook="\
-  -e 's/^I .* \(lib.*\)$/  {\"\1\", (void *) 0},/p'\
-  -e 's/^I .* \(.*\)$/  {\"lib\1\", (void *) 0},/p'"
-else
-  # Disable hooks by default.
-  lt_cv_sys_global_symbol_to_import=
-  lt_cdecl_hook=
-  lt_c_name_hook=
-  lt_c_name_lib_hook=
-fi
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n"\
-$lt_cdecl_hook\
-" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
-$lt_c_name_hook\
-" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
-
-# Transform an extracted symbol line into symbol name with lib prefix and
-# symbol address.
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
-$lt_c_name_lib_hook\
-" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
-" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"lib\1\", (void *) \&\1},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
-
-  # Write the raw and C identifiers.
-  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function,
-    # D for any global variable and I for any imported variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK ['"\
-"     {last_section=section; section=\$ 3};"\
-"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
-"     /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
-"     /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
-"     {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
-"     s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
-"     ' prfx=^$ac_symprfx]"
-  else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-  fi
-  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
-/* DATA imports from DLLs on WIN32 can't be const, because runtime
-   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-# define LT@&t@_DLSYM_CONST
-#elif defined __osf__
-/* This system does not cope well with relocations in const data.  */
-# define LT@&t@_DLSYM_CONST
-#else
-# define LT@&t@_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
-	  cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols.  */
-LT@&t@_DLSYM_CONST struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-	  $SED "s/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-	  cat <<\_LT_EOF >> conftest.$ac_ext
-  {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_globsym_save_LIBS=$LIBS
-	  lt_globsym_save_CFLAGS=$CFLAGS
-	  LIBS=conftstm.$ac_objext
-	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-	  if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then
-	    pipe_works=yes
-	  fi
-	  LIBS=$lt_globsym_save_LIBS
-	  CFLAGS=$lt_globsym_save_CFLAGS
-	else
-	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test yes = "$pipe_works"; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-  nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
-  nm_file_list_spec='@'
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
-    [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
-    [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1],
-    [Transform the output of nm into a list of symbols to manually relocate])
-_LT_DECL([global_symbol_to_c_name_address],
-    [lt_cv_sys_global_symbol_to_c_name_address], [1],
-    [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
-    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
-    [Transform the output of nm in a C name address pair when lib prefix is needed])
-_LT_DECL([nm_interface], [lt_cv_nm_interface], [1],
-    [The name lister interface])
-_LT_DECL([], [nm_file_list_spec], [1],
-    [Specify filename containing input files for $NM])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-m4_if([$1], [CXX], [
-  # C++ specific cases for pic, static, wl, etc.
-  if test yes = "$GXX"; then
-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test ia64 = "$host_cpu"; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the '-m68020' flag to GCC prevents building anything better,
-            # like '-m68040'.
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | cygwin* | os2* | pw32* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      case $host_os in
-      os2*)
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
-	;;
-      esac
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-      ;;
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)=
-      ;;
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-    *qnx* | *nto*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-    *)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix[[4-9]]*)
-	# All AIX code is PIC.
-	if test ia64 = "$host_cpu"; then
-	  # AIX 5 now supports IA64 processor
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	else
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68*)
-	  # Green Hills C++ Compiler
-	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      mingw* | cygwin* | os2* | pw32* | cegcc*)
-	# This hack is so that the source file can tell whether it is being
-	# built for inclusion in a dll (and should export symbols for example).
-	m4_if([$1], [GCJ], [],
-	  [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++*)
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  ghcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | dragonfly*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
-	    if test ia64 != "$host_cpu"; then
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	    fi
-	    ;;
-	  aCC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
-	    case $host_cpu in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      interix*)
-	# This is c89, which is MS Visual C++ (no shared libs)
-	# Anyone wants to do a port?
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  ecpc* )
-	    # old Intel C++ for x86_64, which still supported -KPIC.
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  icpc* )
-	    # Intel C++, used to be incompatible with GCC.
-	    # ICC 10 doesn't accept -KPIC any more.
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  pgCC* | pgcpp*)
-	    # Portland Group C++ compiler
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  cxx*)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
-	    # IBM XL 8.0, 9.0 on PPC and BlueGene
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd*)
-	;;
-      *qnx* | *nto*)
-        # QNX uses GNU C++, but need to define -shared option too, otherwise
-        # it will coredump.
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-        ;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    ;;
-	  RCC*)
-	    # Rational C++ 2.4.1
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  cxx*)
-	    # Digital/Compaq C++
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	    ;;
-	  gcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.x
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  lcc*)
-	    # Lucid
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      vxworks*)
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-	;;
-    esac
-  fi
-],
-[
-  if test yes = "$GCC"; then
-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test ia64 = "$host_cpu"; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the '-m68020' flag to GCC prevents building anything better,
-            # like '-m68040'.
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      case $host_os in
-      os2*)
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
-	;;
-      esac
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)=
-      ;;
-
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	# +Z the default
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      enable_shared=no
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-
-    *)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-
-    case $cc_basename in
-    nvcc*) # Cuda Compiler Driver 2.2
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
-      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
-      fi
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test ia64 = "$host_cpu"; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      else
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      case $cc_basename in
-      nagfor*)
-        # NAG Fortran compiler
-        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-        ;;
-      esac
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      case $host_os in
-      os2*)
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
-	;;
-      esac
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC (with -KPIC) is the default.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
-      case $cc_basename in
-      # old Intel for x86_64, which still supported -KPIC.
-      ecc*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      # icc used to be incompatible with GCC.
-      # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      # Lahey Fortran 8.1.
-      lf95*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
-	;;
-      nagfor*)
-	# NAG Fortran compiler
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	;;
-      tcc*)
-	# Fabrice Bellard et al's Tiny C Compiler
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	;;
-      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-        ;;
-      ccc*)
-        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-        # All Alpha code is PIC.
-        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-        ;;
-      xl* | bgxl* | bgf* | mpixl*)
-	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-	;;
-      *)
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
-	  ;;
-	*Sun\ F* | *Sun*Fortran*)
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	  ;;
-	*Sun\ C*)
-	  # Sun C 5.9
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  ;;
-        *Intel*\ [[CF]]*Compiler*)
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	  ;;
-	*Portland\ Group*)
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  ;;
-	esac
-	;;
-      esac
-      ;;
-
-    newsos6)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # All OSF/1 code is PIC.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    rdos*)
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    solaris*)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    unicos*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-
-    uts4*)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *)
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-    esac
-  fi
-])
-case $host_os in
-  # For platforms that do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-    ;;
-  *)
-    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
-    ;;
-esac
-
-AC_CACHE_CHECK([for $compiler option to produce PIC],
-  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
-  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
-  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
-    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
-    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
-    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
-     "" | " "*) ;;
-     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-     esac],
-    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
-	[Additional compiler flags for building library objects])
-
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-	[How to pass a linker flag through the compiler])
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
-  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
-  $lt_tmp_static_flag,
-  [],
-  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
-	[Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-  case $host_os in
-  aix[[4-9]]*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to GNU nm, but means don't demangle to AIX nm.
-    # Without the "-l" option, or with the "-B" option, AIX nm treats
-    # weak defined symbols like other global defined symbols, whereas
-    # GNU nm marks them as "W".
-    # While the 'weak' keyword is ignored in the Export File, we need
-    # it in the Import File for the 'aix-soname' feature, so we have
-    # to replace the "-B" option with "-P" for AIX nm.
-    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
-    else
-      _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
-    ;;
-  cygwin* | mingw* | cegcc*)
-    case $cc_basename in
-    cl*)
-      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-      ;;
-    *)
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-      ;;
-    esac
-    ;;
-  *)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-    ;;
-  esac
-], [
-  runpath_var=
-  _LT_TAGVAR(allow_undefined_flag, $1)=
-  _LT_TAGVAR(always_export_symbols, $1)=no
-  _LT_TAGVAR(archive_cmds, $1)=
-  _LT_TAGVAR(archive_expsym_cmds, $1)=
-  _LT_TAGVAR(compiler_needs_object, $1)=no
-  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  _LT_TAGVAR(hardcode_automatic, $1)=no
-  _LT_TAGVAR(hardcode_direct, $1)=no
-  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
-  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-  _LT_TAGVAR(hardcode_minus_L, $1)=no
-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(inherit_rpath, $1)=no
-  _LT_TAGVAR(link_all_deplibs, $1)=unknown
-  _LT_TAGVAR(module_cmds, $1)=
-  _LT_TAGVAR(module_expsym_cmds, $1)=
-  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
-  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-  _LT_TAGVAR(thread_safe_flag_spec, $1)=
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  _LT_TAGVAR(include_expsyms, $1)=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ' (' and ')$', so one must not match beginning or
-  # end of line.  Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
-  # as well as any symbol that contains 'd'.
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test yes != "$GCC"; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd* | bitrig*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  _LT_TAGVAR(ld_shlibs, $1)=yes
-
-  # On some targets, GNU ld is compatible enough with the native linker
-  # that we're better off using the native interface for both.
-  lt_use_gnu_ld_interface=no
-  if test yes = "$with_gnu_ld"; then
-    case $host_os in
-      aix*)
-	# The AIX port of GNU ld has always aspired to compatibility
-	# with the native linker.  However, as the warning in the GNU ld
-	# block says, versions before 2.19.5* couldn't really create working
-	# shared libraries, regardless of the interface used.
-	case `$LD -v 2>&1` in
-	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
-	  *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
-	  *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
-	  *)
-	    lt_use_gnu_ld_interface=yes
-	    ;;
-	esac
-	;;
-      *)
-	lt_use_gnu_ld_interface=yes
-	;;
-    esac
-  fi
-
-  if test yes = "$lt_use_gnu_ld_interface"; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='$wl'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
-    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
-    else
-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
-      *GNU\ gold*) supports_anon_versioning=yes ;;
-      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-      *\ 2.11.*) ;; # other 2.11 versions
-      *) supports_anon_versioning=yes ;;
-    esac
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix[[3-9]]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test ia64 != "$host_cpu"; then
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-        ;;
-      m68k)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-        ;;
-      esac
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-      # as there is no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(always_export_symbols, $1)=no
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-
-      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file, use it as
-	# is; otherwise, prepend EXPORTS...
-	_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
-          cp $export_symbols $output_objdir/$soname.def;
-        else
-          echo EXPORTS > $output_objdir/$soname.def;
-          cat $export_symbols >> $output_objdir/$soname.def;
-        fi~
-        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    haiku*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    os2*)
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      shrext_cmds=.dll
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
-	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
-	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
-	$ECHO EXPORTS >> $output_objdir/$libname.def~
-	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
-	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
-	emximp -o $lib $output_objdir/$libname.def'
-      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
-	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
-	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
-	$ECHO EXPORTS >> $output_objdir/$libname.def~
-	prefix_cmds="$SED"~
-	if test EXPORTS = "`$SED 1q $export_symbols`"; then
-	  prefix_cmds="$prefix_cmds -e 1d";
-	fi~
-	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
-	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
-	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
-	emximp -o $lib $output_objdir/$libname.def'
-      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      ;;
-
-    interix[[3-9]]*)
-      _LT_TAGVAR(hardcode_direct, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-      # Instead, shared libraries are loaded at an image base (0x10000000 by
-      # default) and relocated if they conflict, which is a slow very memory
-      # consuming and fragmenting process.  To avoid this, we pick a random,
-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      ;;
-
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-      tmp_diet=no
-      if test linux-dietlibc = "$host_os"; then
-	case $cc_basename in
-	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-	esac
-      fi
-      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test no = "$tmp_diet"
-      then
-	tmp_addflag=' $pic_flag'
-	tmp_sharedflag='-shared'
-	case $cc_basename,$host_cpu in
-        pgcc*)				# Portland Group C compiler
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95* | pgfortran*)
-					# Portland Group f77 and f90 compilers
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	lf95*)				# Lahey Fortran 8.1
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-	  tmp_sharedflag='--shared' ;;
-        nagfor*)                        # NAGFOR 5.3
-          tmp_sharedflag='-Wl,-shared' ;;
-	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
-	  tmp_sharedflag='-qmkshrobj'
-	  tmp_addflag= ;;
-	nvcc*)	# Cuda Compiler Driver 2.2
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
-	  ;;
-	esac
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)			# Sun C 5.9
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
-	  tmp_sharedflag='-G' ;;
-	*Sun\ F*)			# Sun Fortran 8.3
-	  tmp_sharedflag='-G' ;;
-	esac
-	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-
-        if test yes = "$supports_anon_versioning"; then
-          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-            echo "local: *; };" >> $output_objdir/$libname.ver~
-            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
-        fi
-
-	case $cc_basename in
-	tcc*)
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic'
-	  ;;
-	xlf* | bgf* | bgxlf* | mpixlf*)
-	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-	  if test yes = "$supports_anon_versioning"; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-              echo "local: *; };" >> $output_objdir/$libname.ver~
-              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-	  fi
-	  ;;
-	esac
-      else
-        _LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-	;;
-	*)
-	  # For security reasons, it is highly recommended that you always
-	  # use absolute paths for naming shared libraries, and exclude the
-	  # DT_RUNPATH tag from executables and libraries.  But doing so
-	  # requires that you compile everything twice, which is a pain.
-	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-	  else
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-
-    if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then
-      runpath_var=
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(always_export_symbols, $1)=yes
-      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	_LT_TAGVAR(hardcode_direct, $1)=unsupported
-      fi
-      ;;
-
-    aix[[4-9]]*)
-      if test ia64 = "$host_cpu"; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to GNU nm, but means don't demangle to AIX nm.
-	# Without the "-l" option, or with the "-B" option, AIX nm treats
-	# weak defined symbols like other global defined symbols, whereas
-	# GNU nm marks them as "W".
-	# While the 'weak' keyword is ignored in the Export File, we need
-	# it in the Import File for the 'aix-soname' feature, so we have
-	# to replace the "-B" option with "-P" for AIX nm.
-	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
-	else
-	  _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# have runtime linking enabled, and use it for executables.
-	# For shared libraries, we enable/disable runtime linking
-	# depending on the kind of the shared library created -
-	# when "with_aix_soname,aix_use_runtimelinking" is:
-	# "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
-	# "aix,yes"  lib.so          shared, rtl:yes, for executables
-	#            lib.a           static archive
-	# "both,no"  lib.so.V(shr.o) shared, rtl:yes
-	#            lib.a(lib.so.V) shared, rtl:no,  for executables
-	# "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
-	#            lib.a(lib.so.V) shared, rtl:no
-	# "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
-	#            lib.a           static archive
-	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-	  for ld_flag in $LDFLAGS; do
-	  if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
-	    aix_use_runtimelinking=yes
-	    break
-	  fi
-	  done
-	  if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
-	    # With aix-soname=svr4, we create the lib.so.V shared archives only,
-	    # so we don't have lib.a shared libs to link our executables.
-	    # We have to force runtime linking in this case.
-	    aix_use_runtimelinking=yes
-	    LDFLAGS="$LDFLAGS -Wl,-brtl"
-	  fi
-	  ;;
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      _LT_TAGVAR(archive_cmds, $1)=''
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
-      case $with_aix_soname,$aix_use_runtimelinking in
-      aix,*) ;; # traditional, no import file
-      svr4,* | *,yes) # use import file
-	# The Import File defines what to hardcode.
-	_LT_TAGVAR(hardcode_direct, $1)=no
-	_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-	;;
-      esac
-
-      if test yes = "$GCC"; then
-	case $host_os in aix4.[[012]]|aix4.[[012]].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`$CC -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	  # We have reworked collect2
-	  :
-	  else
-	  # We have old collect2
-	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-	  ;;
-	esac
-	shared_flag='-shared'
-	if test yes = "$aix_use_runtimelinking"; then
-	  shared_flag="$shared_flag "'$wl-G'
-	fi
-	# Need to ensure runtime linking is disabled for the traditional
-	# shared library, or the linker may eventually find shared libraries
-	# /with/ Import File - we do not want to mix them.
-	shared_flag_aix='-shared'
-	shared_flag_svr4='-shared $wl-G'
-      else
-	# not using gcc
-	if test ia64 = "$host_cpu"; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-	  if test yes = "$aix_use_runtimelinking"; then
-	    shared_flag='$wl-G'
-	  else
-	    shared_flag='$wl-bM:SRE'
-	  fi
-	  shared_flag_aix='$wl-bM:SRE'
-	  shared_flag_svr4='$wl-G'
-	fi
-      fi
-
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      _LT_TAGVAR(always_export_symbols, $1)=yes
-      if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
-        # Determine the default libpath from the value encoded in an
-        # empty executable.
-        _LT_SYS_MODULE_PATH_AIX([$1])
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
-      else
-	if test ia64 = "$host_cpu"; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
-	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an
-	 # empty executable.
-	 _LT_SYS_MODULE_PATH_AIX([$1])
-	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
-	  _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
-	  if test yes = "$with_gnu_ld"; then
-	    # We only use this code for GNU lds that support --whole-archive.
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
-	  else
-	    # Exported symbols can be pulled into shared objects from archives
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	  fi
-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
-	  # -brtl affects multiple linker settings, -berok does not and is overridden later
-	  compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
-	  if test svr4 != "$with_aix_soname"; then
-	    # This is similar to how AIX traditionally builds its shared libraries.
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
-	  fi
-	  if test aix != "$with_aix_soname"; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
-	  else
-	    # used by -dlpreopen to get the symbols
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
-	  fi
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-        ;;
-      m68k)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-        ;;
-      esac
-      ;;
-
-    bsdi[[45]]*)
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      case $cc_basename in
-      cl*)
-	# Native MSVC
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	_LT_TAGVAR(always_export_symbols, $1)=yes
-	_LT_TAGVAR(file_list_spec, $1)='@'
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=.dll
-	# FIXME: Setting linknames here is a bad hack.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -Fe $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
-	_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
-            cp "$export_symbols" "$output_objdir/$soname.def";
-            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
-          else
-            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
-          fi~
-          $CC -Fe $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-          linknames='
-	# The linker will not automatically build a static lib if we build a DLL.
-	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-	_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
-	# Don't use ranlib
-	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-	_LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-          lt_tool_outputfile="@TOOL_OUTPUT@"~
-          case $lt_outputfile in
-            *.exe|*.EXE) ;;
-            *)
-              lt_outputfile=$lt_outputfile.exe
-              lt_tool_outputfile=$lt_tool_outputfile.exe
-              ;;
-          esac~
-          if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
-            $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-            $RM "$lt_outputfile.manifest";
-          fi'
-	;;
-      *)
-	# Assume MSVC wrapper
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=.dll
-	# FIXME: Setting linknames here is a bad hack.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-	# The linker will automatically build a .lib file if we build a DLL.
-	_LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	# FIXME: Should let the user specify the lib program.
-	_LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	;;
-      esac
-      ;;
-
-    darwin* | rhapsody*)
-      _LT_DARWIN_LINKER_FEATURES($1)
-      ;;
-
-    dgux*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2.*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    hpux9*)
-      if test yes = "$GCC"; then
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
-      ;;
-
-    hpux10*)
-      if test yes,no = "$GCC,$with_gnu_ld"; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test no = "$with_gnu_ld"; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-	_LT_TAGVAR(hardcode_direct, $1)=yes
-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	_LT_TAGVAR(hardcode_minus_L, $1)=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test yes,no = "$GCC,$with_gnu_ld"; then
-	case $host_cpu in
-	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	m4_if($1, [], [
-	  # Older versions of the 11.00 compiler do not understand -b yet
-	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
-	  _LT_LINKER_OPTION([if $CC understands -b],
-	    _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
-	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
-	    [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
-	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
-	  ;;
-	esac
-      fi
-      if test no = "$with_gnu_ld"; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  _LT_TAGVAR(hardcode_direct, $1)=no
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  ;;
-	*)
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test yes = "$GCC"; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
-	# Try to use the -exported_symbol ld option, if it does not
-	# work, assume that -exports_file does not work either and
-	# implicitly export all symbols.
-	# This should be the same for all languages, so no per-tag cache variable.
-	AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
-	  [lt_cv_irix_exported_symbol],
-	  [save_LDFLAGS=$LDFLAGS
-	   LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
-	   AC_LINK_IFELSE(
-	     [AC_LANG_SOURCE(
-	        [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
-			      [C++], [[int foo (void) { return 0; }]],
-			      [Fortran 77], [[
-      subroutine foo
-      end]],
-			      [Fortran], [[
-      subroutine foo
-      end]])])],
-	      [lt_cv_irix_exported_symbol=yes],
-	      [lt_cv_irix_exported_symbol=no])
-           LDFLAGS=$save_LDFLAGS])
-	if test yes = "$lt_cv_irix_exported_symbol"; then
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
-	fi
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(inherit_rpath, $1)=yes
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    linux*)
-      case $cc_basename in
-      tcc*)
-	# Fabrice Bellard et al's Tiny C Compiler
-	_LT_TAGVAR(ld_shlibs, $1)=yes
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	;;
-      esac
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    newsos6)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *nto* | *qnx*)
-      ;;
-
-    openbsd* | bitrig*)
-      if test -f /usr/libexec/ld.so; then
-	_LT_TAGVAR(hardcode_direct, $1)=yes
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
-	else
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
-	fi
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    os2*)
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      shrext_cmds=.dll
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
-	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
-	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
-	$ECHO EXPORTS >> $output_objdir/$libname.def~
-	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
-	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
-	emximp -o $lib $output_objdir/$libname.def'
-      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
-	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
-	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
-	$ECHO EXPORTS >> $output_objdir/$libname.def~
-	prefix_cmds="$SED"~
-	if test EXPORTS = "`$SED 1q $export_symbols`"; then
-	  prefix_cmds="$prefix_cmds -e 1d";
-	fi~
-	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
-	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
-	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
-	emximp -o $lib $output_objdir/$libname.def'
-      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      ;;
-
-    osf3*)
-      if test yes = "$GCC"; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
-      else
-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test yes = "$GCC"; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
-      else
-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-          $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    solaris*)
-      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
-      if test yes = "$GCC"; then
-	wlarc='$wl'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-      else
-	case `$CC -V 2>&1` in
-	*"Compilers 5.0"*)
-	  wlarc=''
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-            $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
-	  ;;
-	*)
-	  wlarc='$wl'
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-            $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-	  ;;
-	esac
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      case $host_os in
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-      *)
-	# The compiler driver will combine and reorder linker options,
-	# but understands '-z linker_flag'.  GCC discards it without '$wl',
-	# but is careful enough not to reorder.
-	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test yes = "$GCC"; then
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
-	else
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-	fi
-	;;
-      esac
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    sunos4*)
-      if test sequent = "$host_vendor"; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-	  _LT_TAGVAR(hardcode_direct, $1)=no
-        ;;
-	motorola)
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4.3*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	_LT_TAGVAR(ld_shlibs, $1)=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      if test yes = "$GCC"; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We CANNOT use -z defs as we might desire, because we do not
-      # link with -lc, and that would cause any symbols used from libc to
-      # always be unresolved, which means just about no library would
-      # ever link correctly.  If we're not using GNU ld we use -z text
-      # though, which does catch some bad symbols but isn't as heavy-handed
-      # as -z defs.
-      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
-      _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test yes = "$GCC"; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    esac
-
-    if test sni = "$host_vendor"; then
-      case $host in
-      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym'
-	;;
-      esac
-    fi
-  fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
-    [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
-  # Assume -lc should be added
-  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
-  if test yes,yes = "$GCC,$enable_shared"; then
-    case $_LT_TAGVAR(archive_cmds, $1) in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
-	[lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
-	[$RM conftest*
-	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-	if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-	  soname=conftest
-	  lib=conftest
-	  libobjs=conftest.$ac_objext
-	  deplibs=
-	  wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
-	  pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
-	  compiler_flags=-v
-	  linker_flags=-v
-	  verstring=
-	  output_objdir=.
-	  libname=conftest
-	  lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
-	  _LT_TAGVAR(allow_undefined_flag, $1)=
-	  if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
-	  then
-	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	  else
-	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  fi
-	  _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-	else
-	  cat conftest.err 1>&5
-	fi
-	$RM conftest*
-	])
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
-    [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
-    [enable_shared_with_static_runtimes], [0],
-    [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
-    [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
-    [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
-    [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
-    [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
-    [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
-    [Commands used to build a loadable module if different from building
-    a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
-    [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
-    [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
-    [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
-    [Flag to hardcode $libdir into a binary during linking.
-    This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
-    [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
-    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
-    DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
-    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
-    DIR into the resulting binary and the resulting library dependency is
-    "absolute", i.e impossible to change by setting $shlibpath_var if the
-    library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
-    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-    into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
-    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-    into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
-    [Set to "yes" if building a shared library automatically hardcodes DIR
-    into the library and all subsequent libraries and executables linked
-    against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
-    [Set to yes if linker adds runtime paths of dependent libraries
-    to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
-    [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [always_export_symbols], [0],
-    [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
-    [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
-    [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
-    [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
-    [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [postlink_cmds], [2],
-    [Commands necessary for finishing linking programs])
-_LT_TAGDECL([], [file_list_spec], [1],
-    [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl    [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC=$CC
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_SYS_DYNAMIC_LINKER($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-  LT_SYS_DLOPEN_SELF
-  _LT_CMD_STRIPLIB
-
-  # Report what library types will actually be built
-  AC_MSG_CHECKING([if libtool supports shared libraries])
-  AC_MSG_RESULT([$can_build_shared])
-
-  AC_MSG_CHECKING([whether to build shared libraries])
-  test no = "$can_build_shared" && enable_shared=no
-
-  # On AIX, shared libraries and static libraries use the same namespace, and
-  # are all built from PIC.
-  case $host_os in
-  aix3*)
-    test yes = "$enable_shared" && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
-    fi
-    ;;
-
-  aix[[4-9]]*)
-    if test ia64 != "$host_cpu"; then
-      case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
-      yes,aix,yes) ;;			# shared object as lib.so file only
-      yes,svr4,*) ;;			# shared object as lib.so archive member only
-      yes,*) enable_static=no ;;	# shared object in lib.a archive as well
-      esac
-    fi
-    ;;
-  esac
-  AC_MSG_RESULT([$enable_shared])
-
-  AC_MSG_CHECKING([whether to build static libraries])
-  # Make sure either enable_shared or enable_static is yes.
-  test yes = "$enable_shared" || enable_static=yes
-  AC_MSG_RESULT([$enable_static])
-
-  _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC=$lt_save_CC
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test no != "$CXX" &&
-    ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
-    (test g++ != "$CXX"))); then
-  AC_PROG_CXXCPP
-else
-  _lt_caught_CXX_error=yes
-fi
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test yes != "$_lt_caught_CXX_error"; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="int some_variable = 0;"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_CFLAGS=$CFLAGS
-  lt_save_LD=$LD
-  lt_save_GCC=$GCC
-  GCC=$GXX
-  lt_save_with_gnu_ld=$with_gnu_ld
-  lt_save_path_LD=$lt_cv_path_LD
-  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-  else
-    $as_unset lt_cv_prog_gnu_ld
-  fi
-  if test -n "${lt_cv_path_LDCXX+set}"; then
-    lt_cv_path_LD=$lt_cv_path_LDCXX
-  else
-    $as_unset lt_cv_path_LD
-  fi
-  test -z "${LDCXX+set}" || LD=$LDCXX
-  CC=${CXX-"c++"}
-  CFLAGS=$CXXFLAGS
-  compiler=$CC
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test yes = "$GXX"; then
-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-    else
-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-    fi
-
-    if test yes = "$GXX"; then
-      # Set up default GNU C++ configuration
-
-      LT_PATH_LD
-
-      # Check if GNU C++ uses GNU ld as the underlying linker, since the
-      # archiving commands below assume that GNU ld is being used.
-      if test yes = "$with_gnu_ld"; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
-
-        # If archive_cmds runs LD, not CC, wlarc should be empty
-        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-        #     investigate it a little bit more. (MM)
-        wlarc='$wl'
-
-        # ancient GNU ld didn't support --whole-archive et. al.
-        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
-	  $GREP 'no-whole-archive' > /dev/null; then
-          _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
-        else
-          _LT_TAGVAR(whole_archive_flag_spec, $1)=
-        fi
-      else
-        with_gnu_ld=no
-        wlarc=
-
-        # A generic and very simple default shared library creation
-        # command for GNU C++ for the case where it uses the native
-        # linker, instead of GNU ld.  If possible, this setting should
-        # overridden to take advantage of the native linker features on
-        # the platform it is being used on.
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-      fi
-
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-    else
-      GXX=no
-      with_gnu_ld=no
-      wlarc=
-    fi
-
-    # PORTME: fill in a description of your system's C++ link characteristics
-    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-    _LT_TAGVAR(ld_shlibs, $1)=yes
-    case $host_os in
-      aix3*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-      aix[[4-9]]*)
-        if test ia64 = "$host_cpu"; then
-          # On IA64, the linker does run time linking by default, so we don't
-          # have to do anything special.
-          aix_use_runtimelinking=no
-          exp_sym_flag='-Bexport'
-          no_entry_flag=
-        else
-          aix_use_runtimelinking=no
-
-          # Test if we are trying to use run time linking or normal
-          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # have runtime linking enabled, and use it for executables.
-          # For shared libraries, we enable/disable runtime linking
-          # depending on the kind of the shared library created -
-          # when "with_aix_soname,aix_use_runtimelinking" is:
-          # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
-          # "aix,yes"  lib.so          shared, rtl:yes, for executables
-          #            lib.a           static archive
-          # "both,no"  lib.so.V(shr.o) shared, rtl:yes
-          #            lib.a(lib.so.V) shared, rtl:no,  for executables
-          # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
-          #            lib.a(lib.so.V) shared, rtl:no
-          # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
-          #            lib.a           static archive
-          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-	    for ld_flag in $LDFLAGS; do
-	      case $ld_flag in
-	      *-brtl*)
-	        aix_use_runtimelinking=yes
-	        break
-	        ;;
-	      esac
-	    done
-	    if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
-	      # With aix-soname=svr4, we create the lib.so.V shared archives only,
-	      # so we don't have lib.a shared libs to link our executables.
-	      # We have to force runtime linking in this case.
-	      aix_use_runtimelinking=yes
-	      LDFLAGS="$LDFLAGS -Wl,-brtl"
-	    fi
-	    ;;
-          esac
-
-          exp_sym_flag='-bexport'
-          no_entry_flag='-bnoentry'
-        fi
-
-        # When large executables or shared objects are built, AIX ld can
-        # have problems creating the table of contents.  If linking a library
-        # or program results in "error TOC overflow" add -mminimal-toc to
-        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-        _LT_TAGVAR(archive_cmds, $1)=''
-        _LT_TAGVAR(hardcode_direct, $1)=yes
-        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-        _LT_TAGVAR(link_all_deplibs, $1)=yes
-        _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
-        case $with_aix_soname,$aix_use_runtimelinking in
-        aix,*) ;;	# no import file
-        svr4,* | *,yes) # use import file
-          # The Import File defines what to hardcode.
-          _LT_TAGVAR(hardcode_direct, $1)=no
-          _LT_TAGVAR(hardcode_direct_absolute, $1)=no
-          ;;
-        esac
-
-        if test yes = "$GXX"; then
-          case $host_os in aix4.[[012]]|aix4.[[012]].*)
-          # We only want to do this on AIX 4.2 and lower, the check
-          # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`$CC -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	    # We have reworked collect2
-	    :
-	  else
-	    # We have old collect2
-	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
-	    # It fails to find uninstalled libraries when the uninstalled
-	    # path is not listed in the libpath.  Setting hardcode_minus_L
-	    # to unsupported forces relinking
-	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-          esac
-          shared_flag='-shared'
-	  if test yes = "$aix_use_runtimelinking"; then
-	    shared_flag=$shared_flag' $wl-G'
-	  fi
-	  # Need to ensure runtime linking is disabled for the traditional
-	  # shared library, or the linker may eventually find shared libraries
-	  # /with/ Import File - we do not want to mix them.
-	  shared_flag_aix='-shared'
-	  shared_flag_svr4='-shared $wl-G'
-        else
-          # not using gcc
-          if test ia64 = "$host_cpu"; then
-	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	  # chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-          else
-	    if test yes = "$aix_use_runtimelinking"; then
-	      shared_flag='$wl-G'
-	    else
-	      shared_flag='$wl-bM:SRE'
-	    fi
-	    shared_flag_aix='$wl-bM:SRE'
-	    shared_flag_svr4='$wl-G'
-          fi
-        fi
-
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
-        # It seems that -bexpall does not export symbols beginning with
-        # underscore (_), so it is better to generate a list of symbols to
-	# export.
-        _LT_TAGVAR(always_export_symbols, $1)=yes
-	if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          # The "-G" linker flag allows undefined symbols.
-          _LT_TAGVAR(no_undefined_flag, $1)='-bernotok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          _LT_SYS_MODULE_PATH_AIX([$1])
-          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
-
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
-        else
-          if test ia64 = "$host_cpu"; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
-	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
-          else
-	    # Determine the default libpath from the value encoded in an
-	    # empty executable.
-	    _LT_SYS_MODULE_PATH_AIX([$1])
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
-	    # Warning - without using the other run time loading flags,
-	    # -berok will link without error, but may produce a broken library.
-	    _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
-	    _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
-	    if test yes = "$with_gnu_ld"; then
-	      # We only use this code for GNU lds that support --whole-archive.
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
-	    else
-	      # Exported symbols can be pulled into shared objects from archives
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	    fi
-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
-	    # -brtl affects multiple linker settings, -berok does not and is overridden later
-	    compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
-	    if test svr4 != "$with_aix_soname"; then
-	      # This is similar to how AIX traditionally builds its shared
-	      # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
-	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
-	    fi
-	    if test aix != "$with_aix_soname"; then
-	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
-	    else
-	      # used by -dlpreopen to get the symbols
-	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
-	    fi
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
-          fi
-        fi
-        ;;
-
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-	else
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-
-      chorus*)
-        case $cc_basename in
-          *)
-	  # FIXME: insert proper C++ library support
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	  ;;
-        esac
-        ;;
-
-      cygwin* | mingw* | pw32* | cegcc*)
-	case $GXX,$cc_basename in
-	,cl* | no,cl*)
-	  # Native MSVC
-	  # hardcode_libdir_flag_spec is actually meaningless, as there is
-	  # no search path for DLLs.
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  _LT_TAGVAR(always_export_symbols, $1)=yes
-	  _LT_TAGVAR(file_list_spec, $1)='@'
-	  # Tell ltmain to make .lib files, not .a files.
-	  libext=lib
-	  # Tell ltmain to make .dll files, not .so files.
-	  shrext_cmds=.dll
-	  # FIXME: Setting linknames here is a bad hack.
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
-              cp "$export_symbols" "$output_objdir/$soname.def";
-              echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
-            else
-              $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
-            fi~
-            $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-            linknames='
-	  # The linker will not automatically build a static lib if we build a DLL.
-	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	  # Don't use ranlib
-	  _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-	  _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-            lt_tool_outputfile="@TOOL_OUTPUT@"~
-            case $lt_outputfile in
-              *.exe|*.EXE) ;;
-              *)
-                lt_outputfile=$lt_outputfile.exe
-                lt_tool_outputfile=$lt_tool_outputfile.exe
-                ;;
-            esac~
-            func_to_tool_file "$lt_outputfile"~
-            if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
-              $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-              $RM "$lt_outputfile.manifest";
-            fi'
-	  ;;
-	*)
-	  # g++
-	  # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-	  # as there is no search path for DLLs.
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  _LT_TAGVAR(always_export_symbols, $1)=no
-	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	    # If the export-symbols file already is a .def file, use it as
-	    # is; otherwise, prepend EXPORTS...
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
-              cp $export_symbols $output_objdir/$soname.def;
-            else
-              echo EXPORTS > $output_objdir/$soname.def;
-              cat $export_symbols >> $output_objdir/$soname.def;
-            fi~
-            $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	  else
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	  fi
-	  ;;
-	esac
-	;;
-      darwin* | rhapsody*)
-        _LT_DARWIN_LINKER_FEATURES($1)
-	;;
-
-      os2*)
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	_LT_TAGVAR(hardcode_minus_L, $1)=yes
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	shrext_cmds=.dll
-	_LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
-	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
-	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
-	  $ECHO EXPORTS >> $output_objdir/$libname.def~
-	  emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
-	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
-	  emximp -o $lib $output_objdir/$libname.def'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
-	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
-	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
-	  $ECHO EXPORTS >> $output_objdir/$libname.def~
-	  prefix_cmds="$SED"~
-	  if test EXPORTS = "`$SED 1q $export_symbols`"; then
-	    prefix_cmds="$prefix_cmds -e 1d";
-	  fi~
-	  prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
-	  cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
-	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
-	  emximp -o $lib $output_objdir/$libname.def'
-	_LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
-	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	;;
-
-      dgux*)
-        case $cc_basename in
-          ec++*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          ghcx*)
-	    # Green Hills C++ Compiler
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      freebsd2.*)
-        # C++ shared libraries reported to be fairly broken before
-	# switch to ELF
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      freebsd-elf*)
-        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-        ;;
-
-      freebsd* | dragonfly*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        _LT_TAGVAR(ld_shlibs, $1)=yes
-        ;;
-
-      haiku*)
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-        _LT_TAGVAR(link_all_deplibs, $1)=yes
-        ;;
-
-      hpux9*)
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
-        _LT_TAGVAR(hardcode_direct, $1)=yes
-        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-				             # but as the default
-				             # location of the library.
-
-        case $cc_basename in
-          CC*)
-            # FIXME: insert proper C++ library support
-            _LT_TAGVAR(ld_shlibs, $1)=no
-            ;;
-          aCC*)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
-            # Commands to make compiler produce verbose output that lists
-            # what "hidden" libraries, object files and flags are used when
-            # linking a shared library.
-            #
-            # There doesn't appear to be a way to prevent this compiler from
-            # explicitly linking system object files so we need to strip them
-            # from the output so that they don't get included in the library
-            # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-            ;;
-          *)
-            if test yes = "$GXX"; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              _LT_TAGVAR(ld_shlibs, $1)=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test no = "$with_gnu_ld"; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-          case $host_cpu in
-            hppa*64*|ia64*)
-              ;;
-            *)
-	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
-              ;;
-          esac
-        fi
-        case $host_cpu in
-          hppa*64*|ia64*)
-            _LT_TAGVAR(hardcode_direct, $1)=no
-            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-            ;;
-          *)
-            _LT_TAGVAR(hardcode_direct, $1)=yes
-            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					         # but as the default
-					         # location of the library.
-            ;;
-        esac
-
-        case $cc_basename in
-          CC*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          aCC*)
-	    case $host_cpu in
-	      hppa*64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      ia64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      *)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	    esac
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-          *)
-	    if test yes = "$GXX"; then
-	      if test no = "$with_gnu_ld"; then
-	        case $host_cpu in
-	          hppa*64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          ia64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          *)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	        esac
-	      fi
-	    else
-	      # FIXME: insert proper C++ library support
-	      _LT_TAGVAR(ld_shlibs, $1)=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      interix[[3-9]]*)
-	_LT_TAGVAR(hardcode_direct, $1)=no
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
-	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-	# Instead, shared libraries are loaded at an image base (0x10000000 by
-	# default) and relocated if they conflict, which is a slow very memory
-	# consuming and fragmenting process.  To avoid this, we pick a random,
-	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	;;
-      irix5* | irix6*)
-        case $cc_basename in
-          CC*)
-	    # SGI C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    if test yes = "$GXX"; then
-	      if test no = "$with_gnu_ld"; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
-	      else
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
-	      fi
-	    fi
-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-	    ;;
-        esac
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(inherit_rpath, $1)=yes
-        ;;
-
-      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-	    ;;
-	  icpc* | ecpc* )
-	    # Intel C++
-	    with_gnu_ld=yes
-	    # version 8.0 and above of icpc choke on multiply defined symbols
-	    # if we add $predep_objects and $postdep_objects, however 7.1 and
-	    # earlier do not add the objects themselves.
-	    case `$CC -V 2>&1` in
-	      *"Version 7."*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	      *)  # Version 8.0 or newer
-	        tmp_idyn=
-	        case $host_cpu in
-		  ia64*) tmp_idyn=' -i_dynamic';;
-		esac
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	    esac
-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
-	    ;;
-          pgCC* | pgcpp*)
-            # Portland Group C++ compiler
-	    case `$CC -V` in
-	    *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
-	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
-               rm -rf $tpldir~
-               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
-	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
-                rm -rf $tpldir~
-                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-                $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
-                $RANLIB $oldlib'
-	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
-                rm -rf $tpldir~
-                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
-                rm -rf $tpldir~
-                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-	      ;;
-	    *) # Version 6 and above use weak symbols
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-	      ;;
-	    esac
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
-            ;;
-	  cxx*)
-	    # Compaq C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname  -o $lib $wl-retain-symbols-file $wl$export_symbols'
-
-	    runpath_var=LD_RUN_PATH
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
-	    ;;
-	  xl* | mpixl* | bgxl*)
-	    # IBM XL 8.0 on PPC, with GNU ld
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-	    if test yes = "$supports_anon_versioning"; then
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-                cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-                echo "local: *; };" >> $output_objdir/$libname.ver~
-                $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
-	    fi
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
-	      _LT_TAGVAR(compiler_needs_object, $1)=yes
-
-	      # Not sure whether something based on
-	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-	      # would be better.
-	      output_verbose_link_cmd='func_echo_all'
-
-	      # Archives containing C++ object files must be created using
-	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	      # necessary to make sure instantiated templates are included
-	      # in the archive.
-	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-
-      lynxos*)
-        # FIXME: insert proper C++ library support
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      m88k*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      mvs*)
-        case $cc_basename in
-          cxx*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-	  *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-	esac
-	;;
-
-      netbsd*)
-        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-	  wlarc=
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	fi
-	# Workaround some broken pre-1.5 toolchains
-	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-	;;
-
-      *nto* | *qnx*)
-        _LT_TAGVAR(ld_shlibs, $1)=yes
-	;;
-
-      openbsd* | bitrig*)
-	if test -f /usr/libexec/ld.so; then
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
-	  fi
-	  output_verbose_link_cmd=func_echo_all
-	else
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-
-      osf3* | osf4* | osf5*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Archives containing C++ object files must be created using
-	    # the KAI C++ compiler.
-	    case $host in
-	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
-	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
-	    esac
-	    ;;
-          RCC*)
-	    # Rational C++ 2.4.1
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          cxx*)
-	    case $host in
-	      osf3*)
-	        _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
-		;;
-	      *)
-	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-                  echo "-hidden">> $lib.exp~
-                  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
-                  $RM $lib.exp'
-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-		;;
-	    esac
-
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-	  *)
-	    if test yes,no = "$GXX,$with_gnu_ld"; then
-	      _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
-	      case $host in
-	        osf3*)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
-		  ;;
-	        *)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
-		  ;;
-	      esac
-
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
-	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	      # Commands to make compiler produce verbose output that lists
-	      # what "hidden" libraries, object files and flags are used when
-	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-	    else
-	      # FIXME: insert proper C++ library support
-	      _LT_TAGVAR(ld_shlibs, $1)=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      psos*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      sunos4*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.x
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          lcc*)
-	    # Lucid
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      solaris*)
-        case $cc_basename in
-          CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
-	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-              $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	    case $host_os in
-	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-	      *)
-		# The compiler driver will combine and reorder linker options,
-		# but understands '-z linker_flag'.
-	        # Supported since Solaris 2.6 (maybe 2.5.1?)
-		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-	        ;;
-	    esac
-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-
-	    output_verbose_link_cmd='func_echo_all'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	    ;;
-          gcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
-
-	    # The C++ compiler must be used to create the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    # GNU C++ compiler with Solaris linker
-	    if test yes,no = "$GXX,$with_gnu_ld"; then
-	      _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
-	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                  $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      else
-	        # g++ 2.7 appears to require '-G' NOT '-shared' on this
-	        # platform.
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                  $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      fi
-
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
-	      case $host_os in
-		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-		*)
-		  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
-		  ;;
-	      esac
-	    fi
-	    ;;
-        esac
-        ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      case $cc_basename in
-        CC*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-      esac
-      ;;
-
-      sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We CANNOT use -z defs as we might desire, because we do not
-	# link with -lc, and that would cause any symbols used from libc to
-	# always be unresolved, which means just about no library would
-	# ever link correctly.  If we're not using GNU ld we use -z text
-	# though, which does catch some bad symbols but isn't as heavy-handed
-	# as -z defs.
-	_LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
-	_LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
-	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-	_LT_TAGVAR(link_all_deplibs, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
-	runpath_var='LD_RUN_PATH'
-
-	case $cc_basename in
-          CC*)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
-              '"$_LT_TAGVAR(old_archive_cmds, $1)"
-	    _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
-              '"$_LT_TAGVAR(reload_cmds, $1)"
-	    ;;
-	  *)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	esac
-      ;;
-
-      tandem*)
-        case $cc_basename in
-          NCC*)
-	    # NonStop-UX NCC 3.20
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      vxworks*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      *)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-    esac
-
-    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-    test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
-
-    _LT_TAGVAR(GCC, $1)=$GXX
-    _LT_TAGVAR(LD, $1)=$LD
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_SYS_HIDDEN_LIBDEPS($1)
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-  LDCXX=$LD
-  LD=$lt_save_LD
-  GCC=$lt_save_GCC
-  with_gnu_ld=$lt_save_with_gnu_ld
-  lt_cv_path_LDCXX=$lt_cv_path_LD
-  lt_cv_path_LD=$lt_save_path_LD
-  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test yes != "$_lt_caught_CXX_error"
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_FUNC_STRIPNAME_CNF
-# ----------------------
-# func_stripname_cnf prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-#
-# This function is identical to the (non-XSI) version of func_stripname,
-# except this one can be used by m4 code that may be executed by configure,
-# rather than the libtool script.
-m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
-AC_REQUIRE([_LT_DECL_SED])
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
-func_stripname_cnf ()
-{
-  case @S|@2 in
-  .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;;
-  *)  func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;;
-  esac
-} # func_stripname_cnf
-])# _LT_FUNC_STRIPNAME_CNF
-
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library.  It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
-      subroutine foo
-      implicit none
-      integer*4 a
-      a=0
-      return
-      end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
-      subroutine foo
-      implicit none
-      integer a
-      a=0
-      return
-      end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
-  private int a;
-  public void bar (void) {
-    a = 0;
-  }
-};
-_LT_EOF
-], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
-package foo
-func foo() {
-}
-_LT_EOF
-])
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  for p in `eval "$output_verbose_link_cmd"`; do
-    case $prev$p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test x-L = "$p" ||
-          test x-R = "$p"; then
-	 prev=$p
-	 continue
-       fi
-
-       # Expand the sysroot to ease extracting the directories later.
-       if test -z "$prev"; then
-         case $p in
-         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
-         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
-         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
-         esac
-       fi
-       case $p in
-       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
-       esac
-       if test no = "$pre_test_object_deps_done"; then
-	 case $prev in
-	 -L | -R)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
-	     _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p
-	   else
-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
-	   _LT_TAGVAR(postdeps, $1)=$prev$p
-	 else
-	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p"
-	 fi
-       fi
-       prev=
-       ;;
-
-    *.lto.$objext) ;; # Ignore GCC LTO objects
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test no = "$pre_test_object_deps_done"; then
-	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
-	   _LT_TAGVAR(predep_objects, $1)=$p
-	 else
-	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
-	 fi
-       else
-	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
-	   _LT_TAGVAR(postdep_objects, $1)=$p
-	 else
-	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-  # hack all around it, let's just trust "g++" to DTRT.
-  _LT_TAGVAR(predep_objects,$1)=
-  _LT_TAGVAR(postdep_objects,$1)=
-  _LT_TAGVAR(postdeps,$1)=
-  ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
-    [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
-    [Dependencies to place before and after the objects being linked to
-    create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
-    [The library search path used internally by the compiler when linking
-    a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test no = "$F77"; then
-  _lt_disable_F77=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test yes != "$_lt_disable_F77"; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="\
-      subroutine t
-      return
-      end
-"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code="\
-      program t
-      end
-"
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_GCC=$GCC
-  lt_save_CFLAGS=$CFLAGS
-  CC=${F77-"f77"}
-  CFLAGS=$FFLAGS
-  compiler=$CC
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-  GCC=$G77
-  if test -n "$compiler"; then
-    AC_MSG_CHECKING([if libtool supports shared libraries])
-    AC_MSG_RESULT([$can_build_shared])
-
-    AC_MSG_CHECKING([whether to build shared libraries])
-    test no = "$can_build_shared" && enable_shared=no
-
-    # On AIX, shared libraries and static libraries use the same namespace, and
-    # are all built from PIC.
-    case $host_os in
-      aix3*)
-        test yes = "$enable_shared" && enable_static=no
-        if test -n "$RANLIB"; then
-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-          postinstall_cmds='$RANLIB $lib'
-        fi
-        ;;
-      aix[[4-9]]*)
-	if test ia64 != "$host_cpu"; then
-	  case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
-	  yes,aix,yes) ;;		# shared object as lib.so file only
-	  yes,svr4,*) ;;		# shared object as lib.so archive member only
-	  yes,*) enable_static=no ;;	# shared object in lib.a archive as well
-	  esac
-	fi
-        ;;
-    esac
-    AC_MSG_RESULT([$enable_shared])
-
-    AC_MSG_CHECKING([whether to build static libraries])
-    # Make sure either enable_shared or enable_static is yes.
-    test yes = "$enable_shared" || enable_static=yes
-    AC_MSG_RESULT([$enable_static])
-
-    _LT_TAGVAR(GCC, $1)=$G77
-    _LT_TAGVAR(LD, $1)=$LD
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  GCC=$lt_save_GCC
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-fi # test yes != "$_lt_disable_F77"
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_LANG_PUSH(Fortran)
-
-if test -z "$FC" || test no = "$FC"; then
-  _lt_disable_FC=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test yes != "$_lt_disable_FC"; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="\
-      subroutine t
-      return
-      end
-"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code="\
-      program t
-      end
-"
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_GCC=$GCC
-  lt_save_CFLAGS=$CFLAGS
-  CC=${FC-"f95"}
-  CFLAGS=$FCFLAGS
-  compiler=$CC
-  GCC=$ac_cv_fc_compiler_gnu
-
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-
-  if test -n "$compiler"; then
-    AC_MSG_CHECKING([if libtool supports shared libraries])
-    AC_MSG_RESULT([$can_build_shared])
-
-    AC_MSG_CHECKING([whether to build shared libraries])
-    test no = "$can_build_shared" && enable_shared=no
-
-    # On AIX, shared libraries and static libraries use the same namespace, and
-    # are all built from PIC.
-    case $host_os in
-      aix3*)
-        test yes = "$enable_shared" && enable_static=no
-        if test -n "$RANLIB"; then
-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-          postinstall_cmds='$RANLIB $lib'
-        fi
-        ;;
-      aix[[4-9]]*)
-	if test ia64 != "$host_cpu"; then
-	  case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
-	  yes,aix,yes) ;;		# shared object as lib.so file only
-	  yes,svr4,*) ;;		# shared object as lib.so archive member only
-	  yes,*) enable_static=no ;;	# shared object in lib.a archive as well
-	  esac
-	fi
-        ;;
-    esac
-    AC_MSG_RESULT([$enable_shared])
-
-    AC_MSG_CHECKING([whether to build static libraries])
-    # Make sure either enable_shared or enable_static is yes.
-    test yes = "$enable_shared" || enable_static=yes
-    AC_MSG_RESULT([$enable_static])
-
-    _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu
-    _LT_TAGVAR(LD, $1)=$LD
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_SYS_HIDDEN_LIBDEPS($1)
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  GCC=$lt_save_GCC
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-fi # test yes != "$_lt_disable_FC"
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-CFLAGS=$GCJFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)=$LD
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-
-  _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_GO_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Go compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_GO_CONFIG],
-[AC_REQUIRE([LT_PROG_GO])dnl
-AC_LANG_SAVE
-
-# Source file extension for Go test sources.
-ac_ext=go
-
-# Object file extension for compiled Go test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="package main; func main() { }"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='package main; func main() { }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GOC-"gccgo"}
-CFLAGS=$GOFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)=$LD
-_LT_CC_BASENAME([$compiler])
-
-# Go did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-
-  _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GO_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code=$lt_simple_compile_test_code
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-CFLAGS=
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
-  :
-  _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
-  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
-    [AC_CHECK_TOOL(GCJ, gcj,)
-      test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2"
-      AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_GO
-# ----------
-AC_DEFUN([LT_PROG_GO],
-[AC_CHECK_TOOL(GOC, gccgo,)
-])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-# _LT_DECL_DLLTOOL
-# ----------------
-# Ensure DLLTOOL variable is set.
-m4_defun([_LT_DECL_DLLTOOL],
-[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
-AC_SUBST([DLLTOOL])
-])
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible.  Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
-    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-############################################################
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f "$lt_ac_sed" && continue
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test 10 -lt "$lt_ac_count" && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test "$lt_ac_count" -gt "$lt_ac_max"; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  lt_unset=unset
-else
-  lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  lt_SP2NL='tr \040 \012'
-  lt_NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  lt_SP2NL='tr \100 \n'
-  lt_NL2SP='tr \r\n \100\100'
-  ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PATH_CONVERSION_FUNCTIONS
-# -----------------------------
-# Determine what file name conversion functions should be used by
-# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
-# for certain cross-compile configurations and native mingw.
-m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_MSG_CHECKING([how to convert $build file names to $host format])
-AC_CACHE_VAL(lt_cv_to_host_file_cmd,
-[case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
-        ;;
-    esac
-    ;;
-  *-*-cygwin* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_noop
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
-        ;;
-    esac
-    ;;
-  * ) # unhandled hosts (and "normal" native builds)
-    lt_cv_to_host_file_cmd=func_convert_file_noop
-    ;;
-esac
-])
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
-_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
-         [0], [convert $build file names to $host format])dnl
-
-AC_MSG_CHECKING([how to convert $build file names to toolchain format])
-AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
-[#assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
-        ;;
-    esac
-    ;;
-esac
-])
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
-_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
-         [0], [convert $build files to toolchain format])dnl
-])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
deleted file mode 100644
index 94b082976667c0c9edf2e9ff7a668c1fd7d997bf..0000000000000000000000000000000000000000
--- a/m4/ltoptions.m4
+++ /dev/null
@@ -1,437 +0,0 @@
-# Helper functions for option handling.                    -*- Autoconf -*-
-#
-#   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
-#   Foundation, Inc.
-#   Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 8 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
-        _LT_MANGLE_DEFUN([$1], [$2]),
-    [m4_warning([Unknown $1 option '$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
-		      [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME.  If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-    [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
-  dnl
-  dnl Simply set some default values (i.e off) if boolean options were not
-  dnl specified:
-  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
-  ])
-  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
-  ])
-  dnl
-  dnl If no reference was made to various pairs of opposing options, then
-  dnl we run the default mode handler for the pair.  For example, if neither
-  dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
-  dnl archives by default:
-  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
-  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
-  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
-  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
-		   [_LT_ENABLE_FAST_INSTALL])
-  _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
-		   [_LT_WITH_AIX_SONAME([aix])])
-  ])
-])# _LT_SET_OPTIONS
-
-
-## --------------------------------- ##
-## Macros to handle LT_INIT options. ##
-## --------------------------------- ##
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the 'dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS],      [1], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the 'win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the 'shared' and
-# 'disable-shared' LT_INIT options.
-# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
-    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
-	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
-      for pkg in $enableval; do
-	IFS=$lt_save_ifs
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS=$lt_save_ifs
-      ;;
-    esac],
-    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
-    _LT_DECL([build_libtool_libs], [enable_shared], [0],
-	[Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the 'static' and
-# 'disable-static' LT_INIT options.
-# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
-    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
-	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
-      for pkg in $enableval; do
-	IFS=$lt_save_ifs
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS=$lt_save_ifs
-      ;;
-    esac],
-    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
-    _LT_DECL([build_old_libs], [enable_static], [0],
-	[Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the 'fast-install'
-# and 'disable-fast-install' LT_INIT options.
-# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
-    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
-    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
-      for pkg in $enableval; do
-	IFS=$lt_save_ifs
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS=$lt_save_ifs
-      ;;
-    esac],
-    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
-	 [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the 'fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the 'disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_AIX_SONAME([DEFAULT])
-# ----------------------------------
-# implement the --with-aix-soname flag, and support the `aix-soname=aix'
-# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
-# is either `aix', `both' or `svr4'.  If omitted, it defaults to `aix'.
-m4_define([_LT_WITH_AIX_SONAME],
-[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
-shared_archive_member_spec=
-case $host,$enable_shared in
-power*-*-aix[[5-9]]*,yes)
-  AC_MSG_CHECKING([which variant of shared library versioning to provide])
-  AC_ARG_WITH([aix-soname],
-    [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
-      [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
-    [case $withval in
-    aix|svr4|both)
-      ;;
-    *)
-      AC_MSG_ERROR([Unknown argument to --with-aix-soname])
-      ;;
-    esac
-    lt_cv_with_aix_soname=$with_aix_soname],
-    [AC_CACHE_VAL([lt_cv_with_aix_soname],
-      [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
-    with_aix_soname=$lt_cv_with_aix_soname])
-  AC_MSG_RESULT([$with_aix_soname])
-  if test aix != "$with_aix_soname"; then
-    # For the AIX way of multilib, we name the shared archive member
-    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
-    # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
-    # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
-    # the AIX toolchain works better with OBJECT_MODE set (default 32).
-    if test 64 = "${OBJECT_MODE-32}"; then
-      shared_archive_member_spec=shr_64
-    else
-      shared_archive_member_spec=shr
-    fi
-  fi
-  ;;
-*)
-  with_aix_soname=aix
-  ;;
-esac
-
-_LT_DECL([], [shared_archive_member_spec], [0],
-    [Shared archive member basename, for filename based shared library versioning on AIX])dnl
-])# _LT_WITH_AIX_SONAME
-
-LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
-LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
-LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
-# LT_INIT options.
-# MODE is either 'yes' or 'no'.  If omitted, it defaults to 'both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
-	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [lt_p=${PACKAGE-default}
-    case $withval in
-    yes|no) pic_mode=$withval ;;
-    *)
-      pic_mode=default
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
-      for lt_pkg in $withval; do
-	IFS=$lt_save_ifs
-	if test "X$lt_pkg" = "X$lt_p"; then
-	  pic_mode=yes
-	fi
-      done
-      IFS=$lt_save_ifs
-      ;;
-    esac],
-    [pic_mode=m4_default([$1], [default])])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the 'pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-## ----------------- ##
-## LTDL_INIT Options ##
-## ----------------- ##
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
-		 [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
-		 [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
-		 [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
-		 [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
-		 [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4
deleted file mode 100644
index 48bc9344a4d661e116be1483d5520753875b2bd1..0000000000000000000000000000000000000000
--- a/m4/ltsugar.m4
+++ /dev/null
@@ -1,124 +0,0 @@
-# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
-#
-# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
-# Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
-       [$#], [2], [[$2]],
-       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
-       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59, which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
-       [$#], 1, [],
-       [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
-	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
-       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
-	     [m4_foreach([_Lt_suffix],
-		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
-	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
-	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
-		 [lt_append([$1], [$2], [$3])$4],
-		 [$5])],
-	  [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
-	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
-    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
-	[$5],
-    [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
-  [lt_join(m4_quote(m4_default([$4], [[, ]])),
-           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
-		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
deleted file mode 100644
index fa04b52a3bf868bd57e7ba796d64385a51e7ec5a..0000000000000000000000000000000000000000
--- a/m4/ltversion.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# ltversion.m4 -- version numbers			-*- Autoconf -*-
-#
-#   Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
-#   Written by Scott James Remnant, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# @configure_input@
-
-# serial 4179 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.4.6])
-m4_define([LT_PACKAGE_REVISION], [2.4.6])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.6'
-macro_revision='2.4.6'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
deleted file mode 100644
index c6b26f88f6c3c1a052afa6314ba2adf832d785ee..0000000000000000000000000000000000000000
--- a/m4/lt~obsolete.m4
+++ /dev/null
@@ -1,99 +0,0 @@
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
-#
-#   Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
-#   Foundation, Inc.
-#   Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 5 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else.  This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],	[AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP],		[AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],	[AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77],		[AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])])
diff --git a/perl/Makefile.am b/perl/Makefile.am
index 53569c76f9dca22910774589576037f9727540a7..10c8d6c80b858ba30b95d489aa4a6e6ccc2c4de9 100644
--- a/perl/Makefile.am
+++ b/perl/Makefile.am
@@ -55,10 +55,7 @@ BUILT_SOURCES = Xapian.pm xapian_wrap.cc \
 
 auto/Xapian/Xapian$(PERL_SO): Xapian.la
 	@$(MKDIR_P) auto/Xapian
-	$(LIBTOOL) --config > libtoolconfig.tmp
-## ksh requires a path on the sourced file.
-	. ./libtoolconfig.tmp; cp "$$objdir/Xapian$(PERL_SO)" auto/Xapian
-	rm -f libtoolconfig.tmp
+	cp "$(_libs)/Xapian$(PERL_SO)" auto/Xapian
 
 EXTRA_DIST = perl.i except.i extra.i $(TESTS) \
 	generate-perl-exceptions \
@@ -87,11 +84,22 @@ perlarch_LTLIBRARIES = Xapian.la
 install-data-hook:
 	rm -f $(DESTDIR)$(perlarchdir)/Xapian.la
 
-# Because we don't install the .la file, "make uninstall" doesn't work and
-# we need to remove the file ourselves.
+install-data-local:
+	$(mkinstalldirs) "$(DESTDIR)$(docdatadir)/Xapian"
+	@cd docs ; for f in Xapian/*.html ; do \
+	  echo " $(INSTALL_DATA) '$$f' '$(DESTDIR)$(docdatadir)/$$f'"; \
+	  $(INSTALL_DATA) "$$f" "$(DESTDIR)$(docdatadir)/$$f"; \
+	done
+
 uninstall-local:
-	eval `grep '^dlname=' $(perlarch_LTLIBRARIES)` ; \
-	  rm -f $(DESTDIR)$(perlarchdir)/"$$dlname"
+	## Because we don't install the .la file, "make uninstall" doesn't work and
+	## we need to remove the file ourselves.
+	rm -f $(DESTDIR)$(perlarchdir)/Xapian$(PERL_SO)
+	@cd docs ; for f in Xapian/*.html ; do \
+	  echo " rm -f '$(DESTDIR)$(docdatadir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(docdatadir)/$$f"; \
+	done
+
 
 perllibdir = $(PERL_LIB)
 nobase_dist_perllib_DATA = \
@@ -175,11 +183,12 @@ endif
 MAINTAINERCLEANFILES = $(BUILT_SOURCES)
 
 docdatadir = $(docdir)/perl
-docdata_DATA = docs/index.html
+docdata_DATA = docs/Xapian.html
 
-CLEANFILES += docs/index.html pod2html?.tmp
+CLEANFILES += docs/Xapian.html pod2html?.tmp
 
-docs/index.html: Xapian.pm
+docs/Xapian.html: $(nobase_dist_perllib_DATA)
 	$(MKDIR_P) docs
-	$(PERL) -MPod::Html -e 'pod2html(qw(--podpath=. Xapian.pm --outfile=docs/index.html))'
-	rm -f -v pod2htm?.tmp
+	$(MKDIR_P) docs/Xapian
+	$(PERL) -MPod::Html -e 'for (@ARGV) { my $$pm = $$_; s/pm$$/html/; $$pm = "$(srcdir)/$$pm" unless -f $$pm; pod2html("--podpath=.", "--htmldir=docs", "--infile=$$pm", "--outfile=docs/$$_") }' $(nobase_dist_perllib_DATA)
+	rm -f pod2htm?.tmp
diff --git a/perl/Makefile.in b/perl/Makefile.in
index ff102a6411c3f43b86e1d5ea66de49c1de88898e..f6e07cca2bd9e258c3f6585d634623fc4433a137 100644
--- a/perl/Makefile.in
+++ b/perl/Makefile.in
@@ -94,9 +94,7 @@ host_triplet = @host@
 subdir = perl
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(dist_exampledata_DATA) \
@@ -456,9 +454,9 @@ LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 LUA = @LUA@
-LUA_CPPFLAGS = @LUA_CPPFLAGS@
-LUA_INC = @LUA_INC@
+LUA_CFLAGS = @LUA_CFLAGS@
 LUA_LIB = @LUA_LIB@
+LUA_LIBS = @LUA_LIBS@
 LUA_SO = @LUA_SO@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
@@ -492,6 +490,10 @@ PHP_INC = @PHP_INC@
 PHP_LIBS = @PHP_LIBS@
 PHP_MAJOR_VERSION = @PHP_MAJOR_VERSION@
 PHP_PATH_SEPARATOR = @PHP_PATH_SEPARATOR@
+PHP_SHLIB_SUFFIX = @PHP_SHLIB_SUFFIX@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 PYTHON = @PYTHON@
 PYTHON2 = @PYTHON2@
 PYTHON2_INC = @PYTHON2_INC@
@@ -529,6 +531,7 @@ TCL_CPPFLAGS = @TCL_CPPFLAGS@
 TCL_INC = @TCL_INC@
 TCL_LIB = @TCL_LIB@
 TCL_LIBS = @TCL_LIBS@
+TCL_SHLIB_EXT = @TCL_SHLIB_EXT@
 THREAD_LOCAL = @THREAD_LOCAL@
 VERSION = @VERSION@
 VERSION_NO_SNAPSHOT = @VERSION_NO_SNAPSHOT@
@@ -538,6 +541,7 @@ XAPIAN_HEADERS = @XAPIAN_HEADERS@
 XAPIAN_HEADER_DIRS = @XAPIAN_HEADER_DIRS@
 XAPIAN_LIBS = @XAPIAN_LIBS@
 XAPIAN_VERSION = @XAPIAN_VERSION@
+_libs = @_libs@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -728,12 +732,12 @@ AM_CXXFLAGS = @SWIG_CXXFLAGS@ $(XAPIAN_CXXFLAGS)
 Xapian_la_LDFLAGS = -avoid-version -module -shrext $(PERL_SO) $(NO_UNDEFINED)
 Xapian_la_SOURCES = xapian_wrap.cc
 Xapian_la_LIBADD = $(XAPIAN_LIBS) $(PERL_LIBS)
-CLEANFILES = $(am__append_2) docs/index.html pod2html?.tmp
+CLEANFILES = $(am__append_2) docs/Xapian.html pod2html?.tmp
 @MAINTAINER_MODE_TRUE@stamp = xapian_wrap.stamp
 @MAINTAINER_MODE_TRUE@RUN_SWIG = stamp='$(stamp)' $(PERL) '$(top_srcdir)'/swig-depcomp $(SWIG)
 MAINTAINERCLEANFILES = $(BUILT_SOURCES)
 docdatadir = $(docdir)/perl
-docdata_DATA = docs/index.html
+docdata_DATA = docs/Xapian.html
 all: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) all-am
 
@@ -1375,8 +1379,9 @@ info: info-am
 
 info-am:
 
-install-data-am: install-dist_exampledataDATA install-docdataDATA \
-	install-nobase_dist_perllibDATA install-perlarchLTLIBRARIES
+install-data-am: install-data-local install-dist_exampledataDATA \
+	install-docdataDATA install-nobase_dist_perllibDATA \
+	install-perlarchLTLIBRARIES
 	@$(NORMAL_INSTALL)
 	$(MAKE) $(AM_MAKEFLAGS) install-data-hook
 install-dvi: install-dvi-am
@@ -1436,17 +1441,17 @@ uninstall-am: uninstall-dist_exampledataDATA uninstall-docdataDATA \
 	distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
-	install-data-am install-data-hook install-dist_exampledataDATA \
-	install-docdataDATA install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-nobase_dist_perllibDATA \
-	install-pdf install-pdf-am install-perlarchLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installcheck-local installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am recheck tags tags-am uninstall \
-	uninstall-am uninstall-dist_exampledataDATA \
+	install-data-am install-data-hook install-data-local \
+	install-dist_exampledataDATA install-docdataDATA install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-nobase_dist_perllibDATA install-pdf install-pdf-am \
+	install-perlarchLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installcheck-local \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am recheck tags tags-am \
+	uninstall uninstall-am uninstall-dist_exampledataDATA \
 	uninstall-docdataDATA uninstall-local \
 	uninstall-nobase_dist_perllibDATA \
 	uninstall-perlarchLTLIBRARIES
@@ -1480,9 +1485,7 @@ clean-local:
 
 auto/Xapian/Xapian$(PERL_SO): Xapian.la
 	@$(MKDIR_P) auto/Xapian
-	$(LIBTOOL) --config > libtoolconfig.tmp
-	. ./libtoolconfig.tmp; cp "$$objdir/Xapian$(PERL_SO)" auto/Xapian
-	rm -f libtoolconfig.tmp
+	cp "$(_libs)/Xapian$(PERL_SO)" auto/Xapian
 
 # Remove the .la file - Xapian.la is never linked against (it's a module)
 # and Perl doesn't use libltdl.  Note that the library gets installed by
@@ -1490,11 +1493,19 @@ auto/Xapian/Xapian$(PERL_SO): Xapian.la
 install-data-hook:
 	rm -f $(DESTDIR)$(perlarchdir)/Xapian.la
 
-# Because we don't install the .la file, "make uninstall" doesn't work and
-# we need to remove the file ourselves.
+install-data-local:
+	$(mkinstalldirs) "$(DESTDIR)$(docdatadir)/Xapian"
+	@cd docs ; for f in Xapian/*.html ; do \
+	  echo " $(INSTALL_DATA) '$$f' '$(DESTDIR)$(docdatadir)/$$f'"; \
+	  $(INSTALL_DATA) "$$f" "$(DESTDIR)$(docdatadir)/$$f"; \
+	done
+
 uninstall-local:
-	eval `grep '^dlname=' $(perlarch_LTLIBRARIES)` ; \
-	  rm -f $(DESTDIR)$(perlarchdir)/"$$dlname"
+	rm -f $(DESTDIR)$(perlarchdir)/Xapian$(PERL_SO)
+	@cd docs ; for f in Xapian/*.html ; do \
+	  echo " rm -f '$(DESTDIR)$(docdatadir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(docdatadir)/$$f"; \
+	done
 @MAINTAINER_MODE_TRUE@except.i: $(srcdir)/generate-perl-exceptions ../../xapian-core/exception_data.pm
 @MAINTAINER_MODE_TRUE@	$(PERL) -w -I$(srcdir)/../../xapian-core $(srcdir)/generate-perl-exceptions
 
@@ -1510,10 +1521,11 @@ uninstall-local:
 
 @MAINTAINER_MODE_TRUE@-include xapian_wrap.d
 
-docs/index.html: Xapian.pm
+docs/Xapian.html: $(nobase_dist_perllib_DATA)
 	$(MKDIR_P) docs
-	$(PERL) -MPod::Html -e 'pod2html(qw(--podpath=. Xapian.pm --outfile=docs/index.html))'
-	rm -f -v pod2htm?.tmp
+	$(MKDIR_P) docs/Xapian
+	$(PERL) -MPod::Html -e 'for (@ARGV) { my $$pm = $$_; s/pm$$/html/; $$pm = "$(srcdir)/$$pm" unless -f $$pm; pod2html("--podpath=.", "--htmldir=docs", "--infile=$$pm", "--outfile=docs/$$_") }' $(nobase_dist_perllib_DATA)
+	rm -f pod2htm?.tmp
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/perl/Xapian.pm b/perl/Xapian.pm
index 7eb145d31e159d8e7299a2e1a678072f2d0136ca..645bc4d04c6861917b8f032551636e91436ede88 100644
--- a/perl/Xapian.pm
+++ b/perl/Xapian.pm
@@ -1,5 +1,5 @@
 # This file was automatically generated by SWIG (https://www.swig.org).
-# Version 4.1.1
+# Version 4.2.0
 #
 # Do not make changes to this file unless you know what you are doing - modify
 # the SWIG interface file instead.
@@ -1440,6 +1440,7 @@ sub DESTROY {
 *get_document = *Xapianc::TermGenerator_get_document;
 *set_database = *Xapianc::TermGenerator_set_database;
 *FLAG_SPELLING = *Xapianc::TermGenerator_FLAG_SPELLING;
+*FLAG_NGRAMS = *Xapianc::TermGenerator_FLAG_NGRAMS;
 *FLAG_CJK_NGRAM = *Xapianc::TermGenerator_FLAG_CJK_NGRAM;
 *STEM_NONE = *Xapianc::TermGenerator_STEM_NONE;
 *STEM_SOME = *Xapianc::TermGenerator_STEM_SOME;
@@ -1511,6 +1512,7 @@ sub DESTROY {
 *SNIPPET_BACKGROUND_MODEL = *Xapianc::MSet_SNIPPET_BACKGROUND_MODEL;
 *SNIPPET_EXHAUSTIVE = *Xapianc::MSet_SNIPPET_EXHAUSTIVE;
 *SNIPPET_EMPTY_WITHOUT_MATCH = *Xapianc::MSet_SNIPPET_EMPTY_WITHOUT_MATCH;
+*SNIPPET_NGRAMS = *Xapianc::MSet_SNIPPET_NGRAMS;
 *SNIPPET_CJK_NGRAM = *Xapianc::MSet_SNIPPET_CJK_NGRAM;
 *snippet = *Xapianc::MSet_snippet;
 *fetch = *Xapianc::MSet_fetch;
@@ -2439,6 +2441,7 @@ use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
 *FLAG_SYNONYM = *Xapianc::QueryParser_FLAG_SYNONYM;
 *FLAG_AUTO_SYNONYMS = *Xapianc::QueryParser_FLAG_AUTO_SYNONYMS;
 *FLAG_AUTO_MULTIWORD_SYNONYMS = *Xapianc::QueryParser_FLAG_AUTO_MULTIWORD_SYNONYMS;
+*FLAG_NGRAMS = *Xapianc::QueryParser_FLAG_NGRAMS;
 *FLAG_CJK_NGRAM = *Xapianc::QueryParser_FLAG_CJK_NGRAM;
 *FLAG_ACCUMULATE = *Xapianc::QueryParser_FLAG_ACCUMULATE;
 *FLAG_NO_POSITIONS = *Xapianc::QueryParser_FLAG_NO_POSITIONS;
@@ -4110,6 +4113,7 @@ sub FLAG_SPELLING_CORRECTION () { $Xapianc::FLAG_SPELLING_CORRECTION }
 sub FLAG_SYNONYM () { $Xapianc::FLAG_SYNONYM }
 sub FLAG_AUTO_SYNONYMS () { $Xapianc::FLAG_AUTO_SYNONYMS }
 sub FLAG_AUTO_MULTIWORD_SYNONYMS () { $Xapianc::FLAG_AUTO_MULTIWORD_SYNONYMS }
+sub FLAG_NGRAMS () { $Xapianc::FLAG_NGRAMS }
 sub FLAG_CJK_NGRAM () { $Xapianc::FLAG_CJK_NGRAM }
 sub FLAG_DEFAULT () { $Xapianc::FLAG_DEFAULT }
 sub STEM_NONE () { $Xapianc::STEM_NONE }
@@ -4155,7 +4159,7 @@ package Xapian;
 
 package Xapian;
 
-our $VERSION = "1.4.22.0";
+our $VERSION = "1.4.25.0";
 
 # We need to use the RTLD_GLOBAL flag to dlopen() so that other C++
 # modules that link against libxapian.so get the *same* value for all the
@@ -4211,6 +4215,7 @@ our %EXPORT_TAGS = (
 				 FLAG_AUTO_SYNONYMS
 				 FLAG_AUTO_MULTIWORD_SYNONYMS
 				 FLAG_CJK_NGRAM
+				 FLAG_NGRAMS
 				 FLAG_DEFAULT
 				 ) ],
 		    'qpstem' => [ qw(
@@ -4813,6 +4818,8 @@ searches.
 
 =item FLAG_AUTO_MULTIWORD_SYNONYMS
 
+=item FLAG_NGRAMS
+
 =item FLAG_CJK_NGRAM
 
 =item FLAG_NO_POSITIONS
diff --git a/perl/Xapian/QueryParser.pm b/perl/Xapian/QueryParser.pm
index e0a5a7f3a3d46976b836bcdd82a07b454bf49fb8..66d99f3c16080c6dd0a6da70f0def6ab1a4441b6 100644
--- a/perl/Xapian/QueryParser.pm
+++ b/perl/Xapian/QueryParser.pm
@@ -69,13 +69,15 @@ Parses the query string according to the rules defined in the query parser
 documentation below. You can specify certain flags to modify the
 searching behaviour:
 
-  FLAG_BOOLEAN, FLAG_PHRASE, FLAG_LOVEHATE, FLAG_BOOLEAN_ANY_CASE,
+  FLAG_DEFAULT, FLAG_ACCUMULATE, FLAG_BOOLEAN,
+  FLAG_NO_POSITIONS, FLAG_PHRASE, FLAG_LOVEHATE, FLAG_BOOLEAN_ANY_CASE,
   FLAG_WILDCARD, FLAG_PURE_NOT, FLAG_PARTIAL, FLAG_SPELLING_CORRECTION,
   FLAG_SYNONYM, FLAG_AUTO_SYNONYMS, FLAG_AUTO_MULTIWORD_SYNONYMS,
-  FLAG_CJK_NGRAM
+  FLAG_NGRAMS, FLAG_CJK_NGRAM
 
 To specify multiple flags, "bitwise or" them together (with C<|>).  The
-default flags are C<FLAG_PHRASE|FLAG_BOOLEAN|FLAG_LOVEHATE>
+default flags are C<FLAG_DEFAULT> which is equivalent to
+C<FLAG_PHRASE|FLAG_BOOLEAN|FLAG_LOVEHATE>.
 
 =item add_prefix <field> <prefix>
 
diff --git a/perl/extra.i b/perl/extra.i
index c7a318ba9ee29e9bc1e9961139b83aac63bad724..044d3ec3097d7b751cbfbf759d48f94e3124a33d 100644
--- a/perl/extra.i
+++ b/perl/extra.i
@@ -84,6 +84,7 @@ our %EXPORT_TAGS = (
 				 FLAG_AUTO_SYNONYMS
 				 FLAG_AUTO_MULTIWORD_SYNONYMS
 				 FLAG_CJK_NGRAM
+				 FLAG_NGRAMS
 				 FLAG_DEFAULT
 				 ) ],
 		    'qpstem' => [ qw(
@@ -686,6 +687,8 @@ searches.
 
 =item FLAG_AUTO_MULTIWORD_SYNONYMS
 
+=item FLAG_NGRAMS
+
 =item FLAG_CJK_NGRAM
 
 =item FLAG_NO_POSITIONS
diff --git a/perl/perl.i b/perl/perl.i
index c0b707df5cb46377ba25a286932352be40a00b7b..2ac163626bb0df589236f20ebb1c58cfaec6855b 100644
--- a/perl/perl.i
+++ b/perl/perl.i
@@ -90,6 +90,7 @@ extern "C" {
 %constant int FLAG_SYNONYM = Xapian::QueryParser::FLAG_SYNONYM;
 %constant int FLAG_AUTO_SYNONYMS = Xapian::QueryParser::FLAG_AUTO_SYNONYMS;
 %constant int FLAG_AUTO_MULTIWORD_SYNONYMS = Xapian::QueryParser::FLAG_AUTO_MULTIWORD_SYNONYMS;
+%constant int FLAG_NGRAMS = Xapian::QueryParser::FLAG_NGRAMS;
 %constant int FLAG_CJK_NGRAM = Xapian::QueryParser::FLAG_CJK_NGRAM;
 %constant int FLAG_DEFAULT = Xapian::QueryParser::FLAG_DEFAULT;
 %constant int STEM_NONE = Xapian::QueryParser::STEM_NONE;
@@ -98,7 +99,8 @@ extern "C" {
 %constant int STEM_ALL = Xapian::QueryParser::STEM_ALL;
 %constant int STEM_ALL_Z = Xapian::QueryParser::STEM_ALL_Z;
 %constant int FLAG_SPELLING = Xapian::TermGenerator::FLAG_SPELLING;
-// FLAG_CJK_NGRAM already set above from QueryParser (values match).
+// FLAG_NGRAMS and FLAG_CJK_NGRAM are already set above from QueryParser
+// (values match).
 %constant int WILDCARD_LIMIT_ERROR = Xapian::Query::WILDCARD_LIMIT_ERROR;
 %constant int WILDCARD_LIMIT_FIRST = Xapian::Query::WILDCARD_LIMIT_FIRST;
 %constant int WILDCARD_LIMIT_MOST_FREQUENT = Xapian::Query::WILDCARD_LIMIT_MOST_FREQUENT;
diff --git a/perl/t/symbol-test.t b/perl/t/symbol-test.t
index 57134cb3b09a1eba64e6b7cb86380551764e57d0..5da7c38ca548328515fd289922b334cf2e037f8f 100644
--- a/perl/t/symbol-test.t
+++ b/perl/t/symbol-test.t
@@ -22,7 +22,12 @@ SKIP: {
 # as a reason to skip to avoid test failures in such cases.
 system("make 2>&1") == 0 or skip "Failed to build symbol-test module", 3;
 
-use lib ("blib/arch/auto/SymbolTest", "blib/arch/auto/SymbolTest/.libs", "blib/lib");
+use lib (
+    "blib/arch/auto/SymbolTest",
+    "blib/arch/auto/SymbolTest/.libs",
+    "blib/arch/auto/SymbolTest/_libs",
+    "blib/lib"
+);
 
 use_ok("SymbolTest");
 eval { SymbolTest::throw_from_libxapian() };
diff --git a/perl/t/symbol-test/Makefile.PL b/perl/t/symbol-test/Makefile.PL
index 0cd5e5f700504d5788b6e5b8bb8aeba1051c9a2e..268b1124f0d90023894304b4d60fe6bfbf486857 100644
--- a/perl/t/symbol-test/Makefile.PL
+++ b/perl/t/symbol-test/Makefile.PL
@@ -107,7 +107,7 @@ if ($? || ($xapian_config_dir ne '' && -f "${xapian_config_dir}Makefile")) {
     push @writemakefile_args, (
 	'OBJ_EXT'	=> '.lo',
 	'DLEXT'		=> 'la',
-	'FULLPERL'	=> '$(PERL) "-I$(INST_ARCHAUTODIR)/.libs"',
+	'FULLPERL'	=> '$(PERL) "-I$(INST_ARCHAUTODIR)/.libs -I$(INST_ARCHAUTODIR)/_libs"',
     );
 }
 
diff --git a/perl/xapian_wrap.cc b/perl/xapian_wrap.cc
index 1e654abe9b5823d278a70d8b2e6cff1e3eb66fcd..5bca9fbda1bbaae42b6ed7d741bd0ddbb080871c 100644
--- a/perl/xapian_wrap.cc
+++ b/perl/xapian_wrap.cc
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -32,7 +32,7 @@ extern "C" {
 
 
 
-#define SWIG_VERSION 0x040101
+#define SWIG_VERSION 0x040200
 #define SWIGPERL
 #define SWIG_CASTRANK_MODE
 
@@ -160,6 +160,32 @@ extern "C" {
 # pragma warning disable 592
 #endif
 
+#if __cplusplus >=201103L
+# define SWIG_NULLPTR nullptr
+#else
+# define SWIG_NULLPTR NULL
+#endif 
+
+
+/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
+ * if you're missing it.
+ */
+#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
+     (defined __cplusplus && __cplusplus >= 201103L) || \
+     defined SWIG_HAVE_SNPRINTF) && \
+    !defined SWIG_NO_SNPRINTF
+# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
+#else
+/* Fallback versions ignore the buffer size, but most of our uses either have a
+ * fixed maximum possible size or dynamically allocate a buffer that's large
+ * enough.
+ */
+# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
+#endif
+
+
 /* -----------------------------------------------------------------------------
  * swigrun.swg
  *
@@ -307,7 +333,7 @@ extern "C" {
 #define SWIG_CASTRANKLIMIT         (1 << 8)
 /* The NewMask denotes the object was created (using new/malloc) */
 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
-/* The TmpMask is for in/out typemaps that use temporal objects */
+/* The TmpMask is for in/out typemaps that use temporary objects */
 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
 /* Simple returning values */
 #define SWIG_BADOBJ                (SWIG_ERROR)
@@ -1088,7 +1114,7 @@ SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) {
 /* Acquire a pointer value */
 
 SWIGRUNTIME int
-SWIG_Perl_AcquirePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, int own) {
+SWIG_Perl_AcquirePtr(SWIG_MAYBE_PERL_OBJECT SV *SWIGUNUSEDPARM(sv), int SWIGUNUSEDPARM(own)) {
   /* TODO */
   return 0;
 }
@@ -1342,7 +1368,7 @@ SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interp
 #endif
 {
   MAGIC *mg;
-  sv_magic(sv,sv,'U',name,strlen(name));
+  sv_magic(sv,sv,'U',name,(I32)strlen(name));
   mg = mg_find(sv,'U');
   mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
   mg->mg_virtual->svt_get = (SwigMagicFunc) get;
@@ -1973,9 +1999,11 @@ SWIGINTERNINLINE int
 SWIG_CanCastAsInteger(double *d, double min, double max) {
   double x = *d;
   if ((min <= x && x <= max)) {
-   double fx = floor(x);
-   double cx = ceil(x);
-   double rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
+   double fx, cx, rd;
+   errno = 0;
+   fx = floor(x);
+   cx = ceil(x);
+   rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
    if ((errno == EDOM) || (errno == ERANGE)) {
      errno = 0;
    } else {
@@ -2491,7 +2519,7 @@ SWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc)
     STRLEN len = 0;
     char *cstr = SvPV(obj, len); 
     size_t size = len + 1;
-    if (cptr)  {
+    if (cptr) {
       if (alloc) {
 	if (*alloc == SWIG_NEWOBJ) {
 	  *cptr = reinterpret_cast< char* >(memcpy(new char[size], cstr, sizeof(char)*(size)));
@@ -3029,7 +3057,7 @@ SWIG_From_unsigned_SS_long_SS_long  SWIG_PERL_DECL_ARGS_1(unsigned long long val
   else {
     //sv = newSVpvf("%llu", value); doesn't work in non 64bit Perl
     char temp[256];
-    sprintf(temp, "%llu", value);
+    SWIG_snprintf(temp, sizeof(temp), "%llu", value);
     sv = newSVpv(temp, 0);
   }
   return sv_2mortal(sv);
@@ -3062,7 +3090,7 @@ SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, unsigned long
      * (UVSIZE <= sizeof(*val) || v <= ULLONG_MAX) */
     if (val) *val = SvUV(obj);
     return SWIG_OK;
-  } else  if (SvIOK(obj)) {
+  } else if (SvIOK(obj)) {
     IV v = SvIV(obj);
     if (v >= 0 && (IVSIZE <= sizeof(*val) || v <= ULLONG_MAX)) {
       if (val) *val = v;
@@ -3186,7 +3214,7 @@ SWIGINTERN Xapian::MSet Xapian_Enquire_get_mset__SWIG_6(Xapian::Enquire *self,Xa
 SWIGINTERN bool Xapian_SimpleStopper_stop_word(Xapian::SimpleStopper *self,std::string term){
      return (*self)(term);
 }
-SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_2(std::string const &file){
+SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_1(std::string const &file){
 	ifstream in_file(file.c_str());
 	if (!in_file.is_open())
 	    throw Xapian::InvalidArgumentError("Stopword file not found: " + file);
@@ -18946,7 +18974,7 @@ XS(_wrap_Query_get_description) {
 }
 
 
-XS(_wrap_new_Query__SWIG_17) {
+XS(_wrap_new_Query__SWIG_15) {
   {
     Xapian::Query::op arg1 ;
     int val1 ;
@@ -19553,7 +19581,7 @@ XS(_wrap_new_Query) {
     case 2:
       PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Query__SWIG_4); return;
     case 3:
-      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Query__SWIG_17); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Query__SWIG_15); return;
     case 4:
       PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Query__SWIG_3); return;
     case 5:
@@ -32779,7 +32807,7 @@ XS(_wrap_SimpleStopper_stop_word) {
 }
 
 
-XS(_wrap_new_SimpleStopper__SWIG_2) {
+XS(_wrap_new_SimpleStopper__SWIG_1) {
   {
     std::string *arg1 = 0 ;
     int res1 = SWIG_OLDOBJ ;
@@ -32803,7 +32831,7 @@ XS(_wrap_new_SimpleStopper__SWIG_2) {
     }
     {
       try {
-        result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_2((std::string const &)*arg1);
+        result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_1((std::string const &)*arg1);
       } catch (...) {
         Xapian::handle_exception();
         SWIG_fail;
@@ -32858,7 +32886,7 @@ XS(_wrap_new_SimpleStopper) {
     case 1:
       PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SimpleStopper__SWIG_0); return;
     case 2:
-      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SimpleStopper__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SimpleStopper__SWIG_1); return;
     }
   }
   
@@ -45339,7 +45367,7 @@ XS(_wrap_Compactor_resolve_duplicate_metadata) {
     Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
     std::string *arg2 = 0 ;
     size_t arg3 ;
-    std::string *arg4 ;
+    std::string *arg4 = (std::string *) (std::string *)0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int res2 = SWIG_OLDOBJ ;
@@ -62445,222 +62473,227 @@ XS(SWIG_init) {
     SvREADONLY_on(sv);
   }
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_AND", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_AND)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_OR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_OR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_AND_NOT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_AND_NOT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_XOR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_XOR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_AND_MAYBE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_AND_MAYBE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_FILTER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_FILTER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_NEAR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_NEAR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_PHRASE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_PHRASE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_VALUE_RANGE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_VALUE_RANGE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_SCALE_WEIGHT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_SCALE_WEIGHT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_ELITE_SET", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_ELITE_SET)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_VALUE_GE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_VALUE_GE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_SYNONYM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_SYNONYM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_MAX", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_MAX)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_WILDCARD", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_WILDCARD)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_VALUE_LE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_VALUE_LE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OP_INVALID", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_INVALID)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ENQ_ASCENDING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Enquire::ASCENDING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ENQ_DESCENDING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Enquire::DESCENDING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ENQ_DONT_CARE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Enquire::DONT_CARE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_ACCUMULATE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_ACCUMULATE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_BOOLEAN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_BOOLEAN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_NO_POSITIONS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_NO_POSITIONS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_PHRASE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_PHRASE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_LOVEHATE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_LOVEHATE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_BOOLEAN_ANY_CASE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_BOOLEAN_ANY_CASE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_WILDCARD", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_WILDCARD)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_PURE_NOT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_PURE_NOT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_PARTIAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_PARTIAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_SPELLING_CORRECTION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_SPELLING_CORRECTION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_SYNONYM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_SYNONYM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_AUTO_SYNONYMS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_AUTO_SYNONYMS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_AUTO_MULTIWORD_SYNONYMS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_AUTO_MULTIWORD_SYNONYMS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+    SV *sv = get_sv((char*) SWIG_prefix "FLAG_NGRAMS", TRUE | 0x2 | GV_ADDMULTI);
+    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_NGRAMS)));
+    SvREADONLY_on(sv);
+  } while(0) /*@SWIG@*/;
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_CJK_NGRAM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_CJK_NGRAM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_DEFAULT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_DEFAULT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "STEM_NONE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::STEM_NONE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "STEM_SOME", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::STEM_SOME)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "STEM_SOME_FULL_POS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::STEM_SOME_FULL_POS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "STEM_ALL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::STEM_ALL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "STEM_ALL_Z", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::STEM_ALL_Z)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FLAG_SPELLING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::TermGenerator::FLAG_SPELLING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "WILDCARD_LIMIT_ERROR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::WILDCARD_LIMIT_ERROR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "WILDCARD_LIMIT_FIRST", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::WILDCARD_LIMIT_FIRST)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "WILDCARD_LIMIT_MOST_FREQUENT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::WILDCARD_LIMIT_MOST_FREQUENT)));
     SvREADONLY_on(sv);
@@ -62690,117 +62723,117 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__WildcardError, (void*) "Xapian::WildcardError");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__DatabaseNotFoundError, (void*) "Xapian::DatabaseNotFoundError");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__DatabaseClosedError, (void*) "Xapian::DatabaseClosedError");
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BAD_VALUENO", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_unsigned_SS_int  SWIG_PERL_CALL_ARGS_1(static_cast< unsigned int >(Xapian::BAD_VALUENO)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DB_CREATE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DB_CREATE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DB_CREATE_OR_OPEN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DB_CREATE_OR_OPEN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DB_CREATE_OR_OVERWRITE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DB_CREATE_OR_OVERWRITE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DB_OPEN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DB_OPEN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DB_NO_SYNC", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DB_NO_SYNC)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DB_FULL_SYNC", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DB_FULL_SYNC)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DB_DANGEROUS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DB_DANGEROUS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DB_NO_TERMLIST", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DB_NO_TERMLIST)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DB_BACKEND_CHERT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DB_BACKEND_CHERT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DB_BACKEND_GLASS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DB_BACKEND_GLASS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DB_BACKEND_INMEMORY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DB_BACKEND_INMEMORY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DB_BACKEND_STUB", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DB_BACKEND_STUB)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DB_RETRY_LOCK", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DB_RETRY_LOCK)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DBCHECK_SHORT_TREE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DBCHECK_SHORT_TREE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DBCHECK_FULL_TREE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DBCHECK_FULL_TREE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DBCHECK_SHOW_FREELIST", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DBCHECK_SHOW_FREELIST)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DBCHECK_SHOW_STATS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DBCHECK_SHOW_STATS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DBCHECK_FIX", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DBCHECK_FIX)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DBCOMPACT_MULTIPASS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DBCOMPACT_MULTIPASS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DBCOMPACT_NO_RENUMBER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DBCOMPACT_NO_RENUMBER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DBCOMPACT_SINGLE_FILE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DBCOMPACT_SINGLE_FILE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DOC_ASSUME_VALID", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::DOC_ASSUME_VALID)));
     SvREADONLY_on(sv);
@@ -62811,175 +62844,185 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__ValueIterator, (void*) "Xapian::ValueIterator");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__Document, (void*) "Xapian::Document");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__Registry, (void*) "Xapian::Registry");
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_AND", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_AND)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_OR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_OR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_AND_NOT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_AND_NOT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_XOR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_XOR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_AND_MAYBE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_AND_MAYBE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_FILTER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_FILTER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_NEAR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_NEAR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_PHRASE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_PHRASE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_VALUE_RANGE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_VALUE_RANGE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_SCALE_WEIGHT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_SCALE_WEIGHT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_ELITE_SET", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_ELITE_SET)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_VALUE_GE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_VALUE_GE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_VALUE_LE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_VALUE_LE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_SYNONYM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_SYNONYM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_MAX", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_MAX)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_WILDCARD", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_WILDCARD)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_OP_INVALID", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::OP_INVALID)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_WILDCARD_LIMIT_ERROR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::WILDCARD_LIMIT_ERROR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_WILDCARD_LIMIT_FIRST", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::WILDCARD_LIMIT_FIRST)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Query_WILDCARD_LIMIT_MOST_FREQUENT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Query::WILDCARD_LIMIT_MOST_FREQUENT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__Query, (void*) "Xapian::Query");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__Stem, (void*) "Xapian::Stem");
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TermGenerator_FLAG_SPELLING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::TermGenerator::FLAG_SPELLING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+    SV *sv = get_sv((char*) SWIG_prefix "TermGenerator_FLAG_NGRAMS", TRUE | 0x2 | GV_ADDMULTI);
+    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::TermGenerator::FLAG_NGRAMS)));
+    SvREADONLY_on(sv);
+  } while(0) /*@SWIG@*/;
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TermGenerator_FLAG_CJK_NGRAM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::TermGenerator::FLAG_CJK_NGRAM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TermGenerator_STEM_NONE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::TermGenerator::STEM_NONE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TermGenerator_STEM_SOME", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::TermGenerator::STEM_SOME)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TermGenerator_STEM_ALL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::TermGenerator::STEM_ALL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TermGenerator_STEM_ALL_Z", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::TermGenerator::STEM_ALL_Z)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TermGenerator_STEM_SOME_FULL_POS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::TermGenerator::STEM_SOME_FULL_POS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TermGenerator_STOP_NONE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::TermGenerator::STOP_NONE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TermGenerator_STOP_ALL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::TermGenerator::STOP_ALL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TermGenerator_STOP_STEMMED", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::TermGenerator::STOP_STEMMED)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__TermGenerator, (void*) "Xapian::TermGenerator");
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MSet_SNIPPET_BACKGROUND_MODEL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::MSet::SNIPPET_BACKGROUND_MODEL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MSet_SNIPPET_EXHAUSTIVE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::MSet::SNIPPET_EXHAUSTIVE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MSet_SNIPPET_EMPTY_WITHOUT_MATCH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::MSet::SNIPPET_EMPTY_WITHOUT_MATCH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+    SV *sv = get_sv((char*) SWIG_prefix "MSet_SNIPPET_NGRAMS", TRUE | 0x2 | GV_ADDMULTI);
+    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::MSet::SNIPPET_NGRAMS)));
+    SvREADONLY_on(sv);
+  } while(0) /*@SWIG@*/;
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MSet_SNIPPET_CJK_NGRAM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::MSet::SNIPPET_CJK_NGRAM)));
     SvREADONLY_on(sv);
@@ -62990,27 +63033,27 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__ESetIterator, (void*) "Xapian::ESetIterator");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__RSet, (void*) "Xapian::RSet");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__MatchDecider, (void*) "Xapian::MatchDecider");
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Enquire_ASCENDING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Enquire::ASCENDING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Enquire_DESCENDING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Enquire::DESCENDING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Enquire_DONT_CARE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Enquire::DONT_CARE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Enquire_INCLUDE_QUERY_TERMS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Enquire::INCLUDE_QUERY_TERMS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Enquire_USE_EXACT_TERMFREQ", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Enquire::USE_EXACT_TERMFREQ)));
     SvREADONLY_on(sv);
@@ -63021,17 +63064,17 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__ExpandDeciderFilterPrefix, (void*) "Xapian::ExpandDeciderFilterPrefix");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__KeyMaker, (void*) "Xapian::KeyMaker");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__MultiValueKeyMaker, (void*) "Xapian::MultiValueKeyMaker");
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RP_SUFFIX", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::RP_SUFFIX)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RP_REPEATED", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::RP_REPEATED)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RP_DATE_PREFER_MDY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::RP_DATE_PREFER_MDY)));
     SvREADONLY_on(sv);
@@ -63046,129 +63089,134 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__DateValueRangeProcessor, (void*) "Xapian::DateValueRangeProcessor");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__NumberValueRangeProcessor, (void*) "Xapian::NumberValueRangeProcessor");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__FieldProcessor, (void*) "Xapian::FieldProcessor");
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_BOOLEAN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_BOOLEAN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_PHRASE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_PHRASE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_LOVEHATE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_LOVEHATE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_BOOLEAN_ANY_CASE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_BOOLEAN_ANY_CASE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_WILDCARD", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_WILDCARD)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_PURE_NOT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_PURE_NOT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_PARTIAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_PARTIAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_SPELLING_CORRECTION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_SPELLING_CORRECTION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_SYNONYM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_SYNONYM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_AUTO_SYNONYMS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_AUTO_SYNONYMS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_AUTO_MULTIWORD_SYNONYMS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_AUTO_MULTIWORD_SYNONYMS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+    SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_NGRAMS", TRUE | 0x2 | GV_ADDMULTI);
+    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_NGRAMS)));
+    SvREADONLY_on(sv);
+  } while(0) /*@SWIG@*/;
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_CJK_NGRAM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_CJK_NGRAM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_ACCUMULATE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_ACCUMULATE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_NO_POSITIONS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_NO_POSITIONS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_FLAG_DEFAULT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::FLAG_DEFAULT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_STEM_NONE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::STEM_NONE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_STEM_SOME", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::STEM_SOME)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_STEM_ALL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::STEM_ALL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_STEM_ALL_Z", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::STEM_ALL_Z)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "QueryParser_STEM_SOME_FULL_POS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::QueryParser::STEM_SOME_FULL_POS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__QueryParser, (void*) "Xapian::QueryParser");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__ValueSetMatchDecider, (void*) "Xapian::ValueSetMatchDecider");
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Weight_TWO_STAGE_SMOOTHING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Weight::TWO_STAGE_SMOOTHING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Weight_DIRICHLET_SMOOTHING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Weight::DIRICHLET_SMOOTHING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Weight_ABSOLUTE_DISCOUNT_SMOOTHING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Weight::ABSOLUTE_DISCOUNT_SMOOTHING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Weight_JELINEK_MERCER_SMOOTHING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Weight::JELINEK_MERCER_SMOOTHING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Weight_DIRICHLET_PLUS_SMOOTHING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Weight::DIRICHLET_PLUS_SMOOTHING)));
     SvREADONLY_on(sv);
@@ -63189,17 +63237,17 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__DPHWeight, (void*) "Xapian::DPHWeight");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__LMWeight, (void*) "Xapian::LMWeight");
   SWIG_TypeClientData(SWIGTYPE_p_Xapian__CoordWeight, (void*) "Xapian::CoordWeight");
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Compactor_STANDARD", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Compactor::STANDARD)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Compactor_FULL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Compactor::FULL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/perl5/perltypemaps.swg,67,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Compactor_FULLER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Xapian::Compactor::FULLER)));
     SvREADONLY_on(sv);
diff --git a/php/Makefile.am b/php/Makefile.am
index 18af8c6a9f2e0994351cc8548e67a9ad0165ddbd..ecf8d3d7bc9606e2fb6f6314a7daebf93651988e 100644
--- a/php/Makefile.am
+++ b/php/Makefile.am
@@ -10,7 +10,7 @@ LOG_COMPILER = \
     $(LIBTOOL) -dlopen xapian.la --mode=execute $(MACOS_SIP_HACK_ENV) $(PHP)
 # Use -n to disable use of the system php.ini to avoid custom configuration
 # settings there which might interfere with our tests.
-AM_LOG_FLAGS = -n -d extension_dir='$(abs_builddir)/.libs' -d extension=xapian
+AM_LOG_FLAGS = -n -d extension_dir='$(abs_builddir)/$(_libs)' -d extension=xapian
 
 installcheck-local:
 	$(MAKE) check AM_LOG_FLAGS=
@@ -41,12 +41,11 @@ install-data-hook:
 # Because we don't install the .la file, "make uninstall" doesn't work and
 # we need to remove the file ourselves.
 uninstall-local:
-	eval `grep '^dlname=' $(phpext_LTLIBRARIES)` ; \
-	  rm -f $(DESTDIR)$(phpextdir)/"$$dlname"
+	rm -f $(DESTDIR)$(phpextdir)/xapian.$(PHP_SHLIB_SUFFIX)
 
 AM_CPPFLAGS = $(PHP_INC)
 AM_CXXFLAGS = $(SWIG_CXXFLAGS) $(XAPIAN_CXXFLAGS)
-xapian_la_LDFLAGS = -avoid-version -module $(NO_UNDEFINED)
+xapian_la_LDFLAGS = -avoid-version -module -shrext .$(PHP_SHLIB_SUFFIX) $(NO_UNDEFINED)
 xapian_la_SOURCES = php/xapian_wrap.cc php/xapian_wrap.h
 xapian_la_LIBADD = $(XAPIAN_LIBS) $(PHP_LIBS)
 
diff --git a/php/Makefile.in b/php/Makefile.in
index 7445214b1abe59a528036469f4cc042abe46b2fe..55f862a26f9f4e53847bdd68b87ea8f741a12dcd 100644
--- a/php/Makefile.in
+++ b/php/Makefile.in
@@ -94,9 +94,7 @@ host_triplet = @host@
 subdir = php
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(dist_docdata_DATA) \
@@ -473,9 +471,9 @@ LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 LUA = @LUA@
-LUA_CPPFLAGS = @LUA_CPPFLAGS@
-LUA_INC = @LUA_INC@
+LUA_CFLAGS = @LUA_CFLAGS@
 LUA_LIB = @LUA_LIB@
+LUA_LIBS = @LUA_LIBS@
 LUA_SO = @LUA_SO@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
@@ -509,6 +507,10 @@ PHP_INC = @PHP_INC@
 PHP_LIBS = @PHP_LIBS@
 PHP_MAJOR_VERSION = @PHP_MAJOR_VERSION@
 PHP_PATH_SEPARATOR = @PHP_PATH_SEPARATOR@
+PHP_SHLIB_SUFFIX = @PHP_SHLIB_SUFFIX@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 PYTHON = @PYTHON@
 PYTHON2 = @PYTHON2@
 PYTHON2_INC = @PYTHON2_INC@
@@ -546,6 +548,7 @@ TCL_CPPFLAGS = @TCL_CPPFLAGS@
 TCL_INC = @TCL_INC@
 TCL_LIB = @TCL_LIB@
 TCL_LIBS = @TCL_LIBS@
+TCL_SHLIB_EXT = @TCL_SHLIB_EXT@
 THREAD_LOCAL = @THREAD_LOCAL@
 VERSION = @VERSION@
 VERSION_NO_SNAPSHOT = @VERSION_NO_SNAPSHOT@
@@ -555,6 +558,7 @@ XAPIAN_HEADERS = @XAPIAN_HEADERS@
 XAPIAN_HEADER_DIRS = @XAPIAN_HEADER_DIRS@
 XAPIAN_LIBS = @XAPIAN_LIBS@
 XAPIAN_VERSION = @XAPIAN_VERSION@
+_libs = @_libs@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -636,7 +640,7 @@ LOG_COMPILER = \
 
 # Use -n to disable use of the system php.ini to avoid custom configuration
 # settings there which might interfere with our tests.
-AM_LOG_FLAGS = -n -d extension_dir='$(abs_builddir)/.libs' -d extension=xapian
+AM_LOG_FLAGS = -n -d extension_dir='$(abs_builddir)/$(_libs)' -d extension=xapian
 SWIG_GENERATED = \
 	php/xapian_wrap.cc\
 	php/xapian_wrap.h\
@@ -653,7 +657,7 @@ phpextdir = $(PHP_EXTENSION_DIR)
 phpext_LTLIBRARIES = xapian.la
 AM_CPPFLAGS = $(PHP_INC)
 AM_CXXFLAGS = $(SWIG_CXXFLAGS) $(XAPIAN_CXXFLAGS)
-xapian_la_LDFLAGS = -avoid-version -module $(NO_UNDEFINED)
+xapian_la_LDFLAGS = -avoid-version -module -shrext .$(PHP_SHLIB_SUFFIX) $(NO_UNDEFINED)
 xapian_la_SOURCES = php/xapian_wrap.cc php/xapian_wrap.h
 xapian_la_LIBADD = $(XAPIAN_LIBS) $(PHP_LIBS)
 
@@ -1265,8 +1269,7 @@ install-data-hook:
 # Because we don't install the .la file, "make uninstall" doesn't work and
 # we need to remove the file ourselves.
 uninstall-local:
-	eval `grep '^dlname=' $(phpext_LTLIBRARIES)` ; \
-	  rm -f $(DESTDIR)$(phpextdir)/"$$dlname"
+	rm -f $(DESTDIR)$(phpextdir)/xapian.$(PHP_SHLIB_SUFFIX)
 @MAINTAINER_MODE_TRUE@except.i: $(srcdir)/generate-php-exceptions ../../xapian-core/exception_data.pm
 @MAINTAINER_MODE_TRUE@	$(PERL) -w -I$(srcdir)/../../xapian-core $(srcdir)/generate-php-exceptions
 
diff --git a/php/docs/index.html b/php/docs/index.html
index 7c35fd73f11cb202436feee1a8b958d514fbafea..684b9cf0d6b3b2b1649a5b926bca67a96ff1030b 100644
--- a/php/docs/index.html
+++ b/php/docs/index.html
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
+<meta name="generator" content="Docutils 0.20.1: https://docutils.sourceforge.io/" />
 <title>PHP bindings for Xapian</title>
 <style type="text/css">
 
@@ -401,6 +401,8 @@ etc.</p>
 <h1>Installation</h1>
 <p>This version of the bindings only support PHP &gt;= 8.0  If you need support
 for PHP 5.x or 7.x, you'll need to use Xapian 1.4.21 or earlier instead.</p>
+<p>If you want to install from source you'll need to <a class="reference external" href="https://xapian.org/download">download the source
+code</a> if you haven't already done so.</p>
 <p>Assuming you have a suitable version of PHP installed, running
 configure will automatically enable the PHP bindings, and
 <tt class="docutils literal">make install</tt> will install the extension shared library in
diff --git a/php/docs/index.rst b/php/docs/index.rst
index c1246e67105b148e1a8055cbacaddd2e717631aa..cf9f46387cc80ebd29166e6908ef2aef0d7d80ce 100644
--- a/php/docs/index.rst
+++ b/php/docs/index.rst
@@ -48,6 +48,9 @@ Installation
 This version of the bindings only support PHP >= 8.0  If you need support
 for PHP 5.x or 7.x, you'll need to use Xapian 1.4.21 or earlier instead.
 
+If you want to install from source you'll need to `download the source
+code <https://xapian.org/download>`_ if you haven't already done so.
+
 Assuming you have a suitable version of PHP installed, running
 configure will automatically enable the PHP bindings, and
 ``make install`` will install the extension shared library in
diff --git a/php/php/php_xapian.h b/php/php/php_xapian.h
index bcd91ba540119b5563af70ab5a9c61bbb1a39d3e..7dc7553896363b4ff5eeab7f3d5faa3d43a91904 100644
--- a/php/php/php_xapian.h
+++ b/php/php/php_xapian.h
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/php/php/xapian_wrap.cc b/php/php/xapian_wrap.cc
index 499e019bb77f0c92b7f711dc2c3ccc09d2565ba9..42cff7ea973d5f5a6a9bea4e3c4e31a56d4148a7 100644
--- a/php/php/xapian_wrap.cc
+++ b/php/php/xapian_wrap.cc
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -10,7 +10,7 @@
 
 
 
-#define SWIG_VERSION 0x040101
+#define SWIG_VERSION 0x040200
 #define SWIGPHP
 #define SWIG_DIRECTORS
 
@@ -151,6 +151,32 @@
 # pragma warning disable 592
 #endif
 
+#if __cplusplus >=201103L
+# define SWIG_NULLPTR nullptr
+#else
+# define SWIG_NULLPTR NULL
+#endif 
+
+
+/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
+ * if you're missing it.
+ */
+#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
+     (defined __cplusplus && __cplusplus >= 201103L) || \
+     defined SWIG_HAVE_SNPRINTF) && \
+    !defined SWIG_NO_SNPRINTF
+# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
+#else
+/* Fallback versions ignore the buffer size, but most of our uses either have a
+ * fixed maximum possible size or dynamically allocate a buffer that's large
+ * enough.
+ */
+# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
+#endif
+
+
 /* -----------------------------------------------------------------------------
  * swigrun.swg
  *
@@ -298,7 +324,7 @@
 #define SWIG_CASTRANKLIMIT         (1 << 8)
 /* The NewMask denotes the object was created (using new/malloc) */
 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
-/* The TmpMask is for in/out typemaps that use temporal objects */
+/* The TmpMask is for in/out typemaps that use temporary objects */
 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
 /* Simple returning values */
 #define SWIG_BADOBJ                (SWIG_ERROR)
@@ -761,35 +787,14 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
 extern "C" {
 #endif
 
-#if PHP_MAJOR_VERSION < 7
-# error These bindings need PHP 7 or later - to generate PHP5 bindings use: SWIG < 4.0.0 and swig -php5
+#if PHP_MAJOR_VERSION < 8
+# error These bindings need PHP 8 or later - to generate PHP7 bindings use SWIG < 4.1.0; to generate PHP5 bindings use: SWIG < 4.0.0 and swig -php5
 #endif
 
 #include "zend_inheritance.h"
 #include "zend_exceptions.h"
 #include "zend_inheritance.h"
 
-#if PHP_MAJOR_VERSION == 7
-/* These macros were new in PHP 8.0.  For PHP 7.x we define them to give the
- * same result except without any type declarations.  PHP 7.x supports type
- * declarations, but not for the return type, and alternate types aren't
- * supported, so we don't try to support these.
- */
-# define ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(name, byref, num_req, classes, types) \
-    ZEND_BEGIN_ARG_INFO_EX(name, 0, byref, num_req)
-# define ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(name, byref, num_req, types) \
-    ZEND_BEGIN_ARG_INFO_EX(name, 0, byref, num_req)
-
-/* NB We can just ignore `default` here we currently always pass NULL for it
- * (this mechanism for specifying default parameter values was new in PHP 8.0
- * so it's not useful while we still want to support PHP7 too).
- */
-# define ZEND_ARG_OBJ_TYPE_MASK(byref, name, classes, types, default) \
-    ZEND_ARG_INFO(byref, name)
-# define ZEND_ARG_TYPE_MASK(byref, name, types, default) \
-    ZEND_ARG_INFO(byref, name)
-#endif
-
 #include <stdlib.h> /* for abort(), used in generated code. */
 
 #define SWIG_BOOL_CONSTANT(N, V) REGISTER_BOOL_CONSTANT(#N, V, CONST_CS | CONST_PERSISTENT)
@@ -801,27 +806,6 @@ extern "C" {
     REGISTER_STRINGL_CONSTANT(#N, &swig_char, 1, CONST_CS | CONST_PERSISTENT);\
 } while (0)
 
-/* ZEND_CONSTANT_SET_FLAGS was new in PHP 7.3. */
-#ifdef ZEND_CONSTANT_SET_FLAGS
-# define SWIG_ZEND_CONSTANT_SET_FLAGS ZEND_CONSTANT_SET_FLAGS
-#else
-# define SWIG_ZEND_CONSTANT_SET_FLAGS(C, F, N) do { (C)->flags = (F); (C)->module_number = (N); } while (0)
-#endif
-
-/* zend_object_alloc was new in PHP 7.3. */
-#if PHP_MAJOR_VERSION == 7 && PHP_MINOR_VERSION < 3
-static zend_always_inline void *zend_object_alloc(size_t obj_size, zend_class_entry *ce) {
-    void *obj = emalloc(obj_size + zend_object_properties_size(ce));
-    memset(obj, 0, obj_size - sizeof(zval));
-    return obj;
-}
-#endif
-
-/* ZEND_THIS was new in PHP 7.4. */
-#ifndef ZEND_THIS
-# define ZEND_THIS &EX(This)
-#endif
-
 #ifdef __cplusplus
 }
 #endif
@@ -844,27 +828,6 @@ static int default_error_code = E_ERROR;
 
 static zend_class_entry SWIG_Php_swig_wrapped_interface_ce;
 
-#if PHP_MAJOR_VERSION == 7
-/* zend_class_implements_interface() was new in PHP 8.0.
- *
- * We could use instanceof_function_ex(C, I, 1) here for 7.4, but for 7.3
- * and earlier that doesn't work, so instead we just provide a compatibility
- * implementation which does what zend_class_implements_interface() does in 8.x
- * and use that for all 7.x so there are fewer variants to worry about testing.
- */
-static int zend_class_implements_interface(const zend_class_entry *class_ce, const zend_class_entry *interface_ce) {
-  uint32_t i;
-  if (class_ce->num_interfaces) {
-    for (i = 0; i < class_ce->num_interfaces; i++) {
-      if (class_ce->interfaces[i] == interface_ce) {
-	return 1;
-      }
-    }
-  }
-  return 0;
-}
-#endif
-
 /* used to wrap returned objects in so we know whether they are newobject
    and need freeing, or not */
 typedef struct {
@@ -1427,10 +1390,8 @@ template <typename T> T SwigValueInit() {
 #define SWIG_PHP_INTERFACE_JsonSerializable_HEADER "ext/json/php_json.h"
 
 // New in PHP 8.0.
-#if PHP_MAJOR_VERSION >= 8
-# define SWIG_PHP_INTERFACE_Stringable_CE zend_ce_stringable
-# define SWIG_PHP_INTERFACE_Stringable_HEADER "zend_interfaces.h"
-#endif
+#define SWIG_PHP_INTERFACE_Stringable_CE zend_ce_stringable
+#define SWIG_PHP_INTERFACE_Stringable_HEADER "zend_interfaces.h"
 
 
 
@@ -1547,14 +1508,9 @@ namespace Xapian {
 }
 
 
-#if PHP_MAJOR_VERSION >= 8
-# define SWIG_HANDLE_VALUE_ERROR_FOR_PHP8(code) code == SWIG_ValueError ? zend_ce_value_error :
-#else
-# define SWIG_HANDLE_VALUE_ERROR_FOR_PHP8(code)
-#endif
 #define SWIG_exception(code, msg) do { zend_throw_exception( \
     code == SWIG_TypeError ? zend_ce_type_error : \
-    SWIG_HANDLE_VALUE_ERROR_FOR_PHP8(code) \
+    code == SWIG_ValueError ? zend_ce_value_error : \
     code == SWIG_DivisionByZero ? zend_ce_division_by_zero_error : \
     code == SWIG_SyntaxError ? zend_ce_parse_error : \
     code == SWIG_OverflowError ? zend_ce_arithmetic_error : \
@@ -1886,7 +1842,7 @@ SWIGINTERN std::pair< Xapian::TermIterator,Xapian::TermIterator > Xapian_Enquire
 	return std::make_pair(self->get_matching_terms_begin(item),
 			      self->get_matching_terms_end(item));
     }
-SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_2(std::string const &file){
+SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_1(std::string const &file){
 	ifstream in_file(file.c_str());
 	if (!in_file.is_open())
 	    throw Xapian::InvalidArgumentError("Stopword file not found: " + file);
@@ -2860,16 +2816,10 @@ std::string SwigDirector_StemImplementation::operator ()(std::string const &word
   ZVAL_STRINGL(&args[0], (&word)->data(), (&word)->size());
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "apply", 5);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 1, args);
-#else
     zend_string *swig_funcname = zend_string_init("apply", 5, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 1, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -2888,16 +2838,10 @@ std::string SwigDirector_StemImplementation::get_description() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_description", 15);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_description", 15, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -2927,20 +2871,14 @@ bool SwigDirector_MatchDecider::operator ()(Xapian::Document const &doc) const {
   SWIG_SetPointerZval(&args[0], (void *)&doc, SWIGTYPE_p_Xapian__Document, 0);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "apply", 5);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 1, args);
-#else
     zend_string *swig_funcname = zend_string_init("apply", 5, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 1, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
     c_result = (bool) zval_is_true(&*result);
     /*@SWIG@*/;
     
@@ -2969,20 +2907,14 @@ bool SwigDirector_ExpandDecider::operator ()(std::string const &term) const {
   ZVAL_STRINGL(&args[0], (&term)->data(), (&term)->size());
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "apply", 5);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 1, args);
-#else
     zend_string *swig_funcname = zend_string_init("apply", 5, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 1, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
     c_result = (bool) zval_is_true(&*result);
     /*@SWIG@*/;
     
@@ -3011,16 +2943,10 @@ std::string SwigDirector_KeyMaker::operator ()(Xapian::Document const &doc) cons
   SWIG_SetPointerZval(&args[0], (void *)&doc, SWIGTYPE_p_Xapian__Document, 0);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "apply", 5);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 1, args);
-#else
     zend_string *swig_funcname = zend_string_init("apply", 5, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 1, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -3052,20 +2978,14 @@ bool SwigDirector_Stopper::operator ()(std::string const &term) const {
   ZVAL_STRINGL(&args[0], (&term)->data(), (&term)->size());
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "apply", 5);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 1, args);
-#else
     zend_string *swig_funcname = zend_string_init("apply", 5, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 1, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
     c_result = (bool) zval_is_true(&*result);
     /*@SWIG@*/;
     
@@ -3084,16 +3004,10 @@ std::string SwigDirector_Stopper::get_description() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_description", 15);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_description", 15, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -3135,16 +3049,10 @@ Xapian::Query SwigDirector_RangeProcessor::operator ()(std::string const &begin,
   ZVAL_STRINGL(&args[1], (&end)->data(), (&end)->size());
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "apply", 5);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 2, args);
-#else
     zend_string *swig_funcname = zend_string_init("apply", 5, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 2, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -3184,20 +3092,14 @@ Xapian::valueno SwigDirector_ValueRangeProcessor::operator ()(std::string &begin
   SWIG_SetPointerZval(&args[1], (void *)&end, SWIGTYPE_p_std__string, 0);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "apply", 5);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 2, args);
-#else
     zend_string *swig_funcname = zend_string_init("apply", 5, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 2, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
     c_result = (Xapian::valueno) zval_get_long(&*result);
     /*@SWIG@*/;
     
@@ -3227,16 +3129,10 @@ Xapian::Query SwigDirector_FieldProcessor::operator ()(std::string const &str) {
   ZVAL_STRINGL(&args[0], (&str)->data(), (&str)->size());
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "apply", 5);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 1, args);
-#else
     zend_string *swig_funcname = zend_string_init("apply", 5, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 1, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -3272,16 +3168,10 @@ void SwigDirector_Compactor::set_status(std::string const &table,std::string con
   ZVAL_STRINGL(&args[1], (&status)->data(), (&status)->size());
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "set_status", 10);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 2, args);
-#else
     zend_string *swig_funcname = zend_string_init("set_status", 10, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 2, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -3308,16 +3198,10 @@ std::string SwigDirector_Compactor::resolve_duplicate_metadata(std::string const
     }
   }
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "resolve_duplicate_metadata", 26);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 2, args);
-#else
     zend_string *swig_funcname = zend_string_init("resolve_duplicate_metadata", 26, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 2, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -3346,20 +3230,14 @@ Xapian::doccount SwigDirector_PostingSource::get_termfreq_min() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_termfreq_min", 16);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_termfreq_min", 16, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
     c_result = (Xapian::doccount) zval_get_long(&*result);
     /*@SWIG@*/;
     
@@ -3376,20 +3254,14 @@ Xapian::doccount SwigDirector_PostingSource::get_termfreq_est() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_termfreq_est", 16);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_termfreq_est", 16, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
     c_result = (Xapian::doccount) zval_get_long(&*result);
     /*@SWIG@*/;
     
@@ -3406,20 +3278,14 @@ Xapian::doccount SwigDirector_PostingSource::get_termfreq_max() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_termfreq_max", 16);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_termfreq_max", 16, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
     c_result = (Xapian::doccount) zval_get_long(&*result);
     /*@SWIG@*/;
     
@@ -3436,20 +3302,14 @@ double SwigDirector_PostingSource::get_weight() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_weight", 10);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_weight", 10, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
     c_result = (double) zval_get_double(&*result);
     /*@SWIG@*/;
     
@@ -3466,20 +3326,14 @@ Xapian::docid SwigDirector_PostingSource::get_docid() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_docid", 9);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_docid", 9, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
     c_result = (Xapian::docid) zval_get_long(&*result);
     /*@SWIG@*/;
     
@@ -3497,16 +3351,10 @@ void SwigDirector_PostingSource::next(double min_wt) {
   ZVAL_DOUBLE(&args[0], min_wt);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "next", 4);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 1, args);
-#else
     zend_string *swig_funcname = zend_string_init("next", 4, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 1, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -3527,16 +3375,10 @@ void SwigDirector_PostingSource::skip_to(Xapian::docid did,double min_wt) {
   ZVAL_DOUBLE(&args[1], min_wt);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "skip_to", 7);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 2, args);
-#else
     zend_string *swig_funcname = zend_string_init("skip_to", 7, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 2, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -3559,20 +3401,14 @@ bool SwigDirector_PostingSource::check(Xapian::docid did,double min_wt) {
   ZVAL_DOUBLE(&args[1], min_wt);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "check", 5);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 2, args);
-#else
     zend_string *swig_funcname = zend_string_init("check", 5, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 2, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
     c_result = (bool) zval_is_true(&*result);
     /*@SWIG@*/;
     
@@ -3589,20 +3425,14 @@ bool SwigDirector_PostingSource::at_end() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "at_end", 6);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("at_end", 6, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
     c_result = (bool) zval_is_true(&*result);
     /*@SWIG@*/;
     
@@ -3624,16 +3454,10 @@ std::string SwigDirector_PostingSource::name() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "name", 4);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("name", 4, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -3673,16 +3497,10 @@ void SwigDirector_PostingSource::init(Xapian::Database const &db) {
   SWIG_SetPointerZval(&args[0], (void *)&db, SWIGTYPE_p_Xapian__Database, 0);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "init", 4);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 1, args);
-#else
     zend_string *swig_funcname = zend_string_init("init", 4, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 1, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -3698,16 +3516,10 @@ std::string SwigDirector_PostingSource::get_description() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_description", 15);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_description", 15, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -3736,20 +3548,14 @@ Xapian::doccount SwigDirector_ValuePostingSource::get_termfreq_min() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_termfreq_min", 16);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_termfreq_min", 16, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
     c_result = (Xapian::doccount) zval_get_long(&*result);
     /*@SWIG@*/;
     
@@ -3766,20 +3572,14 @@ Xapian::doccount SwigDirector_ValuePostingSource::get_termfreq_est() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_termfreq_est", 16);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_termfreq_est", 16, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
     c_result = (Xapian::doccount) zval_get_long(&*result);
     /*@SWIG@*/;
     
@@ -3796,20 +3596,14 @@ Xapian::doccount SwigDirector_ValuePostingSource::get_termfreq_max() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_termfreq_max", 16);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_termfreq_max", 16, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
     c_result = (Xapian::doccount) zval_get_long(&*result);
     /*@SWIG@*/;
     
@@ -3826,20 +3620,14 @@ double SwigDirector_ValuePostingSource::get_weight() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_weight", 10);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_weight", 10, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
     c_result = (double) zval_get_double(&*result);
     /*@SWIG@*/;
     
@@ -3856,20 +3644,14 @@ Xapian::docid SwigDirector_ValuePostingSource::get_docid() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_docid", 9);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_docid", 9, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
     c_result = (Xapian::docid) zval_get_long(&*result);
     /*@SWIG@*/;
     
@@ -3887,16 +3669,10 @@ void SwigDirector_ValuePostingSource::next(double min_wt) {
   ZVAL_DOUBLE(&args[0], min_wt);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "next", 4);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 1, args);
-#else
     zend_string *swig_funcname = zend_string_init("next", 4, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 1, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -3917,16 +3693,10 @@ void SwigDirector_ValuePostingSource::skip_to(Xapian::docid min_docid,double min
   ZVAL_DOUBLE(&args[1], min_wt);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "skip_to", 7);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 2, args);
-#else
     zend_string *swig_funcname = zend_string_init("skip_to", 7, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 2, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -3949,20 +3719,14 @@ bool SwigDirector_ValuePostingSource::check(Xapian::docid min_docid,double min_w
   ZVAL_DOUBLE(&args[1], min_wt);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "check", 5);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 2, args);
-#else
     zend_string *swig_funcname = zend_string_init("check", 5, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 2, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
     c_result = (bool) zval_is_true(&*result);
     /*@SWIG@*/;
     
@@ -3979,20 +3743,14 @@ bool SwigDirector_ValuePostingSource::at_end() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "at_end", 6);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("at_end", 6, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
     c_result = (bool) zval_is_true(&*result);
     /*@SWIG@*/;
     
@@ -4014,16 +3772,10 @@ std::string SwigDirector_ValuePostingSource::name() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "name", 4);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("name", 4, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -4063,16 +3815,10 @@ void SwigDirector_ValuePostingSource::init(Xapian::Database const &db_) {
   SWIG_SetPointerZval(&args[0], (void *)&db_, SWIGTYPE_p_Xapian__Database, 0);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "init", 4);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 1, args);
-#else
     zend_string *swig_funcname = zend_string_init("init", 4, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 1, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -4088,16 +3834,10 @@ std::string SwigDirector_ValuePostingSource::get_description() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_description", 15);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_description", 15, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -4126,20 +3866,14 @@ Xapian::doccount SwigDirector_ValueWeightPostingSource::get_termfreq_min() const
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_termfreq_min", 16);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_termfreq_min", 16, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
     c_result = (Xapian::doccount) zval_get_long(&*result);
     /*@SWIG@*/;
     
@@ -4156,20 +3890,14 @@ Xapian::doccount SwigDirector_ValueWeightPostingSource::get_termfreq_est() const
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_termfreq_est", 16);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_termfreq_est", 16, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
     c_result = (Xapian::doccount) zval_get_long(&*result);
     /*@SWIG@*/;
     
@@ -4186,20 +3914,14 @@ Xapian::doccount SwigDirector_ValueWeightPostingSource::get_termfreq_max() const
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_termfreq_max", 16);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_termfreq_max", 16, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
     c_result = (Xapian::doccount) zval_get_long(&*result);
     /*@SWIG@*/;
     
@@ -4216,20 +3938,14 @@ double SwigDirector_ValueWeightPostingSource::get_weight() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_weight", 10);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_weight", 10, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
     c_result = (double) zval_get_double(&*result);
     /*@SWIG@*/;
     
@@ -4246,20 +3962,14 @@ Xapian::docid SwigDirector_ValueWeightPostingSource::get_docid() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_docid", 9);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_docid", 9, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
     c_result = (Xapian::docid) zval_get_long(&*result);
     /*@SWIG@*/;
     
@@ -4277,16 +3987,10 @@ void SwigDirector_ValueWeightPostingSource::next(double min_wt) {
   ZVAL_DOUBLE(&args[0], min_wt);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "next", 4);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 1, args);
-#else
     zend_string *swig_funcname = zend_string_init("next", 4, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 1, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -4307,16 +4011,10 @@ void SwigDirector_ValueWeightPostingSource::skip_to(Xapian::docid min_docid,doub
   ZVAL_DOUBLE(&args[1], min_wt);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "skip_to", 7);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 2, args);
-#else
     zend_string *swig_funcname = zend_string_init("skip_to", 7, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 2, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -4339,20 +4037,14 @@ bool SwigDirector_ValueWeightPostingSource::check(Xapian::docid min_docid,double
   ZVAL_DOUBLE(&args[1], min_wt);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "check", 5);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 2, args);
-#else
     zend_string *swig_funcname = zend_string_init("check", 5, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 2, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
     c_result = (bool) zval_is_true(&*result);
     /*@SWIG@*/;
     
@@ -4369,20 +4061,14 @@ bool SwigDirector_ValueWeightPostingSource::at_end() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "at_end", 6);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("at_end", 6, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
     c_result = (bool) zval_is_true(&*result);
     /*@SWIG@*/;
     
@@ -4404,16 +4090,10 @@ std::string SwigDirector_ValueWeightPostingSource::name() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "name", 4);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("name", 4, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -4453,16 +4133,10 @@ void SwigDirector_ValueWeightPostingSource::init(Xapian::Database const &db_) {
   SWIG_SetPointerZval(&args[0], (void *)&db_, SWIGTYPE_p_Xapian__Database, 0);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "init", 4);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 1, args);
-#else
     zend_string *swig_funcname = zend_string_init("init", 4, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 1, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -4478,16 +4152,10 @@ std::string SwigDirector_ValueWeightPostingSource::get_description() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_description", 15);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_description", 15, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -4521,16 +4189,10 @@ void SwigDirector_MatchSpy::operator ()(Xapian::Document const &doc,double wt) {
   ZVAL_DOUBLE(&args[1], wt);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "apply", 5);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 2, args);
-#else
     zend_string *swig_funcname = zend_string_init("apply", 5, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 2, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -4552,16 +4214,10 @@ std::string SwigDirector_MatchSpy::name() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "name", 4);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("name", 4, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -4600,16 +4256,10 @@ void SwigDirector_MatchSpy::merge_results(std::string const &serialised) {
   ZVAL_STRINGL(&args[0], (&serialised)->data(), (&serialised)->size());
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "merge_results", 13);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 1, args);
-#else
     zend_string *swig_funcname = zend_string_init("merge_results", 13, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 1, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -4625,16 +4275,10 @@ std::string SwigDirector_MatchSpy::get_description() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "get_description", 15);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("get_description", 15, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -4671,20 +4315,14 @@ double SwigDirector_LatLongMetric::pointwise_distance(Xapian::LatLongCoord const
   SWIG_SetPointerZval(&args[1], (void *)&b, SWIGTYPE_p_Xapian__LatLongCoord, 0);
   
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "pointwise_distance", 18);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 2, args);
-#else
     zend_string *swig_funcname = zend_string_init("pointwise_distance", 18, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 2, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
-    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+    /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
     c_result = (double) zval_get_double(&*result);
     /*@SWIG@*/;
     
@@ -4709,16 +4347,10 @@ std::string SwigDirector_LatLongMetric::name() const {
   zval swig_zval_result;
   zval * SWIGUNUSED result = &swig_zval_result;
   {
-#if PHP_MAJOR_VERSION < 8
-    zval swig_funcname;
-    ZVAL_STRINGL(&swig_funcname, "name", 4);
-    call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, 0, args);
-#else
     zend_string *swig_funcname = zend_string_init("name", 4, 0);
     zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);
     zend_string_release(swig_funcname);
     if (swig_zend_func) zend_call_known_instance_method(swig_zend_func, Z_OBJ(swig_self), &swig_zval_result, 0, args);
-#endif
     if (EG(exception)) SWIG_fail;
   }
   {
@@ -4862,7 +4494,7 @@ static PHP_METHOD(XapianPositionIterator,skip_to) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termpos) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -5309,7 +4941,7 @@ static PHP_METHOD(XapianPostingIterator,skip_to) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -6126,7 +5758,7 @@ static PHP_METHOD(XapianValueIterator,skip_to) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -6156,7 +5788,7 @@ static PHP_METHOD(XapianValueIterator,check) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -6485,7 +6117,7 @@ static PHP_METHOD(XapianDocument,get_value) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -6518,7 +6150,7 @@ static PHP_METHOD(XapianDocument,add_value) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -6552,7 +6184,7 @@ static PHP_METHOD(XapianDocument,remove_value) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -6666,12 +6298,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Document_add_posting__SWIG_0) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termpos) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -6707,7 +6339,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Document_add_posting__SWIG_1) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termpos) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -6737,7 +6369,10 @@ static PHP_METHOD(XapianDocument,add_posting) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_Document_add_posting__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -6749,9 +6384,15 @@ static PHP_METHOD(XapianDocument,add_posting) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_Document_add_posting__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -6783,7 +6424,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Document_add_term__SWIG_0) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -6852,7 +6493,10 @@ static PHP_METHOD(XapianDocument,add_term) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_Document_add_term__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -6914,12 +6558,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Document_remove_posting__SWIG_0) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termpos) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -6955,7 +6599,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Document_remove_posting__SWIG_1) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termpos) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -6985,7 +6629,10 @@ static PHP_METHOD(XapianDocument,remove_posting) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_Document_remove_posting__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -6997,9 +6644,15 @@ static PHP_METHOD(XapianDocument,remove_posting) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_Document_remove_posting__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -7034,17 +6687,17 @@ static ZEND_NAMED_FUNCTION(_wrap_Document_remove_postings__SWIG_0) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termpos) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termpos) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg5 = (Xapian::termcount) zval_get_long(&args[3]);
   /*@SWIG@*/;
   
@@ -7084,12 +6737,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Document_remove_postings__SWIG_1) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termpos) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termpos) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -7121,9 +6774,15 @@ static PHP_METHOD(XapianDocument,remove_postings) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_Document_remove_postings__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -7136,11 +6795,20 @@ static PHP_METHOD(XapianDocument,remove_postings) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
-          _v = (Z_TYPE(argv[3]) == IS_LONG);
+          _v = (Z_TYPE(argv[3]) == IS_LONG &&
+            (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[3])) &&
+            (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[3])));
+          
           if (_v) {
             _wrap_Document_remove_postings__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
           }
@@ -8015,12 +7683,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_1) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termpos) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -8057,7 +7725,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_2) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -8158,7 +7826,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_5) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -8201,7 +7869,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_6) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::Query::op) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -8217,7 +7885,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_6) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[2]);
   /*@SWIG@*/;
   
@@ -8249,7 +7917,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_7) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::Query::op) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -8305,7 +7973,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_8) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::Query::op) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -8348,12 +8016,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_9) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::Query::op) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -8393,12 +8061,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_10) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::Query::op) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -8443,7 +8111,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_11) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::Query::op) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -8453,17 +8121,17 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_11) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[3]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg5 = (Xapian::Query::op) zval_get_long(&args[4]);
   /*@SWIG@*/;
   
@@ -8497,7 +8165,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_12) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::Query::op) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -8507,12 +8175,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_12) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[3]);
   /*@SWIG@*/;
   
@@ -8545,7 +8213,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_13) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::Query::op) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -8555,7 +8223,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_13) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -8587,7 +8255,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_14) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::Query::op) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -8612,7 +8280,7 @@ fail:
 }
 
 
-static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_17) {
+static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_15) {
   Xapian::Query::op arg1 ;
   XapianSWIGQueryItor arg2 ;
   XapianSWIGQueryItor arg3 ;
@@ -8625,7 +8293,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_17) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::Query::op) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -8638,7 +8306,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_17) {
     }
   }
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -8658,7 +8326,7 @@ fail:
 }
 
 
-static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_18) {
+static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_16) {
   Xapian::Query::op arg1 ;
   XapianSWIGQueryItor arg2 ;
   XapianSWIGQueryItor arg3 ;
@@ -8670,7 +8338,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_18) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::Query::op) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -9029,7 +8697,7 @@ static PHP_METHOD(XapianQuery,get_subquery) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (size_t) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -9079,7 +8747,7 @@ fail:
 }
 
 
-static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_19) {
+static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_17) {
   Xapian::Query::op arg1 ;
   zval args[1];
   Xapian::Query *result = 0 ;
@@ -9089,7 +8757,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Query__SWIG_19) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::Query::op) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -9139,9 +8807,13 @@ static PHP_METHOD(XapianQuery,__construct) {
   }
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _wrap_new_Query__SWIG_19(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
+      _wrap_new_Query__SWIG_17(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
@@ -9150,7 +8822,10 @@ static PHP_METHOD(XapianQuery,__construct) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_new_Query__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -9158,7 +8833,11 @@ static PHP_METHOD(XapianQuery,__construct) {
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
@@ -9170,7 +8849,11 @@ static PHP_METHOD(XapianQuery,__construct) {
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_ARRAY);
@@ -9179,9 +8862,9 @@ static PHP_METHOD(XapianQuery,__construct) {
       }
       if (_v) {
         if (argc <= 2) {
-          _wrap_new_Query__SWIG_18(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
+          _wrap_new_Query__SWIG_16(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
-        _wrap_new_Query__SWIG_18(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
+        _wrap_new_Query__SWIG_16(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
     }
   }
@@ -9204,9 +8887,15 @@ static PHP_METHOD(XapianQuery,__construct) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_new_Query__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -9215,7 +8904,11 @@ static PHP_METHOD(XapianQuery,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -9234,7 +8927,11 @@ static PHP_METHOD(XapianQuery,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -9250,7 +8947,11 @@ static PHP_METHOD(XapianQuery,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
@@ -9267,13 +8968,20 @@ static PHP_METHOD(XapianQuery,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_new_Query__SWIG_13(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -9282,9 +8990,16 @@ static PHP_METHOD(XapianQuery,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         {
           _v = (Z_TYPE(argv[2]) == IS_STRING);
@@ -9297,7 +9012,11 @@ static PHP_METHOD(XapianQuery,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_ARRAY);
@@ -9305,24 +9024,37 @@ static PHP_METHOD(XapianQuery,__construct) {
              * of the array here to disambiguate. */
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
-          _wrap_new_Query__SWIG_17(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
+          _wrap_new_Query__SWIG_15(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
       }
     }
   }
   if (argc == 4) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
-          _v = (Z_TYPE(argv[3]) == IS_LONG);
+          _v = (Z_TYPE(argv[3]) == IS_LONG &&
+            (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[3])) &&
+            (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[3])));
+          
           if (_v) {
             _wrap_new_Query__SWIG_12(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
           }
@@ -9332,9 +9064,16 @@ static PHP_METHOD(XapianQuery,__construct) {
   }
   if (argc == 4) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         {
           _v = (Z_TYPE(argv[2]) == IS_STRING);
@@ -9352,17 +9091,30 @@ static PHP_METHOD(XapianQuery,__construct) {
   }
   if (argc == 5) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
-          _v = (Z_TYPE(argv[3]) == IS_LONG);
+          _v = (Z_TYPE(argv[3]) == IS_LONG &&
+            (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[3])) &&
+            (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[3])));
+          
           if (_v) {
-            _v = (Z_TYPE(argv[4]) == IS_LONG);
+            _v = (Z_TYPE(argv[4]) == IS_LONG &&
+              (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[4])) &&
+              (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[4])));
+            
             if (_v) {
               _wrap_new_Query__SWIG_11(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
             }
@@ -9735,7 +9487,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Stem__SWIG_1) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg2 = (bool) zval_is_true(&args[1]);
   /*@SWIG@*/;
   
@@ -10272,12 +10024,12 @@ static ZEND_NAMED_FUNCTION(_wrap_TermGenerator_set_flags__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::TermGenerator::flags) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::TermGenerator::flags) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -10309,7 +10061,7 @@ static ZEND_NAMED_FUNCTION(_wrap_TermGenerator_set_flags__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::TermGenerator::flags) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -10337,16 +10089,27 @@ static PHP_METHOD(XapianTermGenerator,set_flags) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_TermGenerator_set_flags__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[1])) &&
+        (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_TermGenerator_set_flags__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -10370,7 +10133,7 @@ static PHP_METHOD(XapianTermGenerator,set_stemming_strategy) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::TermGenerator::stem_strategy) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -10399,7 +10162,7 @@ static PHP_METHOD(XapianTermGenerator,set_stopper_strategy) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::TermGenerator::stop_strategy) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -10428,7 +10191,7 @@ static PHP_METHOD(XapianTermGenerator,set_max_word_length) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (unsigned int) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -10466,7 +10229,7 @@ static ZEND_NAMED_FUNCTION(_wrap_TermGenerator_index_text__SWIG_0) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -10507,7 +10270,7 @@ static ZEND_NAMED_FUNCTION(_wrap_TermGenerator_index_text__SWIG_1) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -10576,7 +10339,10 @@ static PHP_METHOD(XapianTermGenerator,index_text) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_TermGenerator_index_text__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -10588,7 +10354,10 @@ static PHP_METHOD(XapianTermGenerator,index_text) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         {
           _v = (Z_TYPE(argv[2]) == IS_STRING);
@@ -10626,7 +10395,7 @@ static ZEND_NAMED_FUNCTION(_wrap_TermGenerator_index_text_without_positions__SWI
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -10667,7 +10436,7 @@ static ZEND_NAMED_FUNCTION(_wrap_TermGenerator_index_text_without_positions__SWI
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -10736,7 +10505,10 @@ static PHP_METHOD(XapianTermGenerator,index_text_without_positions) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_TermGenerator_index_text_without_positions__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -10748,7 +10520,10 @@ static PHP_METHOD(XapianTermGenerator,index_text_without_positions) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         {
           _v = (Z_TYPE(argv[2]) == IS_STRING);
@@ -10777,7 +10552,7 @@ static ZEND_NAMED_FUNCTION(_wrap_TermGenerator_increase_termpos__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termpos) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -10828,7 +10603,11 @@ static PHP_METHOD(XapianTermGenerator,increase_termpos) {
   }
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_TermGenerator_increase_termpos__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
@@ -10876,7 +10655,7 @@ static PHP_METHOD(XapianTermGenerator,set_termpos) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termpos) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -11054,7 +10833,7 @@ static ZEND_NAMED_FUNCTION(_wrap_MSet_convert_to_percent__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -11455,7 +11234,7 @@ static ZEND_NAMED_FUNCTION(_wrap_MSet_snippet__SWIG_0) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (size_t) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -11466,7 +11245,7 @@ static ZEND_NAMED_FUNCTION(_wrap_MSet_snippet__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg5 = (unsigned int) zval_get_long(&args[3]);
   /*@SWIG@*/;
   
@@ -11526,7 +11305,7 @@ static ZEND_NAMED_FUNCTION(_wrap_MSet_snippet__SWIG_1) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (size_t) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -11537,7 +11316,7 @@ static ZEND_NAMED_FUNCTION(_wrap_MSet_snippet__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg5 = (unsigned int) zval_get_long(&args[3]);
   /*@SWIG@*/;
   
@@ -11590,7 +11369,7 @@ static ZEND_NAMED_FUNCTION(_wrap_MSet_snippet__SWIG_2) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (size_t) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -11601,7 +11380,7 @@ static ZEND_NAMED_FUNCTION(_wrap_MSet_snippet__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg5 = (unsigned int) zval_get_long(&args[3]);
   /*@SWIG@*/;
   
@@ -11647,7 +11426,7 @@ static ZEND_NAMED_FUNCTION(_wrap_MSet_snippet__SWIG_3) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (size_t) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -11658,7 +11437,7 @@ static ZEND_NAMED_FUNCTION(_wrap_MSet_snippet__SWIG_3) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg5 = (unsigned int) zval_get_long(&args[3]);
   /*@SWIG@*/;
   
@@ -11698,7 +11477,7 @@ static ZEND_NAMED_FUNCTION(_wrap_MSet_snippet__SWIG_4) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (size_t) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -11743,7 +11522,7 @@ static ZEND_NAMED_FUNCTION(_wrap_MSet_snippet__SWIG_5) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (size_t) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -11817,7 +11596,10 @@ static PHP_METHOD(XapianMSet,snippet) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        ((size_t)-1 >= ZEND_LONG_MAX || (zend_long)(size_t)-1 >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_MSet_snippet__SWIG_5(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -11829,7 +11611,10 @@ static PHP_METHOD(XapianMSet,snippet) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        ((size_t)-1 >= ZEND_LONG_MAX || (zend_long)(size_t)-1 >= Z_LVAL(argv[1])));
+      
       if (_v) {
         {
           void *tmp;
@@ -11847,14 +11632,20 @@ static PHP_METHOD(XapianMSet,snippet) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        ((size_t)-1 >= ZEND_LONG_MAX || (zend_long)(size_t)-1 >= Z_LVAL(argv[1])));
+      
       if (_v) {
         {
           void *tmp;
           _v = (SWIG_ConvertPtr(&argv[2], (void**)&tmp, SWIGTYPE_p_Xapian__Stem, SWIG_POINTER_NO_NULL) >= 0);
         }
         if (_v) {
-          _v = (Z_TYPE(argv[3]) == IS_LONG);
+          _v = (Z_TYPE(argv[3]) == IS_LONG &&
+            (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[3])) &&
+            (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[3])));
+          
           if (_v) {
             _wrap_MSet_snippet__SWIG_3(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
           }
@@ -11868,14 +11659,20 @@ static PHP_METHOD(XapianMSet,snippet) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        ((size_t)-1 >= ZEND_LONG_MAX || (zend_long)(size_t)-1 >= Z_LVAL(argv[1])));
+      
       if (_v) {
         {
           void *tmp;
           _v = (SWIG_ConvertPtr(&argv[2], (void**)&tmp, SWIGTYPE_p_Xapian__Stem, SWIG_POINTER_NO_NULL) >= 0);
         }
         if (_v) {
-          _v = (Z_TYPE(argv[3]) == IS_LONG);
+          _v = (Z_TYPE(argv[3]) == IS_LONG &&
+            (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[3])) &&
+            (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[3])));
+          
           if (_v) {
             {
               _v = (Z_TYPE(argv[4]) == IS_STRING);
@@ -11894,14 +11691,20 @@ static PHP_METHOD(XapianMSet,snippet) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        ((size_t)-1 >= ZEND_LONG_MAX || (zend_long)(size_t)-1 >= Z_LVAL(argv[1])));
+      
       if (_v) {
         {
           void *tmp;
           _v = (SWIG_ConvertPtr(&argv[2], (void**)&tmp, SWIGTYPE_p_Xapian__Stem, SWIG_POINTER_NO_NULL) >= 0);
         }
         if (_v) {
-          _v = (Z_TYPE(argv[3]) == IS_LONG);
+          _v = (Z_TYPE(argv[3]) == IS_LONG &&
+            (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[3])) &&
+            (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[3])));
+          
           if (_v) {
             {
               _v = (Z_TYPE(argv[4]) == IS_STRING);
@@ -11925,14 +11728,20 @@ static PHP_METHOD(XapianMSet,snippet) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        ((size_t)-1 >= ZEND_LONG_MAX || (zend_long)(size_t)-1 >= Z_LVAL(argv[1])));
+      
       if (_v) {
         {
           void *tmp;
           _v = (SWIG_ConvertPtr(&argv[2], (void**)&tmp, SWIGTYPE_p_Xapian__Stem, SWIG_POINTER_NO_NULL) >= 0);
         }
         if (_v) {
-          _v = (Z_TYPE(argv[3]) == IS_LONG);
+          _v = (Z_TYPE(argv[3]) == IS_LONG &&
+            (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[3])) &&
+            (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[3])));
+          
           if (_v) {
             {
               _v = (Z_TYPE(argv[4]) == IS_STRING);
@@ -12270,7 +12079,7 @@ static PHP_METHOD(XapianMSet,get_docid) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::doccount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -12302,7 +12111,7 @@ static PHP_METHOD(XapianMSet,get_document) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::doccount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -12339,7 +12148,7 @@ static PHP_METHOD(XapianMSet,get_hit) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::doccount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -12376,7 +12185,7 @@ static PHP_METHOD(XapianMSet,get_document_percentage) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::doccount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -12548,7 +12357,7 @@ static PHP_METHOD(XapianMSetIterator,off_from_end_set) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::MSet::size_type) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -13469,7 +13278,7 @@ static PHP_METHOD(XapianESetIterator,off_from_end_set) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::ESet::size_type) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -13954,7 +13763,7 @@ static ZEND_NAMED_FUNCTION(_wrap_RSet_add_document__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -14020,7 +13829,11 @@ static PHP_METHOD(XapianRSet,add_document) {
   }
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_RSet_add_document__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
@@ -14043,7 +13856,7 @@ static ZEND_NAMED_FUNCTION(_wrap_RSet_remove_document__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -14109,7 +13922,11 @@ static PHP_METHOD(XapianRSet,remove_document) {
   }
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_RSet_remove_document__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
@@ -14133,7 +13950,7 @@ static ZEND_NAMED_FUNCTION(_wrap_RSet_contains__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -14204,7 +14021,11 @@ static PHP_METHOD(XapianRSet,contains) {
   }
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_RSet_contains__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
@@ -14571,7 +14392,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_set_query__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -14647,7 +14468,10 @@ static PHP_METHOD(XapianEnquire,set_query) {
       _v = (SWIG_ConvertPtr(&argv[0], (void**)&tmp, SWIGTYPE_p_Xapian__Query, SWIG_POINTER_NO_NULL) >= 0);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_Enquire_set_query__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -14805,7 +14629,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_set_expansion_scheme__SWIG_0) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -14899,12 +14723,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_set_collapse_key__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::doccount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -14933,7 +14757,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_set_collapse_key__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -14959,16 +14783,27 @@ static PHP_METHOD(XapianEnquire,set_collapse_key) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_Enquire_set_collapse_key__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_Enquire_set_collapse_key__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -14992,7 +14827,7 @@ static PHP_METHOD(XapianEnquire,set_docid_order) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::Enquire::docid_order) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -15022,12 +14857,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_set_cutoff__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -15056,7 +14891,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_set_cutoff__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -15082,14 +14917,22 @@ static PHP_METHOD(XapianEnquire,set_cutoff) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_Enquire_set_cutoff__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _v = (Z_TYPE(argv[1]) == IS_DOUBLE);
       if (_v) {
@@ -15141,14 +14984,14 @@ static PHP_METHOD(XapianEnquire,set_sort_by_value) {
   
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   zend_update_property_null(Z_OBJCE_P(ZEND_THIS), Z_OBJ_P(ZEND_THIS), "_sorter", strlen("_sorter"));
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg3 = (bool) zval_is_true(&args[1]);
   /*@SWIG@*/;
   
@@ -15189,7 +15032,7 @@ static PHP_METHOD(XapianEnquire,set_sort_by_key) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg3 = (bool) zval_is_true(&args[1]);
   /*@SWIG@*/;
   
@@ -15220,14 +15063,14 @@ static PHP_METHOD(XapianEnquire,set_sort_by_value_then_relevance) {
   
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   zend_update_property_null(Z_OBJCE_P(ZEND_THIS), Z_OBJ_P(ZEND_THIS), "_sorter", strlen("_sorter"));
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg3 = (bool) zval_is_true(&args[1]);
   /*@SWIG@*/;
   
@@ -15268,7 +15111,7 @@ static PHP_METHOD(XapianEnquire,set_sort_by_key_then_relevance) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg3 = (bool) zval_is_true(&args[1]);
   /*@SWIG@*/;
   
@@ -15299,14 +15142,14 @@ static PHP_METHOD(XapianEnquire,set_sort_by_relevance_then_value) {
   
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   zend_update_property_null(Z_OBJCE_P(ZEND_THIS), Z_OBJ_P(ZEND_THIS), "_sorter", strlen("_sorter"));
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg3 = (bool) zval_is_true(&args[1]);
   /*@SWIG@*/;
   
@@ -15347,7 +15190,7 @@ static PHP_METHOD(XapianEnquire,set_sort_by_relevance_then_key) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg3 = (bool) zval_is_true(&args[1]);
   /*@SWIG@*/;
   
@@ -15376,7 +15219,7 @@ static PHP_METHOD(XapianEnquire,set_time_limit) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -15410,17 +15253,17 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_mset__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::doccount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::doccount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::doccount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -15472,17 +15315,17 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_mset__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::doccount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::doccount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::doccount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -15527,17 +15370,17 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_mset__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::doccount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::doccount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::doccount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -15575,12 +15418,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_mset__SWIG_3) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::doccount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::doccount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -15620,12 +15463,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_mset__SWIG_4) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::doccount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::doccount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -15676,12 +15519,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_mset__SWIG_5) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::doccount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::doccount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -15720,9 +15563,16 @@ static PHP_METHOD(XapianEnquire,get_mset) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_Enquire_get_mset__SWIG_3(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -15730,9 +15580,16 @@ static PHP_METHOD(XapianEnquire,get_mset) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         {
           void *tmp;
@@ -15746,11 +15603,21 @@ static PHP_METHOD(XapianEnquire,get_mset) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_Enquire_get_mset__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -15759,9 +15626,16 @@ static PHP_METHOD(XapianEnquire,get_mset) {
   }
   if (argc == 4) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         {
           void *tmp;
@@ -15781,11 +15655,21 @@ static PHP_METHOD(XapianEnquire,get_mset) {
   }
   if (argc == 4) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           {
             void *tmp;
@@ -15800,11 +15684,21 @@ static PHP_METHOD(XapianEnquire,get_mset) {
   }
   if (argc == 5) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           {
             void *tmp;
@@ -15846,7 +15740,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -15857,7 +15751,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -15868,7 +15762,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg6 = (double) zval_get_double(&args[4]);
   /*@SWIG@*/;
   
@@ -15908,7 +15802,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -15919,7 +15813,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -15964,7 +15858,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -15975,7 +15869,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -16013,7 +15907,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_3) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -16058,7 +15952,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_4) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -16112,7 +16006,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_5) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -16123,12 +16017,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_5) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg5 = (double) zval_get_double(&args[3]);
   /*@SWIG@*/;
   
@@ -16139,7 +16033,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_5) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg7 = (double) zval_get_double(&args[5]);
   /*@SWIG@*/;
   
@@ -16180,7 +16074,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_6) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -16191,12 +16085,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_6) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg5 = (double) zval_get_double(&args[3]);
   /*@SWIG@*/;
   
@@ -16242,7 +16136,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_7) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -16253,12 +16147,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_eset__SWIG_7) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg5 = (double) zval_get_double(&args[3]);
   /*@SWIG@*/;
   
@@ -16291,7 +16185,11 @@ static PHP_METHOD(XapianEnquire,get_eset) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -16304,7 +16202,11 @@ static PHP_METHOD(XapianEnquire,get_eset) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -16323,14 +16225,21 @@ static PHP_METHOD(XapianEnquire,get_eset) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
         _v = (SWIG_ConvertPtr(&argv[1], (void**)&tmp, SWIGTYPE_p_Xapian__RSet, SWIG_POINTER_NO_NULL) >= 0);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_Enquire_get_eset__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -16339,14 +16248,21 @@ static PHP_METHOD(XapianEnquire,get_eset) {
   }
   if (argc == 4) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
         _v = (SWIG_ConvertPtr(&argv[1], (void**)&tmp, SWIGTYPE_p_Xapian__RSet, SWIG_POINTER_NO_NULL) >= 0);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           {
             void *tmp;
@@ -16361,14 +16277,21 @@ static PHP_METHOD(XapianEnquire,get_eset) {
   }
   if (argc == 4) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
         _v = (SWIG_ConvertPtr(&argv[1], (void**)&tmp, SWIGTYPE_p_Xapian__RSet, SWIG_POINTER_NO_NULL) >= 0);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _v = (Z_TYPE(argv[3]) == IS_DOUBLE);
           if (_v) {
@@ -16380,14 +16303,21 @@ static PHP_METHOD(XapianEnquire,get_eset) {
   }
   if (argc == 5) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
         _v = (SWIG_ConvertPtr(&argv[1], (void**)&tmp, SWIGTYPE_p_Xapian__RSet, SWIG_POINTER_NO_NULL) >= 0);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           {
             void *tmp;
@@ -16405,14 +16335,21 @@ static PHP_METHOD(XapianEnquire,get_eset) {
   }
   if (argc == 5) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
         _v = (SWIG_ConvertPtr(&argv[1], (void**)&tmp, SWIGTYPE_p_Xapian__RSet, SWIG_POINTER_NO_NULL) >= 0);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _v = (Z_TYPE(argv[3]) == IS_DOUBLE);
           if (_v) {
@@ -16430,14 +16367,21 @@ static PHP_METHOD(XapianEnquire,get_eset) {
   }
   if (argc == 6) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
         _v = (SWIG_ConvertPtr(&argv[1], (void**)&tmp, SWIGTYPE_p_Xapian__RSet, SWIG_POINTER_NO_NULL) >= 0);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _v = (Z_TYPE(argv[3]) == IS_DOUBLE);
           if (_v) {
@@ -16475,7 +16419,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_matching_terms_begin__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -16512,7 +16456,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Enquire_get_matching_terms_end__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -16586,7 +16530,11 @@ static PHP_METHOD(XapianEnquire,get_matching_terms_begin) {
   }
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_Enquire_get_matching_terms_begin__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
@@ -16647,7 +16595,11 @@ static PHP_METHOD(XapianEnquire,get_matching_terms_end) {
   }
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_Enquire_get_matching_terms_end__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
@@ -17633,12 +17585,12 @@ static ZEND_NAMED_FUNCTION(_wrap_MultiValueKeyMaker_add_value__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg3 = (bool) zval_is_true(&args[1]);
   /*@SWIG@*/;
   
@@ -17673,12 +17625,12 @@ static ZEND_NAMED_FUNCTION(_wrap_MultiValueKeyMaker_add_value__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg3 = (bool) zval_is_true(&args[1]);
   /*@SWIG@*/;
   
@@ -17707,7 +17659,7 @@ static ZEND_NAMED_FUNCTION(_wrap_MultiValueKeyMaker_add_value__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -17733,14 +17685,22 @@ static PHP_METHOD(XapianMultiValueKeyMaker,add_value) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_MultiValueKeyMaker_add_value__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_TRUE || Z_TYPE(argv[1]) == IS_FALSE || Z_TYPE(argv[1]) == IS_LONG);
@@ -17752,7 +17712,11 @@ static PHP_METHOD(XapianMultiValueKeyMaker,add_value) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_TRUE || Z_TYPE(argv[1]) == IS_FALSE || Z_TYPE(argv[1]) == IS_LONG);
@@ -18221,7 +18185,7 @@ fail:
 }
 
 
-static ZEND_NAMED_FUNCTION(_wrap_new_SimpleStopper__SWIG_2) {
+static ZEND_NAMED_FUNCTION(_wrap_new_SimpleStopper__SWIG_1) {
   std::string *arg1 = 0 ;
   std::string temp1 ;
   zval args[1];
@@ -18238,7 +18202,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_SimpleStopper__SWIG_2) {
   
   {
     try {
-      result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_2((std::string const &)*arg1);
+      result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_1((std::string const &)*arg1);
     } catch (...) {
       XapianExceptionHandler();
       return;
@@ -18267,7 +18231,7 @@ static PHP_METHOD(XapianSimpleStopper,__construct) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _wrap_new_SimpleStopper__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
+      _wrap_new_SimpleStopper__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   
@@ -18423,7 +18387,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_RangeProcessor__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -18433,7 +18397,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_RangeProcessor__SWIG_1) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -18472,7 +18436,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_RangeProcessor__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -18514,7 +18478,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_RangeProcessor__SWIG_3) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -18551,14 +18515,22 @@ static PHP_METHOD(XapianRangeProcessor,__construct) {
   }
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_new_RangeProcessor__SWIG_3(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
@@ -18570,13 +18542,20 @@ static PHP_METHOD(XapianRangeProcessor,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_new_RangeProcessor__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -18829,17 +18808,17 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateRangeProcessor__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -18870,12 +18849,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateRangeProcessor__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -18905,7 +18884,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateRangeProcessor__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -18939,7 +18918,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateRangeProcessor__SWIG_3) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -18949,12 +18928,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateRangeProcessor__SWIG_3) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[3]);
   /*@SWIG@*/;
   
@@ -18987,7 +18966,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateRangeProcessor__SWIG_4) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -18997,7 +18976,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateRangeProcessor__SWIG_4) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -19029,7 +19008,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateRangeProcessor__SWIG_5) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -19062,14 +19041,22 @@ static PHP_METHOD(XapianDateRangeProcessor,__construct) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_new_DateRangeProcessor__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
@@ -19081,9 +19068,16 @@ static PHP_METHOD(XapianDateRangeProcessor,__construct) {
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_new_DateRangeProcessor__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -19091,13 +19085,20 @@ static PHP_METHOD(XapianDateRangeProcessor,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_new_DateRangeProcessor__SWIG_4(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -19106,11 +19107,21 @@ static PHP_METHOD(XapianDateRangeProcessor,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_new_DateRangeProcessor__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -19119,15 +19130,25 @@ static PHP_METHOD(XapianDateRangeProcessor,__construct) {
   }
   if (argc == 4) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
-          _v = (Z_TYPE(argv[3]) == IS_LONG);
+          _v = (Z_TYPE(argv[3]) == IS_LONG &&
+            (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[3])) &&
+            (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[3])));
+          
           if (_v) {
             _wrap_new_DateRangeProcessor__SWIG_3(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
           }
@@ -19302,7 +19323,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_NumberRangeProcessor__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -19312,7 +19333,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_NumberRangeProcessor__SWIG_0) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -19344,7 +19365,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_NumberRangeProcessor__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -19379,7 +19400,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_NumberRangeProcessor__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -19407,14 +19428,22 @@ static PHP_METHOD(XapianNumberRangeProcessor,__construct) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_new_NumberRangeProcessor__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
@@ -19426,13 +19455,20 @@ static PHP_METHOD(XapianNumberRangeProcessor,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_new_NumberRangeProcessor__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -19827,7 +19863,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_StringValueRangeProcessor__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -19860,7 +19896,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_StringValueRangeProcessor__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -19870,7 +19906,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_StringValueRangeProcessor__SWIG_1) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg3 = (bool) zval_is_true(&args[2]);
   /*@SWIG@*/;
   
@@ -19902,7 +19938,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_StringValueRangeProcessor__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -19935,14 +19971,22 @@ static PHP_METHOD(XapianStringValueRangeProcessor,__construct) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_new_StringValueRangeProcessor__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
@@ -19954,7 +19998,11 @@ static PHP_METHOD(XapianStringValueRangeProcessor,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
@@ -20146,17 +20194,17 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateValueRangeProcessor__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg2 = (bool) zval_is_true(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -20187,12 +20235,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateValueRangeProcessor__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg2 = (bool) zval_is_true(&args[1]);
   /*@SWIG@*/;
   
@@ -20222,7 +20270,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateValueRangeProcessor__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -20257,7 +20305,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateValueRangeProcessor__SWIG_3) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -20267,17 +20315,17 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateValueRangeProcessor__SWIG_3) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg3 = (bool) zval_is_true(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg4 = (bool) zval_is_true(&args[3]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg5 = (int) zval_get_long(&args[4]);
   /*@SWIG@*/;
   
@@ -20311,7 +20359,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateValueRangeProcessor__SWIG_4) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -20321,12 +20369,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateValueRangeProcessor__SWIG_4) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg3 = (bool) zval_is_true(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg4 = (bool) zval_is_true(&args[3]);
   /*@SWIG@*/;
   
@@ -20359,7 +20407,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateValueRangeProcessor__SWIG_5) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -20369,7 +20417,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateValueRangeProcessor__SWIG_5) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg3 = (bool) zval_is_true(&args[2]);
   /*@SWIG@*/;
   
@@ -20401,7 +20449,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DateValueRangeProcessor__SWIG_6) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -20434,14 +20482,22 @@ static PHP_METHOD(XapianDateValueRangeProcessor,__construct) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_new_DateValueRangeProcessor__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
@@ -20453,7 +20509,11 @@ static PHP_METHOD(XapianDateValueRangeProcessor,__construct) {
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_TRUE || Z_TYPE(argv[1]) == IS_FALSE || Z_TYPE(argv[1]) == IS_LONG);
@@ -20465,7 +20525,11 @@ static PHP_METHOD(XapianDateValueRangeProcessor,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
@@ -20482,13 +20546,20 @@ static PHP_METHOD(XapianDateValueRangeProcessor,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_TRUE || Z_TYPE(argv[1]) == IS_FALSE || Z_TYPE(argv[1]) == IS_LONG);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_new_DateValueRangeProcessor__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -20497,7 +20568,11 @@ static PHP_METHOD(XapianDateValueRangeProcessor,__construct) {
   }
   if (argc == 4) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
@@ -20519,7 +20594,11 @@ static PHP_METHOD(XapianDateValueRangeProcessor,__construct) {
   }
   if (argc == 5) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
@@ -20533,7 +20612,10 @@ static PHP_METHOD(XapianDateValueRangeProcessor,__construct) {
             _v = (Z_TYPE(argv[3]) == IS_TRUE || Z_TYPE(argv[3]) == IS_FALSE || Z_TYPE(argv[3]) == IS_LONG);
           }
           if (_v) {
-            _v = (Z_TYPE(argv[4]) == IS_LONG);
+            _v = (Z_TYPE(argv[4]) == IS_LONG &&
+              (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[4])) &&
+              (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[4])));
+            
             if (_v) {
               _wrap_new_DateValueRangeProcessor__SWIG_3(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
             }
@@ -20717,7 +20799,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_NumberValueRangeProcessor__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -20750,7 +20832,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_NumberValueRangeProcessor__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -20760,7 +20842,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_NumberValueRangeProcessor__SWIG_1) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg3 = (bool) zval_is_true(&args[2]);
   /*@SWIG@*/;
   
@@ -20792,7 +20874,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_NumberValueRangeProcessor__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -20825,14 +20907,22 @@ static PHP_METHOD(XapianNumberValueRangeProcessor,__construct) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_new_NumberValueRangeProcessor__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
@@ -20844,7 +20934,11 @@ static PHP_METHOD(XapianNumberValueRangeProcessor,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
@@ -21294,7 +21388,7 @@ static PHP_METHOD(XapianQueryParser,set_stemming_strategy) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::QueryParser::stem_strategy) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -21406,7 +21500,7 @@ static PHP_METHOD(XapianQueryParser,set_default_op) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::Query::op) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -21492,17 +21586,17 @@ static ZEND_NAMED_FUNCTION(_wrap_QueryParser_set_max_expansion__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (unsigned int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -21532,12 +21626,12 @@ static ZEND_NAMED_FUNCTION(_wrap_QueryParser_set_max_expansion__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -21566,7 +21660,7 @@ static ZEND_NAMED_FUNCTION(_wrap_QueryParser_set_max_expansion__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -21592,16 +21686,27 @@ static PHP_METHOD(XapianQueryParser,set_max_expansion) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_QueryParser_set_max_expansion__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[1])) &&
+        (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_QueryParser_set_max_expansion__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -21609,11 +21714,21 @@ static PHP_METHOD(XapianQueryParser,set_max_expansion) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[1])) &&
+        (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_QueryParser_set_max_expansion__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -21638,7 +21753,7 @@ static PHP_METHOD(XapianQueryParser,set_max_wildcard_expansion) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -21677,7 +21792,7 @@ static ZEND_NAMED_FUNCTION(_wrap_QueryParser_parse_query__SWIG_0) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -21726,7 +21841,7 @@ static ZEND_NAMED_FUNCTION(_wrap_QueryParser_parse_query__SWIG_1) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -21810,7 +21925,10 @@ static PHP_METHOD(XapianQueryParser,parse_query) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_QueryParser_parse_query__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -21822,7 +21940,10 @@ static PHP_METHOD(XapianQueryParser,parse_query) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         {
           _v = (Z_TYPE(argv[2]) == IS_STRING);
@@ -22070,7 +22191,7 @@ static ZEND_NAMED_FUNCTION(_wrap_QueryParser_add_boolean_prefix__SWIG_2) {
   arg3 = &temp3;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg4 = (bool) zval_is_true(&args[2]);
   /*@SWIG@*/;
   
@@ -22218,7 +22339,7 @@ static ZEND_NAMED_FUNCTION(_wrap_QueryParser_add_boolean_prefix__SWIG_5) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg4 = (bool) zval_is_true(&args[2]);
   /*@SWIG@*/;
   
@@ -22804,7 +22925,7 @@ static PHP_FUNCTION(sortable_serialise) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -22870,12 +22991,12 @@ static PHP_METHOD(XapianValueSetMatchDecider,__construct) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg2 = (bool) zval_is_true(&args[1]);
   /*@SWIG@*/;
   
@@ -23129,17 +23250,17 @@ static PHP_METHOD(XapianWeight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -23197,12 +23318,12 @@ static PHP_METHOD(XapianWeight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -23409,17 +23530,17 @@ static PHP_METHOD(XapianBoolWeight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -23477,12 +23598,12 @@ static PHP_METHOD(XapianBoolWeight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -23747,17 +23868,17 @@ static PHP_METHOD(XapianTfIdfWeight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -23815,12 +23936,12 @@ static PHP_METHOD(XapianTfIdfWeight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -23981,27 +24102,27 @@ static ZEND_NAMED_FUNCTION(_wrap_new_BM25Weight__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg4 = (double) zval_get_double(&args[3]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg5 = (double) zval_get_double(&args[4]);
   /*@SWIG@*/;
   
@@ -24118,17 +24239,17 @@ static PHP_METHOD(XapianBM25Weight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -24186,12 +24307,12 @@ static PHP_METHOD(XapianBM25Weight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -24353,32 +24474,32 @@ static ZEND_NAMED_FUNCTION(_wrap_new_BM25PlusWeight__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg4 = (double) zval_get_double(&args[3]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg5 = (double) zval_get_double(&args[4]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg6 = (double) zval_get_double(&args[5]);
   /*@SWIG@*/;
   
@@ -24498,17 +24619,17 @@ static PHP_METHOD(XapianBM25PlusWeight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -24566,12 +24687,12 @@ static PHP_METHOD(XapianBM25PlusWeight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -24728,7 +24849,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_TradWeight__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -24833,17 +24954,17 @@ static PHP_METHOD(XapianTradWeight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -24901,12 +25022,12 @@ static PHP_METHOD(XapianTradWeight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -25063,7 +25184,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_InL2Weight__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -25168,17 +25289,17 @@ static PHP_METHOD(XapianInL2Weight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -25236,12 +25357,12 @@ static PHP_METHOD(XapianInL2Weight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -25398,7 +25519,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_IfB2Weight__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -25503,17 +25624,17 @@ static PHP_METHOD(XapianIfB2Weight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -25571,12 +25692,12 @@ static PHP_METHOD(XapianIfB2Weight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -25733,7 +25854,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_IneB2Weight__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -25838,17 +25959,17 @@ static PHP_METHOD(XapianIneB2Weight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -25906,12 +26027,12 @@ static PHP_METHOD(XapianIneB2Weight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -26068,7 +26189,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_BB2Weight__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -26173,17 +26294,17 @@ static PHP_METHOD(XapianBB2Weight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -26241,12 +26362,12 @@ static PHP_METHOD(XapianBB2Weight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -26455,17 +26576,17 @@ static PHP_METHOD(XapianDLHWeight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -26523,12 +26644,12 @@ static PHP_METHOD(XapianDLHWeight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -26685,7 +26806,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_PL2Weight__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -26790,17 +26911,17 @@ static PHP_METHOD(XapianPL2Weight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -26858,12 +26979,12 @@ static PHP_METHOD(XapianPL2Weight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -27021,12 +27142,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_PL2PlusWeight__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -27134,17 +27255,17 @@ static PHP_METHOD(XapianPL2PlusWeight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -27202,12 +27323,12 @@ static PHP_METHOD(XapianPL2PlusWeight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -27416,17 +27537,17 @@ static PHP_METHOD(XapianDPHWeight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -27484,12 +27605,12 @@ static PHP_METHOD(XapianDPHWeight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -27649,22 +27770,22 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LMWeight__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::Weight::type_smoothing) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg4 = (double) zval_get_double(&args[3]);
   /*@SWIG@*/;
   
@@ -27696,17 +27817,17 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LMWeight__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::Weight::type_smoothing) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[2]);
   /*@SWIG@*/;
   
@@ -27737,12 +27858,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LMWeight__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::Weight::type_smoothing) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -27772,7 +27893,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LMWeight__SWIG_3) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -27916,17 +28037,17 @@ static PHP_METHOD(XapianLMWeight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -27984,12 +28105,12 @@ static PHP_METHOD(XapianLMWeight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -28147,7 +28268,7 @@ static PHP_METHOD(XapianCoordWeight,init) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -28227,17 +28348,17 @@ static PHP_METHOD(XapianCoordWeight,get_sumpart) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (Xapian::termcount) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -28295,12 +28416,12 @@ static PHP_METHOD(XapianCoordWeight,get_sumextra) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::termcount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -28488,7 +28609,7 @@ static PHP_METHOD(XapianCompactor,set_block_size) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (size_t) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -28517,7 +28638,7 @@ static PHP_METHOD(XapianCompactor,set_renumber) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg2 = (bool) zval_is_true(&args[0]);
   /*@SWIG@*/;
   
@@ -28546,7 +28667,7 @@ static PHP_METHOD(XapianCompactor,set_multipass) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg2 = (bool) zval_is_true(&args[0]);
   /*@SWIG@*/;
   
@@ -28575,7 +28696,7 @@ static PHP_METHOD(XapianCompactor,set_compaction_level) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::Compactor::compaction_level) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -28724,7 +28845,7 @@ static PHP_METHOD(XapianCompactor,resolve_duplicate_metadata) {
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
-  std::string *arg4 ;
+  std::string *arg4 = (std::string *) (std::string *)0 ;
   std::string temp2 ;
   zval args[3];
   Swig::Director *director = 0;
@@ -28742,7 +28863,7 @@ static PHP_METHOD(XapianCompactor,resolve_duplicate_metadata) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (size_t) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -29012,7 +29133,7 @@ static PHP_METHOD(XapianPostingSource,set_maxweight) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -29127,7 +29248,7 @@ static PHP_METHOD(XapianPostingSource,next) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -29165,12 +29286,12 @@ static PHP_METHOD(XapianPostingSource,skip_to) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -29209,12 +29330,12 @@ static PHP_METHOD(XapianPostingSource,check) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -29517,7 +29638,7 @@ static PHP_METHOD(XapianValuePostingSource,__construct) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -29655,7 +29776,7 @@ static PHP_METHOD(XapianValuePostingSource,next) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -29693,12 +29814,12 @@ static PHP_METHOD(XapianValuePostingSource,skip_to) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -29737,12 +29858,12 @@ static PHP_METHOD(XapianValuePostingSource,check) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -30010,7 +30131,7 @@ static PHP_METHOD(XapianValuePostingSource,set_termfreq_min) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::doccount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -30039,7 +30160,7 @@ static PHP_METHOD(XapianValuePostingSource,set_termfreq_est) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::doccount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -30068,7 +30189,7 @@ static PHP_METHOD(XapianValuePostingSource,set_termfreq_max) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::doccount) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -30203,7 +30324,7 @@ static PHP_METHOD(XapianValueWeightPostingSource,__construct) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -30484,17 +30605,17 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DecreasingValueWeightPostingSource__SWIG_0)
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::docid) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -30525,12 +30646,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DecreasingValueWeightPostingSource__SWIG_1)
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -30560,7 +30681,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_DecreasingValueWeightPostingSource__SWIG_2)
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -30588,16 +30709,27 @@ static PHP_METHOD(XapianDecreasingValueWeightPostingSource,__construct) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_new_DecreasingValueWeightPostingSource__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_new_DecreasingValueWeightPostingSource__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -30605,11 +30737,21 @@ static PHP_METHOD(XapianDecreasingValueWeightPostingSource,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_new_DecreasingValueWeightPostingSource__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -30714,7 +30856,7 @@ static PHP_METHOD(XapianDecreasingValueWeightPostingSource,next) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -30744,12 +30886,12 @@ static PHP_METHOD(XapianDecreasingValueWeightPostingSource,skip_to) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -30780,12 +30922,12 @@ static PHP_METHOD(XapianDecreasingValueWeightPostingSource,check) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -30942,7 +31084,7 @@ static PHP_METHOD(XapianValueMapPostingSource,__construct) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -30980,7 +31122,7 @@ static PHP_METHOD(XapianValueMapPostingSource,add_mapping) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -31031,7 +31173,7 @@ static PHP_METHOD(XapianValueMapPostingSource,set_default_weight) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -31266,7 +31408,7 @@ static PHP_METHOD(XapianFixedWeightPostingSource,__construct) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -31397,7 +31539,7 @@ static PHP_METHOD(XapianFixedWeightPostingSource,next) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -31427,12 +31569,12 @@ static PHP_METHOD(XapianFixedWeightPostingSource,skip_to) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -31463,12 +31605,12 @@ static PHP_METHOD(XapianFixedWeightPostingSource,check) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -31764,7 +31906,7 @@ static PHP_METHOD(XapianMatchSpy,apply) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -32054,7 +32196,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_ValueCountMatchSpy__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -32085,7 +32227,11 @@ static PHP_METHOD(XapianValueCountMatchSpy,__construct) {
   }
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_new_ValueCountMatchSpy__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
@@ -32180,7 +32326,7 @@ static PHP_METHOD(XapianValueCountMatchSpy,top_values_begin) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (size_t) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -32217,7 +32363,7 @@ static PHP_METHOD(XapianValueCountMatchSpy,top_values_end) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (size_t) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -32253,7 +32399,7 @@ static PHP_METHOD(XapianValueCountMatchSpy,apply) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -32467,7 +32613,7 @@ static PHP_FUNCTION(miles_to_metres) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -32501,7 +32647,7 @@ static PHP_FUNCTION(metres_to_miles) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -32532,7 +32678,7 @@ static PHP_METHOD(XapianLatLongCoord,latitude_set) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -32572,7 +32718,7 @@ static PHP_METHOD(XapianLatLongCoord,longitude_set) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -32635,12 +32781,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongCoord__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -33650,7 +33796,7 @@ static ZEND_NAMED_FUNCTION(_wrap_LatLongMetric_apply__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,57,CONVERT_STRING_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,57,CONVERT_STRING_IN@*/
   if (Z_ISNULL(args[1])) {
     arg3 = (char *) 0;
   } else {
@@ -33660,7 +33806,7 @@ static ZEND_NAMED_FUNCTION(_wrap_LatLongMetric_apply__SWIG_2) {
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (size_t) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -33726,7 +33872,10 @@ static PHP_METHOD(XapianLatLongMetric,apply) {
     if (_v) {
       _v = (Z_TYPE(argv[1]) == IS_STRING || Z_TYPE(argv[1]) == IS_NULL); 
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          ((size_t)-1 >= ZEND_LONG_MAX || (zend_long)(size_t)-1 >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_LatLongMetric_apply__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -33941,7 +34090,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_GreatCircleMetric__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg1 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -34166,7 +34315,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -34183,17 +34332,17 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg4 = (double) zval_get_double(&args[3]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg5 = (double) zval_get_double(&args[4]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg6 = (double) zval_get_double(&args[5]);
   /*@SWIG@*/;
   
@@ -34227,7 +34376,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -34244,12 +34393,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg4 = (double) zval_get_double(&args[3]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg5 = (double) zval_get_double(&args[4]);
   /*@SWIG@*/;
   
@@ -34282,7 +34431,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -34299,7 +34448,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg4 = (double) zval_get_double(&args[3]);
   /*@SWIG@*/;
   
@@ -34331,7 +34480,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_3) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -34377,7 +34526,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_4) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -34388,17 +34537,17 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_4) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg4 = (double) zval_get_double(&args[3]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg5 = (double) zval_get_double(&args[4]);
   /*@SWIG@*/;
   
@@ -34431,7 +34580,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_5) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -34442,12 +34591,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_5) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg4 = (double) zval_get_double(&args[3]);
   /*@SWIG@*/;
   
@@ -34479,7 +34628,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_6) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -34490,7 +34639,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_6) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[2]);
   /*@SWIG@*/;
   
@@ -34521,7 +34670,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistancePostingSource__SWIG_7) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -34555,7 +34704,11 @@ static PHP_METHOD(XapianLatLongDistancePostingSource,__construct) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -34568,7 +34721,11 @@ static PHP_METHOD(XapianLatLongDistancePostingSource,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -34587,7 +34744,11 @@ static PHP_METHOD(XapianLatLongDistancePostingSource,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -34603,7 +34764,11 @@ static PHP_METHOD(XapianLatLongDistancePostingSource,__construct) {
   }
   if (argc == 4) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -34625,7 +34790,11 @@ static PHP_METHOD(XapianLatLongDistancePostingSource,__construct) {
   }
   if (argc == 4) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -34644,7 +34813,11 @@ static PHP_METHOD(XapianLatLongDistancePostingSource,__construct) {
   }
   if (argc == 5) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -34669,7 +34842,11 @@ static PHP_METHOD(XapianLatLongDistancePostingSource,__construct) {
   }
   if (argc == 5) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -34691,7 +34868,11 @@ static PHP_METHOD(XapianLatLongDistancePostingSource,__construct) {
   }
   if (argc == 6) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -34735,7 +34916,7 @@ static PHP_METHOD(XapianLatLongDistancePostingSource,next) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg2 = (double) zval_get_double(&args[0]);
   /*@SWIG@*/;
   
@@ -34765,12 +34946,12 @@ static PHP_METHOD(XapianLatLongDistancePostingSource,skip_to) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -34801,12 +34982,12 @@ static PHP_METHOD(XapianLatLongDistancePostingSource,check) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg3 = (double) zval_get_double(&args[1]);
   /*@SWIG@*/;
   
@@ -35046,7 +35227,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistanceKeyMaker__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -35063,7 +35244,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistanceKeyMaker__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg4 = (double) zval_get_double(&args[3]);
   /*@SWIG@*/;
   
@@ -35095,7 +35276,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistanceKeyMaker__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -35138,7 +35319,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistanceKeyMaker__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -35177,7 +35358,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistanceKeyMaker__SWIG_3) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -35194,7 +35375,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistanceKeyMaker__SWIG_3) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,48,CONVERT_FLOAT_IN@*/
   arg4 = (double) zval_get_double(&args[3]);
   /*@SWIG@*/;
   
@@ -35226,7 +35407,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistanceKeyMaker__SWIG_4) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -35269,7 +35450,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_LatLongDistanceKeyMaker__SWIG_5) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -35303,7 +35484,11 @@ static PHP_METHOD(XapianLatLongDistanceKeyMaker,__construct) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -35316,7 +35501,11 @@ static PHP_METHOD(XapianLatLongDistanceKeyMaker,__construct) {
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -35329,7 +35518,11 @@ static PHP_METHOD(XapianLatLongDistanceKeyMaker,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -35348,7 +35541,11 @@ static PHP_METHOD(XapianLatLongDistanceKeyMaker,__construct) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -35367,7 +35564,11 @@ static PHP_METHOD(XapianLatLongDistanceKeyMaker,__construct) {
   }
   if (argc == 4) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -35389,7 +35590,11 @@ static PHP_METHOD(XapianLatLongDistanceKeyMaker,__construct) {
   }
   if (argc == 4) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -35646,7 +35851,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Database__SWIG_1) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -35708,12 +35913,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Database__SWIG_3) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (int) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -35743,7 +35948,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_Database__SWIG_4) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (int) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -35783,7 +35988,11 @@ static PHP_METHOD(XapianDatabase,__construct) {
   }
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_new_Database__SWIG_4(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
@@ -35794,7 +36003,10 @@ static PHP_METHOD(XapianDatabase,__construct) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[1])) &&
+        (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_new_Database__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -35802,9 +36014,16 @@ static PHP_METHOD(XapianDatabase,__construct) {
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[1])) &&
+        (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_new_Database__SWIG_3(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -35970,7 +36189,7 @@ static PHP_METHOD(XapianDatabase,termlist_begin) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -36007,7 +36226,7 @@ static PHP_METHOD(XapianDatabase,termlist_end) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -36064,7 +36283,7 @@ static PHP_METHOD(XapianDatabase,positionlist_begin) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -36108,7 +36327,7 @@ static PHP_METHOD(XapianDatabase,positionlist_end) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -36539,7 +36758,7 @@ static PHP_METHOD(XapianDatabase,get_value_freq) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -36571,7 +36790,7 @@ static PHP_METHOD(XapianDatabase,get_value_lower_bound) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -36603,7 +36822,7 @@ static PHP_METHOD(XapianDatabase,get_value_upper_bound) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -36718,7 +36937,7 @@ static PHP_METHOD(XapianDatabase,valuestream_begin) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -36755,7 +36974,7 @@ static PHP_METHOD(XapianDatabase,valuestream_end) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::valueno) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -36785,7 +37004,7 @@ static PHP_METHOD(XapianDatabase,get_doclength) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -36817,7 +37036,7 @@ static PHP_METHOD(XapianDatabase,get_unique_terms) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -36871,7 +37090,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Database_get_document__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -36909,12 +37128,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Database_get_document__SWIG_1) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -36947,16 +37166,27 @@ static PHP_METHOD(XapianDatabase,get_document) {
   zend_get_parameters_array_ex(argc, argv);
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_Database_get_document__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_Database_get_document__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -36988,7 +37218,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Database_get_spelling_suggestion__SWIG_0) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -37062,7 +37292,10 @@ static PHP_METHOD(XapianDatabase,get_spelling_suggestion) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_Database_get_spelling_suggestion__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -37666,7 +37899,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Database_check__SWIG_0) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -37728,12 +37961,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Database_check__SWIG_2) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (int) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -37763,7 +37996,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Database_check__SWIG_3) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg1 = (int) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -37800,7 +38033,11 @@ static PHP_METHOD(XapianDatabase,check) {
   }
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_Database_check__SWIG_3(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
@@ -37811,7 +38048,10 @@ static PHP_METHOD(XapianDatabase,check) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[1])) &&
+        (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_Database_check__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -37819,9 +38059,16 @@ static PHP_METHOD(XapianDatabase,check) {
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[1])) &&
+        (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_Database_check__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -37853,12 +38100,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Database_compact__SWIG_0) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -37894,7 +38141,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Database_compact__SWIG_1) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -37955,17 +38202,17 @@ static ZEND_NAMED_FUNCTION(_wrap_Database_compact__SWIG_3) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -37995,12 +38242,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Database_compact__SWIG_4) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -38029,7 +38276,7 @@ static ZEND_NAMED_FUNCTION(_wrap_Database_compact__SWIG_5) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -38067,12 +38314,12 @@ static ZEND_NAMED_FUNCTION(_wrap_Database_compact__SWIG_6) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -38110,17 +38357,17 @@ static ZEND_NAMED_FUNCTION(_wrap_Database_compact__SWIG_7) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -38161,7 +38408,11 @@ static PHP_METHOD(XapianDatabase,compact) {
   }
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_Database_compact__SWIG_5(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
@@ -38172,7 +38423,10 @@ static PHP_METHOD(XapianDatabase,compact) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_Database_compact__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -38180,9 +38434,16 @@ static PHP_METHOD(XapianDatabase,compact) {
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_Database_compact__SWIG_4(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -38194,9 +38455,15 @@ static PHP_METHOD(XapianDatabase,compact) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_Database_compact__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -38205,11 +38472,21 @@ static PHP_METHOD(XapianDatabase,compact) {
   }
   if (argc == 3) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_Database_compact__SWIG_3(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -38222,9 +38499,15 @@ static PHP_METHOD(XapianDatabase,compact) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           {
             void *tmp;
@@ -38239,11 +38522,21 @@ static PHP_METHOD(XapianDatabase,compact) {
   }
   if (argc == 4) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[0])) &&
+      (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           {
             void *tmp;
@@ -38404,12 +38697,12 @@ static ZEND_NAMED_FUNCTION(_wrap_new_WritableDatabase__SWIG_1) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -38446,7 +38739,7 @@ static ZEND_NAMED_FUNCTION(_wrap_new_WritableDatabase__SWIG_2) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -38521,7 +38814,10 @@ static PHP_METHOD(XapianWritableDatabase,__construct) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[1])) &&
+        (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_new_WritableDatabase__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -38533,9 +38829,15 @@ static PHP_METHOD(XapianWritableDatabase,__construct) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[1])) &&
+        (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_new_WritableDatabase__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -38634,7 +38936,7 @@ static ZEND_NAMED_FUNCTION(_wrap_WritableDatabase_begin_transaction__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,2,CONVERT_BOOL_IN@*/
   arg2 = (bool) zval_is_true(&args[0]);
   /*@SWIG@*/;
   
@@ -38787,7 +39089,7 @@ static ZEND_NAMED_FUNCTION(_wrap_WritableDatabase_delete_document__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -38852,7 +39154,11 @@ static PHP_METHOD(XapianWritableDatabase,delete_document) {
   }
   if (argc == 1) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       _wrap_WritableDatabase_delete_document__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
     }
@@ -38876,7 +39182,7 @@ static ZEND_NAMED_FUNCTION(_wrap_WritableDatabase_replace_document__SWIG_0) {
   }
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (Xapian::docid) zval_get_long(&args[0]);
   /*@SWIG@*/;
   
@@ -38963,7 +39269,11 @@ static PHP_METHOD(XapianWritableDatabase,replace_document) {
   }
   if (argc == 2) {
     int _v = 0;
-    _v = (Z_TYPE(argv[0]) == IS_LONG);
+    
+    _v = (Z_TYPE(argv[0]) == IS_LONG &&
+      (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[0])) &&
+      (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[0])));
+    
     if (_v) {
       {
         void *tmp;
@@ -38999,7 +39309,7 @@ static ZEND_NAMED_FUNCTION(_wrap_WritableDatabase_add_spelling__SWIG_0) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -39068,7 +39378,10 @@ static PHP_METHOD(XapianWritableDatabase,add_spelling) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_WritableDatabase_add_spelling__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -39099,7 +39412,7 @@ static ZEND_NAMED_FUNCTION(_wrap_WritableDatabase_remove_spelling__SWIG_0) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (Xapian::termcount) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -39168,7 +39481,10 @@ static PHP_METHOD(XapianWritableDatabase,remove_spelling) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_WritableDatabase_remove_spelling__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -39502,7 +39818,7 @@ static ZEND_NAMED_FUNCTION(_wrap_auto_open_stub__SWIG_1) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -39548,7 +39864,10 @@ static ZEND_NAMED_FUNCTION(_wrap_auto_open_stub) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[1])) &&
+        (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_auto_open_stub__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -39647,12 +39966,12 @@ static ZEND_NAMED_FUNCTION(_wrap_chert_open__SWIG_1) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (int) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -39694,7 +40013,7 @@ static ZEND_NAMED_FUNCTION(_wrap_chert_open__SWIG_2) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -39740,7 +40059,10 @@ static ZEND_NAMED_FUNCTION(_wrap_chert_open) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[1])) &&
+        (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_chert_open__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -39752,9 +40074,15 @@ static ZEND_NAMED_FUNCTION(_wrap_chert_open) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[1])) &&
+        (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[2])) &&
+          (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_chert_open__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -39787,17 +40115,17 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open__SWIG_0) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (useconds_t) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (useconds_t) zval_get_long(&args[3]);
   /*@SWIG@*/;
   
@@ -39840,12 +40168,12 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open__SWIG_1) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (useconds_t) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -39887,7 +40215,7 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open__SWIG_2) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -39932,22 +40260,22 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open_writable__SWIG_0) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (useconds_t) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (useconds_t) zval_get_long(&args[3]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg5 = (int) zval_get_long(&args[4]);
   /*@SWIG@*/;
   
@@ -39991,17 +40319,17 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open_writable__SWIG_1) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (useconds_t) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (useconds_t) zval_get_long(&args[3]);
   /*@SWIG@*/;
   
@@ -40044,12 +40372,12 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open_writable__SWIG_2) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (useconds_t) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -40091,7 +40419,7 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open_writable__SWIG_3) {
   arg1 = &temp1;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg2 = (unsigned int) zval_get_long(&args[1]);
   /*@SWIG@*/;
   
@@ -40140,7 +40468,7 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open__SWIG_3) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (useconds_t) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -40234,7 +40562,10 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_remote_open__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -40250,7 +40581,10 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open) {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_remote_open__SWIG_3(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -40263,9 +40597,15 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_remote_open__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -40278,11 +40618,20 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
-          _v = (Z_TYPE(argv[3]) == IS_LONG);
+          _v = (Z_TYPE(argv[3]) == IS_LONG &&
+            (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[3])) &&
+            (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[3])));
+          
           if (_v) {
             _wrap_remote_open__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
           }
@@ -40322,12 +40671,12 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open_writable__SWIG_4) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (useconds_t) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg4 = (int) zval_get_long(&args[3]);
   /*@SWIG@*/;
   
@@ -40376,7 +40725,7 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open_writable__SWIG_5) {
   arg2 = &temp2;
   
   
-  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
+  /*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/php/utils.i,6,CONVERT_INT_IN@*/
   arg3 = (useconds_t) zval_get_long(&args[2]);
   /*@SWIG@*/;
   
@@ -40470,7 +40819,10 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open_writable) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
         _wrap_remote_open_writable__SWIG_3(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
       }
@@ -40486,7 +40838,10 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open_writable) {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_remote_open_writable__SWIG_5(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -40499,9 +40854,15 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open_writable) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
           _wrap_remote_open_writable__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
         }
@@ -40518,9 +40879,15 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open_writable) {
         _v = (Z_TYPE(argv[1]) == IS_STRING);
       }
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
-          _v = (Z_TYPE(argv[3]) == IS_LONG);
+          _v = (Z_TYPE(argv[3]) == IS_LONG &&
+            (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[3])) &&
+            (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[3])));
+          
           if (_v) {
             _wrap_remote_open_writable__SWIG_4(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
           }
@@ -40534,11 +40901,20 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open_writable) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
-          _v = (Z_TYPE(argv[3]) == IS_LONG);
+          _v = (Z_TYPE(argv[3]) == IS_LONG &&
+            (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[3])) &&
+            (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[3])));
+          
           if (_v) {
             _wrap_remote_open_writable__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
           }
@@ -40552,13 +40928,25 @@ static ZEND_NAMED_FUNCTION(_wrap_remote_open_writable) {
       _v = (Z_TYPE(argv[0]) == IS_STRING);
     }
     if (_v) {
-      _v = (Z_TYPE(argv[1]) == IS_LONG);
+      _v = (Z_TYPE(argv[1]) == IS_LONG &&
+        (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[1])) &&
+        (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[1])));
+      
       if (_v) {
-        _v = (Z_TYPE(argv[2]) == IS_LONG);
+        _v = (Z_TYPE(argv[2]) == IS_LONG &&
+          (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[2])) &&
+          (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[2])));
+        
         if (_v) {
-          _v = (Z_TYPE(argv[3]) == IS_LONG);
+          _v = (Z_TYPE(argv[3]) == IS_LONG &&
+            (0 <= ZEND_LONG_MIN || (zend_long)0 <= Z_LVAL(argv[3])) &&
+            (UINT_MAX >= ZEND_LONG_MAX || (zend_long)UINT_MAX >= Z_LVAL(argv[3])));
+          
           if (_v) {
-            _v = (Z_TYPE(argv[4]) == IS_LONG);
+            _v = (Z_TYPE(argv[4]) == IS_LONG &&
+              (INT_MIN <= ZEND_LONG_MIN || (zend_long)INT_MIN <= Z_LVAL(argv[4])) &&
+              (INT_MAX >= ZEND_LONG_MAX || (zend_long)INT_MAX >= Z_LVAL(argv[4])));
+            
             if (_v) {
               _wrap_remote_open_writable__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); return;
             }
@@ -40615,19 +41003,13 @@ static zend_object *swig_ptr_object_new(zend_class_entry *ce) {
 }
 
 /* Implement __toString equivalent, since that worked for the old-style resource wrapped pointers. */
-#if PHP_MAJOR_VERSION < 8
-static int swig_ptr_cast_object(zval *z, zval *retval, int type) {
-#elif PHP_MAJOR_VERSION > 8 || PHP_MINOR_VERSION >= 2
+#if PHP_MAJOR_VERSION > 8 || PHP_MINOR_VERSION >= 2
 static ZEND_RESULT_CODE swig_ptr_cast_object(zend_object *zobj, zval *retval, int type) {
 #else
 static int swig_ptr_cast_object(zend_object *zobj, zval *retval, int type) {
 #endif
   if (type == IS_STRING) {
-#if PHP_MAJOR_VERSION < 8
-    swig_object_wrapper *obj = SWIG_Z_FETCH_OBJ_P(z);
-#else
     swig_object_wrapper *obj = swig_php_fetch_object(zobj);
-#endif
     ZVAL_NEW_STR(retval, zend_strpprintf(0, "SWIGPointer(%p,owned=%d)", obj->ptr, obj->newobject));
     return SUCCESS;
   }
@@ -42785,7 +43167,7 @@ zend_module_entry xapian_module_entry = {
     PHP_RINIT(xapian),
     NULL, /* No RSHUTDOWN code */
     PHP_MINFO(xapian),
-    "1.4.22",
+    "1.4.25",
     STANDARD_MODULE_PROPERTIES
 };
 
@@ -44225,6 +44607,9 @@ SWIG_LONG_CONSTANT(DOC_ASSUME_VALID, (int)(Xapian::DOC_ASSUME_VALID));
   zend_declare_class_constant_long(SWIG_Php_ce_TermGenerator, "FLAG_SPELLING", sizeof("FLAG_SPELLING") - 1, (int)(Xapian::TermGenerator::FLAG_SPELLING));
 
 
+  zend_declare_class_constant_long(SWIG_Php_ce_TermGenerator, "FLAG_NGRAMS", sizeof("FLAG_NGRAMS") - 1, (int)(Xapian::TermGenerator::FLAG_NGRAMS));
+
+
   zend_declare_class_constant_long(SWIG_Php_ce_TermGenerator, "FLAG_CJK_NGRAM", sizeof("FLAG_CJK_NGRAM") - 1, (int)(Xapian::TermGenerator::FLAG_CJK_NGRAM));
 
 
@@ -44261,6 +44646,9 @@ SWIG_LONG_CONSTANT(DOC_ASSUME_VALID, (int)(Xapian::DOC_ASSUME_VALID));
   zend_declare_class_constant_long(SWIG_Php_ce_MSet, "SNIPPET_EMPTY_WITHOUT_MATCH", sizeof("SNIPPET_EMPTY_WITHOUT_MATCH") - 1, (int)(Xapian::MSet::SNIPPET_EMPTY_WITHOUT_MATCH));
 
 
+  zend_declare_class_constant_long(SWIG_Php_ce_MSet, "SNIPPET_NGRAMS", sizeof("SNIPPET_NGRAMS") - 1, (int)(Xapian::MSet::SNIPPET_NGRAMS));
+
+
   zend_declare_class_constant_long(SWIG_Php_ce_MSet, "SNIPPET_CJK_NGRAM", sizeof("SNIPPET_CJK_NGRAM") - 1, (int)(Xapian::MSet::SNIPPET_CJK_NGRAM));
 
 
@@ -44324,6 +44712,9 @@ SWIG_LONG_CONSTANT(RP_DATE_PREFER_MDY, (int)(Xapian::RP_DATE_PREFER_MDY));
   zend_declare_class_constant_long(SWIG_Php_ce_QueryParser, "FLAG_AUTO_MULTIWORD_SYNONYMS", sizeof("FLAG_AUTO_MULTIWORD_SYNONYMS") - 1, (int)(Xapian::QueryParser::FLAG_AUTO_MULTIWORD_SYNONYMS));
 
 
+  zend_declare_class_constant_long(SWIG_Php_ce_QueryParser, "FLAG_NGRAMS", sizeof("FLAG_NGRAMS") - 1, (int)(Xapian::QueryParser::FLAG_NGRAMS));
+
+
   zend_declare_class_constant_long(SWIG_Php_ce_QueryParser, "FLAG_CJK_NGRAM", sizeof("FLAG_CJK_NGRAM") - 1, (int)(Xapian::QueryParser::FLAG_CJK_NGRAM));
 
 
diff --git a/php/php/xapian_wrap.h b/php/php/xapian_wrap.h
index 94ae29676fdfead08ae247da297a38aa2e04516b..1679e304cd52856ceceb53d8d1baf9e75894965a 100644
--- a/php/php/xapian_wrap.h
+++ b/php/php/xapian_wrap.h
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/python/Makefile.am b/python/Makefile.am
index 7c39148d9f50616661105ed9558e1c1a9a25a1e3..649ba24d28a56d10e31a35d8feb7b534883b46ca 100644
--- a/python/Makefile.am
+++ b/python/Makefile.am
@@ -5,11 +5,7 @@ include ../generic/generic.mk
 ## Test programs to be run
 TESTS = smoketest.py pythontest.py
 AM_TESTS_ENVIRONMENT = \
-	abs_builddir='$(abs_builddir)' ;\
-	srcdir='$(srcdir)' ;\
 	PYTHON='$(PYTHON2)' ;\
-	export abs_builddir ;\
-	export srcdir ;\
 	export PYTHON ;
 LOG_COMPILER = '$(srcdir)'/run-python-test
 
@@ -23,7 +19,7 @@ RST_DOCS = \
 	docs/introduction.rst \
 	docs/xapian.rst
 
-BUILT_SOURCES = xapian_wrap.cc xapian_wrap.h xapian.py
+BUILT_SOURCES = xapian_wrap.cc xapian_wrap.h xapian__init__.py
 
 EXTRA_DIST = python.i util.i extra.i extracomments.i except.i \
 	doccomments.i \
@@ -62,11 +58,10 @@ _xapian_la_LDFLAGS = -avoid-version -module -shrext "$(PYTHON2_SO)" $(NO_UNDEFIN
 _xapian_la_SOURCES = xapian_wrap.cc
 _xapian_la_LIBADD = $(XAPIAN_LIBS) $(PYTHON2_LIBS)
 
-# We want `xapian/__init__.py` rather than xapian.py so the module is treated
-# as a package.
-xapian/__init__.py: xapian.py
+# We want `xapian/__init__.py` so the module is treated as a package.
+xapian/__init__.py: xapian__init__.py
 	$(MKDIR_P) xapian
-	cp `test -f xapian.py || echo '$(srcdir)/'`xapian.py xapian/__init__.py
+	cp `test -f xapian__init__.py || echo '$(srcdir)/'`xapian__init__.py xapian/__init__.py
 
 # We "import _xapian" first so that if we fail to import the glue library
 # we don't generate a broken .pyc or .pyo, and we do it with the current
@@ -87,10 +82,7 @@ xapian/__init__.pyo: xapian/__init__.py xapian/_xapian$(PYTHON2_SO)
 
 xapian/_xapian$(PYTHON2_SO): _xapian.la
 	$(MKDIR_P) xapian
-	$(LIBTOOL) --config > libtoolconfig.tmp
-## ksh requires a path on the sourced file.
-	. ./libtoolconfig.tmp; cp $$objdir/_xapian$(PYTHON2_SO) xapian
-	rm -f libtoolconfig.tmp
+	cp $(_libs)/_xapian$(PYTHON2_SO) xapian
 
 CLEANFILES = \
     xapian/_xapian$(PYTHON2_SO) \
@@ -124,14 +116,15 @@ stamp = xapian_wrap.stamp
 RUN_SWIG = stamp='$(stamp)' $(PERL) '$(top_srcdir)'/swig-depcomp $(SWIG)
 SWIG_FLAGS += -DSWIG_PYTHON_LEGACY_BOOL
 
-xapian_wrap.cc xapian_wrap.h xapian.py xapian_wrap.d: $(stamp)
+xapian_wrap.cc xapian_wrap.h xapian.py__init__.py xapian_wrap.d: $(stamp)
 	$(make_many_locked)
 $(stamp): except.i doccomments.i fixup-swig-py2-wrapper
 	$(multitarget_begin)
 	$(RUN_SWIG) $(SWIG_WERROR) -I. -I'$(srcdir)' $(SWIG_FLAGS) -c++ \
 	    -python -threads -shadow -O \
 	    -o xapian_wrap.cc '$(srcdir)/'python.i
-	$(PERL) -i $(srcdir)/fixup-swig-py2-wrapper xapian.py
+	$(PERL) $(srcdir)/fixup-swig-py2-wrapper xapian.py > xapian__init__.py
+	rm xapian.py
 	$(multitarget_end)
 
 -include xapian_wrap.d
diff --git a/python/Makefile.in b/python/Makefile.in
index 1c98d6b90c58247e3a486a08d0335a508fc2d22e..e9756bcb1ae6e456afb43e9a448ccf879e7a7760 100644
--- a/python/Makefile.in
+++ b/python/Makefile.in
@@ -95,9 +95,7 @@ host_triplet = @host@
 subdir = python
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(dist_exampledata_DATA) \
@@ -455,9 +453,9 @@ LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 LUA = @LUA@
-LUA_CPPFLAGS = @LUA_CPPFLAGS@
-LUA_INC = @LUA_INC@
+LUA_CFLAGS = @LUA_CFLAGS@
 LUA_LIB = @LUA_LIB@
+LUA_LIBS = @LUA_LIBS@
 LUA_SO = @LUA_SO@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
@@ -491,6 +489,10 @@ PHP_INC = @PHP_INC@
 PHP_LIBS = @PHP_LIBS@
 PHP_MAJOR_VERSION = @PHP_MAJOR_VERSION@
 PHP_PATH_SEPARATOR = @PHP_PATH_SEPARATOR@
+PHP_SHLIB_SUFFIX = @PHP_SHLIB_SUFFIX@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 PYTHON = @PYTHON@
 PYTHON2 = @PYTHON2@
 PYTHON2_INC = @PYTHON2_INC@
@@ -528,6 +530,7 @@ TCL_CPPFLAGS = @TCL_CPPFLAGS@
 TCL_INC = @TCL_INC@
 TCL_LIB = @TCL_LIB@
 TCL_LIBS = @TCL_LIBS@
+TCL_SHLIB_EXT = @TCL_SHLIB_EXT@
 THREAD_LOCAL = @THREAD_LOCAL@
 VERSION = @VERSION@
 VERSION_NO_SNAPSHOT = @VERSION_NO_SNAPSHOT@
@@ -537,6 +540,7 @@ XAPIAN_HEADERS = @XAPIAN_HEADERS@
 XAPIAN_HEADER_DIRS = @XAPIAN_HEADER_DIRS@
 XAPIAN_LIBS = @XAPIAN_LIBS@
 XAPIAN_VERSION = @XAPIAN_VERSION@
+_libs = @_libs@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -614,11 +618,7 @@ multitarget_begin = @rm -f $@-t; touch $@-t
 multitarget_end = @mv -f $@-t $@
 TESTS = smoketest.py pythontest.py
 AM_TESTS_ENVIRONMENT = \
-	abs_builddir='$(abs_builddir)' ;\
-	srcdir='$(srcdir)' ;\
 	PYTHON='$(PYTHON2)' ;\
-	export abs_builddir ;\
-	export srcdir ;\
 	export PYTHON ;
 
 LOG_COMPILER = '$(srcdir)'/run-python-test
@@ -628,7 +628,8 @@ RST_DOCS = \
 	docs/introduction.rst \
 	docs/xapian.rst
 
-BUILT_SOURCES = xapian_wrap.cc xapian_wrap.h xapian.py $(am__append_1)
+BUILT_SOURCES = xapian_wrap.cc xapian_wrap.h xapian__init__.py \
+	$(am__append_1)
 EXTRA_DIST = python.i util.i extra.i extracomments.i except.i \
 	doccomments.i \
 	doxy2swig.py \
@@ -1263,11 +1264,10 @@ install-data-hook:
 uninstall-local:
 	rm -f $(DESTDIR)$(pkgpylibdir)/_xapian$(PYTHON2_SO)
 
-# We want `xapian/__init__.py` rather than xapian.py so the module is treated
-# as a package.
-xapian/__init__.py: xapian.py
+# We want `xapian/__init__.py` so the module is treated as a package.
+xapian/__init__.py: xapian__init__.py
 	$(MKDIR_P) xapian
-	cp `test -f xapian.py || echo '$(srcdir)/'`xapian.py xapian/__init__.py
+	cp `test -f xapian__init__.py || echo '$(srcdir)/'`xapian__init__.py xapian/__init__.py
 
 # We "import _xapian" first so that if we fail to import the glue library
 # we don't generate a broken .pyc or .pyo, and we do it with the current
@@ -1288,9 +1288,7 @@ xapian/__init__.pyo: xapian/__init__.py xapian/_xapian$(PYTHON2_SO)
 
 xapian/_xapian$(PYTHON2_SO): _xapian.la
 	$(MKDIR_P) xapian
-	$(LIBTOOL) --config > libtoolconfig.tmp
-	. ./libtoolconfig.tmp; cp $$objdir/_xapian$(PYTHON2_SO) xapian
-	rm -f libtoolconfig.tmp
+	cp $(_libs)/_xapian$(PYTHON2_SO) xapian
 
 # Clean the xapian directory which we created, if it's empty, and any
 # databases created by test cases.
@@ -1305,14 +1303,15 @@ clean-local:
 @MAINTAINER_MODE_TRUE@@MAINTAINER_NO_DOCS_FALSE@doccomments.i: doxy2swig.py ../../xapian-core/exception_data.pm ../doxygen-xml/index.xml
 @MAINTAINER_MODE_TRUE@@MAINTAINER_NO_DOCS_FALSE@	$(PYTHON) $(srcdir)/doxy2swig.py ../doxygen-xml/index.xml doccomments.i
 
-@MAINTAINER_MODE_TRUE@xapian_wrap.cc xapian_wrap.h xapian.py xapian_wrap.d: $(stamp)
+@MAINTAINER_MODE_TRUE@xapian_wrap.cc xapian_wrap.h xapian.py__init__.py xapian_wrap.d: $(stamp)
 @MAINTAINER_MODE_TRUE@	$(make_many_locked)
 @MAINTAINER_MODE_TRUE@$(stamp): except.i doccomments.i fixup-swig-py2-wrapper
 @MAINTAINER_MODE_TRUE@	$(multitarget_begin)
 @MAINTAINER_MODE_TRUE@	$(RUN_SWIG) $(SWIG_WERROR) -I. -I'$(srcdir)' $(SWIG_FLAGS) -c++ \
 @MAINTAINER_MODE_TRUE@	    -python -threads -shadow -O \
 @MAINTAINER_MODE_TRUE@	    -o xapian_wrap.cc '$(srcdir)/'python.i
-@MAINTAINER_MODE_TRUE@	$(PERL) -i $(srcdir)/fixup-swig-py2-wrapper xapian.py
+@MAINTAINER_MODE_TRUE@	$(PERL) $(srcdir)/fixup-swig-py2-wrapper xapian.py > xapian__init__.py
+@MAINTAINER_MODE_TRUE@	rm xapian.py
 @MAINTAINER_MODE_TRUE@	$(multitarget_end)
 
 @MAINTAINER_MODE_TRUE@-include xapian_wrap.d
diff --git a/python/doccomments.i b/python/doccomments.i
index 4d3aca43940484452de5da6cbede5193b913f64a..babd03079c849af51966d19b64d36450e8c971b1 100644
--- a/python/doccomments.i
+++ b/python/doccomments.i
@@ -1119,7 +1119,8 @@ An iterator pointing to the start of the termlist for a given
 document.
 
 TermIterator Xapian::Database::termlist_begin(Xapian::docid did) const
-Xapian::Database::termlist_begin
+Xapian::Database::termlist_begin The terms are returned in ascending
+string order (by byte value).
 
 Parameters:
 -----------
@@ -1161,7 +1162,8 @@ const std::string &) const Xapian::Database::positionlist_end";
 An iterator which runs across all terms with a given prefix.
 
 TermIterator Xapian::Database::allterms_begin(const std::string
-&prefix=std::string()) const Xapian::Database::allterms_begin
+&prefix=std::string()) const Xapian::Database::allterms_begin The
+terms are returned in ascending string order (by byte value).
 
 Parameters:
 -----------
@@ -2923,9 +2925,10 @@ deciders in a value instead. ";
 Set data stored in the document.
 
 void Xapian::Document::set_data(const std::string &data)
-Xapian::Document::set_data  Xapian treats the data as an opaque blob.
-It may try to compress it, but other than that it will just store it
-and return it when requested.
+Xapian::Document::set_data This is an opaque blob as far as Xapian is
+concerned - it's up to you to impose whatever structure you want on
+it. If you want to store structured data, consider using something
+like protocol buffers.
 
 Parameters:
 -----------
@@ -3081,10 +3084,16 @@ index this document. ";
 
 %feature("docstring")  Xapian::Document::termlist_begin "
 
-Iterator for the terms in this document.
+Start iterating the terms in this document.
 
 TermIterator Xapian::Document::termlist_begin() const
-Xapian::Document::termlist_begin";
+Xapian::Document::termlist_begin The terms are returned in ascending
+string order (by byte value).
+
+Note that if the Document object came from a sharded database then the
+TermIterator returned by this method only knows about the shard the
+document came from so calling get_termfreq() on it will give you the
+term frequency in that shard rather than in the combined database. ";
 
 %feature("docstring")  Xapian::Document::termlist_end "
 
@@ -3409,7 +3418,9 @@ Parameters:
 
 spy:  The MatchSpy subclass to add. The caller must ensure that this
 remains valid while the Enquire object remains active, or until
-clear_matchspies() is called. ";
+clear_matchspies() is called, or else allocate the MatchSpy object
+with new and then disown it by calling spy->release() before passing
+it in. ";
 
 %feature("docstring")  Xapian::Enquire::clear_matchspies "
 
@@ -4205,20 +4216,20 @@ Xapian::ExpandDecider::~ExpandDecider";
 Start reference counting this object.
 
 ExpandDecider * Xapian::ExpandDecider::release()
-Xapian::ExpandDecider::release You can hand ownership of a dynamically
-allocated ExpandDecider object to Xapian by calling release() and then
-passing the object to a Xapian method. Xapian will arrange to delete
-the object once it is no longer required. ";
+Xapian::ExpandDecider::release You can transfer ownership of a
+dynamically allocated ExpandDecider object to Xapian by calling
+release() and then passing the object to a Xapian method. Xapian will
+arrange to delete the object once it is no longer required. ";
 
 %feature("docstring")  Xapian::ExpandDecider::release "
 
 Start reference counting this object.
 
 const ExpandDecider * Xapian::ExpandDecider::release() const
-Xapian::ExpandDecider::release You can hand ownership of a dynamically
-allocated ExpandDecider object to Xapian by calling release() and then
-passing the object to a Xapian method. Xapian will arrange to delete
-the object once it is no longer required. ";
+Xapian::ExpandDecider::release You can transfer ownership of a
+dynamically allocated ExpandDecider object to Xapian by calling
+release() and then passing the object to a Xapian method. Xapian will
+arrange to delete the object once it is no longer required. ";
 
 
 // File: classXapian_1_1ExpandDeciderAnd.xml
@@ -4381,7 +4392,7 @@ Xapian::FieldProcessor::~FieldProcessor";
 Start reference counting this object.
 
 FieldProcessor * Xapian::FieldProcessor::release()
-Xapian::FieldProcessor::release You can hand ownership of a
+Xapian::FieldProcessor::release You can transfer ownership of a
 dynamically allocated FieldProcessor object to Xapian by calling
 release() and then passing the object to a Xapian method. Xapian will
 arrange to delete the object once it is no longer required. ";
@@ -4391,7 +4402,7 @@ arrange to delete the object once it is no longer required. ";
 Start reference counting this object.
 
 const FieldProcessor * Xapian::FieldProcessor::release() const
-Xapian::FieldProcessor::release You can hand ownership of a
+Xapian::FieldProcessor::release You can transfer ownership of a
 dynamically allocated FieldProcessor object to Xapian by calling
 release() and then passing the object to a Xapian method. Xapian will
 arrange to delete the object once it is no longer required. ";
@@ -5377,7 +5388,7 @@ virtual Xapian::KeyMaker::~KeyMaker() Xapian::KeyMaker::~KeyMaker";
 Start reference counting this object.
 
 KeyMaker * Xapian::KeyMaker::release() Xapian::KeyMaker::release You
-can hand ownership of a dynamically allocated KeyMaker object to
+can transfer ownership of a dynamically allocated KeyMaker object to
 Xapian by calling release() and then passing the object to a Xapian
 method. Xapian will arrange to delete the object once it is no longer
 required. ";
@@ -5387,7 +5398,7 @@ required. ";
 Start reference counting this object.
 
 const KeyMaker * Xapian::KeyMaker::release() const
-Xapian::KeyMaker::release You can hand ownership of a dynamically
+Xapian::KeyMaker::release You can transfer ownership of a dynamically
 allocated KeyMaker object to Xapian by calling release() and then
 passing the object to a Xapian method. Xapian will arrange to delete
 the object once it is no longer required. ";
@@ -6457,7 +6468,7 @@ get_description() gives for their subclass). ";
 Start reference counting this object.
 
 MatchSpy * Xapian::MatchSpy::release() Xapian::MatchSpy::release You
-can hand ownership of a dynamically allocated MatchSpy object to
+can transfer ownership of a dynamically allocated MatchSpy object to
 Xapian by calling release() and then passing the object to a Xapian
 method. Xapian will arrange to delete the object once it is no longer
 required. ";
@@ -6467,7 +6478,7 @@ required. ";
 Start reference counting this object.
 
 const MatchSpy * Xapian::MatchSpy::release() const
-Xapian::MatchSpy::release You can hand ownership of a dynamically
+Xapian::MatchSpy::release You can transfer ownership of a dynamically
 allocated MatchSpy object to Xapian by calling release() and then
 passing the object to a Xapian method. Xapian will arrange to delete
 the object once it is no longer required. ";
@@ -7884,20 +7895,20 @@ their subclass). ";
 Start reference counting this object.
 
 PostingSource * Xapian::PostingSource::release()
-Xapian::PostingSource::release You can hand ownership of a dynamically
-allocated PostingSource object to Xapian by calling release() and then
-passing the object to a Xapian method. Xapian will arrange to delete
-the object once it is no longer required. ";
+Xapian::PostingSource::release You can transfer ownership of a
+dynamically allocated PostingSource object to Xapian by calling
+release() and then passing the object to a Xapian method. Xapian will
+arrange to delete the object once it is no longer required. ";
 
 %feature("docstring")  Xapian::PostingSource::release "
 
 Start reference counting this object.
 
 const PostingSource * Xapian::PostingSource::release() const
-Xapian::PostingSource::release You can hand ownership of a dynamically
-allocated PostingSource object to Xapian by calling release() and then
-passing the object to a Xapian method. Xapian will arrange to delete
-the object once it is no longer required. ";
+Xapian::PostingSource::release You can transfer ownership of a
+dynamically allocated PostingSource object to Xapian by calling
+release() and then passing the object to a Xapian method. Xapian will
+arrange to delete the object once it is no longer required. ";
 
 
 // File: classXapian_1_1Query.xml
@@ -8779,7 +8790,7 @@ handle the range. ";
 Start reference counting this object.
 
 RangeProcessor * Xapian::RangeProcessor::release()
-Xapian::RangeProcessor::release You can hand ownership of a
+Xapian::RangeProcessor::release You can transfer ownership of a
 dynamically allocated RangeProcessor object to Xapian by calling
 release() and then passing the object to a Xapian method. Xapian will
 arrange to delete the object once it is no longer required. ";
@@ -8789,7 +8800,7 @@ arrange to delete the object once it is no longer required. ";
 Start reference counting this object.
 
 const RangeProcessor * Xapian::RangeProcessor::release() const
-Xapian::RangeProcessor::release You can hand ownership of a
+Xapian::RangeProcessor::release You can transfer ownership of a
 dynamically allocated RangeProcessor object to Xapian by calling
 release() and then passing the object to a Xapian method. Xapian will
 arrange to delete the object once it is no longer required. ";
@@ -9227,8 +9238,8 @@ Xapian::Stopper::get_description";
 Start reference counting this object.
 
 Stopper * Xapian::Stopper::release() Xapian::Stopper::release You can
-hand ownership of a dynamically allocated Stopper object to Xapian by
-calling release() and then passing the object to a Xapian method.
+transfer ownership of a dynamically allocated Stopper object to Xapian
+by calling release() and then passing the object to a Xapian method.
 Xapian will arrange to delete the object once it is no longer
 required. ";
 
@@ -9237,7 +9248,7 @@ required. ";
 Start reference counting this object.
 
 const Stopper * Xapian::Stopper::release() const
-Xapian::Stopper::release You can hand ownership of a dynamically
+Xapian::Stopper::release You can transfer ownership of a dynamically
 allocated Stopper object to Xapian by calling release() and then
 passing the object to a Xapian method. Xapian will arrange to delete
 the object once it is no longer required. ";
@@ -9611,7 +9622,11 @@ Xapian::TermIterator::get_wdf";
 Return the term frequency for the term at the current position.
 
 Xapian::doccount Xapian::TermIterator::get_termfreq() const
-Xapian::TermIterator::get_termfreq";
+Xapian::TermIterator::get_termfreq Note that for a TermIterator
+returned by calling termlist_begin() on a Document object obtained
+from a sharded database, this method will return the term frequency
+from the shard that the document is in rather than for the combined
+database. ";
 
 %feature("docstring")  Xapian::TermIterator::positionlist_count "
 
@@ -11445,6 +11460,10 @@ replacement or deletion operation has either been fully performed or
 not performed at all: it is then up to the application to work out
 which operations need to be repeated.
 
+However, note that if called on a sharded database, atomicity isn't
+guaranteed between shards - it's possible for the changes to one shard
+to be committed but changes to another shard to fail.
+
 It's not valid to call commit() within a transaction.
 
 Beware of calling commit() too frequently: this will make indexing
@@ -11488,6 +11507,10 @@ either all will be applied simultaneously or none will be applied at
 all. Even in the case of a power failure, this characteristic should
 be preserved (as long as the filesystem isn't corrupted, etc).
 
+However, note that if called on a sharded database, atomicity isn't
+guaranteed between shards. Within each shard, the transaction will
+still act atomically.
+
 A transaction is started with begin_transaction() and can either be
 committed by calling commit_transaction() or aborted by calling
 cancel_transaction().
@@ -11545,6 +11568,10 @@ been applied to the database.
 
 In all cases the transaction will no longer be in progress.
 
+Note that if called on a sharded database, atomicity isn't guaranteed
+between shards. Within each shard, the transaction will still act
+atomically.
+
 Parameters:
 -----------
 
diff --git a/python/python.i b/python/python.i
index 8a3d0a0c7a1ca19fc6189119873268dfc2873ed7..abfe630c865641424195447ac3bcc88c06450b91 100644
--- a/python/python.i
+++ b/python/python.i
@@ -182,8 +182,11 @@ class XapianSWIG_Python_Thread_Allow {
 %nothreadallow Xapian::Query::Query(op op_, XapianSWIGQueryItor qbegin, XapianSWIGQueryItor qend, Xapian::termcount parameter = 0);
 
 %typemap(typecheck, precedence=500) (XapianSWIGQueryItor qbegin, XapianSWIGQueryItor qend) {
-    // Checking for a sequence is enough to disambiguate currently.
-    $1 = PySequence_Check($input);
+    // Checking for a sequence which isn't a string or unicode is enough to
+    // disambiguate currently.
+    $1 = (PySequence_Check($input) &&
+          !PyUnicode_Check($input) &&
+          !PyString_Check($input));
 }
 
 %{
diff --git a/python/run-python-test b/python/run-python-test
index d409a81422b7cf7930354cacb6f7dc5642a32f4f..e30eda61d04b08c8e16433fded0a0490eafd571f 100755
--- a/python/run-python-test
+++ b/python/run-python-test
@@ -1,5 +1,5 @@
 #!/bin/sh
-PYTHONPATH=".:$PYTHONPATH"
+PYTHONPATH=".${PYTHONPATH+:}$PYTHONPATH"
 export PYTHONPATH
 PYTHONDONTWRITEBYTECODE=1
 export PYTHONDONTWRITEBYTECODE
diff --git a/python/smoketest.py b/python/smoketest.py
index b5404067fd5243f829cc0ebaed5e4a0f5bb26698..9faf85e4bff76287057ae18bbbec5877688818cb 100644
--- a/python/smoketest.py
+++ b/python/smoketest.py
@@ -127,6 +127,16 @@ def test_all():
     expect_query(xapian.Query.MatchAll, "<alldocuments>")
     expect_query(xapian.Query.MatchNothing, "")
 
+    # Regression test for constructing OP_WILDCARD queries.
+    expect_query(xapian.Query(xapian.Query.OP_WILDCARD, "wild"),
+                 "WILDCARD SYNONYM wild")
+    expect_query(xapian.Query(xapian.Query.OP_WILDCARD, b"wild"),
+                 "WILDCARD SYNONYM wild")
+    expect_query(xapian.Query(xapian.Query.OP_WILDCARD, "wild", 0),
+                 "WILDCARD SYNONYM wild")
+    expect_query(xapian.Query(xapian.Query.OP_WILDCARD, b"wild", 0),
+                 "WILDCARD SYNONYM wild")
+
     # Feature test for Query.__iter__
     term_count = 0
     for term in query2:
diff --git a/python/xapian.py b/python/xapian__init__.py
similarity index 99%
rename from python/xapian.py
rename to python/xapian__init__.py
index 24057e0c166f4eca2ad9c85034e0742c357b55de..bbf57ca16fc815b756f633dba5a26105185d2d52 100644
--- a/python/xapian.py
+++ b/python/xapian__init__.py
@@ -1,6 +1,6 @@
 # encoding: utf-8
 # This file was automatically generated by SWIG (https://www.swig.org).
-# Version 4.1.1
+# Version 4.2.0
 #
 # Do not make changes to this file unless you know what you are doing - modify
 # the SWIG interface file instead.
@@ -41,7 +41,7 @@ def _swig_repr(self):
 import weakref
 
 
-__version__ = '1.4.22'
+__version__ = '1.4.25'
 
 class SwigPyIterator(object):
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -1314,6 +1314,7 @@ class TermGenerator(object):
     get_document = _swig_new_instance_method(_xapian.TermGenerator_get_document)
     set_database = _swig_new_instance_method(_xapian.TermGenerator_set_database)
     FLAG_SPELLING = _xapian.TermGenerator_FLAG_SPELLING
+    FLAG_NGRAMS = _xapian.TermGenerator_FLAG_NGRAMS
     FLAG_CJK_NGRAM = _xapian.TermGenerator_FLAG_CJK_NGRAM
     STEM_NONE = _xapian.TermGenerator_STEM_NONE
     STEM_SOME = _xapian.TermGenerator_STEM_SOME
@@ -1372,6 +1373,7 @@ class MSet(object):
     SNIPPET_BACKGROUND_MODEL = _xapian.MSet_SNIPPET_BACKGROUND_MODEL
     SNIPPET_EXHAUSTIVE = _xapian.MSet_SNIPPET_EXHAUSTIVE
     SNIPPET_EMPTY_WITHOUT_MATCH = _xapian.MSet_SNIPPET_EMPTY_WITHOUT_MATCH
+    SNIPPET_NGRAMS = _xapian.MSet_SNIPPET_NGRAMS
     SNIPPET_CJK_NGRAM = _xapian.MSet_SNIPPET_CJK_NGRAM
     snippet = _swig_new_instance_method(_xapian.MSet_snippet)
     fetch = _swig_new_instance_method(_xapian.MSet_fetch)
@@ -2352,6 +2354,7 @@ class QueryParser(object):
     FLAG_SYNONYM = _xapian.QueryParser_FLAG_SYNONYM
     FLAG_AUTO_SYNONYMS = _xapian.QueryParser_FLAG_AUTO_SYNONYMS
     FLAG_AUTO_MULTIWORD_SYNONYMS = _xapian.QueryParser_FLAG_AUTO_MULTIWORD_SYNONYMS
+    FLAG_NGRAMS = _xapian.QueryParser_FLAG_NGRAMS
     FLAG_CJK_NGRAM = _xapian.QueryParser_FLAG_CJK_NGRAM
     FLAG_ACCUMULATE = _xapian.QueryParser_FLAG_ACCUMULATE
     FLAG_NO_POSITIONS = _xapian.QueryParser_FLAG_NO_POSITIONS
diff --git a/python/xapian_wrap.cc b/python/xapian_wrap.cc
index f513e144bca99c5e30d889977cd86e47fef79db6..6e0e6b5722cb6ab66de515fbd347799649a577a5 100644
--- a/python/xapian_wrap.cc
+++ b/python/xapian_wrap.cc
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -129,7 +129,7 @@ class XapianSWIG_Python_Thread_Allow {
 
 
 
-#define SWIG_VERSION 0x040101
+#define SWIG_VERSION 0x040200
 #define SWIGPYTHON
 #define SWIG_DIRECTORS
 #define SWIG_PYTHON_THREADS
@@ -260,6 +260,32 @@ class XapianSWIG_Python_Thread_Allow {
 # pragma warning disable 592
 #endif
 
+#if __cplusplus >=201103L
+# define SWIG_NULLPTR nullptr
+#else
+# define SWIG_NULLPTR NULL
+#endif 
+
+
+/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
+ * if you're missing it.
+ */
+#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
+     (defined __cplusplus && __cplusplus >= 201103L) || \
+     defined SWIG_HAVE_SNPRINTF) && \
+    !defined SWIG_NO_SNPRINTF
+# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
+#else
+/* Fallback versions ignore the buffer size, but most of our uses either have a
+ * fixed maximum possible size or dynamically allocate a buffer that's large
+ * enough.
+ */
+# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
+#endif
+
+
 
 #if defined(__GNUC__) && defined(_WIN32) && !defined(SWIG_PYTHON_NO_HYPOT_WORKAROUND)
 /* Workaround for '::hypot' has not been declared', see https://bugs.python.org/issue11566 */
@@ -297,6 +323,8 @@ class XapianSWIG_Python_Thread_Allow {
 #pragma GCC diagnostic pop
 #endif
 
+#include <stdio.h>
+
 /* -----------------------------------------------------------------------------
  * swigrun.swg
  *
@@ -444,7 +472,7 @@ class XapianSWIG_Python_Thread_Allow {
 #define SWIG_CASTRANKLIMIT         (1 << 8)
 /* The NewMask denotes the object was created (using new/malloc) */
 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
-/* The TmpMask is for in/out typemaps that use temporal objects */
+/* The TmpMask is for in/out typemaps that use temporary objects */
 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
 /* Simple returning values */
 #define SWIG_BADOBJ                (SWIG_ERROR)
@@ -927,21 +955,29 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
 #endif
 
 
-SWIGINTERN char*
-SWIG_Python_str_AsChar(PyObject *str)
+/* Wrapper around PyUnicode_AsUTF8AndSize - call Py_XDECREF on the returned pbytes when finished with the returned string */
+SWIGINTERN const char *
+SWIG_PyUnicode_AsUTF8AndSize(PyObject *str, Py_ssize_t *psize, PyObject **pbytes)
 {
 #if PY_VERSION_HEX >= 0x03030000
-  return (char *)PyUnicode_AsUTF8(str);
+# if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000
+  *pbytes = NULL;
+  return PyUnicode_AsUTF8AndSize(str, psize);
+# else
+   *pbytes = PyUnicode_AsUTF8String(str);
+   const char *chars = *pbytes ? PyBytes_AsString(*pbytes) : NULL;
+   if (chars && psize)
+     *psize = PyBytes_Size(*pbytes);
+  return chars;
+# endif
 #else
-  return PyString_AsString(str);
+  char *chars = NULL;
+  *pbytes = NULL;
+  PyString_AsStringAndSize(str, &chars, psize);
+  return chars;
 #endif
 }
 
-/* Was useful for Python 3.0.x-3.2.x - now provided only for compatibility
- * with any uses in user interface files. */
-#define SWIG_Python_str_DelForPy3(x)
-
-
 SWIGINTERN PyObject*
 SWIG_Python_str_FromChar(const char *c)
 {
@@ -971,6 +1007,20 @@ SWIG_Python_str_FromChar(const char *c)
 #define Py_hash_t long
 #endif
 
+#ifdef Py_LIMITED_API
+# define PyTuple_GET_ITEM PyTuple_GetItem
+/* Note that PyTuple_SetItem() has different semantics from PyTuple_SET_ITEM as it decref's the original tuple item, so in general they cannot be used
+  interchangeably. However in SWIG-generated code PyTuple_SET_ITEM is only used with newly initialized tuples without any items and for them this does work. */
+# define PyTuple_SET_ITEM PyTuple_SetItem
+# define PyTuple_GET_SIZE PyTuple_Size
+# define PyCFunction_GET_FLAGS PyCFunction_GetFlags
+# define PyCFunction_GET_FUNCTION PyCFunction_GetFunction
+# define PyCFunction_GET_SELF PyCFunction_GetSelf
+# define PyList_GET_ITEM PyList_GetItem
+# define PyList_SET_ITEM PyList_SetItem
+# define PySliceObject PyObject
+#endif
+
 /* -----------------------------------------------------------------------------
  * error manipulation
  * ----------------------------------------------------------------------------- */
@@ -1030,13 +1080,15 @@ SWIG_Python_AddErrorMsg(const char* mesg)
     PyErr_Fetch(&type, &value, &traceback);
   if (value) {
     PyObject *old_str = PyObject_Str(value);
-    const char *tmp = SWIG_Python_str_AsChar(old_str);
+    PyObject *bytes = NULL;
+    const char *tmp = SWIG_PyUnicode_AsUTF8AndSize(old_str, NULL, &bytes);
     PyErr_Clear();
     Py_XINCREF(type);
     if (tmp)
       PyErr_Format(type, "%s %s", tmp, mesg);
     else
       PyErr_Format(type, "%s", mesg);
+    Py_XDECREF(bytes);
     Py_DECREF(old_str);
     Py_DECREF(value);
   } else {
@@ -1109,7 +1161,7 @@ SWIG_Python_RaiseOrModifyTypeError(const char *message)
          bool status;
          PyThreadState *save;
        public:
-         void end() { if (status) { PyEval_RestoreThread(save); status = false; }}
+         void end() { if (status) { status = false; PyEval_RestoreThread(save); }}
          SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {}
          ~SWIG_Python_Thread_Allow() { end(); }
        };
@@ -1519,6 +1571,7 @@ swig_varlink_setattr(PyObject *o, char *n, PyObject *p) {
 SWIGINTERN PyTypeObject*
 swig_varlink_type(void) {
   static char varlink__doc__[] = "Swig var link object";
+#ifndef Py_LIMITED_API
   static PyTypeObject varlink_type;
   static int type_init = 0;
   if (!type_init) {
@@ -1569,6 +1622,9 @@ swig_varlink_type(void) {
 #if (PY_VERSION_HEX >= 0x03080000) && (PY_VERSION_HEX < 0x03090000)
       0,                                  /* tp_print */
 #endif
+#if PY_VERSION_HEX >= 0x030C0000
+      0,                                  /* tp_watched */
+#endif
 #ifdef COUNT_ALLOCS
       0,                                  /* tp_allocs */
       0,                                  /* tp_frees */
@@ -1583,12 +1639,31 @@ swig_varlink_type(void) {
       return NULL;
   }
   return &varlink_type;
+#else
+  PyType_Slot slots[] = {
+    { Py_tp_dealloc, (void *)swig_varlink_dealloc },
+    { Py_tp_repr, (void *)swig_varlink_repr },
+    { Py_tp_getattr, (void *)swig_varlink_getattr },
+    { Py_tp_setattr, (void *)swig_varlink_setattr },
+    { Py_tp_str, (void *)swig_varlink_str },
+    { Py_tp_doc, (void *)varlink__doc__ },
+    { 0, NULL }
+  };
+  PyType_Spec spec = {
+    "swigvarlink",
+    sizeof(swig_varlinkobject),
+    0,
+    Py_TPFLAGS_DEFAULT,
+    slots
+  };
+  return (PyTypeObject *)PyType_FromSpec(&spec);
+#endif
 }
 
 /* Create a variable linking object for use later */
 SWIGINTERN PyObject *
 SWIG_Python_newvarlink(void) {
-  swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type());
+  swig_varlinkobject *result = PyObject_New(swig_varlinkobject, swig_varlink_type());
   if (result) {
     result->vars = 0;
   }
@@ -1861,12 +1936,14 @@ SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w)
 SWIGRUNTIME PyObject*
 SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op)
 {
-  PyObject* res;
-  if( op != Py_EQ && op != Py_NE ) {
-    Py_INCREF(Py_NotImplemented);
-    return Py_NotImplemented;
+  PyObject* res = NULL;
+  if (!PyErr_Occurred()) {
+    if (op != Py_EQ && op != Py_NE) {
+      Py_INCREF(Py_NotImplemented);
+      return Py_NotImplemented;
+    }
+    res = PyBool_FromLong( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ? 1 : 0);
   }
-  res = PyBool_FromLong( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ? 1 : 0);
   return res;  
 }
 
@@ -1894,14 +1971,26 @@ SwigPyObject_type(void) {
 
 SWIGRUNTIMEINLINE int
 SwigPyObject_Check(PyObject *op) {
-#ifdef SWIGPYTHON_BUILTIN
   PyTypeObject *target_tp = SwigPyObject_type();
-  if (PyType_IsSubtype(op->ob_type, target_tp))
+  PyTypeObject *op_type = Py_TYPE(op);
+#ifdef SWIGPYTHON_BUILTIN
+  if (PyType_IsSubtype(op_type, target_tp))
     return 1;
-  return (strcmp(op->ob_type->tp_name, "SwigPyObject") == 0);
+  return (strcmp(op_type->tp_name, "SwigPyObject") == 0);
 #else
-  return (Py_TYPE(op) == SwigPyObject_type())
-    || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0);
+  if (op_type == target_tp)
+    return 1;
+# ifdef Py_LIMITED_API
+  int cmp;
+  PyObject *tp_name = PyObject_GetAttrString((PyObject *)op_type, "__name__");
+  if (!tp_name)
+    return 0;
+  cmp = PyUnicode_CompareWithASCIIString(tp_name, "SwigPyObject");
+  Py_DECREF(tp_name);
+  return cmp == 0;
+# else
+  return (strcmp(op_type->tp_name, "SwigPyObject") == 0);
+# endif
 #endif
 }
 
@@ -2045,7 +2134,7 @@ swigobject_methods[] = {
 SWIGRUNTIME PyTypeObject*
 SwigPyObject_TypeOnce(void) {
   static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer";
-
+#ifndef Py_LIMITED_API
   static PyNumberMethods SwigPyObject_as_number = {
     (binaryfunc)0, /*nb_add*/
     (binaryfunc)0, /*nb_subtract*/
@@ -2163,6 +2252,9 @@ SwigPyObject_TypeOnce(void) {
 #if (PY_VERSION_HEX >= 0x03080000) && (PY_VERSION_HEX < 0x03090000)
       0,                                    /* tp_print */
 #endif
+#if PY_VERSION_HEX >= 0x030C0000
+      0,                                    /* tp_watched */
+#endif
 #ifdef COUNT_ALLOCS
       0,                                    /* tp_allocs */
       0,                                    /* tp_frees */
@@ -2177,12 +2269,32 @@ SwigPyObject_TypeOnce(void) {
       return NULL;
   }
   return &swigpyobject_type;
+#else
+  PyType_Slot slots[] = {
+    { Py_tp_dealloc, (void *)SwigPyObject_dealloc },
+    { Py_tp_repr, (void *)SwigPyObject_repr },
+    { Py_tp_getattro, (void *)PyObject_GenericGetAttr },
+    { Py_tp_doc, (void *)swigobject_doc },
+    { Py_tp_richcompare, (void *)SwigPyObject_richcompare },
+    { Py_tp_methods, (void *)swigobject_methods },
+    { Py_nb_int, (void *)SwigPyObject_long },
+    { 0, NULL }
+  };
+  PyType_Spec spec = {
+    "SwigPyObject",
+    sizeof(SwigPyObject),
+    0,
+    Py_TPFLAGS_DEFAULT,
+    slots
+  };
+  return (PyTypeObject *)PyType_FromSpec(&spec);
+#endif
 }
 
 SWIGRUNTIME PyObject *
 SwigPyObject_New(void *ptr, swig_type_info *ty, int own)
 {
-  SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type());
+  SwigPyObject *sobj = PyObject_New(SwigPyObject, SwigPyObject_type());
   if (sobj) {
     sobj->ptr  = ptr;
     sobj->ty   = ty;
@@ -2253,8 +2365,20 @@ SwigPyPacked_type(void) {
 
 SWIGRUNTIMEINLINE int
 SwigPyPacked_Check(PyObject *op) {
-  return ((op)->ob_type == SwigPyPacked_TypeOnce()) 
-    || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0);
+  PyTypeObject* op_type = Py_TYPE(op);
+  if (op_type == SwigPyPacked_TypeOnce())
+    return 1;
+#ifdef Py_LIMITED_API
+  int cmp;
+  PyObject *tp_name = PyObject_GetAttrString((PyObject *)op_type, "__name__");
+  if (!tp_name)
+    return 0;
+  cmp = PyUnicode_CompareWithASCIIString(tp_name, "SwigPyPacked");
+  Py_DECREF(tp_name);
+  return cmp == 0;
+#else
+  return (strcmp(op_type->tp_name, "SwigPyPacked") == 0);
+#endif
 }
 
 SWIGRUNTIME void
@@ -2270,6 +2394,7 @@ SwigPyPacked_dealloc(PyObject *v)
 SWIGRUNTIME PyTypeObject*
 SwigPyPacked_TypeOnce(void) {
   static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer";
+#ifndef Py_LIMITED_API
   static PyTypeObject swigpypacked_type;
   static int type_init = 0;
   if (!type_init) {
@@ -2343,6 +2468,9 @@ SwigPyPacked_TypeOnce(void) {
 #if (PY_VERSION_HEX >= 0x03080000) && (PY_VERSION_HEX < 0x03090000)
       0,                                    /* tp_print */
 #endif
+#if PY_VERSION_HEX >= 0x030C0000
+      0,                                    /* tp_watched */
+#endif
 #ifdef COUNT_ALLOCS
       0,                                    /* tp_allocs */
       0,                                    /* tp_frees */
@@ -2357,12 +2485,30 @@ SwigPyPacked_TypeOnce(void) {
       return NULL;
   }
   return &swigpypacked_type;
+#else
+  PyType_Slot slots[] = {
+    { Py_tp_dealloc, (void *)SwigPyPacked_dealloc },
+    { Py_tp_repr, (void *)SwigPyPacked_repr },
+    { Py_tp_str, (void *)SwigPyPacked_str },
+    { Py_tp_getattro, (void *)PyObject_GenericGetAttr },
+    { Py_tp_doc, (void *)swigpacked_doc },
+    { 0, NULL }
+  };
+  PyType_Spec spec = {
+    "SwigPyPacked",
+    sizeof(SwigPyPacked),
+    0,
+    Py_TPFLAGS_DEFAULT,
+    slots
+  };
+  return (PyTypeObject *)PyType_FromSpec(&spec);
+#endif
 }
 
 SWIGRUNTIME PyObject *
 SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty)
 {
-  SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type());
+  SwigPyPacked *sobj = PyObject_New(SwigPyPacked, SwigPyPacked_type());
   if (sobj) {
     void *pack = malloc(size);
     if (pack) {
@@ -2614,10 +2760,20 @@ SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
     swig_cast_info *tc;
 
     /* here we get the method pointer for callbacks */
+#ifndef Py_LIMITED_API
     const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
+#else
+    PyObject* pystr_doc = PyObject_GetAttrString(obj, "__doc__");
+    PyObject *bytes = NULL;
+    const char *doc = pystr_doc ? SWIG_PyUnicode_AsUTF8AndSize(pystr_doc, NULL, &bytes) : 0;
+#endif
     const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
     if (desc)
       desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
+#ifdef Py_LIMITED_API
+    Py_XDECREF(bytes);
+    Py_XDECREF(pystr_doc);
+#endif
     if (!desc)
       return SWIG_ERROR;
     tc = SWIG_TypeCheck(desc,ty);
@@ -2693,7 +2849,12 @@ SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this)
     if (empty_args) {
       PyObject *empty_kwargs = PyDict_New();
       if (empty_kwargs) {
-        inst = ((PyTypeObject *)data->newargs)->tp_new((PyTypeObject *)data->newargs, empty_args, empty_kwargs);
+#ifndef Py_LIMITED_API
+        newfunc newfn = ((PyTypeObject *)data->newargs)->tp_new;
+#else
+        newfunc newfn = (newfunc)PyType_GetSlot((PyTypeObject *)data->newargs, Py_tp_new);
+#endif
+        inst = newfn((PyTypeObject *)data->newargs, empty_args, empty_kwargs);
         Py_DECREF(empty_kwargs);
         if (inst) {
           if (PyObject_SetAttr(inst, SWIG_This(), swig_this) == -1) {
@@ -2775,7 +2936,12 @@ SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int f
     if (flags & SWIG_BUILTIN_TP_INIT) {
       newobj = (SwigPyObject*) self;
       if (newobj->ptr) {
-        PyObject *next_self = clientdata->pytype->tp_alloc(clientdata->pytype, 0);
+#ifndef Py_LIMITED_API
+        allocfunc alloc = clientdata->pytype->tp_alloc;
+#else
+        allocfunc alloc = (allocfunc)PyType_GetSlot(clientdata->pytype, Py_tp_alloc);
+#endif
+        PyObject *next_self = alloc(clientdata->pytype, 0);
         while (newobj->next)
 	  newobj = (SwigPyObject *) newobj->next;
         newobj->next = next_self;
@@ -2858,7 +3024,7 @@ SWIG_Python_GetModule(void *SWIGUNUSEDPARM(clientdata)) {
 }
 
 
-static int interpreter_counter = 0; // how many (sub-)interpreters are using swig_module's types
+static int interpreter_counter = 0; /* how many (sub-)interpreters are using swig_module's types */
 
 SWIGRUNTIME void
 SWIG_Python_DestroyModule(PyObject *obj)
@@ -2866,7 +3032,7 @@ SWIG_Python_DestroyModule(PyObject *obj)
   swig_module_info *swig_module = (swig_module_info *) PyCapsule_GetPointer(obj, SWIGPY_CAPSULE_NAME);
   swig_type_info **types = swig_module->types;
   size_t i;
-  if (--interpreter_counter != 0) // another sub-interpreter may still be using the swig_module's types
+  if (--interpreter_counter != 0) /* another sub-interpreter may still be using the swig_module's types */
     return;
   for (i =0; i < swig_module->size; ++i) {
     swig_type_info *ty = types[i];
@@ -2948,7 +3114,8 @@ SWIG_Python_AddErrMesg(const char* mesg, int infront)
     PyErr_Fetch(&type, &value, &traceback);
     if (value) {
       PyObject *old_str = PyObject_Str(value);
-      const char *tmp = SWIG_Python_str_AsChar(old_str);
+      PyObject *bytes = NULL;
+      const char *tmp = SWIG_PyUnicode_AsUTF8AndSize(old_str, NULL, &bytes);
       const char *errmesg = tmp ? tmp : "Invalid error message";
       Py_XINCREF(type);
       PyErr_Clear();
@@ -2957,6 +3124,7 @@ SWIG_Python_AddErrMesg(const char* mesg, int infront)
       } else {
 	PyErr_Format(type, "%s %s", errmesg, mesg);
       }
+      Py_XDECREF(bytes);
       Py_DECREF(old_str);
     }
     return 1;
@@ -3001,10 +3169,13 @@ SWIG_Python_TypeError(const char *type, PyObject *obj)
     } else 
 #endif      
     {
+#ifndef Py_LIMITED_API
+      /* tp_name is not accessible */
       const char *otype = (obj ? obj->ob_type->tp_name : 0); 
       if (otype) {
 	PyObject *str = PyObject_Str(obj);
-	const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0;
+	PyObject *bytes = NULL;
+	const char *cstr = str ? SWIG_PyUnicode_AsUTF8AndSize(str, NULL, &bytes) : 0;
 	if (cstr) {
 	  PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received",
 		       type, otype, cstr);
@@ -3012,9 +3183,11 @@ SWIG_Python_TypeError(const char *type, PyObject *obj)
 	  PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
 		       type, otype);
 	}
+	Py_XDECREF(bytes);
 	Py_XDECREF(str);
 	return;
       }
+#endif
     }   
     PyErr_Format(PyExc_TypeError, "a '%s' is expected", type);
   } else {
@@ -3149,6 +3322,24 @@ SWIGINTERN PyObject *SWIG_PyStaticMethod_New(PyObject *SWIGUNUSEDPARM(self), PyO
 #include <vector>
 #include <map>
 
+#if defined(SWIG_PYTHON_THREADS)
+/*  __THREAD__ is the old macro to activate some thread support */
+# if !defined(__THREAD__)
+#   define __THREAD__ 1
+# endif
+#endif
+
+#ifdef __THREAD__
+#ifndef Py_LIMITED_API
+# include "pythread.h"
+#else
+# if defined(_WIN32)
+#   include <windows.h>
+# else
+#   include <pthread.h>
+# endif
+#endif
+#endif
 
 /*
   Use -DSWIG_PYTHON_DIRECTOR_NO_VTABLE if you don't want to generate a 'virtual
@@ -3308,7 +3499,7 @@ namespace Swig {
         swig_msg += msg;
       }
       if (!PyErr_Occurred()) {
-        PyErr_SetString(error, what());
+        PyErr_SetString(error, swig_msg.c_str());
       }
       SWIG_PYTHON_THREAD_END_BLOCK;
     }
@@ -3379,25 +3570,89 @@ namespace Swig {
   };
 
 
-#if defined(SWIG_PYTHON_THREADS)
-/*  __THREAD__ is the old macro to activate some thread support */
-# if !defined(__THREAD__)
-#   define __THREAD__ 1
-# endif
-#endif
-
 #ifdef __THREAD__
-# include "pythread.h"
+#ifndef Py_LIMITED_API
+   class Mutex
+   {
+   public:
+       Mutex() {
+           mutex_ = PyThread_allocate_lock();
+       }
+
+       ~Mutex() {
+           PyThread_release_lock(mutex_);
+       }
+
+   private:
+       void Lock() {
+           PyThread_acquire_lock(mutex_, WAIT_LOCK);
+       }
+
+       void Unlock() {
+           PyThread_free_lock(mutex_);
+       }
+
+       PyThread_type_lock mutex_;
+
+       friend class Guard;
+   };
+#elif defined(_WIN32)
+    class Mutex : private CRITICAL_SECTION {
+    public:
+        Mutex() {
+            InitializeCriticalSection(this);
+        }
+
+        ~Mutex() {
+            DeleteCriticalSection(this);
+        }
+
+    private:
+        void Lock() {
+            EnterCriticalSection(this);
+        }
+
+        void Unlock() {
+            LeaveCriticalSection(this);
+        }
+
+        friend class Guard;
+    };
+#else
+    class Mutex {
+    public:
+        Mutex() {
+            pthread_mutex_init(&mutex_, NULL);
+        }
+
+        ~Mutex() {
+            pthread_mutex_destroy(&mutex_);
+        }
+
+    private:
+        void Lock() {
+            pthread_mutex_lock(&mutex_);
+        }
+
+        void Unlock() {
+            pthread_mutex_unlock(&mutex_);
+        }
+
+        friend class Guard;
+
+        pthread_mutex_t mutex_;
+    };
+#endif
   class Guard {
-    PyThread_type_lock &mutex_;
+    Mutex &mutex_;
 
   public:
-    Guard(PyThread_type_lock & mutex) : mutex_(mutex) {
-      PyThread_acquire_lock(mutex_, WAIT_LOCK);
+    Guard(Mutex & mutex) : mutex_(mutex) {
+      mutex_.Lock();
     }
 
     ~Guard() {
-      PyThread_release_lock(mutex_);
+      mutex_.Unlock();
     }
   };
 # define SWIG_GUARD(mutex) Guard _guard(mutex)
@@ -3465,7 +3720,7 @@ namespace Swig {
     typedef std::map<void *, GCItem_var> swig_ownership_map;
     mutable swig_ownership_map swig_owner;
 #ifdef __THREAD__
-    static PyThread_type_lock swig_mutex_own;
+    static Mutex swig_mutex_own;
 #endif
 
   public:
@@ -3517,7 +3772,7 @@ namespace Swig {
   };
 
 #ifdef __THREAD__
-  PyThread_type_lock Director::swig_mutex_own = PyThread_allocate_lock();
+  Mutex Director::swig_mutex_own;
 #endif
 }
 
@@ -4119,9 +4374,11 @@ SWIGINTERNINLINE int
 SWIG_CanCastAsInteger(double *d, double min, double max) {
   double x = *d;
   if ((min <= x && x <= max)) {
-   double fx = floor(x);
-   double cx = ceil(x);
-   double rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
+   double fx, cx, rd;
+   errno = 0;
+   fx = floor(x);
+   cx = ceil(x);
+   rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
    if ((errno == EDOM) || (errno == ERANGE)) {
      errno = 0;
    } else {
@@ -4182,7 +4439,11 @@ SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val)
     if (!dispatch) {
       double d;
       int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
-      if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) {
+      // Largest double not larger than ULONG_MAX (not portably calculated easily)
+      // Note that double(ULONG_MAX) is stored in a double rounded up by one (for 64-bit unsigned long)
+      // 0xfffffffffffff800ULL == (uint64_t)std::nextafter(double(__uint128_t(ULONG_MAX)+1), double(0))
+      const double ulong_max = sizeof(unsigned long) == 8 ? 0xfffffffffffff800ULL : ULONG_MAX;
+      if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ulong_max)) {
 	if (val) *val = (unsigned long)(d);
 	return res;
       }
@@ -4338,7 +4599,12 @@ SWIG_AsVal_long (PyObject *obj, long* val)
     if (!dispatch) {
       double d;
       int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
-      if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
+      // Largest double not larger than LONG_MAX (not portably calculated easily)
+      // Note that double(LONG_MAX) is stored in a double rounded up by one (for 64-bit long)
+      // 0x7ffffffffffffc00LL == (int64_t)std::nextafter(double(__uint128_t(LONG_MAX)+1), double(0))
+      const double long_max = sizeof(long) == 8 ? 0x7ffffffffffffc00LL : LONG_MAX;
+      // No equivalent needed for 64-bit double(LONG_MIN) is exactly LONG_MIN
+      if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, long_max)) {
 	if (val) *val = (long)(d);
 	return res;
       }
@@ -4714,8 +4980,10 @@ SWIGINTERN std::string Xapian_Error___str__(Xapian::Error const *self){
 	return desc;
     }
 
+/* Return string from Python obj. NOTE: obj must remain in scope in order
+   to use the returned cptr (but only when alloc is set to SWIG_OLDOBJ) */
 SWIGINTERN int
-SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
+SWIG_AsCharPtrAndSize(PyObject *obj, char **cptr, size_t *psize, int *alloc)
 {
 #if PY_VERSION_HEX>=0x03000000
 #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
@@ -4728,55 +4996,31 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
 #endif
   {
     char *cstr; Py_ssize_t len;
+    PyObject *bytes = NULL;
     int ret = SWIG_OK;
-#if PY_VERSION_HEX>=0x03000000
-#if !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
-    if (!alloc && cptr) {
-        /* We can't allow converting without allocation, since the internal
-           representation of string in Python 3 is UCS-2/UCS-4 but we require
-           a UTF-8 representation.
-           TODO(bhy) More detailed explanation */
-        return SWIG_RuntimeError;
-    }
-    obj = PyUnicode_AsUTF8String(obj);
-    if (!obj)
-      return SWIG_TypeError;
     if (alloc)
-      *alloc = SWIG_NEWOBJ;
-#endif
+      *alloc = SWIG_OLDOBJ;
+#if PY_VERSION_HEX>=0x03000000 && defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
     if (PyBytes_AsStringAndSize(obj, &cstr, &len) == -1)
       return SWIG_TypeError;
 #else
-    if (PyString_AsStringAndSize(obj, &cstr, &len) == -1)
+    cstr = (char *)SWIG_PyUnicode_AsUTF8AndSize(obj, &len, &bytes);
+    if (!cstr)
       return SWIG_TypeError;
-#endif
-    if (cptr) {
+    /* The returned string is only duplicated if the char * returned is not owned and memory managed by obj */
+    if (bytes && cptr) {
       if (alloc) {
-	if (*alloc == SWIG_NEWOBJ) {
-	  *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1)));
-	  *alloc = SWIG_NEWOBJ;
-	} else {
-	  *cptr = cstr;
-	  *alloc = SWIG_OLDOBJ;
-	}
+        cstr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1)));
+        *alloc = SWIG_NEWOBJ;
       } else {
-#if PY_VERSION_HEX>=0x03000000
-#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
-	*cptr = PyBytes_AsString(obj);
-#else
-	assert(0); /* Should never reach here with Unicode strings in Python 3 */
-#endif
-#else
-	*cptr = SWIG_Python_str_AsChar(obj);
-        if (!*cptr)
-          ret = SWIG_TypeError;
-#endif
+        /* alloc must be set in order to clean up allocated memory */
+        return SWIG_RuntimeError;
       }
     }
-    if (psize) *psize = len + 1;
-#if PY_VERSION_HEX>=0x03000000 && !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
-    Py_XDECREF(obj);
 #endif
+    if (cptr) *cptr = cstr;
+    if (psize) *psize = len + 1;
+    Py_XDECREF(bytes);
     return ret;
   } else {
 #if defined(SWIG_PYTHON_2_UNICODE)
@@ -5235,7 +5479,7 @@ SWIGINTERN bool Xapian_ESetIterator_equals(Xapian::ESetIterator const *self,Xapi
 SWIGINTERN std::string Xapian_ESetIterator_get_term(Xapian::ESetIterator const *self){ return **self; }
 SWIGINTERN void Xapian_ESetIterator_next(Xapian::ESetIterator *self){ ++(*self); }
 SWIGINTERN void Xapian_ESetIterator_prev(Xapian::ESetIterator *self){ --(*self); }
-SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_2(std::string const &file){
+SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_1(std::string const &file){
 	ifstream in_file(file.c_str());
 	if (!in_file.is_open())
 	    throw Xapian::InvalidArgumentError("Stopword file not found: " + file);
@@ -7666,6 +7910,7 @@ SWIGINTERN PyObject *_wrap_delete_SwigPyIterator(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_DISOWN |  0 );
@@ -7693,6 +7938,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_value(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   PyObject *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
@@ -7730,6 +7976,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_incr__SWIG_0(PyObject *self, Py_ssize_
   int ecode2 = 0 ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -7768,6 +8015,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_incr__SWIG_1(PyObject *self, Py_ssize_
   int res1 = 0 ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -7832,6 +8080,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_decr__SWIG_0(PyObject *self, Py_ssize_
   int ecode2 = 0 ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -7870,6 +8119,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_decr__SWIG_1(PyObject *self, Py_ssize_
   int res1 = 0 ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -7935,6 +8185,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_distance(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   ptrdiff_t result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator_distance", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -7976,6 +8227,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_equal(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator_equal", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8014,6 +8266,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_copy(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
@@ -8041,6 +8294,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_next(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   PyObject *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
@@ -8076,6 +8330,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___next__(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   PyObject *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
@@ -8111,6 +8366,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_previous(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   PyObject *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
@@ -8149,6 +8405,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_advance(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator_advance", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8191,6 +8448,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___eq__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8213,6 +8471,9 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___eq__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -8230,6 +8491,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___ne__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8252,6 +8514,9 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___ne__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -8269,6 +8534,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___iadd__(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator___iadd__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8311,6 +8577,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___isub__(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator___isub__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8353,6 +8620,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___add__(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator___add__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8380,6 +8648,9 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___add__(PyObject *self, PyObject *args
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -8396,6 +8667,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___sub____SWIG_0(PyObject *self, Py_ssi
   int ecode2 = 0 ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8423,6 +8695,9 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___sub____SWIG_0(PyObject *self, Py_ssi
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -8439,6 +8714,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___sub____SWIG_1(PyObject *self, Py_ssi
   int res2 = 0 ;
   ptrdiff_t result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8461,6 +8737,9 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___sub____SWIG_1(PyObject *self, Py_ssi
   resultobj = SWIG_From_ptrdiff_t(static_cast< ptrdiff_t >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -8513,6 +8792,7 @@ SWIGINTERN PyObject *_wrap_Error_get_type(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   char *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Error, 0 |  0 );
@@ -8540,6 +8820,7 @@ SWIGINTERN PyObject *_wrap_Error_get_msg(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Error, 0 |  0 );
@@ -8567,6 +8848,7 @@ SWIGINTERN PyObject *_wrap_Error_get_context(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Error, 0 |  0 );
@@ -8594,6 +8876,7 @@ SWIGINTERN PyObject *_wrap_Error_get_error_string(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   char *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Error, 0 |  0 );
@@ -8621,6 +8904,7 @@ SWIGINTERN PyObject *_wrap_Error___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Error, 0 |  0 );
@@ -8647,6 +8931,7 @@ SWIGINTERN PyObject *_wrap_delete_Error(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Error, SWIG_POINTER_DISOWN |  0 );
@@ -8687,6 +8972,7 @@ SWIGINTERN PyObject *_wrap_delete_LogicError(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LogicError, SWIG_POINTER_DISOWN |  0 );
@@ -8727,6 +9013,7 @@ SWIGINTERN PyObject *_wrap_delete_RuntimeError(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RuntimeError, SWIG_POINTER_DISOWN |  0 );
@@ -8772,6 +9059,7 @@ SWIGINTERN PyObject *_wrap_new_AssertionError__SWIG_0(PyObject *self, Py_ssize_t
   int alloc3 = 0 ;
   Xapian::AssertionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -8829,6 +9117,7 @@ SWIGINTERN PyObject *_wrap_new_AssertionError__SWIG_1(PyObject *self, Py_ssize_t
   int ecode3 = 0 ;
   Xapian::AssertionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -8881,6 +9170,7 @@ SWIGINTERN PyObject *_wrap_new_AssertionError__SWIG_2(PyObject *self, Py_ssize_t
   int res2 = SWIG_OLDOBJ ;
   Xapian::AssertionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -8926,6 +9216,7 @@ SWIGINTERN PyObject *_wrap_new_AssertionError__SWIG_3(PyObject *self, Py_ssize_t
   int res1 = SWIG_OLDOBJ ;
   Xapian::AssertionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -8961,6 +9252,7 @@ SWIGINTERN PyObject *_wrap_new_AssertionError__SWIG_4(PyObject *self, Py_ssize_t
   int ecode2 = 0 ;
   Xapian::AssertionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9061,6 +9353,7 @@ SWIGINTERN PyObject *_wrap_delete_AssertionError(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__AssertionError, SWIG_POINTER_DISOWN |  0 );
@@ -9110,6 +9403,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidArgumentError__SWIG_0(PyObject *self, Py_s
   int alloc3 = 0 ;
   Xapian::InvalidArgumentError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9167,6 +9461,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidArgumentError__SWIG_1(PyObject *self, Py_s
   int ecode3 = 0 ;
   Xapian::InvalidArgumentError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9219,6 +9514,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidArgumentError__SWIG_2(PyObject *self, Py_s
   int res2 = SWIG_OLDOBJ ;
   Xapian::InvalidArgumentError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9264,6 +9560,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidArgumentError__SWIG_3(PyObject *self, Py_s
   int res1 = SWIG_OLDOBJ ;
   Xapian::InvalidArgumentError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9299,6 +9596,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidArgumentError__SWIG_4(PyObject *self, Py_s
   int ecode2 = 0 ;
   Xapian::InvalidArgumentError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9399,6 +9697,7 @@ SWIGINTERN PyObject *_wrap_delete_InvalidArgumentError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__InvalidArgumentError, SWIG_POINTER_DISOWN |  0 );
@@ -9448,6 +9747,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidOperationError__SWIG_0(PyObject *self, Py_
   int alloc3 = 0 ;
   Xapian::InvalidOperationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9505,6 +9805,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidOperationError__SWIG_1(PyObject *self, Py_
   int ecode3 = 0 ;
   Xapian::InvalidOperationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9557,6 +9858,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidOperationError__SWIG_2(PyObject *self, Py_
   int res2 = SWIG_OLDOBJ ;
   Xapian::InvalidOperationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9602,6 +9904,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidOperationError__SWIG_3(PyObject *self, Py_
   int res1 = SWIG_OLDOBJ ;
   Xapian::InvalidOperationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9637,6 +9940,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidOperationError__SWIG_4(PyObject *self, Py_
   int ecode2 = 0 ;
   Xapian::InvalidOperationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9737,6 +10041,7 @@ SWIGINTERN PyObject *_wrap_delete_InvalidOperationError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__InvalidOperationError, SWIG_POINTER_DISOWN |  0 );
@@ -9786,6 +10091,7 @@ SWIGINTERN PyObject *_wrap_new_UnimplementedError__SWIG_0(PyObject *self, Py_ssi
   int alloc3 = 0 ;
   Xapian::UnimplementedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9843,6 +10149,7 @@ SWIGINTERN PyObject *_wrap_new_UnimplementedError__SWIG_1(PyObject *self, Py_ssi
   int ecode3 = 0 ;
   Xapian::UnimplementedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9895,6 +10202,7 @@ SWIGINTERN PyObject *_wrap_new_UnimplementedError__SWIG_2(PyObject *self, Py_ssi
   int res2 = SWIG_OLDOBJ ;
   Xapian::UnimplementedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9940,6 +10248,7 @@ SWIGINTERN PyObject *_wrap_new_UnimplementedError__SWIG_3(PyObject *self, Py_ssi
   int res1 = SWIG_OLDOBJ ;
   Xapian::UnimplementedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9975,6 +10284,7 @@ SWIGINTERN PyObject *_wrap_new_UnimplementedError__SWIG_4(PyObject *self, Py_ssi
   int ecode2 = 0 ;
   Xapian::UnimplementedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10075,6 +10385,7 @@ SWIGINTERN PyObject *_wrap_delete_UnimplementedError(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__UnimplementedError, SWIG_POINTER_DISOWN |  0 );
@@ -10124,6 +10435,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseError__SWIG_0(PyObject *self, Py_ssize_t
   int alloc3 = 0 ;
   Xapian::DatabaseError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10181,6 +10493,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseError__SWIG_1(PyObject *self, Py_ssize_t
   int ecode3 = 0 ;
   Xapian::DatabaseError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10233,6 +10546,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseError__SWIG_2(PyObject *self, Py_ssize_t
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10278,6 +10592,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseError__SWIG_3(PyObject *self, Py_ssize_t
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10313,6 +10628,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseError__SWIG_4(PyObject *self, Py_ssize_t
   int ecode2 = 0 ;
   Xapian::DatabaseError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10413,6 +10729,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseError(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseError, SWIG_POINTER_DISOWN |  0 );
@@ -10462,6 +10779,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCorruptError__SWIG_0(PyObject *self, Py_s
   int alloc3 = 0 ;
   Xapian::DatabaseCorruptError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10519,6 +10837,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCorruptError__SWIG_1(PyObject *self, Py_s
   int ecode3 = 0 ;
   Xapian::DatabaseCorruptError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10571,6 +10890,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCorruptError__SWIG_2(PyObject *self, Py_s
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseCorruptError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10616,6 +10936,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCorruptError__SWIG_3(PyObject *self, Py_s
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseCorruptError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10651,6 +10972,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCorruptError__SWIG_4(PyObject *self, Py_s
   int ecode2 = 0 ;
   Xapian::DatabaseCorruptError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10751,6 +11073,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseCorruptError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseCorruptError, SWIG_POINTER_DISOWN |  0 );
@@ -10800,6 +11123,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCreateError__SWIG_0(PyObject *self, Py_ss
   int alloc3 = 0 ;
   Xapian::DatabaseCreateError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10857,6 +11181,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCreateError__SWIG_1(PyObject *self, Py_ss
   int ecode3 = 0 ;
   Xapian::DatabaseCreateError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10909,6 +11234,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCreateError__SWIG_2(PyObject *self, Py_ss
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseCreateError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10954,6 +11280,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCreateError__SWIG_3(PyObject *self, Py_ss
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseCreateError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10989,6 +11316,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCreateError__SWIG_4(PyObject *self, Py_ss
   int ecode2 = 0 ;
   Xapian::DatabaseCreateError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11089,6 +11417,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseCreateError(PyObject *self, PyObject *
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseCreateError, SWIG_POINTER_DISOWN |  0 );
@@ -11138,6 +11467,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseLockError__SWIG_0(PyObject *self, Py_ssiz
   int alloc3 = 0 ;
   Xapian::DatabaseLockError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11195,6 +11525,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseLockError__SWIG_1(PyObject *self, Py_ssiz
   int ecode3 = 0 ;
   Xapian::DatabaseLockError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11247,6 +11578,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseLockError__SWIG_2(PyObject *self, Py_ssiz
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseLockError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11292,6 +11624,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseLockError__SWIG_3(PyObject *self, Py_ssiz
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseLockError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11327,6 +11660,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseLockError__SWIG_4(PyObject *self, Py_ssiz
   int ecode2 = 0 ;
   Xapian::DatabaseLockError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11427,6 +11761,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseLockError(PyObject *self, PyObject *ar
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseLockError, SWIG_POINTER_DISOWN |  0 );
@@ -11476,6 +11811,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseModifiedError__SWIG_0(PyObject *self, Py_
   int alloc3 = 0 ;
   Xapian::DatabaseModifiedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11533,6 +11869,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseModifiedError__SWIG_1(PyObject *self, Py_
   int ecode3 = 0 ;
   Xapian::DatabaseModifiedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11585,6 +11922,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseModifiedError__SWIG_2(PyObject *self, Py_
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseModifiedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11630,6 +11968,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseModifiedError__SWIG_3(PyObject *self, Py_
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseModifiedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11665,6 +12004,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseModifiedError__SWIG_4(PyObject *self, Py_
   int ecode2 = 0 ;
   Xapian::DatabaseModifiedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11765,6 +12105,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseModifiedError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseModifiedError, SWIG_POINTER_DISOWN |  0 );
@@ -11814,6 +12155,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseOpeningError__SWIG_0(PyObject *self, Py_s
   int alloc3 = 0 ;
   Xapian::DatabaseOpeningError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11871,6 +12213,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseOpeningError__SWIG_1(PyObject *self, Py_s
   int ecode3 = 0 ;
   Xapian::DatabaseOpeningError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11923,6 +12266,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseOpeningError__SWIG_2(PyObject *self, Py_s
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseOpeningError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11968,6 +12312,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseOpeningError__SWIG_3(PyObject *self, Py_s
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseOpeningError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12003,6 +12348,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseOpeningError__SWIG_4(PyObject *self, Py_s
   int ecode2 = 0 ;
   Xapian::DatabaseOpeningError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12103,6 +12449,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseOpeningError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseOpeningError, SWIG_POINTER_DISOWN |  0 );
@@ -12152,6 +12499,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseVersionError__SWIG_0(PyObject *self, Py_s
   int alloc3 = 0 ;
   Xapian::DatabaseVersionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12209,6 +12557,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseVersionError__SWIG_1(PyObject *self, Py_s
   int ecode3 = 0 ;
   Xapian::DatabaseVersionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12261,6 +12610,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseVersionError__SWIG_2(PyObject *self, Py_s
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseVersionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12306,6 +12656,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseVersionError__SWIG_3(PyObject *self, Py_s
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseVersionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12341,6 +12692,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseVersionError__SWIG_4(PyObject *self, Py_s
   int ecode2 = 0 ;
   Xapian::DatabaseVersionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12441,6 +12793,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseVersionError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseVersionError, SWIG_POINTER_DISOWN |  0 );
@@ -12490,6 +12843,7 @@ SWIGINTERN PyObject *_wrap_new_DocNotFoundError__SWIG_0(PyObject *self, Py_ssize
   int alloc3 = 0 ;
   Xapian::DocNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12547,6 +12901,7 @@ SWIGINTERN PyObject *_wrap_new_DocNotFoundError__SWIG_1(PyObject *self, Py_ssize
   int ecode3 = 0 ;
   Xapian::DocNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12599,6 +12954,7 @@ SWIGINTERN PyObject *_wrap_new_DocNotFoundError__SWIG_2(PyObject *self, Py_ssize
   int res2 = SWIG_OLDOBJ ;
   Xapian::DocNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12644,6 +13000,7 @@ SWIGINTERN PyObject *_wrap_new_DocNotFoundError__SWIG_3(PyObject *self, Py_ssize
   int res1 = SWIG_OLDOBJ ;
   Xapian::DocNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12679,6 +13036,7 @@ SWIGINTERN PyObject *_wrap_new_DocNotFoundError__SWIG_4(PyObject *self, Py_ssize
   int ecode2 = 0 ;
   Xapian::DocNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12779,6 +13137,7 @@ SWIGINTERN PyObject *_wrap_delete_DocNotFoundError(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DocNotFoundError, SWIG_POINTER_DISOWN |  0 );
@@ -12828,6 +13187,7 @@ SWIGINTERN PyObject *_wrap_new_FeatureUnavailableError__SWIG_0(PyObject *self, P
   int alloc3 = 0 ;
   Xapian::FeatureUnavailableError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12885,6 +13245,7 @@ SWIGINTERN PyObject *_wrap_new_FeatureUnavailableError__SWIG_1(PyObject *self, P
   int ecode3 = 0 ;
   Xapian::FeatureUnavailableError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12937,6 +13298,7 @@ SWIGINTERN PyObject *_wrap_new_FeatureUnavailableError__SWIG_2(PyObject *self, P
   int res2 = SWIG_OLDOBJ ;
   Xapian::FeatureUnavailableError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12982,6 +13344,7 @@ SWIGINTERN PyObject *_wrap_new_FeatureUnavailableError__SWIG_3(PyObject *self, P
   int res1 = SWIG_OLDOBJ ;
   Xapian::FeatureUnavailableError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13017,6 +13380,7 @@ SWIGINTERN PyObject *_wrap_new_FeatureUnavailableError__SWIG_4(PyObject *self, P
   int ecode2 = 0 ;
   Xapian::FeatureUnavailableError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13117,6 +13481,7 @@ SWIGINTERN PyObject *_wrap_delete_FeatureUnavailableError(PyObject *self, PyObje
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__FeatureUnavailableError, SWIG_POINTER_DISOWN |  0 );
@@ -13166,6 +13531,7 @@ SWIGINTERN PyObject *_wrap_new_InternalError__SWIG_0(PyObject *self, Py_ssize_t
   int alloc3 = 0 ;
   Xapian::InternalError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13223,6 +13589,7 @@ SWIGINTERN PyObject *_wrap_new_InternalError__SWIG_1(PyObject *self, Py_ssize_t
   int ecode3 = 0 ;
   Xapian::InternalError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13275,6 +13642,7 @@ SWIGINTERN PyObject *_wrap_new_InternalError__SWIG_2(PyObject *self, Py_ssize_t
   int res2 = SWIG_OLDOBJ ;
   Xapian::InternalError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13320,6 +13688,7 @@ SWIGINTERN PyObject *_wrap_new_InternalError__SWIG_3(PyObject *self, Py_ssize_t
   int res1 = SWIG_OLDOBJ ;
   Xapian::InternalError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13355,6 +13724,7 @@ SWIGINTERN PyObject *_wrap_new_InternalError__SWIG_4(PyObject *self, Py_ssize_t
   int ecode2 = 0 ;
   Xapian::InternalError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13455,6 +13825,7 @@ SWIGINTERN PyObject *_wrap_delete_InternalError(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__InternalError, SWIG_POINTER_DISOWN |  0 );
@@ -13504,6 +13875,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkError__SWIG_0(PyObject *self, Py_ssize_t n
   int alloc3 = 0 ;
   Xapian::NetworkError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13561,6 +13933,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkError__SWIG_1(PyObject *self, Py_ssize_t n
   int ecode3 = 0 ;
   Xapian::NetworkError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13613,6 +13986,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkError__SWIG_2(PyObject *self, Py_ssize_t n
   int res2 = SWIG_OLDOBJ ;
   Xapian::NetworkError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13658,6 +14032,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkError__SWIG_3(PyObject *self, Py_ssize_t n
   int res1 = SWIG_OLDOBJ ;
   Xapian::NetworkError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13693,6 +14068,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkError__SWIG_4(PyObject *self, Py_ssize_t n
   int ecode2 = 0 ;
   Xapian::NetworkError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13793,6 +14169,7 @@ SWIGINTERN PyObject *_wrap_delete_NetworkError(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__NetworkError, SWIG_POINTER_DISOWN |  0 );
@@ -13842,6 +14219,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkTimeoutError__SWIG_0(PyObject *self, Py_ss
   int alloc3 = 0 ;
   Xapian::NetworkTimeoutError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13899,6 +14277,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkTimeoutError__SWIG_1(PyObject *self, Py_ss
   int ecode3 = 0 ;
   Xapian::NetworkTimeoutError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13951,6 +14330,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkTimeoutError__SWIG_2(PyObject *self, Py_ss
   int res2 = SWIG_OLDOBJ ;
   Xapian::NetworkTimeoutError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13996,6 +14376,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkTimeoutError__SWIG_3(PyObject *self, Py_ss
   int res1 = SWIG_OLDOBJ ;
   Xapian::NetworkTimeoutError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14031,6 +14412,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkTimeoutError__SWIG_4(PyObject *self, Py_ss
   int ecode2 = 0 ;
   Xapian::NetworkTimeoutError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14131,6 +14513,7 @@ SWIGINTERN PyObject *_wrap_delete_NetworkTimeoutError(PyObject *self, PyObject *
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__NetworkTimeoutError, SWIG_POINTER_DISOWN |  0 );
@@ -14180,6 +14563,7 @@ SWIGINTERN PyObject *_wrap_new_QueryParserError__SWIG_0(PyObject *self, Py_ssize
   int alloc3 = 0 ;
   Xapian::QueryParserError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14237,6 +14621,7 @@ SWIGINTERN PyObject *_wrap_new_QueryParserError__SWIG_1(PyObject *self, Py_ssize
   int ecode3 = 0 ;
   Xapian::QueryParserError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14289,6 +14674,7 @@ SWIGINTERN PyObject *_wrap_new_QueryParserError__SWIG_2(PyObject *self, Py_ssize
   int res2 = SWIG_OLDOBJ ;
   Xapian::QueryParserError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14334,6 +14720,7 @@ SWIGINTERN PyObject *_wrap_new_QueryParserError__SWIG_3(PyObject *self, Py_ssize
   int res1 = SWIG_OLDOBJ ;
   Xapian::QueryParserError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14369,6 +14756,7 @@ SWIGINTERN PyObject *_wrap_new_QueryParserError__SWIG_4(PyObject *self, Py_ssize
   int ecode2 = 0 ;
   Xapian::QueryParserError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14469,6 +14857,7 @@ SWIGINTERN PyObject *_wrap_delete_QueryParserError(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParserError, SWIG_POINTER_DISOWN |  0 );
@@ -14518,6 +14907,7 @@ SWIGINTERN PyObject *_wrap_new_SerialisationError__SWIG_0(PyObject *self, Py_ssi
   int alloc3 = 0 ;
   Xapian::SerialisationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14575,6 +14965,7 @@ SWIGINTERN PyObject *_wrap_new_SerialisationError__SWIG_1(PyObject *self, Py_ssi
   int ecode3 = 0 ;
   Xapian::SerialisationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14627,6 +15018,7 @@ SWIGINTERN PyObject *_wrap_new_SerialisationError__SWIG_2(PyObject *self, Py_ssi
   int res2 = SWIG_OLDOBJ ;
   Xapian::SerialisationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14672,6 +15064,7 @@ SWIGINTERN PyObject *_wrap_new_SerialisationError__SWIG_3(PyObject *self, Py_ssi
   int res1 = SWIG_OLDOBJ ;
   Xapian::SerialisationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14707,6 +15100,7 @@ SWIGINTERN PyObject *_wrap_new_SerialisationError__SWIG_4(PyObject *self, Py_ssi
   int ecode2 = 0 ;
   Xapian::SerialisationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14807,6 +15201,7 @@ SWIGINTERN PyObject *_wrap_delete_SerialisationError(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__SerialisationError, SWIG_POINTER_DISOWN |  0 );
@@ -14856,6 +15251,7 @@ SWIGINTERN PyObject *_wrap_new_RangeError__SWIG_0(PyObject *self, Py_ssize_t nob
   int alloc3 = 0 ;
   Xapian::RangeError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14913,6 +15309,7 @@ SWIGINTERN PyObject *_wrap_new_RangeError__SWIG_1(PyObject *self, Py_ssize_t nob
   int ecode3 = 0 ;
   Xapian::RangeError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14965,6 +15362,7 @@ SWIGINTERN PyObject *_wrap_new_RangeError__SWIG_2(PyObject *self, Py_ssize_t nob
   int res2 = SWIG_OLDOBJ ;
   Xapian::RangeError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15010,6 +15408,7 @@ SWIGINTERN PyObject *_wrap_new_RangeError__SWIG_3(PyObject *self, Py_ssize_t nob
   int res1 = SWIG_OLDOBJ ;
   Xapian::RangeError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15045,6 +15444,7 @@ SWIGINTERN PyObject *_wrap_new_RangeError__SWIG_4(PyObject *self, Py_ssize_t nob
   int ecode2 = 0 ;
   Xapian::RangeError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15145,6 +15545,7 @@ SWIGINTERN PyObject *_wrap_delete_RangeError(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RangeError, SWIG_POINTER_DISOWN |  0 );
@@ -15194,6 +15595,7 @@ SWIGINTERN PyObject *_wrap_new_WildcardError__SWIG_0(PyObject *self, Py_ssize_t
   int alloc3 = 0 ;
   Xapian::WildcardError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15251,6 +15653,7 @@ SWIGINTERN PyObject *_wrap_new_WildcardError__SWIG_1(PyObject *self, Py_ssize_t
   int ecode3 = 0 ;
   Xapian::WildcardError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15303,6 +15706,7 @@ SWIGINTERN PyObject *_wrap_new_WildcardError__SWIG_2(PyObject *self, Py_ssize_t
   int res2 = SWIG_OLDOBJ ;
   Xapian::WildcardError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15348,6 +15752,7 @@ SWIGINTERN PyObject *_wrap_new_WildcardError__SWIG_3(PyObject *self, Py_ssize_t
   int res1 = SWIG_OLDOBJ ;
   Xapian::WildcardError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15383,6 +15788,7 @@ SWIGINTERN PyObject *_wrap_new_WildcardError__SWIG_4(PyObject *self, Py_ssize_t
   int ecode2 = 0 ;
   Xapian::WildcardError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15483,6 +15889,7 @@ SWIGINTERN PyObject *_wrap_delete_WildcardError(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WildcardError, SWIG_POINTER_DISOWN |  0 );
@@ -15532,6 +15939,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseNotFoundError__SWIG_0(PyObject *self, Py_
   int alloc3 = 0 ;
   Xapian::DatabaseNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15589,6 +15997,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseNotFoundError__SWIG_1(PyObject *self, Py_
   int ecode3 = 0 ;
   Xapian::DatabaseNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15641,6 +16050,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseNotFoundError__SWIG_2(PyObject *self, Py_
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15686,6 +16096,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseNotFoundError__SWIG_3(PyObject *self, Py_
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15721,6 +16132,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseNotFoundError__SWIG_4(PyObject *self, Py_
   int ecode2 = 0 ;
   Xapian::DatabaseNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15821,6 +16233,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseNotFoundError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseNotFoundError, SWIG_POINTER_DISOWN |  0 );
@@ -15870,6 +16283,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseClosedError__SWIG_0(PyObject *self, Py_ss
   int alloc3 = 0 ;
   Xapian::DatabaseClosedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15927,6 +16341,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseClosedError__SWIG_1(PyObject *self, Py_ss
   int ecode3 = 0 ;
   Xapian::DatabaseClosedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15979,6 +16394,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseClosedError__SWIG_2(PyObject *self, Py_ss
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseClosedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -16024,6 +16440,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseClosedError__SWIG_3(PyObject *self, Py_ss
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseClosedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -16059,6 +16476,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseClosedError__SWIG_4(PyObject *self, Py_ss
   int ecode2 = 0 ;
   Xapian::DatabaseClosedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -16159,6 +16577,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseClosedError(PyObject *self, PyObject *
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseClosedError, SWIG_POINTER_DISOWN |  0 );
@@ -16200,6 +16619,7 @@ SWIGINTERN PyObject *_wrap_version_string(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   char *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "version_string", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -16217,6 +16637,7 @@ SWIGINTERN PyObject *_wrap_major_version(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   int result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "major_version", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -16234,6 +16655,7 @@ SWIGINTERN PyObject *_wrap_minor_version(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   int result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "minor_version", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -16251,6 +16673,7 @@ SWIGINTERN PyObject *_wrap_revision(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   int result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "revision", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -16268,6 +16691,7 @@ SWIGINTERN PyObject *_wrap_new__PositionIterator(PyObject *self, PyObject *args)
   PyObject *resultobj = 0;
   Xapian::PositionIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new__PositionIterator", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -16288,6 +16712,7 @@ SWIGINTERN PyObject *_wrap_delete__PositionIterator(PyObject *self, PyObject *ar
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, SWIG_POINTER_DISOWN |  0 );
@@ -16317,6 +16742,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator_skip_to(PyObject *self, PyObject *a
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PositionIterator_skip_to", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -16355,6 +16781,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator___str__(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
@@ -16392,6 +16819,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator___eq__(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PositionIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -16414,6 +16842,9 @@ SWIGINTERN PyObject *_wrap__PositionIterator___eq__(PyObject *self, PyObject *ar
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -16431,6 +16862,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator___ne__(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PositionIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -16453,6 +16885,9 @@ SWIGINTERN PyObject *_wrap__PositionIterator___ne__(PyObject *self, PyObject *ar
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -16470,6 +16905,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator_equals(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PositionIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -16511,6 +16947,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator_get_termpos(PyObject *self, PyObjec
   PyObject *swig_obj[1] ;
   Xapian::termpos result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
@@ -16544,6 +16981,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator_next(PyObject *self, PyObject *args
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
@@ -16591,6 +17029,7 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__PositionIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -16623,6 +17062,9 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -16639,6 +17081,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__PositionIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -16671,6 +17114,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -16681,6 +17127,7 @@ SWIGINTERN PyObject *_wrap_new__PostingIterator(PyObject *self, PyObject *args)
   PyObject *resultobj = 0;
   Xapian::PostingIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new__PostingIterator", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -16701,6 +17148,7 @@ SWIGINTERN PyObject *_wrap_delete__PostingIterator(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, SWIG_POINTER_DISOWN |  0 );
@@ -16728,6 +17176,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator_get_wdf(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -16762,6 +17211,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator_get_doclength(PyObject *self, PyObje
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -16796,6 +17246,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator_get_unique_terms(PyObject *self, PyO
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -16830,6 +17281,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator__positionlist_begin(PyObject *self,
   PyObject *swig_obj[1] ;
   Xapian::PositionIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -16864,6 +17316,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator__positionlist_end(PyObject *self, Py
   PyObject *swig_obj[1] ;
   Xapian::PositionIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -16893,6 +17346,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator_skip_to(PyObject *self, PyObject *ar
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PostingIterator_skip_to", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -16931,6 +17385,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator___str__(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -16968,6 +17423,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator___eq__(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PostingIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -16990,6 +17446,9 @@ SWIGINTERN PyObject *_wrap__PostingIterator___eq__(PyObject *self, PyObject *arg
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17007,6 +17466,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator___ne__(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PostingIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17029,6 +17489,9 @@ SWIGINTERN PyObject *_wrap__PostingIterator___ne__(PyObject *self, PyObject *arg
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17046,6 +17509,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator_equals(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PostingIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17087,6 +17551,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator_get_docid(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -17120,6 +17585,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator_next(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -17167,6 +17633,7 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__PostingIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -17199,6 +17666,9 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17215,6 +17685,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__PostingIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -17247,6 +17718,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17257,6 +17731,7 @@ SWIGINTERN PyObject *_wrap_new__TermIterator(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::TermIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new__TermIterator", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -17277,6 +17752,7 @@ SWIGINTERN PyObject *_wrap_delete__TermIterator(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, SWIG_POINTER_DISOWN |  0 );
@@ -17304,6 +17780,7 @@ SWIGINTERN PyObject *_wrap__TermIterator_get_wdf(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17338,6 +17815,7 @@ SWIGINTERN PyObject *_wrap__TermIterator_get_termfreq(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17372,6 +17850,7 @@ SWIGINTERN PyObject *_wrap__TermIterator_positionlist_count(PyObject *self, PyOb
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17406,6 +17885,7 @@ SWIGINTERN PyObject *_wrap__TermIterator__positionlist_begin(PyObject *self, PyO
   PyObject *swig_obj[1] ;
   Xapian::PositionIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17440,6 +17920,7 @@ SWIGINTERN PyObject *_wrap__TermIterator__positionlist_end(PyObject *self, PyObj
   PyObject *swig_obj[1] ;
   Xapian::PositionIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17468,6 +17949,7 @@ SWIGINTERN PyObject *_wrap__TermIterator_skip_to(PyObject *self, PyObject *args)
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_TermIterator_skip_to", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17514,6 +17996,7 @@ SWIGINTERN PyObject *_wrap__TermIterator___str__(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17551,6 +18034,7 @@ SWIGINTERN PyObject *_wrap__TermIterator___eq__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_TermIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17573,6 +18057,9 @@ SWIGINTERN PyObject *_wrap__TermIterator___eq__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17590,6 +18077,7 @@ SWIGINTERN PyObject *_wrap__TermIterator___ne__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_TermIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17612,6 +18100,9 @@ SWIGINTERN PyObject *_wrap__TermIterator___ne__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17629,6 +18120,7 @@ SWIGINTERN PyObject *_wrap__TermIterator_equals(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_TermIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17670,6 +18162,7 @@ SWIGINTERN PyObject *_wrap__TermIterator_get_term(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17703,6 +18196,7 @@ SWIGINTERN PyObject *_wrap__TermIterator_next(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17750,6 +18244,7 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_2(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__TermIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -17782,6 +18277,9 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_2(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17798,6 +18296,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_2(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__TermIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -17830,6 +18329,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_2(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17840,6 +18342,7 @@ SWIGINTERN PyObject *_wrap_new__ValueIterator(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::ValueIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new__ValueIterator", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -17860,6 +18363,7 @@ SWIGINTERN PyObject *_wrap_delete__ValueIterator(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, SWIG_POINTER_DISOWN |  0 );
@@ -17887,6 +18391,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator_get_docid(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
@@ -17921,6 +18426,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator_get_valueno(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::valueno result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
@@ -17957,6 +18463,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator_skip_to(PyObject *self, PyObject *args
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ValueIterator_skip_to", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17998,6 +18505,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator_check(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ValueIterator_check", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18036,6 +18544,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator___str__(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
@@ -18073,6 +18582,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator___eq__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ValueIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18095,6 +18605,9 @@ SWIGINTERN PyObject *_wrap__ValueIterator___eq__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -18112,6 +18625,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator___ne__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ValueIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18134,6 +18648,9 @@ SWIGINTERN PyObject *_wrap__ValueIterator___ne__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -18151,6 +18668,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator_equals(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ValueIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18192,6 +18710,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator_get_value(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
@@ -18225,6 +18744,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator_next(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
@@ -18272,6 +18792,7 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_3(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ValueIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -18304,6 +18825,9 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_3(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -18320,6 +18844,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_3(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ValueIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -18352,6 +18877,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_3(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -18362,6 +18890,7 @@ SWIGINTERN PyObject *_wrap_new_Document(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::Document *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_Document", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -18389,6 +18918,7 @@ SWIGINTERN PyObject *_wrap_delete_Document(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, SWIG_POINTER_DISOWN |  0 );
@@ -18419,6 +18949,7 @@ SWIGINTERN PyObject *_wrap_Document_get_value(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Document_get_value", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18461,6 +18992,7 @@ SWIGINTERN PyObject *_wrap_Document_add_value(PyObject *self, PyObject *args) {
   int res3 = SWIG_OLDOBJ ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Document_add_value", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18514,6 +19046,7 @@ SWIGINTERN PyObject *_wrap_Document_remove_value(PyObject *self, PyObject *args)
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Document_remove_value", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18551,6 +19084,7 @@ SWIGINTERN PyObject *_wrap_Document_clear_values(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -18585,6 +19119,7 @@ SWIGINTERN PyObject *_wrap_Document_get_data(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -18620,6 +19155,7 @@ SWIGINTERN PyObject *_wrap_Document_set_data(PyObject *self, PyObject *args) {
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Document_set_data", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18672,6 +19208,7 @@ SWIGINTERN PyObject *_wrap_Document_add_posting__SWIG_0(PyObject *self, Py_ssize
   unsigned int val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18731,6 +19268,7 @@ SWIGINTERN PyObject *_wrap_Document_add_posting__SWIG_1(PyObject *self, Py_ssize
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18813,6 +19351,7 @@ SWIGINTERN PyObject *_wrap_Document_add_term__SWIG_0(PyObject *self, Py_ssize_t
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18864,6 +19403,7 @@ SWIGINTERN PyObject *_wrap_Document_add_term__SWIG_1(PyObject *self, Py_ssize_t
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18939,6 +19479,7 @@ SWIGINTERN PyObject *_wrap_Document_add_boolean_term(PyObject *self, PyObject *a
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Document_add_boolean_term", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18991,6 +19532,7 @@ SWIGINTERN PyObject *_wrap_Document_remove_posting__SWIG_0(PyObject *self, Py_ss
   unsigned int val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19050,6 +19592,7 @@ SWIGINTERN PyObject *_wrap_Document_remove_posting__SWIG_1(PyObject *self, Py_ss
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19139,6 +19682,7 @@ SWIGINTERN PyObject *_wrap_Document_remove_postings__SWIG_0(PyObject *self, Py_s
   int ecode5 = 0 ;
   Xapian::termpos result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19207,6 +19751,7 @@ SWIGINTERN PyObject *_wrap_Document_remove_postings__SWIG_1(PyObject *self, Py_s
   int ecode4 = 0 ;
   Xapian::termpos result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19292,6 +19837,7 @@ SWIGINTERN PyObject *_wrap_Document_remove_term(PyObject *self, PyObject *args)
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Document_remove_term", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19337,6 +19883,7 @@ SWIGINTERN PyObject *_wrap_Document_clear_terms(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19371,6 +19918,7 @@ SWIGINTERN PyObject *_wrap_Document_termlist_count(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19405,6 +19953,7 @@ SWIGINTERN PyObject *_wrap_Document__termlist_begin(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19439,6 +19988,7 @@ SWIGINTERN PyObject *_wrap_Document__termlist_end(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19466,6 +20016,7 @@ SWIGINTERN PyObject *_wrap_Document_values_count(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19500,6 +20051,7 @@ SWIGINTERN PyObject *_wrap_Document__values_begin(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::ValueIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19534,6 +20086,7 @@ SWIGINTERN PyObject *_wrap_Document__values_end(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::ValueIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19561,6 +20114,7 @@ SWIGINTERN PyObject *_wrap_Document_get_docid(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19595,6 +20149,7 @@ SWIGINTERN PyObject *_wrap_Document_serialise(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19628,6 +20183,7 @@ SWIGINTERN PyObject *_wrap_Document_unserialise(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::Document result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   {
@@ -19670,6 +20226,7 @@ SWIGINTERN PyObject *_wrap_Document___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19711,6 +20268,7 @@ SWIGINTERN PyObject *_wrap_new_Registry(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::Registry *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_Registry", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -19738,6 +20296,7 @@ SWIGINTERN PyObject *_wrap_delete_Registry(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, SWIG_POINTER_DISOWN |  0 );
@@ -19767,6 +20326,7 @@ SWIGINTERN PyObject *_wrap_Registry_register_weighting_scheme(PyObject *self, Py
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_register_weighting_scheme", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19810,6 +20370,7 @@ SWIGINTERN PyObject *_wrap_Registry_get_weighting_scheme(PyObject *self, PyObjec
   PyObject *swig_obj[2] ;
   Xapian::Weight *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_get_weighting_scheme", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19858,6 +20419,7 @@ SWIGINTERN PyObject *_wrap_Registry_register_posting_source(PyObject *self, PyOb
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_register_posting_source", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19901,6 +20463,7 @@ SWIGINTERN PyObject *_wrap_Registry_get_posting_source(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   Xapian::PostingSource *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_get_posting_source", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19949,6 +20512,7 @@ SWIGINTERN PyObject *_wrap_Registry_register_match_spy(PyObject *self, PyObject
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_register_match_spy", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19992,6 +20556,7 @@ SWIGINTERN PyObject *_wrap_Registry_get_match_spy(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::MatchSpy *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_get_match_spy", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -20040,6 +20605,7 @@ SWIGINTERN PyObject *_wrap_Registry_register_lat_long_metric(PyObject *self, PyO
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_register_lat_long_metric", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -20083,6 +20649,7 @@ SWIGINTERN PyObject *_wrap_Registry_get_lat_long_metric(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   Xapian::LatLongMetric *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_get_lat_long_metric", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -20136,6 +20703,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_0(PyObject *self, Py_ssize_t nobjs, P
   PyObject *resultobj = 0;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -20156,6 +20724,7 @@ SWIGINTERN PyObject *_wrap_delete_Query(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, SWIG_POINTER_DISOWN |  0 );
@@ -20187,6 +20756,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_1(PyObject *self, Py_ssize_t nobjs, P
   int ecode3 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -20239,6 +20809,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_2(PyObject *self, Py_ssize_t nobjs, P
   int ecode2 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -20283,6 +20854,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_3(PyObject *self, Py_ssize_t nobjs, P
   int res1 = SWIG_OLDOBJ ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -20323,6 +20895,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_4(PyObject *self, Py_ssize_t nobjs, P
   int res1 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -20358,6 +20931,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_5(PyObject *self, Py_ssize_t nobjs, P
   int res2 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20404,6 +20978,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_6(PyObject *self, Py_ssize_t nobjs, P
   int ecode3 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20455,6 +21030,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_7(PyObject *self, Py_ssize_t nobjs, P
   int res3 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20507,6 +21083,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_8(PyObject *self, Py_ssize_t nobjs, P
   int res3 = SWIG_OLDOBJ ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20570,6 +21147,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_9(PyObject *self, Py_ssize_t nobjs, P
   int res3 = SWIG_OLDOBJ ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20627,6 +21205,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_10(PyObject *self, Py_ssize_t nobjs,
   int res4 = SWIG_OLDOBJ ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20701,6 +21280,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_11(PyObject *self, Py_ssize_t nobjs,
   int ecode5 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20769,6 +21349,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_12(PyObject *self, Py_ssize_t nobjs,
   int ecode4 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20829,6 +21410,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_13(PyObject *self, Py_ssize_t nobjs,
   int ecode3 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20881,6 +21463,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_14(PyObject *self, Py_ssize_t nobjs,
   int res2 = SWIG_OLDOBJ ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20919,7 +21502,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_new_Query__SWIG_17(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_new_Query__SWIG_15(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   Xapian::Query::op arg1 ;
   XapianSWIGQueryItor arg2 ;
@@ -20931,6 +21514,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_17(PyObject *self, Py_ssize_t nobjs,
   int ecode4 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20967,7 +21551,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_new_Query__SWIG_18(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_new_Query__SWIG_16(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   Xapian::Query::op arg1 ;
   XapianSWIGQueryItor arg2 ;
@@ -20976,6 +21560,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_18(PyObject *self, Py_ssize_t nobjs,
   int ecode1 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -21015,6 +21600,7 @@ SWIGINTERN PyObject *_wrap_Query__get_terms_begin(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21049,6 +21635,7 @@ SWIGINTERN PyObject *_wrap_Query__get_terms_end(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21076,6 +21663,7 @@ SWIGINTERN PyObject *_wrap_Query_get_unique_terms_begin(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21110,6 +21698,7 @@ SWIGINTERN PyObject *_wrap_Query_get_unique_terms_end(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21137,6 +21726,7 @@ SWIGINTERN PyObject *_wrap_Query_get_length(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21164,6 +21754,7 @@ SWIGINTERN PyObject *_wrap_Query_empty(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21191,6 +21782,7 @@ SWIGINTERN PyObject *_wrap_Query_serialise(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21226,6 +21818,7 @@ SWIGINTERN PyObject *_wrap_Query_unserialise__SWIG_0(PyObject *self, Py_ssize_t
   int res2 = 0 ;
   Xapian::Query result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -21273,6 +21866,7 @@ SWIGINTERN PyObject *_wrap_Query_unserialise__SWIG_1(PyObject *self, Py_ssize_t
   int res1 = SWIG_OLDOBJ ;
   Xapian::Query result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -21342,6 +21936,7 @@ SWIGINTERN PyObject *_wrap_Query_get_type(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::Query::op result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21369,6 +21964,7 @@ SWIGINTERN PyObject *_wrap_Query_get_num_subqueries(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   size_t result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21399,6 +21995,7 @@ SWIGINTERN PyObject *_wrap_Query_get_subquery(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   Xapian::Query result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Query_get_subquery", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -21437,6 +22034,7 @@ SWIGINTERN PyObject *_wrap_Query___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21463,13 +22061,14 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_new_Query__SWIG_19(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_new_Query__SWIG_17(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   Xapian::Query::op arg1 ;
   int val1 ;
   int ecode1 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -21529,7 +22128,7 @@ check_2:
       }
     }
     if (!_v) goto check_3;
-    return _wrap_new_Query__SWIG_19(self, argc, argv);
+    return _wrap_new_Query__SWIG_17(self, argc, argv);
   }
 check_3:
   
@@ -21549,12 +22148,15 @@ check_3:
     if (!_v) goto check_5;
     {
       {
-        // Checking for a sequence is enough to disambiguate currently.
-        _v = PySequence_Check(argv[1]);
+        // Checking for a sequence which isn't a string or unicode is enough to
+        // disambiguate currently.
+        _v = (PySequence_Check(argv[1]) &&
+          !PyUnicode_Check(argv[1]) &&
+          !PyString_Check(argv[1]));
       }
     }
     if (!_v) goto check_5;
-    return _wrap_new_Query__SWIG_18(self, argc, argv);
+    return _wrap_new_Query__SWIG_16(self, argc, argv);
   }
 check_5:
   
@@ -21683,8 +22285,11 @@ check_11:
     if (!_v) goto check_12;
     {
       {
-        // Checking for a sequence is enough to disambiguate currently.
-        _v = PySequence_Check(argv[1]);
+        // Checking for a sequence which isn't a string or unicode is enough to
+        // disambiguate currently.
+        _v = (PySequence_Check(argv[1]) &&
+          !PyUnicode_Check(argv[1]) &&
+          !PyString_Check(argv[1]));
       }
     }
     if (!_v) goto check_12;
@@ -21695,7 +22300,7 @@ check_11:
       }
     }
     if (!_v) goto check_12;
-    return _wrap_new_Query__SWIG_17(self, argc, argv);
+    return _wrap_new_Query__SWIG_15(self, argc, argv);
   }
 check_12:
   
@@ -21828,6 +22433,7 @@ SWIGINTERN PyObject *_wrap_new_StemImplementation(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::StemImplementation *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -21864,6 +22470,7 @@ SWIGINTERN PyObject *_wrap_delete_StemImplementation(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__StemImplementation, SWIG_POINTER_DISOWN |  0 );
@@ -21895,6 +22502,7 @@ SWIGINTERN PyObject *_wrap_StemImplementation___call__(PyObject *self, PyObject
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "StemImplementation___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__StemImplementation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -21949,6 +22557,7 @@ SWIGINTERN PyObject *_wrap_StemImplementation___str__(PyObject *self, PyObject *
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__StemImplementation, 0 |  0 );
@@ -21988,6 +22597,7 @@ SWIGINTERN PyObject *_wrap_disown_StemImplementation(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__StemImplementation, 0 |  0 );
@@ -22028,6 +22638,7 @@ SWIGINTERN PyObject *_wrap_new_Stem__SWIG_0(PyObject *self, Py_ssize_t nobjs, Py
   int res1 = SWIG_OLDOBJ ;
   Xapian::Stem *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -22070,6 +22681,7 @@ SWIGINTERN PyObject *_wrap_new_Stem__SWIG_1(PyObject *self, Py_ssize_t nobjs, Py
   int ecode2 = 0 ;
   Xapian::Stem *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -22115,6 +22727,7 @@ SWIGINTERN PyObject *_wrap_new_Stem__SWIG_2(PyObject *self, Py_ssize_t nobjs, Py
   int res1 = 0 ;
   Xapian::Stem *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__StemImplementation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22188,6 +22801,7 @@ SWIGINTERN PyObject *_wrap_delete_Stem(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stem, SWIG_POINTER_DISOWN |  0 );
@@ -22217,6 +22831,7 @@ SWIGINTERN PyObject *_wrap_Stem___call__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Stem___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stem, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22263,6 +22878,7 @@ SWIGINTERN PyObject *_wrap_Stem_is_none(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stem, 0 |  0 );
@@ -22297,6 +22913,7 @@ SWIGINTERN PyObject *_wrap_Stem___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stem, 0 |  0 );
@@ -22327,6 +22944,7 @@ SWIGINTERN PyObject *_wrap_Stem_get_available_languages(PyObject *self, PyObject
   PyObject *resultobj = 0;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Stem_get_available_languages", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -22362,6 +22980,7 @@ SWIGINTERN PyObject *_wrap_new_TermGenerator(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::TermGenerator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_TermGenerator", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -22389,6 +23008,7 @@ SWIGINTERN PyObject *_wrap_delete_TermGenerator(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, SWIG_POINTER_DISOWN |  0 );
@@ -22418,6 +23038,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_stemmer(PyObject *self, PyObject *a
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_stemmer", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22460,6 +23081,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_stopper__SWIG_0(PyObject *self, Py_
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22496,6 +23118,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_stopper__SWIG_1(PyObject *self, Py_
   void *argp1 = 0 ;
   int res1 = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22559,6 +23182,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_document(PyObject *self, PyObject *
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_document", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22600,6 +23224,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_get_document(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::Document *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
@@ -22636,6 +23261,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_database(PyObject *self, PyObject *
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_database", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22682,6 +23308,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_flags__SWIG_0(PyObject *self, Py_ss
   int ecode3 = 0 ;
   Xapian::TermGenerator::flags result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22727,6 +23354,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_flags__SWIG_1(PyObject *self, Py_ss
   int ecode2 = 0 ;
   Xapian::TermGenerator::flags result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22795,6 +23423,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_stemming_strategy(PyObject *self, P
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_stemming_strategy", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22835,6 +23464,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_stopper_strategy(PyObject *self, Py
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_stopper_strategy", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22875,6 +23505,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_max_word_length(PyObject *self, PyO
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_max_word_length", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22918,6 +23549,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_index_text__SWIG_0(PyObject *self, Py_s
   int ecode3 = 0 ;
   int res4 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22985,6 +23617,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_index_text__SWIG_1(PyObject *self, Py_s
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23036,6 +23669,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_index_text__SWIG_2(PyObject *self, Py_s
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23121,6 +23755,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_index_text_without_positions__SWIG_0(Py
   int ecode3 = 0 ;
   int res4 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23188,6 +23823,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_index_text_without_positions__SWIG_1(Py
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23239,6 +23875,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_index_text_without_positions__SWIG_2(Py
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23320,6 +23957,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_increase_termpos__SWIG_0(PyObject *self
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23356,6 +23994,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_increase_termpos__SWIG_1(PyObject *self
   void *argp1 = 0 ;
   int res1 = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23417,6 +24056,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_get_termpos(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   Xapian::termpos result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
@@ -23453,6 +24093,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_termpos(PyObject *self, PyObject *a
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_termpos", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23491,6 +24132,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator___str__(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
@@ -23532,6 +24174,7 @@ SWIGINTERN PyObject *_wrap_new_MSet(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::MSet *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_MSet", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -23559,6 +24202,7 @@ SWIGINTERN PyObject *_wrap_delete_MSet(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, SWIG_POINTER_DISOWN |  0 );
@@ -23588,6 +24232,7 @@ SWIGINTERN PyObject *_wrap_MSet_convert_to_percent__SWIG_0(PyObject *self, Py_ss
   int ecode2 = 0 ;
   int result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23628,6 +24273,7 @@ SWIGINTERN PyObject *_wrap_MSet_convert_to_percent__SWIG_1(PyObject *self, Py_ss
   int res2 = 0 ;
   int result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23705,6 +24351,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_termfreq(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MSet_get_termfreq", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23753,6 +24400,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_termweight(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   double result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MSet_get_termweight", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23799,6 +24447,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_firstitem(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -23833,6 +24482,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_matches_lower_bound(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -23867,6 +24517,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_matches_estimated(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -23901,6 +24552,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_matches_upper_bound(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -23935,6 +24587,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_uncollapsed_matches_lower_bound(PyObject *se
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -23969,6 +24622,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_uncollapsed_matches_estimated(PyObject *self
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24003,6 +24657,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_uncollapsed_matches_upper_bound(PyObject *se
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24037,6 +24692,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_max_attained(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24071,6 +24727,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_max_possible(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24121,6 +24778,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_0(PyObject *self, Py_ssize_t nobjs
   int res8 = SWIG_OLDOBJ ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 8) || (nobjs > 8)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24238,6 +24896,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_1(PyObject *self, Py_ssize_t nobjs
   int res7 = SWIG_OLDOBJ ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 7) || (nobjs > 7)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24340,6 +24999,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_2(PyObject *self, Py_ssize_t nobjs
   int res6 = SWIG_OLDOBJ ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24427,6 +25087,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_3(PyObject *self, Py_ssize_t nobjs
   int ecode5 = 0 ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24498,6 +25159,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_4(PyObject *self, Py_ssize_t nobjs
   int res4 = 0 ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24561,6 +25223,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_5(PyObject *self, Py_ssize_t nobjs
   int ecode3 = 0 ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24613,6 +25276,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_6(PyObject *self, Py_ssize_t nobjs
   int res2 = SWIG_OLDOBJ ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24721,6 +25385,7 @@ SWIGINTERN PyObject *_wrap_MSet_fetch__SWIG_0(PyObject *self, Py_ssize_t nobjs,
   void *argp3 = 0 ;
   int res3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24771,6 +25436,7 @@ SWIGINTERN PyObject *_wrap_MSet_fetch__SWIG_1(PyObject *self, Py_ssize_t nobjs,
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24810,6 +25476,7 @@ SWIGINTERN PyObject *_wrap_MSet_fetch__SWIG_2(PyObject *self, Py_ssize_t nobjs,
   void *argp1 = 0 ;
   int res1 = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24877,6 +25544,7 @@ SWIGINTERN PyObject *_wrap_MSet_size(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24911,6 +25579,7 @@ SWIGINTERN PyObject *_wrap_MSet_empty(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24945,6 +25614,7 @@ SWIGINTERN PyObject *_wrap_MSet__begin(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::MSetIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24979,6 +25649,7 @@ SWIGINTERN PyObject *_wrap_MSet__end(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::MSetIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -25013,6 +25684,7 @@ SWIGINTERN PyObject *_wrap_MSet_back(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::MSetIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -25047,6 +25719,7 @@ SWIGINTERN PyObject *_wrap_MSet___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -25081,6 +25754,7 @@ SWIGINTERN PyObject *_wrap_MSet_items_get(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   PyObject *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -25107,6 +25781,7 @@ SWIGINTERN PyObject *_wrap_MSet___cmp__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   int result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MSet___cmp__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25144,6 +25819,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_docid(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   Xapian::docid result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MSet_get_docid", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25185,6 +25861,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_document(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   Xapian::Document result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MSet_get_document", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25226,6 +25903,7 @@ SWIGINTERN PyObject *_wrap_MSet__get_hit_internal(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::MSetIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MSet__get_hit_internal", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25267,6 +25945,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_document_percentage(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   int result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MSet_get_document_percentage", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25318,6 +25997,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_mset_set(PyObject *self, PyObject *args
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_MSetIterator_mset_set", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25349,6 +26029,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_mset_get(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::MSet *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25378,6 +26059,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_off_from_end_set(PyObject *self, PyObje
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_MSetIterator_off_from_end_set", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25409,6 +26091,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_off_from_end_get(PyObject *self, PyObje
   PyObject *swig_obj[1] ;
   Xapian::MSet::size_type result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25432,6 +26115,7 @@ SWIGINTERN PyObject *_wrap_new__MSetIterator(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::MSetIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new__MSetIterator", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -25460,6 +26144,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_rank(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25494,6 +26179,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_document(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::Document result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25528,6 +26214,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_weight(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25562,6 +26249,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_collapse_key(PyObject *self, PyObje
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25596,6 +26284,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_collapse_count(PyObject *self, PyOb
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25630,6 +26319,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_sort_key(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25664,6 +26354,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_percent(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   int result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25698,6 +26389,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator___str__(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25735,6 +26427,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator___eq__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_MSetIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25757,6 +26450,9 @@ SWIGINTERN PyObject *_wrap__MSetIterator___eq__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -25774,6 +26470,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator___ne__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_MSetIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25796,6 +26493,9 @@ SWIGINTERN PyObject *_wrap__MSetIterator___ne__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -25813,6 +26513,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_equals(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_MSetIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25854,6 +26555,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_docid(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25887,6 +26589,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_next(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25920,6 +26623,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_prev(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25953,6 +26657,7 @@ SWIGINTERN PyObject *_wrap_delete__MSetIterator(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, SWIG_POINTER_DISOWN |  0 );
@@ -25993,6 +26698,7 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_4(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__MSetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -26025,6 +26731,9 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_4(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26041,6 +26750,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_4(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__MSetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -26073,6 +26783,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_4(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26089,6 +26802,7 @@ SWIGINTERN PyObject *_wrap___lt____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__MSetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -26121,6 +26835,9 @@ SWIGINTERN PyObject *_wrap___lt____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26137,6 +26854,7 @@ SWIGINTERN PyObject *_wrap___gt____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__MSetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -26169,6 +26887,9 @@ SWIGINTERN PyObject *_wrap___gt____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26185,6 +26906,7 @@ SWIGINTERN PyObject *_wrap___ge____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__MSetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -26217,6 +26939,9 @@ SWIGINTERN PyObject *_wrap___ge____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26233,6 +26958,7 @@ SWIGINTERN PyObject *_wrap___le____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__MSetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -26265,6 +26991,9 @@ SWIGINTERN PyObject *_wrap___le____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26281,6 +27010,7 @@ SWIGINTERN PyObject *_wrap___add____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyO
   int res2 = 0 ;
   Xapian::MSetIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -26310,6 +27040,9 @@ SWIGINTERN PyObject *_wrap___add____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyO
   resultobj = SWIG_NewPointerObj((new Xapian::MSetIterator(result)), SWIGTYPE_p_Xapian__MSetIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26320,6 +27053,7 @@ SWIGINTERN PyObject *_wrap_new_ESet(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::ESet *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_ESet", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -26347,6 +27081,7 @@ SWIGINTERN PyObject *_wrap_delete_ESet(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, SWIG_POINTER_DISOWN |  0 );
@@ -26374,6 +27109,7 @@ SWIGINTERN PyObject *_wrap_ESet_size(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26408,6 +27144,7 @@ SWIGINTERN PyObject *_wrap_ESet_empty(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26442,6 +27179,7 @@ SWIGINTERN PyObject *_wrap_ESet_get_ebound(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26476,6 +27214,7 @@ SWIGINTERN PyObject *_wrap_ESet__begin(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::ESetIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26510,6 +27249,7 @@ SWIGINTERN PyObject *_wrap_ESet__end(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::ESetIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26544,6 +27284,7 @@ SWIGINTERN PyObject *_wrap_ESet_back(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::ESetIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26578,6 +27319,7 @@ SWIGINTERN PyObject *_wrap_ESet___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26612,6 +27354,7 @@ SWIGINTERN PyObject *_wrap_ESet_items_get(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   PyObject *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26648,6 +27391,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_eset_set(PyObject *self, PyObject *args
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ESetIterator_eset_set", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -26679,6 +27423,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_eset_get(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::ESet *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -26708,6 +27453,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_off_from_end_set(PyObject *self, PyObje
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ESetIterator_off_from_end_set", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -26739,6 +27485,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_off_from_end_get(PyObject *self, PyObje
   PyObject *swig_obj[1] ;
   Xapian::ESet::size_type result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -26762,6 +27509,7 @@ SWIGINTERN PyObject *_wrap_new__ESetIterator(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::ESetIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new__ESetIterator", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -26790,6 +27538,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_get_weight(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -26824,6 +27573,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator___str__(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -26861,6 +27611,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator___eq__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ESetIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -26883,6 +27634,9 @@ SWIGINTERN PyObject *_wrap__ESetIterator___eq__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26900,6 +27654,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator___ne__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ESetIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -26922,6 +27677,9 @@ SWIGINTERN PyObject *_wrap__ESetIterator___ne__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26939,6 +27697,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_equals(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ESetIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -26980,6 +27739,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_get_term(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -27013,6 +27773,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_next(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -27046,6 +27807,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_prev(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -27079,6 +27841,7 @@ SWIGINTERN PyObject *_wrap_delete__ESetIterator(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, SWIG_POINTER_DISOWN |  0 );
@@ -27119,6 +27882,7 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_5(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ESetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -27151,6 +27915,9 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_5(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27267,6 +28034,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_5(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ESetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -27299,6 +28067,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_5(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27315,6 +28086,7 @@ SWIGINTERN PyObject *_wrap___lt____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ESetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -27347,6 +28119,9 @@ SWIGINTERN PyObject *_wrap___lt____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27399,6 +28174,7 @@ SWIGINTERN PyObject *_wrap___gt____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ESetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -27431,6 +28207,9 @@ SWIGINTERN PyObject *_wrap___gt____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27483,6 +28262,7 @@ SWIGINTERN PyObject *_wrap___ge____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ESetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -27515,6 +28295,9 @@ SWIGINTERN PyObject *_wrap___ge____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27567,6 +28350,7 @@ SWIGINTERN PyObject *_wrap___le____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ESetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -27599,6 +28383,9 @@ SWIGINTERN PyObject *_wrap___le____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27651,6 +28438,7 @@ SWIGINTERN PyObject *_wrap___add____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyO
   int res2 = 0 ;
   Xapian::ESetIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -27680,6 +28468,9 @@ SWIGINTERN PyObject *_wrap___add____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyO
   resultobj = SWIG_NewPointerObj((new Xapian::ESetIterator(result)), SWIGTYPE_p_Xapian__ESetIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27721,6 +28512,7 @@ SWIGINTERN PyObject *_wrap_new_RSet(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::RSet *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_RSet", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -27748,6 +28540,7 @@ SWIGINTERN PyObject *_wrap_delete_RSet(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, SWIG_POINTER_DISOWN |  0 );
@@ -27775,6 +28568,7 @@ SWIGINTERN PyObject *_wrap_RSet_size(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
@@ -27809,6 +28603,7 @@ SWIGINTERN PyObject *_wrap_RSet_empty(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
@@ -27844,6 +28639,7 @@ SWIGINTERN PyObject *_wrap_RSet_add_document__SWIG_0(PyObject *self, Py_ssize_t
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -27883,6 +28679,7 @@ SWIGINTERN PyObject *_wrap_RSet_add_document__SWIG_1(PyObject *self, Py_ssize_t
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -27959,6 +28756,7 @@ SWIGINTERN PyObject *_wrap_RSet_remove_document__SWIG_0(PyObject *self, Py_ssize
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -27998,6 +28796,7 @@ SWIGINTERN PyObject *_wrap_RSet_remove_document__SWIG_1(PyObject *self, Py_ssize
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28075,6 +28874,7 @@ SWIGINTERN PyObject *_wrap_RSet_contains__SWIG_0(PyObject *self, Py_ssize_t nobj
   int ecode2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28115,6 +28915,7 @@ SWIGINTERN PyObject *_wrap_RSet_contains__SWIG_1(PyObject *self, Py_ssize_t nobj
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28190,6 +28991,7 @@ SWIGINTERN PyObject *_wrap_RSet___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
@@ -28233,6 +29035,7 @@ SWIGINTERN PyObject *_wrap_new_MatchDecider(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::MatchDecider *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -28275,6 +29078,7 @@ SWIGINTERN PyObject *_wrap_MatchDecider___call__(PyObject *self, PyObject *args)
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MatchDecider___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchDecider, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28321,6 +29125,7 @@ SWIGINTERN PyObject *_wrap_delete_MatchDecider(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchDecider, SWIG_POINTER_DISOWN |  0 );
@@ -28347,6 +29152,7 @@ SWIGINTERN PyObject *_wrap_disown_MatchDecider(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchDecider, 0 |  0 );
@@ -28389,6 +29195,7 @@ SWIGINTERN PyObject *_wrap_new_Enquire(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::Enquire *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__Database,  0  | 0);
@@ -28425,6 +29232,7 @@ SWIGINTERN PyObject *_wrap_delete_Enquire(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, SWIG_POINTER_DISOWN |  0 );
@@ -28456,6 +29264,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_query__SWIG_0(PyObject *self, Py_ssize_t
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28503,6 +29312,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_query__SWIG_1(PyObject *self, Py_ssize_t
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28572,6 +29382,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_query(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
@@ -28608,6 +29419,7 @@ SWIGINTERN PyObject *_wrap_Enquire_add_matchspy(PyObject *self, PyObject *args)
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_add_matchspy", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28645,6 +29457,7 @@ SWIGINTERN PyObject *_wrap_Enquire_clear_matchspies(PyObject *self, PyObject *ar
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
@@ -28681,6 +29494,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_weighting_scheme(PyObject *self, PyObject
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_weighting_scheme", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28725,6 +29539,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_expansion_scheme__SWIG_0(PyObject *self,
   double val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28776,6 +29591,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_expansion_scheme__SWIG_1(PyObject *self,
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28854,6 +29670,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_collapse_key__SWIG_0(PyObject *self, Py_s
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28898,6 +29715,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_collapse_key__SWIG_1(PyObject *self, Py_s
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28966,6 +29784,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_docid_order(PyObject *self, PyObject *arg
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_docid_order", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29008,6 +29827,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_cutoff__SWIG_0(PyObject *self, Py_ssize_t
   double val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29052,6 +29872,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_cutoff__SWIG_1(PyObject *self, Py_ssize_t
   int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29117,6 +29938,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_relevance(PyObject *self, PyObjec
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
@@ -29156,6 +29978,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_value(PyObject *self, PyObject *a
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_sort_by_value", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29204,6 +30027,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_key(PyObject *self, PyObject *arg
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_sort_by_key", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29252,6 +30076,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_value_then_relevance(PyObject *se
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_sort_by_value_then_relevance", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29300,6 +30125,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_key_then_relevance(PyObject *self
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_sort_by_key_then_relevance", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29348,6 +30174,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_relevance_then_value(PyObject *se
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_sort_by_relevance_then_value", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29396,6 +30223,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_relevance_then_key(PyObject *self
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_sort_by_relevance_then_key", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29441,6 +30269,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_time_limit(PyObject *self, PyObject *args
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_time_limit", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29493,6 +30322,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_mset__SWIG_0(PyObject *self, Py_ssize_t n
   int res6 = 0 ;
   Xapian::MSet result;
   
+  (void)self;
   if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29562,6 +30392,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_mset__SWIG_1(PyObject *self, Py_ssize_t n
   int res5 = 0 ;
   Xapian::MSet result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29623,6 +30454,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_mset__SWIG_2(PyObject *self, Py_ssize_t n
   int ecode4 = 0 ;
   Xapian::MSet result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29676,6 +30508,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_mset__SWIG_3(PyObject *self, Py_ssize_t n
   int ecode3 = 0 ;
   Xapian::MSet result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29730,6 +30563,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_mset__SWIG_4(PyObject *self, Py_ssize_t n
   int res5 = 0 ;
   Xapian::MSet result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29791,6 +30625,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_mset__SWIG_5(PyObject *self, Py_ssize_t n
   int res4 = 0 ;
   Xapian::MSet result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29925,6 +30760,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_0(PyObject *self, Py_ssize_t n
   int ecode6 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29997,6 +30833,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_1(PyObject *self, Py_ssize_t n
   int res5 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30061,6 +30898,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_2(PyObject *self, Py_ssize_t n
   int ecode4 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30117,6 +30955,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_3(PyObject *self, Py_ssize_t n
   int res3 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30171,6 +31010,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_4(PyObject *self, Py_ssize_t n
   int res4 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30239,6 +31079,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_5(PyObject *self, Py_ssize_t n
   int ecode7 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 7) || (nobjs > 7)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30319,6 +31160,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_6(PyObject *self, Py_ssize_t n
   int res6 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30391,6 +31233,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_7(PyObject *self, Py_ssize_t n
   int ecode5 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30541,6 +31384,7 @@ SWIGINTERN PyObject *_wrap_Enquire__get_matching_terms_begin__SWIG_0(PyObject *s
   int ecode2 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30581,6 +31425,7 @@ SWIGINTERN PyObject *_wrap_Enquire__get_matching_terms_end__SWIG_0(PyObject *sel
   int ecode2 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30614,6 +31459,7 @@ SWIGINTERN PyObject *_wrap_Enquire__get_matching_terms_begin__SWIG_1(PyObject *s
   int res2 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30691,6 +31537,7 @@ SWIGINTERN PyObject *_wrap_Enquire__get_matching_terms_end__SWIG_1(PyObject *sel
   int res2 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30759,6 +31606,7 @@ SWIGINTERN PyObject *_wrap_Enquire___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
@@ -30802,6 +31650,7 @@ SWIGINTERN PyObject *_wrap_new_ExpandDecider(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::ExpandDecider *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -30843,6 +31692,7 @@ SWIGINTERN PyObject *_wrap_ExpandDecider___call__(PyObject *self, PyObject *args
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ExpandDecider___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ExpandDecider, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30894,6 +31744,7 @@ SWIGINTERN PyObject *_wrap_delete_ExpandDecider(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ExpandDecider, SWIG_POINTER_DISOWN |  0 );
@@ -30922,6 +31773,7 @@ SWIGINTERN PyObject *_wrap_ExpandDecider_release(PyObject *self, PyObject *args)
   Swig::Director *director = 0;
   Xapian::ExpandDecider *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ExpandDecider, 0 |  0 );
@@ -30961,6 +31813,7 @@ SWIGINTERN PyObject *_wrap_disown_ExpandDecider(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ExpandDecider, 0 |  0 );
@@ -31006,6 +31859,7 @@ SWIGINTERN PyObject *_wrap_new_ExpandDeciderAnd(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   Xapian::ExpandDeciderAnd *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_ExpandDeciderAnd", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ExpandDecider,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -31049,6 +31903,7 @@ SWIGINTERN PyObject *_wrap_delete_ExpandDeciderAnd(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ExpandDeciderAnd, SWIG_POINTER_DISOWN |  0 );
@@ -31086,6 +31941,7 @@ SWIGINTERN PyObject *_wrap_new_ExpandDeciderFilterPrefix(PyObject *self, PyObjec
   PyObject *swig_obj[1] ;
   Xapian::ExpandDeciderFilterPrefix *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   {
@@ -31127,6 +31983,7 @@ SWIGINTERN PyObject *_wrap_delete_ExpandDeciderFilterPrefix(PyObject *self, PyOb
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ExpandDeciderFilterPrefix, SWIG_POINTER_DISOWN |  0 );
@@ -31163,6 +32020,7 @@ SWIGINTERN PyObject *_wrap_new_KeyMaker(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::KeyMaker *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -31205,6 +32063,7 @@ SWIGINTERN PyObject *_wrap_KeyMaker___call__(PyObject *self, PyObject *args) {
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "KeyMaker___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__KeyMaker, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -31251,6 +32110,7 @@ SWIGINTERN PyObject *_wrap_delete_KeyMaker(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__KeyMaker, SWIG_POINTER_DISOWN |  0 );
@@ -31279,6 +32139,7 @@ SWIGINTERN PyObject *_wrap_KeyMaker_release(PyObject *self, PyObject *args) {
   Swig::Director *director = 0;
   Xapian::KeyMaker *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__KeyMaker, 0 |  0 );
@@ -31318,6 +32179,7 @@ SWIGINTERN PyObject *_wrap_disown_KeyMaker(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__KeyMaker, 0 |  0 );
@@ -31356,6 +32218,7 @@ SWIGINTERN PyObject *_wrap_new_MultiValueKeyMaker(PyObject *self, PyObject *args
   PyObject *resultobj = 0;
   Xapian::MultiValueKeyMaker *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_MultiValueKeyMaker", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -31390,6 +32253,7 @@ SWIGINTERN PyObject *_wrap_MultiValueKeyMaker_add_value__SWIG_0(PyObject *self,
   int ecode3 = 0 ;
   int res4 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MultiValueKeyMaker, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -31450,6 +32314,7 @@ SWIGINTERN PyObject *_wrap_MultiValueKeyMaker_add_value__SWIG_1(PyObject *self,
   bool val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MultiValueKeyMaker, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -31494,6 +32359,7 @@ SWIGINTERN PyObject *_wrap_MultiValueKeyMaker_add_value__SWIG_2(PyObject *self,
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MultiValueKeyMaker, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -31565,6 +32431,7 @@ SWIGINTERN PyObject *_wrap_delete_MultiValueKeyMaker(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MultiValueKeyMaker, SWIG_POINTER_DISOWN |  0 );
@@ -31601,6 +32468,7 @@ SWIGINTERN PyObject *_wrap_new_Stopper(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::Stopper *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -31642,6 +32510,7 @@ SWIGINTERN PyObject *_wrap_Stopper___call__(PyObject *self, PyObject *args) {
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Stopper___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stopper, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -31693,6 +32562,7 @@ SWIGINTERN PyObject *_wrap_delete_Stopper(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stopper, SWIG_POINTER_DISOWN |  0 );
@@ -31722,6 +32592,7 @@ SWIGINTERN PyObject *_wrap_Stopper___str__(PyObject *self, PyObject *args) {
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stopper, 0 |  0 );
@@ -31763,6 +32634,7 @@ SWIGINTERN PyObject *_wrap_Stopper_release(PyObject *self, PyObject *args) {
   Swig::Director *director = 0;
   Xapian::Stopper *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stopper, 0 |  0 );
@@ -31802,6 +32674,7 @@ SWIGINTERN PyObject *_wrap_disown_Stopper(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stopper, 0 |  0 );
@@ -31840,6 +32713,7 @@ SWIGINTERN PyObject *_wrap_new_SimpleStopper__SWIG_0(PyObject *self, Py_ssize_t
   PyObject *resultobj = 0;
   Xapian::SimpleStopper *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -31869,6 +32743,7 @@ SWIGINTERN PyObject *_wrap_SimpleStopper_add(PyObject *self, PyObject *args) {
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SimpleStopper_add", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__SimpleStopper, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -31907,12 +32782,13 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_new_SimpleStopper__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_new_SimpleStopper__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   Xapian::SimpleStopper *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -31929,7 +32805,7 @@ SWIGINTERN PyObject *_wrap_new_SimpleStopper__SWIG_2(PyObject *self, Py_ssize_t
     try {
       {
         SWIG_PYTHON_THREAD_BEGIN_ALLOW;
-        result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_2((std::string const &)*arg1);
+        result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_1((std::string const &)*arg1);
         SWIG_PYTHON_THREAD_END_ALLOW;
       }
     } catch (...) {
@@ -31960,7 +32836,7 @@ SWIGINTERN PyObject *_wrap_new_SimpleStopper(PyObject *self, PyObject *args) {
     SWIG_fail;
   }
   if (argc == 1) {
-    PyObject *retobj = _wrap_new_SimpleStopper__SWIG_2(self, argc, argv);
+    PyObject *retobj = _wrap_new_SimpleStopper__SWIG_1(self, argc, argv);
     if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj;
     SWIG_fail;
   }
@@ -31981,6 +32857,7 @@ SWIGINTERN PyObject *_wrap_delete_SimpleStopper(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__SimpleStopper, SWIG_POINTER_DISOWN |  0 );
@@ -32016,6 +32893,7 @@ SWIGINTERN PyObject *_wrap_new_RangeProcessor__SWIG_0(PyObject *self, Py_ssize_t
   PyObject *arg1 = (PyObject *) 0 ;
   Xapian::RangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   arg1 = swig_obj[0];
   {
@@ -32056,6 +32934,7 @@ SWIGINTERN PyObject *_wrap_new_RangeProcessor__SWIG_1(PyObject *self, Py_ssize_t
   int ecode4 = 0 ;
   Xapian::RangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   arg1 = swig_obj[0];
   ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val2);
@@ -32116,6 +32995,7 @@ SWIGINTERN PyObject *_wrap_new_RangeProcessor__SWIG_2(PyObject *self, Py_ssize_t
   int res3 = SWIG_OLDOBJ ;
   Xapian::RangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   arg1 = swig_obj[0];
   ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val2);
@@ -32169,6 +33049,7 @@ SWIGINTERN PyObject *_wrap_new_RangeProcessor__SWIG_3(PyObject *self, Py_ssize_t
   int ecode2 = 0 ;
   Xapian::RangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   arg1 = swig_obj[0];
   ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val2);
@@ -32248,6 +33129,7 @@ SWIGINTERN PyObject *_wrap_delete_RangeProcessor(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -32279,6 +33161,7 @@ SWIGINTERN PyObject *_wrap_RangeProcessor_check_range(PyObject *self, PyObject *
   PyObject *swig_obj[3] ;
   Xapian::Query result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "RangeProcessor_check_range", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RangeProcessor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -32344,6 +33227,7 @@ SWIGINTERN PyObject *_wrap_RangeProcessor___call__(PyObject *self, PyObject *arg
   bool upcall = false;
   Xapian::Query result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "RangeProcessor___call__", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RangeProcessor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -32410,6 +33294,7 @@ SWIGINTERN PyObject *_wrap_RangeProcessor_release(PyObject *self, PyObject *args
   Swig::Director *director = 0;
   Xapian::RangeProcessor *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RangeProcessor, 0 |  0 );
@@ -32449,6 +33334,7 @@ SWIGINTERN PyObject *_wrap_disown_RangeProcessor(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RangeProcessor, 0 |  0 );
@@ -32496,6 +33382,7 @@ SWIGINTERN PyObject *_wrap_new_DateRangeProcessor__SWIG_0(PyObject *self, Py_ssi
   int ecode3 = 0 ;
   Xapian::DateRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -32541,6 +33428,7 @@ SWIGINTERN PyObject *_wrap_new_DateRangeProcessor__SWIG_1(PyObject *self, Py_ssi
   int ecode2 = 0 ;
   Xapian::DateRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -32578,6 +33466,7 @@ SWIGINTERN PyObject *_wrap_new_DateRangeProcessor__SWIG_2(PyObject *self, Py_ssi
   int ecode1 = 0 ;
   Xapian::DateRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -32618,6 +33507,7 @@ SWIGINTERN PyObject *_wrap_new_DateRangeProcessor__SWIG_3(PyObject *self, Py_ssi
   int ecode4 = 0 ;
   Xapian::DateRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -32678,6 +33568,7 @@ SWIGINTERN PyObject *_wrap_new_DateRangeProcessor__SWIG_4(PyObject *self, Py_ssi
   int ecode3 = 0 ;
   Xapian::DateRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -32730,6 +33621,7 @@ SWIGINTERN PyObject *_wrap_new_DateRangeProcessor__SWIG_5(PyObject *self, Py_ssi
   int res2 = SWIG_OLDOBJ ;
   Xapian::DateRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -32850,6 +33742,7 @@ SWIGINTERN PyObject *_wrap_delete_DateRangeProcessor(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DateRangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -32892,6 +33785,7 @@ SWIGINTERN PyObject *_wrap_new_NumberRangeProcessor__SWIG_0(PyObject *self, Py_s
   int ecode3 = 0 ;
   Xapian::NumberRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -32944,6 +33838,7 @@ SWIGINTERN PyObject *_wrap_new_NumberRangeProcessor__SWIG_1(PyObject *self, Py_s
   int res2 = SWIG_OLDOBJ ;
   Xapian::NumberRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -32989,6 +33884,7 @@ SWIGINTERN PyObject *_wrap_new_NumberRangeProcessor__SWIG_2(PyObject *self, Py_s
   int ecode1 = 0 ;
   Xapian::NumberRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33055,6 +33951,7 @@ SWIGINTERN PyObject *_wrap_delete_NumberRangeProcessor(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__NumberRangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -33091,6 +33988,7 @@ SWIGINTERN PyObject *_wrap_new_ValueRangeProcessor(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   Xapian::ValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -33127,6 +34025,7 @@ SWIGINTERN PyObject *_wrap_delete_ValueRangeProcessor(PyObject *self, PyObject *
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueRangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -33160,6 +34059,7 @@ SWIGINTERN PyObject *_wrap_ValueRangeProcessor___call__(PyObject *self, PyObject
   bool upcall = false;
   Xapian::valueno result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueRangeProcessor___call__", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueRangeProcessor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -33251,6 +34151,7 @@ SWIGINTERN PyObject *_wrap_ValueRangeProcessor_release(PyObject *self, PyObject
   Swig::Director *director = 0;
   Xapian::ValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueRangeProcessor, 0 |  0 );
@@ -33290,6 +34191,7 @@ SWIGINTERN PyObject *_wrap_disown_ValueRangeProcessor(PyObject *self, PyObject *
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueRangeProcessor, 0 |  0 );
@@ -33331,6 +34233,7 @@ SWIGINTERN PyObject *_wrap_new_StringValueRangeProcessor__SWIG_0(PyObject *self,
   int ecode1 = 0 ;
   Xapian::StringValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33368,6 +34271,7 @@ SWIGINTERN PyObject *_wrap_new_StringValueRangeProcessor__SWIG_1(PyObject *self,
   int ecode3 = 0 ;
   Xapian::StringValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33420,6 +34324,7 @@ SWIGINTERN PyObject *_wrap_new_StringValueRangeProcessor__SWIG_2(PyObject *self,
   int res2 = SWIG_OLDOBJ ;
   Xapian::StringValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33499,6 +34404,7 @@ SWIGINTERN PyObject *_wrap_delete_StringValueRangeProcessor(PyObject *self, PyOb
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__StringValueRangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -33549,6 +34455,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_0(PyObject *self, P
   int ecode3 = 0 ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33594,6 +34501,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_1(PyObject *self, P
   int ecode2 = 0 ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33631,6 +34539,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_2(PyObject *self, P
   int ecode1 = 0 ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33674,6 +34583,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_3(PyObject *self, P
   int ecode5 = 0 ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33742,6 +34652,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_4(PyObject *self, P
   int ecode4 = 0 ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33802,6 +34713,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_5(PyObject *self, P
   int ecode3 = 0 ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33854,6 +34766,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_6(PyObject *self, P
   int res2 = SWIG_OLDOBJ ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33976,6 +34889,7 @@ SWIGINTERN PyObject *_wrap_delete_DateValueRangeProcessor(PyObject *self, PyObje
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DateValueRangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -34020,6 +34934,7 @@ SWIGINTERN PyObject *_wrap_new_NumberValueRangeProcessor__SWIG_0(PyObject *self,
   int ecode1 = 0 ;
   Xapian::NumberValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -34057,6 +34972,7 @@ SWIGINTERN PyObject *_wrap_new_NumberValueRangeProcessor__SWIG_1(PyObject *self,
   int ecode3 = 0 ;
   Xapian::NumberValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -34109,6 +35025,7 @@ SWIGINTERN PyObject *_wrap_new_NumberValueRangeProcessor__SWIG_2(PyObject *self,
   int res2 = SWIG_OLDOBJ ;
   Xapian::NumberValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -34188,6 +35105,7 @@ SWIGINTERN PyObject *_wrap_delete_NumberValueRangeProcessor(PyObject *self, PyOb
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__NumberValueRangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -34231,6 +35149,7 @@ SWIGINTERN PyObject *_wrap_new_FieldProcessor(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::FieldProcessor *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -34267,6 +35186,7 @@ SWIGINTERN PyObject *_wrap_delete_FieldProcessor(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__FieldProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -34298,6 +35218,7 @@ SWIGINTERN PyObject *_wrap_FieldProcessor___call__(PyObject *self, PyObject *arg
   bool upcall = false;
   Xapian::Query result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "FieldProcessor___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__FieldProcessor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34351,6 +35272,7 @@ SWIGINTERN PyObject *_wrap_FieldProcessor_release(PyObject *self, PyObject *args
   Swig::Director *director = 0;
   Xapian::FieldProcessor *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__FieldProcessor, 0 |  0 );
@@ -34390,6 +35312,7 @@ SWIGINTERN PyObject *_wrap_disown_FieldProcessor(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__FieldProcessor, 0 |  0 );
@@ -34428,6 +35351,7 @@ SWIGINTERN PyObject *_wrap_new_QueryParser(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::QueryParser *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_QueryParser", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -34455,6 +35379,7 @@ SWIGINTERN PyObject *_wrap_delete_QueryParser(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, SWIG_POINTER_DISOWN |  0 );
@@ -34484,6 +35409,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_stemmer(PyObject *self, PyObject *arg
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser_set_stemmer", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34527,6 +35453,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_stemming_strategy(PyObject *self, PyO
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser_set_stemming_strategy", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34566,6 +35493,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_stopper__SWIG_0(PyObject *self, Py_ss
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34602,6 +35530,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_stopper__SWIG_1(PyObject *self, Py_ss
   void *argp1 = 0 ;
   int res1 = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34665,6 +35594,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_default_op(PyObject *self, PyObject *
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser_set_default_op", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34703,6 +35633,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_get_default_op(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::Query::op result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
@@ -34739,6 +35670,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_database(PyObject *self, PyObject *ar
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser_set_database", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34787,6 +35719,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_max_expansion__SWIG_0(PyObject *self,
   unsigned int val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34839,6 +35772,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_max_expansion__SWIG_1(PyObject *self,
   int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34883,6 +35817,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_max_expansion__SWIG_2(PyObject *self,
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34957,6 +35892,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_max_wildcard_expansion(PyObject *self
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser_set_max_wildcard_expansion", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35001,6 +35937,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_parse_query__SWIG_0(PyObject *self, Py_ss
   int res4 = SWIG_OLDOBJ ;
   Xapian::Query result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35069,6 +36006,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_parse_query__SWIG_1(PyObject *self, Py_ss
   int ecode3 = 0 ;
   Xapian::Query result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35121,6 +36059,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_parse_query__SWIG_2(PyObject *self, Py_ss
   int res2 = SWIG_OLDOBJ ;
   Xapian::Query result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35203,6 +36142,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_prefix__SWIG_0(PyObject *self, Py_ssi
   int res2 = SWIG_OLDOBJ ;
   int res3 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35265,6 +36205,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_prefix__SWIG_1(PyObject *self, Py_ssi
   void *argp3 = 0 ;
   int res3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35355,6 +36296,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_boolean_prefix__SWIG_0(PyObject *self
   int res3 = SWIG_OLDOBJ ;
   int res4 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35428,6 +36370,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_boolean_prefix__SWIG_1(PyObject *self
   int res2 = SWIG_OLDOBJ ;
   int res3 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35492,6 +36435,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_boolean_prefix__SWIG_2(PyObject *self
   bool val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35561,6 +36505,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_boolean_prefix__SWIG_3(PyObject *self
   int res3 = 0 ;
   int res4 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35627,6 +36572,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_boolean_prefix__SWIG_4(PyObject *self
   void *argp3 = 0 ;
   int res3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35684,6 +36630,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_boolean_prefix__SWIG_5(PyObject *self
   bool val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35839,6 +36786,7 @@ SWIGINTERN PyObject *_wrap_QueryParser__stoplist_begin(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
@@ -35873,6 +36821,7 @@ SWIGINTERN PyObject *_wrap_QueryParser__stoplist_end(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
@@ -35902,6 +36851,7 @@ SWIGINTERN PyObject *_wrap_QueryParser__unstem_begin(PyObject *self, PyObject *a
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser__unstem_begin", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35950,6 +36900,7 @@ SWIGINTERN PyObject *_wrap_QueryParser__unstem_end(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser__unstem_end", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35992,6 +36943,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_rangeprocessor__SWIG_0(PyObject *self
   int res2 = 0 ;
   int res3 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36043,6 +36995,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_rangeprocessor__SWIG_1(PyObject *self
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36111,6 +37064,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_valuerangeprocessor(PyObject *self, P
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser_add_valuerangeprocessor", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36149,6 +37103,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_get_corrected_query_string(PyObject *self
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
@@ -36183,6 +37138,7 @@ SWIGINTERN PyObject *_wrap_QueryParser___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
@@ -36228,6 +37184,7 @@ SWIGINTERN PyObject *_wrap_sortable_serialise(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
@@ -36261,6 +37218,7 @@ SWIGINTERN PyObject *_wrap_sortable_unserialise(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   {
@@ -36306,6 +37264,7 @@ SWIGINTERN PyObject *_wrap_new_ValueSetMatchDecider(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   Xapian::ValueSetMatchDecider *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_ValueSetMatchDecider", 2, 2, swig_obj)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -36345,6 +37304,7 @@ SWIGINTERN PyObject *_wrap_ValueSetMatchDecider_add_value(PyObject *self, PyObje
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueSetMatchDecider_add_value", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueSetMatchDecider, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36392,6 +37352,7 @@ SWIGINTERN PyObject *_wrap_ValueSetMatchDecider_remove_value(PyObject *self, PyO
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueSetMatchDecider_remove_value", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueSetMatchDecider, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36437,6 +37398,7 @@ SWIGINTERN PyObject *_wrap_delete_ValueSetMatchDecider(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueSetMatchDecider, SWIG_POINTER_DISOWN |  0 );
@@ -36474,6 +37436,7 @@ SWIGINTERN PyObject *_wrap_delete_Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Weight, SWIG_POINTER_DISOWN |  0 );
@@ -36501,6 +37464,7 @@ SWIGINTERN PyObject *_wrap_Weight_name(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Weight, 0 |  0 );
@@ -36544,6 +37508,7 @@ SWIGINTERN PyObject *_wrap_Weight_get_sumpart(PyObject *self, PyObject *args) {
   PyObject *swig_obj[4] ;
   double result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Weight_get_sumpart", 4, 4, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Weight, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36592,6 +37557,7 @@ SWIGINTERN PyObject *_wrap_Weight_get_maxpart(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Weight, 0 |  0 );
@@ -36632,6 +37598,7 @@ SWIGINTERN PyObject *_wrap_Weight_get_sumextra(PyObject *self, PyObject *args) {
   PyObject *swig_obj[3] ;
   double result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Weight_get_sumextra", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Weight, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36675,6 +37642,7 @@ SWIGINTERN PyObject *_wrap_Weight_get_maxextra(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Weight, 0 |  0 );
@@ -36712,6 +37680,7 @@ SWIGINTERN PyObject *_wrap_new_BoolWeight(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::BoolWeight *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_BoolWeight", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -36739,6 +37708,7 @@ SWIGINTERN PyObject *_wrap_delete_BoolWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__BoolWeight, SWIG_POINTER_DISOWN |  0 );
@@ -36775,6 +37745,7 @@ SWIGINTERN PyObject *_wrap_new_TfIdfWeight__SWIG_0(PyObject *self, Py_ssize_t no
   int res1 = SWIG_OLDOBJ ;
   Xapian::TfIdfWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -36812,6 +37783,7 @@ SWIGINTERN PyObject *_wrap_new_TfIdfWeight__SWIG_1(PyObject *self, Py_ssize_t no
   PyObject *resultobj = 0;
   Xapian::TfIdfWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -36867,6 +37839,7 @@ SWIGINTERN PyObject *_wrap_delete_TfIdfWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TfIdfWeight, SWIG_POINTER_DISOWN |  0 );
@@ -36916,6 +37889,7 @@ SWIGINTERN PyObject *_wrap_new_BM25Weight__SWIG_0(PyObject *self, Py_ssize_t nob
   int ecode5 = 0 ;
   Xapian::BM25Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -36965,6 +37939,7 @@ SWIGINTERN PyObject *_wrap_new_BM25Weight__SWIG_1(PyObject *self, Py_ssize_t nob
   PyObject *resultobj = 0;
   Xapian::BM25Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37020,6 +37995,7 @@ SWIGINTERN PyObject *_wrap_delete_BM25Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__BM25Weight, SWIG_POINTER_DISOWN |  0 );
@@ -37072,6 +38048,7 @@ SWIGINTERN PyObject *_wrap_new_BM25PlusWeight__SWIG_0(PyObject *self, Py_ssize_t
   int ecode6 = 0 ;
   Xapian::BM25PlusWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37126,6 +38103,7 @@ SWIGINTERN PyObject *_wrap_new_BM25PlusWeight__SWIG_1(PyObject *self, Py_ssize_t
   PyObject *resultobj = 0;
   Xapian::BM25PlusWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37181,6 +38159,7 @@ SWIGINTERN PyObject *_wrap_delete_BM25PlusWeight(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__BM25PlusWeight, SWIG_POINTER_DISOWN |  0 );
@@ -37218,6 +38197,7 @@ SWIGINTERN PyObject *_wrap_new_TradWeight__SWIG_0(PyObject *self, Py_ssize_t nob
   int ecode1 = 0 ;
   Xapian::TradWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37247,6 +38227,7 @@ SWIGINTERN PyObject *_wrap_new_TradWeight__SWIG_1(PyObject *self, Py_ssize_t nob
   PyObject *resultobj = 0;
   Xapian::TradWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37302,6 +38283,7 @@ SWIGINTERN PyObject *_wrap_delete_TradWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TradWeight, SWIG_POINTER_DISOWN |  0 );
@@ -37339,6 +38321,7 @@ SWIGINTERN PyObject *_wrap_new_InL2Weight__SWIG_0(PyObject *self, Py_ssize_t nob
   int ecode1 = 0 ;
   Xapian::InL2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37368,6 +38351,7 @@ SWIGINTERN PyObject *_wrap_new_InL2Weight__SWIG_1(PyObject *self, Py_ssize_t nob
   PyObject *resultobj = 0;
   Xapian::InL2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37423,6 +38407,7 @@ SWIGINTERN PyObject *_wrap_delete_InL2Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__InL2Weight, SWIG_POINTER_DISOWN |  0 );
@@ -37460,6 +38445,7 @@ SWIGINTERN PyObject *_wrap_new_IfB2Weight__SWIG_0(PyObject *self, Py_ssize_t nob
   int ecode1 = 0 ;
   Xapian::IfB2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37489,6 +38475,7 @@ SWIGINTERN PyObject *_wrap_new_IfB2Weight__SWIG_1(PyObject *self, Py_ssize_t nob
   PyObject *resultobj = 0;
   Xapian::IfB2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37544,6 +38531,7 @@ SWIGINTERN PyObject *_wrap_delete_IfB2Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__IfB2Weight, SWIG_POINTER_DISOWN |  0 );
@@ -37581,6 +38569,7 @@ SWIGINTERN PyObject *_wrap_new_IneB2Weight__SWIG_0(PyObject *self, Py_ssize_t no
   int ecode1 = 0 ;
   Xapian::IneB2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37610,6 +38599,7 @@ SWIGINTERN PyObject *_wrap_new_IneB2Weight__SWIG_1(PyObject *self, Py_ssize_t no
   PyObject *resultobj = 0;
   Xapian::IneB2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37665,6 +38655,7 @@ SWIGINTERN PyObject *_wrap_delete_IneB2Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__IneB2Weight, SWIG_POINTER_DISOWN |  0 );
@@ -37702,6 +38693,7 @@ SWIGINTERN PyObject *_wrap_new_BB2Weight__SWIG_0(PyObject *self, Py_ssize_t nobj
   int ecode1 = 0 ;
   Xapian::BB2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37731,6 +38723,7 @@ SWIGINTERN PyObject *_wrap_new_BB2Weight__SWIG_1(PyObject *self, Py_ssize_t nobj
   PyObject *resultobj = 0;
   Xapian::BB2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37786,6 +38779,7 @@ SWIGINTERN PyObject *_wrap_delete_BB2Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__BB2Weight, SWIG_POINTER_DISOWN |  0 );
@@ -37820,6 +38814,7 @@ SWIGINTERN PyObject *_wrap_new_DLHWeight(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::DLHWeight *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_DLHWeight", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -37847,6 +38842,7 @@ SWIGINTERN PyObject *_wrap_delete_DLHWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DLHWeight, SWIG_POINTER_DISOWN |  0 );
@@ -37884,6 +38880,7 @@ SWIGINTERN PyObject *_wrap_new_PL2Weight__SWIG_0(PyObject *self, Py_ssize_t nobj
   int ecode1 = 0 ;
   Xapian::PL2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37913,6 +38910,7 @@ SWIGINTERN PyObject *_wrap_new_PL2Weight__SWIG_1(PyObject *self, Py_ssize_t nobj
   PyObject *resultobj = 0;
   Xapian::PL2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37968,6 +38966,7 @@ SWIGINTERN PyObject *_wrap_delete_PL2Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PL2Weight, SWIG_POINTER_DISOWN |  0 );
@@ -38008,6 +39007,7 @@ SWIGINTERN PyObject *_wrap_new_PL2PlusWeight__SWIG_0(PyObject *self, Py_ssize_t
   int ecode2 = 0 ;
   Xapian::PL2PlusWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -38042,6 +39042,7 @@ SWIGINTERN PyObject *_wrap_new_PL2PlusWeight__SWIG_1(PyObject *self, Py_ssize_t
   PyObject *resultobj = 0;
   Xapian::PL2PlusWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -38097,6 +39098,7 @@ SWIGINTERN PyObject *_wrap_delete_PL2PlusWeight(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PL2PlusWeight, SWIG_POINTER_DISOWN |  0 );
@@ -38131,6 +39133,7 @@ SWIGINTERN PyObject *_wrap_new_DPHWeight(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::DPHWeight *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_DPHWeight", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -38158,6 +39161,7 @@ SWIGINTERN PyObject *_wrap_delete_DPHWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DPHWeight, SWIG_POINTER_DISOWN |  0 );
@@ -38204,6 +39208,7 @@ SWIGINTERN PyObject *_wrap_new_LMWeight__SWIG_0(PyObject *self, Py_ssize_t nobjs
   int ecode4 = 0 ;
   Xapian::LMWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -38257,6 +39262,7 @@ SWIGINTERN PyObject *_wrap_new_LMWeight__SWIG_1(PyObject *self, Py_ssize_t nobjs
   int ecode3 = 0 ;
   Xapian::LMWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -38302,6 +39308,7 @@ SWIGINTERN PyObject *_wrap_new_LMWeight__SWIG_2(PyObject *self, Py_ssize_t nobjs
   int ecode2 = 0 ;
   Xapian::LMWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -38339,6 +39346,7 @@ SWIGINTERN PyObject *_wrap_new_LMWeight__SWIG_3(PyObject *self, Py_ssize_t nobjs
   int ecode1 = 0 ;
   Xapian::LMWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -38368,6 +39376,7 @@ SWIGINTERN PyObject *_wrap_new_LMWeight__SWIG_4(PyObject *self, Py_ssize_t nobjs
   PyObject *resultobj = 0;
   Xapian::LMWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -38441,6 +39450,7 @@ SWIGINTERN PyObject *_wrap_delete_LMWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LMWeight, SWIG_POINTER_DISOWN |  0 );
@@ -38481,6 +39491,7 @@ SWIGINTERN PyObject *_wrap_CoordWeight_init(PyObject *self, PyObject *args) {
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "CoordWeight_init", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__CoordWeight, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -38515,6 +39526,7 @@ SWIGINTERN PyObject *_wrap_new_CoordWeight(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::CoordWeight *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_CoordWeight", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -38542,6 +39554,7 @@ SWIGINTERN PyObject *_wrap_delete_CoordWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__CoordWeight, SWIG_POINTER_DISOWN |  0 );
@@ -38578,6 +39591,7 @@ SWIGINTERN PyObject *_wrap_new_Compactor(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::Compactor *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -38613,6 +39627,7 @@ SWIGINTERN PyObject *_wrap_delete_Compactor(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, SWIG_POINTER_DISOWN |  0 );
@@ -38642,6 +39657,7 @@ SWIGINTERN PyObject *_wrap_Compactor_set_block_size(PyObject *self, PyObject *ar
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_set_block_size", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -38682,6 +39698,7 @@ SWIGINTERN PyObject *_wrap_Compactor_set_renumber(PyObject *self, PyObject *args
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_set_renumber", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -38722,6 +39739,7 @@ SWIGINTERN PyObject *_wrap_Compactor_set_multipass(PyObject *self, PyObject *arg
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_set_multipass", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -38762,6 +39780,7 @@ SWIGINTERN PyObject *_wrap_Compactor_set_compaction_level(PyObject *self, PyObje
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_set_compaction_level", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -38801,6 +39820,7 @@ SWIGINTERN PyObject *_wrap_Compactor_set_destdir(PyObject *self, PyObject *args)
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_set_destdir", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -38848,6 +39868,7 @@ SWIGINTERN PyObject *_wrap_Compactor_add_source(PyObject *self, PyObject *args)
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_add_source", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -38893,6 +39914,7 @@ SWIGINTERN PyObject *_wrap_Compactor_compact(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
@@ -38932,6 +39954,7 @@ SWIGINTERN PyObject *_wrap_Compactor_set_status(PyObject *self, PyObject *args)
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_set_status", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -38994,7 +40017,7 @@ SWIGINTERN PyObject *_wrap_Compactor_resolve_duplicate_metadata(PyObject *self,
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
-  std::string *arg4 ;
+  std::string *arg4 = (std::string *) (std::string *)0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
@@ -39007,6 +40030,7 @@ SWIGINTERN PyObject *_wrap_Compactor_resolve_duplicate_metadata(PyObject *self,
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_resolve_duplicate_metadata", 4, 4, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39068,6 +40092,7 @@ SWIGINTERN PyObject *_wrap_disown_Compactor(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
@@ -39108,6 +40133,7 @@ SWIGINTERN PyObject *_wrap_new_PostingSource(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::PostingSource *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -39137,6 +40163,7 @@ SWIGINTERN PyObject *_wrap_delete_PostingSource(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -39166,6 +40193,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_get_termfreq_min(PyObject *self, PyObje
   bool upcall = false;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39208,6 +40236,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_get_termfreq_est(PyObject *self, PyObje
   bool upcall = false;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39250,6 +40279,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_get_termfreq_max(PyObject *self, PyObje
   bool upcall = false;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39292,6 +40322,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_set_maxweight(PyObject *self, PyObject
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "PostingSource_set_maxweight", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39330,6 +40361,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_get_maxweight(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39359,6 +40391,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_get_weight(PyObject *self, PyObject *ar
   bool upcall = false;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39401,6 +40434,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_get_docid(PyObject *self, PyObject *arg
   bool upcall = false;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39445,6 +40479,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_next(PyObject *self, PyObject *args) {
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "PostingSource_next", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39496,6 +40531,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_skip_to(PyObject *self, PyObject *args)
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "PostingSource_skip_to", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39553,6 +40589,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_check(PyObject *self, PyObject *args) {
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "PostingSource_check", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39604,6 +40641,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_at_end(PyObject *self, PyObject *args)
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39646,6 +40684,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_name(PyObject *self, PyObject *args) {
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39690,6 +40729,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_init(PyObject *self, PyObject *args) {
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "PostingSource_init", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39739,6 +40779,7 @@ SWIGINTERN PyObject *_wrap_PostingSource___str__(PyObject *self, PyObject *args)
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39780,6 +40821,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_release(PyObject *self, PyObject *args)
   Swig::Director *director = 0;
   Xapian::PostingSource *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39819,6 +40861,7 @@ SWIGINTERN PyObject *_wrap_disown_PostingSource(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39862,6 +40905,7 @@ SWIGINTERN PyObject *_wrap_new_ValuePostingSource(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::ValuePostingSource *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_ValuePostingSource", 2, 2, swig_obj)) SWIG_fail;
   arg1 = swig_obj[0];
   ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val2);
@@ -39904,6 +40948,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_termfreq_min(PyObject *self, P
   bool upcall = false;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -39946,6 +40991,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_termfreq_est(PyObject *self, P
   bool upcall = false;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -39988,6 +41034,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_termfreq_max(PyObject *self, P
   bool upcall = false;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40032,6 +41079,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_next(PyObject *self, PyObject *arg
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource_next", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40083,6 +41131,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_skip_to(PyObject *self, PyObject *
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource_skip_to", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40140,6 +41189,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_check(PyObject *self, PyObject *ar
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource_check", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40191,6 +41241,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_at_end(PyObject *self, PyObject *a
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40233,6 +41284,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_docid(PyObject *self, PyObject
   bool upcall = false;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40277,6 +41329,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_init(PyObject *self, PyObject *arg
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource_init", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40324,6 +41377,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_database(PyObject *self, PyObj
   PyObject *swig_obj[1] ;
   Xapian::Database result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40358,6 +41412,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_slot(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   Xapian::valueno result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40392,6 +41447,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_value(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40425,6 +41481,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_done(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40459,6 +41516,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_started(PyObject *self, PyObje
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40495,6 +41553,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_set_termfreq_min(PyObject *self, P
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource_set_termfreq_min", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40535,6 +41594,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_set_termfreq_est(PyObject *self, P
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource_set_termfreq_est", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40575,6 +41635,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_set_termfreq_max(PyObject *self, P
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource_set_termfreq_max", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40612,6 +41673,7 @@ SWIGINTERN PyObject *_wrap_delete_ValuePostingSource(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -40638,6 +41700,7 @@ SWIGINTERN PyObject *_wrap_disown_ValuePostingSource(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40681,6 +41744,7 @@ SWIGINTERN PyObject *_wrap_new_ValueWeightPostingSource(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   Xapian::ValueWeightPostingSource *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_ValueWeightPostingSource", 2, 2, swig_obj)) SWIG_fail;
   arg1 = swig_obj[0];
   ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val2);
@@ -40723,6 +41787,7 @@ SWIGINTERN PyObject *_wrap_ValueWeightPostingSource_get_weight(PyObject *self, P
   bool upcall = false;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueWeightPostingSource, 0 |  0 );
@@ -40765,6 +41830,7 @@ SWIGINTERN PyObject *_wrap_ValueWeightPostingSource_name(PyObject *self, PyObjec
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueWeightPostingSource, 0 |  0 );
@@ -40809,6 +41875,7 @@ SWIGINTERN PyObject *_wrap_ValueWeightPostingSource_init(PyObject *self, PyObjec
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueWeightPostingSource_init", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueWeightPostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40858,6 +41925,7 @@ SWIGINTERN PyObject *_wrap_ValueWeightPostingSource___str__(PyObject *self, PyOb
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueWeightPostingSource, 0 |  0 );
@@ -40897,6 +41965,7 @@ SWIGINTERN PyObject *_wrap_delete_ValueWeightPostingSource(PyObject *self, PyObj
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueWeightPostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -40923,6 +41992,7 @@ SWIGINTERN PyObject *_wrap_disown_ValueWeightPostingSource(PyObject *self, PyObj
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueWeightPostingSource, 0 |  0 );
@@ -40970,6 +42040,7 @@ SWIGINTERN PyObject *_wrap_new_DecreasingValueWeightPostingSource__SWIG_0(PyObje
   int ecode3 = 0 ;
   Xapian::DecreasingValueWeightPostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -41015,6 +42086,7 @@ SWIGINTERN PyObject *_wrap_new_DecreasingValueWeightPostingSource__SWIG_1(PyObje
   int ecode2 = 0 ;
   Xapian::DecreasingValueWeightPostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -41052,6 +42124,7 @@ SWIGINTERN PyObject *_wrap_new_DecreasingValueWeightPostingSource__SWIG_2(PyObje
   int ecode1 = 0 ;
   Xapian::DecreasingValueWeightPostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -41118,6 +42191,7 @@ SWIGINTERN PyObject *_wrap_delete_DecreasingValueWeightPostingSource(PyObject *s
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DecreasingValueWeightPostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -41156,6 +42230,7 @@ SWIGINTERN PyObject *_wrap_new_ValueMapPostingSource(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   Xapian::ValueMapPostingSource *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
@@ -41194,6 +42269,7 @@ SWIGINTERN PyObject *_wrap_ValueMapPostingSource_add_mapping(PyObject *self, PyO
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueMapPostingSource_add_mapping", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueMapPostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -41244,6 +42320,7 @@ SWIGINTERN PyObject *_wrap_ValueMapPostingSource_clear_mappings(PyObject *self,
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueMapPostingSource, 0 |  0 );
@@ -41280,6 +42357,7 @@ SWIGINTERN PyObject *_wrap_ValueMapPostingSource_set_default_weight(PyObject *se
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueMapPostingSource_set_default_weight", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueMapPostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -41317,6 +42395,7 @@ SWIGINTERN PyObject *_wrap_delete_ValueMapPostingSource(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueMapPostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -41355,6 +42434,7 @@ SWIGINTERN PyObject *_wrap_new_FixedWeightPostingSource(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   Xapian::FixedWeightPostingSource *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
@@ -41388,6 +42468,7 @@ SWIGINTERN PyObject *_wrap_delete_FixedWeightPostingSource(PyObject *self, PyObj
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__FixedWeightPostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -41424,6 +42505,7 @@ SWIGINTERN PyObject *_wrap_new_MatchSpy(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::MatchSpy *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -41453,6 +42535,7 @@ SWIGINTERN PyObject *_wrap_delete_MatchSpy(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, SWIG_POINTER_DISOWN |  0 );
@@ -41487,6 +42570,7 @@ SWIGINTERN PyObject *_wrap_MatchSpy___call__(PyObject *self, PyObject *args) {
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MatchSpy___call__", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -41541,6 +42625,7 @@ SWIGINTERN PyObject *_wrap_MatchSpy_name(PyObject *self, PyObject *args) {
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, 0 |  0 );
@@ -41584,6 +42669,7 @@ SWIGINTERN PyObject *_wrap_MatchSpy_merge_results(PyObject *self, PyObject *args
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MatchSpy_merge_results", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -41638,6 +42724,7 @@ SWIGINTERN PyObject *_wrap_MatchSpy___str__(PyObject *self, PyObject *args) {
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, 0 |  0 );
@@ -41679,6 +42766,7 @@ SWIGINTERN PyObject *_wrap_MatchSpy_release(PyObject *self, PyObject *args) {
   Swig::Director *director = 0;
   Xapian::MatchSpy *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, 0 |  0 );
@@ -41718,6 +42806,7 @@ SWIGINTERN PyObject *_wrap_disown_MatchSpy(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, 0 |  0 );
@@ -41756,6 +42845,7 @@ SWIGINTERN PyObject *_wrap_new_ValueCountMatchSpy__SWIG_0(PyObject *self, Py_ssi
   PyObject *resultobj = 0;
   Xapian::ValueCountMatchSpy *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -41783,6 +42873,7 @@ SWIGINTERN PyObject *_wrap_new_ValueCountMatchSpy__SWIG_1(PyObject *self, Py_ssi
   int ecode1 = 0 ;
   Xapian::ValueCountMatchSpy *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -41844,6 +42935,7 @@ SWIGINTERN PyObject *_wrap_ValueCountMatchSpy_get_total(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   size_t result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueCountMatchSpy, 0 |  0 );
@@ -41871,6 +42963,7 @@ SWIGINTERN PyObject *_wrap_ValueCountMatchSpy_values_begin(PyObject *self, PyObj
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueCountMatchSpy, 0 |  0 );
@@ -41905,6 +42998,7 @@ SWIGINTERN PyObject *_wrap_ValueCountMatchSpy_values_end(PyObject *self, PyObjec
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueCountMatchSpy, 0 |  0 );
@@ -41935,6 +43029,7 @@ SWIGINTERN PyObject *_wrap_ValueCountMatchSpy_top_values_begin(PyObject *self, P
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueCountMatchSpy_top_values_begin", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueCountMatchSpy, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -41976,6 +43071,7 @@ SWIGINTERN PyObject *_wrap_ValueCountMatchSpy_top_values_end(PyObject *self, PyO
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueCountMatchSpy_top_values_end", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueCountMatchSpy, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42006,6 +43102,7 @@ SWIGINTERN PyObject *_wrap_delete_ValueCountMatchSpy(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueCountMatchSpy, SWIG_POINTER_DISOWN |  0 );
@@ -42044,6 +43141,7 @@ SWIGINTERN PyObject *_wrap_miles_to_metres(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
@@ -42078,6 +43176,7 @@ SWIGINTERN PyObject *_wrap_metres_to_miles(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
@@ -42114,6 +43213,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord_latitude_set(PyObject *self, PyObject *a
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoord_latitude_set", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42145,6 +43245,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord_latitude_get(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
@@ -42174,6 +43275,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord_longitude_set(PyObject *self, PyObject *
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoord_longitude_set", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42205,6 +43307,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord_longitude_get(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
@@ -42228,6 +43331,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongCoord__SWIG_0(PyObject *self, Py_ssize_t n
   PyObject *resultobj = 0;
   Xapian::LatLongCoord *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -42258,6 +43362,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongCoord__SWIG_1(PyObject *self, Py_ssize_t n
   int ecode2 = 0 ;
   Xapian::LatLongCoord *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -42325,6 +43430,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord_unserialise(PyObject *self, PyObject *ar
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoord_unserialise", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42371,6 +43477,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord_serialise(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
@@ -42405,6 +43512,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord___str__(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
@@ -42438,6 +43546,7 @@ SWIGINTERN PyObject *_wrap_delete_LatLongCoord(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, SWIG_POINTER_DISOWN |  0 );
@@ -42479,6 +43588,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongCoordsIterator(PyObject *self, PyObject *a
   PyObject *resultobj = 0;
   Xapian::LatLongCoordsIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_LatLongCoordsIterator", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -42510,6 +43620,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoordsIterator___eq__(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoordsIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoordsIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42539,6 +43650,9 @@ SWIGINTERN PyObject *_wrap_LatLongCoordsIterator___eq__(PyObject *self, PyObject
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -42556,6 +43670,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoordsIterator_equals(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoordsIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoordsIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42597,6 +43712,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoordsIterator_get_coord(PyObject *self, PyObj
   PyObject *swig_obj[1] ;
   Xapian::LatLongCoord result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoordsIterator, 0 |  0 );
@@ -42630,6 +43746,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoordsIterator_next(PyObject *self, PyObject *
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoordsIterator, 0 |  0 );
@@ -42663,6 +43780,7 @@ SWIGINTERN PyObject *_wrap_delete_LatLongCoordsIterator(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoordsIterator, SWIG_POINTER_DISOWN |  0 );
@@ -42701,6 +43819,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_begin(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::LatLongCoordsIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
@@ -42735,6 +43854,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_end(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::LatLongCoordsIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
@@ -42769,6 +43889,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_size(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   size_t result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
@@ -42803,6 +43924,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_empty(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
@@ -42839,6 +43961,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_append(PyObject *self, PyObject *args)
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoords_append", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42876,6 +43999,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongCoords__SWIG_0(PyObject *self, Py_ssize_t
   PyObject *resultobj = 0;
   Xapian::LatLongCoords *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -42903,6 +44027,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongCoords__SWIG_1(PyObject *self, Py_ssize_t
   int res1 = 0 ;
   Xapian::LatLongCoords *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__LatLongCoord,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -42968,6 +44093,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_unserialise(PyObject *self, PyObject *a
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoords_unserialise", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -43014,6 +44140,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_serialise(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
@@ -43048,6 +44175,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords___str__(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
@@ -43081,6 +44209,7 @@ SWIGINTERN PyObject *_wrap_delete_LatLongCoords(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, SWIG_POINTER_DISOWN |  0 );
@@ -43121,6 +44250,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_6(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__LatLongCoordsIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -43153,6 +44283,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_6(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -43282,6 +44415,7 @@ SWIGINTERN PyObject *_wrap_delete_LatLongMetric(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, SWIG_POINTER_DISOWN |  0 );
@@ -43317,6 +44451,7 @@ SWIGINTERN PyObject *_wrap_LatLongMetric_pointwise_distance(PyObject *self, PyOb
   bool upcall = false;
   double result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongMetric_pointwise_distance", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -43377,6 +44512,7 @@ SWIGINTERN PyObject *_wrap_LatLongMetric___call____SWIG_0(PyObject *self, Py_ssi
   int res3 = 0 ;
   double result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -43430,6 +44566,7 @@ SWIGINTERN PyObject *_wrap_LatLongMetric___call____SWIG_1(PyObject *self, Py_ssi
   int res3 = SWIG_OLDOBJ ;
   double result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -43493,6 +44630,7 @@ SWIGINTERN PyObject *_wrap_LatLongMetric___call____SWIG_2(PyObject *self, Py_ssi
   int ecode4 = 0 ;
   double result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -43588,6 +44726,7 @@ SWIGINTERN PyObject *_wrap_LatLongMetric_name(PyObject *self, PyObject *args) {
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, 0 |  0 );
@@ -43626,6 +44765,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongMetric(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::LatLongMetric *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -43662,6 +44802,7 @@ SWIGINTERN PyObject *_wrap_disown_LatLongMetric(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, 0 |  0 );
@@ -43700,6 +44841,7 @@ SWIGINTERN PyObject *_wrap_new_GreatCircleMetric__SWIG_0(PyObject *self, Py_ssiz
   PyObject *resultobj = 0;
   Xapian::GreatCircleMetric *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -43727,6 +44869,7 @@ SWIGINTERN PyObject *_wrap_new_GreatCircleMetric__SWIG_1(PyObject *self, Py_ssiz
   int ecode1 = 0 ;
   Xapian::GreatCircleMetric *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -43787,6 +44930,7 @@ SWIGINTERN PyObject *_wrap_delete_GreatCircleMetric(PyObject *self, PyObject *ar
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__GreatCircleMetric, SWIG_POINTER_DISOWN |  0 );
@@ -43839,6 +44983,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_0(PyObject *se
   int ecode6 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -43914,6 +45059,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_1(PyObject *se
   int ecode5 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -43981,6 +45127,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_2(PyObject *se
   int ecode4 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44040,6 +45187,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_3(PyObject *se
   int res3 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44100,6 +45248,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_4(PyObject *se
   int ecode5 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44164,6 +45313,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_5(PyObject *se
   int ecode4 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44220,6 +45370,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_6(PyObject *se
   int ecode3 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44268,6 +45419,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_7(PyObject *se
   int res2 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44394,6 +45546,7 @@ SWIGINTERN PyObject *_wrap_delete_LatLongDistancePostingSource(PyObject *self, P
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongDistancePostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -44440,6 +45593,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistanceKeyMaker__SWIG_0(PyObject *self, P
   int ecode4 = 0 ;
   Xapian::LatLongDistanceKeyMaker *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44499,6 +45653,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistanceKeyMaker__SWIG_1(PyObject *self, P
   int res3 = 0 ;
   Xapian::LatLongDistanceKeyMaker *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44550,6 +45705,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistanceKeyMaker__SWIG_2(PyObject *self, P
   int res2 = 0 ;
   Xapian::LatLongDistanceKeyMaker *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44599,6 +45755,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistanceKeyMaker__SWIG_3(PyObject *self, P
   int ecode4 = 0 ;
   Xapian::LatLongDistanceKeyMaker *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44658,6 +45815,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistanceKeyMaker__SWIG_4(PyObject *self, P
   int res3 = 0 ;
   Xapian::LatLongDistanceKeyMaker *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44709,6 +45867,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistanceKeyMaker__SWIG_5(PyObject *self, P
   int res2 = 0 ;
   Xapian::LatLongDistanceKeyMaker *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44823,6 +45982,7 @@ SWIGINTERN PyObject *_wrap_delete_LatLongDistanceKeyMaker(PyObject *self, PyObje
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongDistanceKeyMaker, SWIG_POINTER_DISOWN |  0 );
@@ -44863,6 +46023,7 @@ SWIGINTERN PyObject *_wrap_Database_add_database(PyObject *self, PyObject *args)
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_add_database", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -44904,6 +46065,7 @@ SWIGINTERN PyObject *_wrap_Database_size(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   size_t result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -44934,6 +46096,7 @@ SWIGINTERN PyObject *_wrap_new_Database__SWIG_0(PyObject *self, Py_ssize_t nobjs
   PyObject *resultobj = 0;
   Xapian::Database *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -44963,6 +46126,7 @@ SWIGINTERN PyObject *_wrap_new_Database__SWIG_1(PyObject *self, Py_ssize_t nobjs
   int ecode2 = 0 ;
   Xapian::Database *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -45007,6 +46171,7 @@ SWIGINTERN PyObject *_wrap_new_Database__SWIG_2(PyObject *self, Py_ssize_t nobjs
   int res1 = SWIG_OLDOBJ ;
   Xapian::Database *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -45050,6 +46215,7 @@ SWIGINTERN PyObject *_wrap_new_Database__SWIG_3(PyObject *self, Py_ssize_t nobjs
   int ecode2 = 0 ;
   Xapian::Database *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -45087,6 +46253,7 @@ SWIGINTERN PyObject *_wrap_new_Database__SWIG_4(PyObject *self, Py_ssize_t nobjs
   int ecode1 = 0 ;
   Xapian::Database *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -45183,6 +46350,7 @@ SWIGINTERN PyObject *_wrap_delete_Database(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, SWIG_POINTER_DISOWN |  0 );
@@ -45210,6 +46378,7 @@ SWIGINTERN PyObject *_wrap_Database_reopen(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45243,6 +46412,7 @@ SWIGINTERN PyObject *_wrap_Database_close(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45277,6 +46447,7 @@ SWIGINTERN PyObject *_wrap_Database___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45313,6 +46484,7 @@ SWIGINTERN PyObject *_wrap_Database__postlist_begin(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   Xapian::PostingIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__postlist_begin", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45361,6 +46533,7 @@ SWIGINTERN PyObject *_wrap_Database__postlist_end(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::PostingIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__postlist_end", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45403,6 +46576,7 @@ SWIGINTERN PyObject *_wrap_Database__termlist_begin(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__termlist_begin", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45444,6 +46618,7 @@ SWIGINTERN PyObject *_wrap_Database__termlist_end(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__termlist_end", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45475,6 +46650,7 @@ SWIGINTERN PyObject *_wrap_Database_has_positions(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45514,6 +46690,7 @@ SWIGINTERN PyObject *_wrap_Database__positionlist_begin(PyObject *self, PyObject
   PyObject *swig_obj[3] ;
   Xapian::PositionIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__positionlist_begin", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45570,6 +46747,7 @@ SWIGINTERN PyObject *_wrap_Database__positionlist_end(PyObject *self, PyObject *
   PyObject *swig_obj[3] ;
   Xapian::PositionIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__positionlist_end", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45615,6 +46793,7 @@ SWIGINTERN PyObject *_wrap_Database__allterms_begin__SWIG_0(PyObject *self, Py_s
   int res2 = SWIG_OLDOBJ ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45660,6 +46839,7 @@ SWIGINTERN PyObject *_wrap_Database__allterms_begin__SWIG_1(PyObject *self, Py_s
   int res1 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45722,6 +46902,7 @@ SWIGINTERN PyObject *_wrap_Database__allterms_end__SWIG_0(PyObject *self, Py_ssi
   int res2 = SWIG_OLDOBJ ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45760,6 +46941,7 @@ SWIGINTERN PyObject *_wrap_Database__allterms_end__SWIG_1(PyObject *self, Py_ssi
   int res1 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45814,6 +46996,7 @@ SWIGINTERN PyObject *_wrap_Database_get_doccount(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45848,6 +47031,7 @@ SWIGINTERN PyObject *_wrap_Database_get_lastdocid(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45882,6 +47066,7 @@ SWIGINTERN PyObject *_wrap_Database_get_avlength(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::doclength result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45916,6 +47101,7 @@ SWIGINTERN PyObject *_wrap_Database_get_average_length(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45950,6 +47136,7 @@ SWIGINTERN PyObject *_wrap_Database_get_total_length(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   Xapian::totallength result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45986,6 +47173,7 @@ SWIGINTERN PyObject *_wrap_Database_get_termfreq(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_termfreq", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46034,6 +47222,7 @@ SWIGINTERN PyObject *_wrap_Database_term_exists(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_term_exists", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46082,6 +47271,7 @@ SWIGINTERN PyObject *_wrap_Database_get_collection_freq(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_collection_freq", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46131,6 +47321,7 @@ SWIGINTERN PyObject *_wrap_Database_get_value_freq(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_value_freq", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46172,6 +47363,7 @@ SWIGINTERN PyObject *_wrap_Database_get_value_lower_bound(PyObject *self, PyObje
   PyObject *swig_obj[2] ;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_value_lower_bound", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46213,6 +47405,7 @@ SWIGINTERN PyObject *_wrap_Database_get_value_upper_bound(PyObject *self, PyObje
   PyObject *swig_obj[2] ;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_value_upper_bound", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46251,6 +47444,7 @@ SWIGINTERN PyObject *_wrap_Database_get_doclength_lower_bound(PyObject *self, Py
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -46285,6 +47479,7 @@ SWIGINTERN PyObject *_wrap_Database_get_doclength_upper_bound(PyObject *self, Py
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -46321,6 +47516,7 @@ SWIGINTERN PyObject *_wrap_Database_get_wdf_upper_bound(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_wdf_upper_bound", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46370,6 +47566,7 @@ SWIGINTERN PyObject *_wrap_Database_valuestream_begin(PyObject *self, PyObject *
   PyObject *swig_obj[2] ;
   Xapian::ValueIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_valuestream_begin", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46411,6 +47608,7 @@ SWIGINTERN PyObject *_wrap_Database_valuestream_end(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   Xapian::ValueIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_valuestream_end", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46445,6 +47643,7 @@ SWIGINTERN PyObject *_wrap_Database_get_doclength(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_doclength", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46486,6 +47685,7 @@ SWIGINTERN PyObject *_wrap_Database_get_unique_terms(PyObject *self, PyObject *a
   PyObject *swig_obj[2] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_unique_terms", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46523,6 +47723,7 @@ SWIGINTERN PyObject *_wrap_Database_keep_alive(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -46559,6 +47760,7 @@ SWIGINTERN PyObject *_wrap_Database_get_document__SWIG_0(PyObject *self, Py_ssiz
   int ecode2 = 0 ;
   Xapian::Document result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46602,6 +47804,7 @@ SWIGINTERN PyObject *_wrap_Database_get_document__SWIG_1(PyObject *self, Py_ssiz
   int ecode3 = 0 ;
   Xapian::Document result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46677,6 +47880,7 @@ SWIGINTERN PyObject *_wrap_Database_get_spelling_suggestion__SWIG_0(PyObject *se
   int ecode3 = 0 ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46729,6 +47933,7 @@ SWIGINTERN PyObject *_wrap_Database_get_spelling_suggestion__SWIG_1(PyObject *se
   int res2 = SWIG_OLDOBJ ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46803,6 +48008,7 @@ SWIGINTERN PyObject *_wrap_Database__spellings_begin(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -46837,6 +48043,7 @@ SWIGINTERN PyObject *_wrap_Database__spellings_end(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -46866,6 +48073,7 @@ SWIGINTERN PyObject *_wrap_Database__synonyms_begin(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__synonyms_begin", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46914,6 +48122,7 @@ SWIGINTERN PyObject *_wrap_Database__synonyms_end(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__synonyms_end", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46954,6 +48163,7 @@ SWIGINTERN PyObject *_wrap_Database__synonym_keys_begin__SWIG_0(PyObject *self,
   int res2 = SWIG_OLDOBJ ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46999,6 +48209,7 @@ SWIGINTERN PyObject *_wrap_Database__synonym_keys_begin__SWIG_1(PyObject *self,
   int res1 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47061,6 +48272,7 @@ SWIGINTERN PyObject *_wrap_Database__synonym_keys_end__SWIG_0(PyObject *self, Py
   int res2 = SWIG_OLDOBJ ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47099,6 +48311,7 @@ SWIGINTERN PyObject *_wrap_Database__synonym_keys_end__SWIG_1(PyObject *self, Py
   int res1 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47155,6 +48368,7 @@ SWIGINTERN PyObject *_wrap_Database_get_metadata(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_metadata", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47202,6 +48416,7 @@ SWIGINTERN PyObject *_wrap_Database__metadata_keys_begin__SWIG_0(PyObject *self,
   int res2 = SWIG_OLDOBJ ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47247,6 +48462,7 @@ SWIGINTERN PyObject *_wrap_Database__metadata_keys_begin__SWIG_1(PyObject *self,
   int res1 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47309,6 +48525,7 @@ SWIGINTERN PyObject *_wrap_Database__metadata_keys_end__SWIG_0(PyObject *self, P
   int res2 = SWIG_OLDOBJ ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47347,6 +48564,7 @@ SWIGINTERN PyObject *_wrap_Database__metadata_keys_end__SWIG_1(PyObject *self, P
   int res1 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47401,6 +48619,7 @@ SWIGINTERN PyObject *_wrap_Database_get_uuid(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -47435,6 +48654,7 @@ SWIGINTERN PyObject *_wrap_Database_locked(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -47469,6 +48689,7 @@ SWIGINTERN PyObject *_wrap_Database_get_revision(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::rev result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -47504,6 +48725,7 @@ SWIGINTERN PyObject *_wrap_Database_check__SWIG_0(PyObject *self, Py_ssize_t nob
   int ecode2 = 0 ;
   size_t result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -47548,6 +48770,7 @@ SWIGINTERN PyObject *_wrap_Database_check__SWIG_1(PyObject *self, Py_ssize_t nob
   int res1 = SWIG_OLDOBJ ;
   size_t result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -47591,6 +48814,7 @@ SWIGINTERN PyObject *_wrap_Database_check__SWIG_2(PyObject *self, Py_ssize_t nob
   int ecode2 = 0 ;
   size_t result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -47628,6 +48852,7 @@ SWIGINTERN PyObject *_wrap_Database_check__SWIG_3(PyObject *self, Py_ssize_t nob
   int ecode1 = 0 ;
   size_t result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -47725,6 +48950,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_0(PyObject *self, Py_ssize_t n
   int val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47784,6 +49010,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_1(PyObject *self, Py_ssize_t n
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47835,6 +49062,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_2(PyObject *self, Py_ssize_t n
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47888,6 +49116,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_3(PyObject *self, Py_ssize_t n
   int val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47940,6 +49169,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_4(PyObject *self, Py_ssize_t n
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47984,6 +49214,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_5(PyObject *self, Py_ssize_t n
   int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48031,6 +49262,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_6(PyObject *self, Py_ssize_t n
   void *argp5 = 0 ;
   int res5 = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48105,6 +49337,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_7(PyObject *self, Py_ssize_t n
   void *argp5 = 0 ;
   int res5 = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48273,6 +49506,7 @@ SWIGINTERN PyObject *_wrap_delete_WritableDatabase(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, SWIG_POINTER_DISOWN |  0 );
@@ -48296,6 +49530,7 @@ SWIGINTERN PyObject *_wrap_new_WritableDatabase__SWIG_0(PyObject *self, Py_ssize
   PyObject *resultobj = 0;
   Xapian::WritableDatabase *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -48328,6 +49563,7 @@ SWIGINTERN PyObject *_wrap_new_WritableDatabase__SWIG_1(PyObject *self, Py_ssize
   int ecode3 = 0 ;
   Xapian::WritableDatabase *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -48380,6 +49616,7 @@ SWIGINTERN PyObject *_wrap_new_WritableDatabase__SWIG_2(PyObject *self, Py_ssize
   int ecode2 = 0 ;
   Xapian::WritableDatabase *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -48424,6 +49661,7 @@ SWIGINTERN PyObject *_wrap_new_WritableDatabase__SWIG_3(PyObject *self, Py_ssize
   int res1 = SWIG_OLDOBJ ;
   Xapian::WritableDatabase *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -48507,6 +49745,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_add_database(PyObject *self, PyObjec
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "WritableDatabase_add_database", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48547,6 +49786,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_commit(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
@@ -48580,6 +49820,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_flush(PyObject *self, PyObject *args
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
@@ -48615,6 +49856,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_begin_transaction__SWIG_0(PyObject *
   bool val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48651,6 +49893,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_begin_transaction__SWIG_1(PyObject *
   void *argp1 = 0 ;
   int res1 = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48711,6 +49954,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_commit_transaction(PyObject *self, P
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
@@ -48744,6 +49988,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_cancel_transaction(PyObject *self, P
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
@@ -48781,6 +50026,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_add_document(PyObject *self, PyObjec
   PyObject *swig_obj[2] ;
   Xapian::docid result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "WritableDatabase_add_document", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48823,6 +50069,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_delete_document__SWIG_0(PyObject *se
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48861,6 +50108,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_delete_document__SWIG_1(PyObject *se
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48947,6 +50195,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_replace_document__SWIG_0(PyObject *s
   void *argp3 = 0 ;
   int res3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48997,6 +50246,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_replace_document__SWIG_1(PyObject *s
   int res3 = 0 ;
   Xapian::docid result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49092,6 +50342,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_add_spelling__SWIG_0(PyObject *self,
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49143,6 +50394,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_add_spelling__SWIG_1(PyObject *self,
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49220,6 +50472,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_remove_spelling__SWIG_0(PyObject *se
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49271,6 +50524,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_remove_spelling__SWIG_1(PyObject *se
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49348,6 +50602,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_add_synonym(PyObject *self, PyObject
   int res3 = SWIG_OLDOBJ ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "WritableDatabase_add_synonym", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49410,6 +50665,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_remove_synonym(PyObject *self, PyObj
   int res3 = SWIG_OLDOBJ ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "WritableDatabase_remove_synonym", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49470,6 +50726,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_clear_synonyms(PyObject *self, PyObj
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "WritableDatabase_clear_synonyms", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49519,6 +50776,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_set_metadata(PyObject *self, PyObjec
   int res3 = SWIG_OLDOBJ ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "WritableDatabase_set_metadata", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49587,6 +50845,7 @@ SWIGINTERN PyObject *_wrap_open_stub__SWIG_0(PyObject *self, Py_ssize_t nobjs, P
   int res1 = SWIG_OLDOBJ ;
   Xapian::Database result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -49629,6 +50888,7 @@ SWIGINTERN PyObject *_wrap_open_stub__SWIG_1(PyObject *self, Py_ssize_t nobjs, P
   int ecode2 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -49699,6 +50959,7 @@ SWIGINTERN PyObject *_wrap_inmemory_open(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "inmemory_open", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -49725,6 +50986,7 @@ SWIGINTERN PyObject *_wrap_chert_open__SWIG_0(PyObject *self, Py_ssize_t nobjs,
   int res1 = SWIG_OLDOBJ ;
   Xapian::Database result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -49770,6 +51032,7 @@ SWIGINTERN PyObject *_wrap_chert_open__SWIG_1(PyObject *self, Py_ssize_t nobjs,
   int ecode3 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -49822,6 +51085,7 @@ SWIGINTERN PyObject *_wrap_chert_open__SWIG_2(PyObject *self, Py_ssize_t nobjs,
   int ecode2 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -49909,6 +51173,7 @@ SWIGINTERN PyObject *_wrap_remote_open__SWIG_0(PyObject *self, Py_ssize_t nobjs,
   int ecode4 = 0 ;
   Xapian::Database result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -49969,6 +51234,7 @@ SWIGINTERN PyObject *_wrap_remote_open__SWIG_1(PyObject *self, Py_ssize_t nobjs,
   int ecode3 = 0 ;
   Xapian::Database result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50021,6 +51287,7 @@ SWIGINTERN PyObject *_wrap_remote_open__SWIG_2(PyObject *self, Py_ssize_t nobjs,
   int ecode2 = 0 ;
   Xapian::Database result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50077,6 +51344,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_0(PyObject *self, Py_ssize
   int ecode5 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50145,6 +51413,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_1(PyObject *self, Py_ssize
   int ecode4 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50205,6 +51474,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_2(PyObject *self, Py_ssize
   int ecode3 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50257,6 +51527,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_3(PyObject *self, Py_ssize
   int ecode2 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50306,6 +51577,7 @@ SWIGINTERN PyObject *_wrap_remote_open__SWIG_3(PyObject *self, Py_ssize_t nobjs,
   int ecode3 = 0 ;
   Xapian::Database result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50365,6 +51637,7 @@ SWIGINTERN PyObject *_wrap_remote_open__SWIG_4(PyObject *self, Py_ssize_t nobjs,
   int res2 = SWIG_OLDOBJ ;
   Xapian::Database result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50489,6 +51762,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_4(PyObject *self, Py_ssize
   int ecode4 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50556,6 +51830,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_5(PyObject *self, Py_ssize
   int ecode3 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50615,6 +51890,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_6(PyObject *self, Py_ssize
   int res2 = SWIG_OLDOBJ ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -51411,7 +52687,11 @@ static PyMethodDef SwigMethods[] = {
 		"Return the term frequency for the term at the current position.\n"
 		"\n"
 		"Xapian::doccount Xapian::TermIterator::get_termfreq() const\n"
-		"Xapian::TermIterator::get_termfreq\n"
+		"Xapian::TermIterator::get_termfreq Note that for a TermIterator\n"
+		"returned by calling termlist_begin() on a Document object obtained\n"
+		"from a sharded database, this method will return the term frequency\n"
+		"from the shard that the document is in rather than for the combined\n"
+		"database. \n"
 		""},
 	 { "_TermIterator_positionlist_count", _wrap__TermIterator_positionlist_count, METH_O, "\n"
 		"\n"
@@ -51656,9 +52936,10 @@ static PyMethodDef SwigMethods[] = {
 		"Set data stored in the document.\n"
 		"\n"
 		"void Xapian::Document::set_data(const std::string &data)\n"
-		"Xapian::Document::set_data  Xapian treats the data as an opaque blob.\n"
-		"It may try to compress it, but other than that it will just store it\n"
-		"and return it when requested.\n"
+		"Xapian::Document::set_data This is an opaque blob as far as Xapian is\n"
+		"concerned - it's up to you to impose whatever structure you want on\n"
+		"it. If you want to store structured data, consider using something\n"
+		"like protocol buffers.\n"
 		"\n"
 		"Parameters:\n"
 		"-----------\n"
@@ -51823,10 +53104,16 @@ static PyMethodDef SwigMethods[] = {
 	 { "Document__termlist_begin", _wrap_Document__termlist_begin, METH_O, "\n"
 		"\n"
 		"\n"
-		"Iterator for the terms in this document.\n"
+		"Start iterating the terms in this document.\n"
 		"\n"
 		"TermIterator Xapian::Document::termlist_begin() const\n"
-		"Xapian::Document::termlist_begin\n"
+		"Xapian::Document::termlist_begin The terms are returned in ascending\n"
+		"string order (by byte value).\n"
+		"\n"
+		"Note that if the Document object came from a sharded database then the\n"
+		"TermIterator returned by this method only knows about the shard the\n"
+		"document came from so calling get_termfreq() on it will give you the\n"
+		"term frequency in that shard rather than in the combined database. \n"
 		""},
 	 { "Document__termlist_end", _wrap_Document__termlist_end, METH_O, "\n"
 		"\n"
@@ -53095,7 +54382,9 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		"spy:  The MatchSpy subclass to add. The caller must ensure that this\n"
 		"remains valid while the Enquire object remains active, or until\n"
-		"clear_matchspies() is called. \n"
+		"clear_matchspies() is called, or else allocate the MatchSpy object\n"
+		"with new and then disown it by calling spy->release() before passing\n"
+		"it in. \n"
 		""},
 	 { "Enquire_clear_matchspies", _wrap_Enquire_clear_matchspies, METH_O, "\n"
 		"\n"
@@ -53552,10 +54841,10 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const ExpandDecider * Xapian::ExpandDecider::release() const\n"
-		"Xapian::ExpandDecider::release You can hand ownership of a dynamically\n"
-		"allocated ExpandDecider object to Xapian by calling release() and then\n"
-		"passing the object to a Xapian method. Xapian will arrange to delete\n"
-		"the object once it is no longer required. \n"
+		"Xapian::ExpandDecider::release You can transfer ownership of a\n"
+		"dynamically allocated ExpandDecider object to Xapian by calling\n"
+		"release() and then passing the object to a Xapian method. Xapian will\n"
+		"arrange to delete the object once it is no longer required. \n"
 		""},
 	 { "disown_ExpandDecider", _wrap_disown_ExpandDecider, METH_O, NULL},
 	 { "ExpandDecider_swigregister", ExpandDecider_swigregister, METH_O, NULL},
@@ -53617,7 +54906,7 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const KeyMaker * Xapian::KeyMaker::release() const\n"
-		"Xapian::KeyMaker::release You can hand ownership of a dynamically\n"
+		"Xapian::KeyMaker::release You can transfer ownership of a dynamically\n"
 		"allocated KeyMaker object to Xapian by calling release() and then\n"
 		"passing the object to a Xapian method. Xapian will arrange to delete\n"
 		"the object once it is no longer required. \n"
@@ -53689,7 +54978,7 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const Stopper * Xapian::Stopper::release() const\n"
-		"Xapian::Stopper::release You can hand ownership of a dynamically\n"
+		"Xapian::Stopper::release You can transfer ownership of a dynamically\n"
 		"allocated Stopper object to Xapian by calling release() and then\n"
 		"passing the object to a Xapian method. Xapian will arrange to delete\n"
 		"the object once it is no longer required. \n"
@@ -53773,7 +55062,7 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const RangeProcessor * Xapian::RangeProcessor::release() const\n"
-		"Xapian::RangeProcessor::release You can hand ownership of a\n"
+		"Xapian::RangeProcessor::release You can transfer ownership of a\n"
 		"dynamically allocated RangeProcessor object to Xapian by calling\n"
 		"release() and then passing the object to a Xapian method. Xapian will\n"
 		"arrange to delete the object once it is no longer required. \n"
@@ -54059,7 +55348,7 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const FieldProcessor * Xapian::FieldProcessor::release() const\n"
-		"Xapian::FieldProcessor::release You can hand ownership of a\n"
+		"Xapian::FieldProcessor::release You can transfer ownership of a\n"
 		"dynamically allocated FieldProcessor object to Xapian by calling\n"
 		"release() and then passing the object to a Xapian method. Xapian will\n"
 		"arrange to delete the object once it is no longer required. \n"
@@ -55135,10 +56424,10 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const PostingSource * Xapian::PostingSource::release() const\n"
-		"Xapian::PostingSource::release You can hand ownership of a dynamically\n"
-		"allocated PostingSource object to Xapian by calling release() and then\n"
-		"passing the object to a Xapian method. Xapian will arrange to delete\n"
-		"the object once it is no longer required. \n"
+		"Xapian::PostingSource::release You can transfer ownership of a\n"
+		"dynamically allocated PostingSource object to Xapian by calling\n"
+		"release() and then passing the object to a Xapian method. Xapian will\n"
+		"arrange to delete the object once it is no longer required. \n"
 		""},
 	 { "disown_PostingSource", _wrap_disown_PostingSource, METH_O, NULL},
 	 { "PostingSource_swigregister", PostingSource_swigregister, METH_O, NULL},
@@ -55678,7 +56967,7 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const MatchSpy * Xapian::MatchSpy::release() const\n"
-		"Xapian::MatchSpy::release You can hand ownership of a dynamically\n"
+		"Xapian::MatchSpy::release You can transfer ownership of a dynamically\n"
 		"allocated MatchSpy object to Xapian by calling release() and then\n"
 		"passing the object to a Xapian method. Xapian will arrange to delete\n"
 		"the object once it is no longer required. \n"
@@ -56174,7 +57463,8 @@ static PyMethodDef SwigMethods[] = {
 		"document.\n"
 		"\n"
 		"TermIterator Xapian::Database::termlist_begin(Xapian::docid did) const\n"
-		"Xapian::Database::termlist_begin\n"
+		"Xapian::Database::termlist_begin The terms are returned in ascending\n"
+		"string order (by byte value).\n"
 		"\n"
 		"Parameters:\n"
 		"-----------\n"
@@ -56221,7 +57511,8 @@ static PyMethodDef SwigMethods[] = {
 		"An iterator which runs across all terms with a given prefix.\n"
 		"\n"
 		"TermIterator Xapian::Database::allterms_begin(const std::string\n"
-		"&prefix=std::string()) const Xapian::Database::allterms_begin\n"
+		"&prefix=std::string()) const Xapian::Database::allterms_begin The\n"
+		"terms are returned in ascending string order (by byte value).\n"
 		"\n"
 		"Parameters:\n"
 		"-----------\n"
@@ -56777,6 +58068,10 @@ static PyMethodDef SwigMethods[] = {
 		"not performed at all: it is then up to the application to work out\n"
 		"which operations need to be repeated.\n"
 		"\n"
+		"However, note that if called on a sharded database, atomicity isn't\n"
+		"guaranteed between shards - it's possible for the changes to one shard\n"
+		"to be committed but changes to another shard to fail.\n"
+		"\n"
 		"It's not valid to call commit() within a transaction.\n"
 		"\n"
 		"Beware of calling commit() too frequently: this will make indexing\n"
@@ -56822,6 +58117,10 @@ static PyMethodDef SwigMethods[] = {
 		"all. Even in the case of a power failure, this characteristic should\n"
 		"be preserved (as long as the filesystem isn't corrupted, etc).\n"
 		"\n"
+		"However, note that if called on a sharded database, atomicity isn't\n"
+		"guaranteed between shards. Within each shard, the transaction will\n"
+		"still act atomically.\n"
+		"\n"
 		"A transaction is started with begin_transaction() and can either be\n"
 		"committed by calling commit_transaction() or aborted by calling\n"
 		"cancel_transaction().\n"
@@ -56880,6 +58179,10 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		"In all cases the transaction will no longer be in progress.\n"
 		"\n"
+		"Note that if called on a sharded database, atomicity isn't guaranteed\n"
+		"between shards. Within each shard, the transaction will still act\n"
+		"atomically.\n"
+		"\n"
 		"Parameters:\n"
 		"-----------\n"
 		"\n"
@@ -57948,7 +59251,11 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Return the term frequency for the term at the current position.\n"
 		"\n"
 		"Xapian::doccount Xapian::TermIterator::get_termfreq() const\n"
-		"Xapian::TermIterator::get_termfreq\n"
+		"Xapian::TermIterator::get_termfreq Note that for a TermIterator\n"
+		"returned by calling termlist_begin() on a Document object obtained\n"
+		"from a sharded database, this method will return the term frequency\n"
+		"from the shard that the document is in rather than for the combined\n"
+		"database. \n"
 		""},
 	 { "_TermIterator_positionlist_count", _wrap__TermIterator_positionlist_count, METH_O, "\n"
 		"\n"
@@ -58193,9 +59500,10 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Set data stored in the document.\n"
 		"\n"
 		"void Xapian::Document::set_data(const std::string &data)\n"
-		"Xapian::Document::set_data  Xapian treats the data as an opaque blob.\n"
-		"It may try to compress it, but other than that it will just store it\n"
-		"and return it when requested.\n"
+		"Xapian::Document::set_data This is an opaque blob as far as Xapian is\n"
+		"concerned - it's up to you to impose whatever structure you want on\n"
+		"it. If you want to store structured data, consider using something\n"
+		"like protocol buffers.\n"
 		"\n"
 		"Parameters:\n"
 		"-----------\n"
@@ -58360,10 +59668,16 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 	 { "Document__termlist_begin", _wrap_Document__termlist_begin, METH_O, "\n"
 		"\n"
 		"\n"
-		"Iterator for the terms in this document.\n"
+		"Start iterating the terms in this document.\n"
 		"\n"
 		"TermIterator Xapian::Document::termlist_begin() const\n"
-		"Xapian::Document::termlist_begin\n"
+		"Xapian::Document::termlist_begin The terms are returned in ascending\n"
+		"string order (by byte value).\n"
+		"\n"
+		"Note that if the Document object came from a sharded database then the\n"
+		"TermIterator returned by this method only knows about the shard the\n"
+		"document came from so calling get_termfreq() on it will give you the\n"
+		"term frequency in that shard rather than in the combined database. \n"
 		""},
 	 { "Document__termlist_end", _wrap_Document__termlist_end, METH_O, "\n"
 		"\n"
@@ -59632,7 +60946,9 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"\n"
 		"spy:  The MatchSpy subclass to add. The caller must ensure that this\n"
 		"remains valid while the Enquire object remains active, or until\n"
-		"clear_matchspies() is called. \n"
+		"clear_matchspies() is called, or else allocate the MatchSpy object\n"
+		"with new and then disown it by calling spy->release() before passing\n"
+		"it in. \n"
 		""},
 	 { "Enquire_clear_matchspies", _wrap_Enquire_clear_matchspies, METH_O, "\n"
 		"\n"
@@ -60089,10 +61405,10 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const ExpandDecider * Xapian::ExpandDecider::release() const\n"
-		"Xapian::ExpandDecider::release You can hand ownership of a dynamically\n"
-		"allocated ExpandDecider object to Xapian by calling release() and then\n"
-		"passing the object to a Xapian method. Xapian will arrange to delete\n"
-		"the object once it is no longer required. \n"
+		"Xapian::ExpandDecider::release You can transfer ownership of a\n"
+		"dynamically allocated ExpandDecider object to Xapian by calling\n"
+		"release() and then passing the object to a Xapian method. Xapian will\n"
+		"arrange to delete the object once it is no longer required. \n"
 		""},
 	 { "disown_ExpandDecider", _wrap_disown_ExpandDecider, METH_O, NULL},
 	 { "ExpandDecider_swigregister", ExpandDecider_swigregister, METH_O, NULL},
@@ -60154,7 +61470,7 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const KeyMaker * Xapian::KeyMaker::release() const\n"
-		"Xapian::KeyMaker::release You can hand ownership of a dynamically\n"
+		"Xapian::KeyMaker::release You can transfer ownership of a dynamically\n"
 		"allocated KeyMaker object to Xapian by calling release() and then\n"
 		"passing the object to a Xapian method. Xapian will arrange to delete\n"
 		"the object once it is no longer required. \n"
@@ -60226,7 +61542,7 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const Stopper * Xapian::Stopper::release() const\n"
-		"Xapian::Stopper::release You can hand ownership of a dynamically\n"
+		"Xapian::Stopper::release You can transfer ownership of a dynamically\n"
 		"allocated Stopper object to Xapian by calling release() and then\n"
 		"passing the object to a Xapian method. Xapian will arrange to delete\n"
 		"the object once it is no longer required. \n"
@@ -60310,7 +61626,7 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const RangeProcessor * Xapian::RangeProcessor::release() const\n"
-		"Xapian::RangeProcessor::release You can hand ownership of a\n"
+		"Xapian::RangeProcessor::release You can transfer ownership of a\n"
 		"dynamically allocated RangeProcessor object to Xapian by calling\n"
 		"release() and then passing the object to a Xapian method. Xapian will\n"
 		"arrange to delete the object once it is no longer required. \n"
@@ -60596,7 +61912,7 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const FieldProcessor * Xapian::FieldProcessor::release() const\n"
-		"Xapian::FieldProcessor::release You can hand ownership of a\n"
+		"Xapian::FieldProcessor::release You can transfer ownership of a\n"
 		"dynamically allocated FieldProcessor object to Xapian by calling\n"
 		"release() and then passing the object to a Xapian method. Xapian will\n"
 		"arrange to delete the object once it is no longer required. \n"
@@ -61672,10 +62988,10 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const PostingSource * Xapian::PostingSource::release() const\n"
-		"Xapian::PostingSource::release You can hand ownership of a dynamically\n"
-		"allocated PostingSource object to Xapian by calling release() and then\n"
-		"passing the object to a Xapian method. Xapian will arrange to delete\n"
-		"the object once it is no longer required. \n"
+		"Xapian::PostingSource::release You can transfer ownership of a\n"
+		"dynamically allocated PostingSource object to Xapian by calling\n"
+		"release() and then passing the object to a Xapian method. Xapian will\n"
+		"arrange to delete the object once it is no longer required. \n"
 		""},
 	 { "disown_PostingSource", _wrap_disown_PostingSource, METH_O, NULL},
 	 { "PostingSource_swigregister", PostingSource_swigregister, METH_O, NULL},
@@ -62215,7 +63531,7 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const MatchSpy * Xapian::MatchSpy::release() const\n"
-		"Xapian::MatchSpy::release You can hand ownership of a dynamically\n"
+		"Xapian::MatchSpy::release You can transfer ownership of a dynamically\n"
 		"allocated MatchSpy object to Xapian by calling release() and then\n"
 		"passing the object to a Xapian method. Xapian will arrange to delete\n"
 		"the object once it is no longer required. \n"
@@ -62711,7 +64027,8 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"document.\n"
 		"\n"
 		"TermIterator Xapian::Database::termlist_begin(Xapian::docid did) const\n"
-		"Xapian::Database::termlist_begin\n"
+		"Xapian::Database::termlist_begin The terms are returned in ascending\n"
+		"string order (by byte value).\n"
 		"\n"
 		"Parameters:\n"
 		"-----------\n"
@@ -62758,7 +64075,8 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"An iterator which runs across all terms with a given prefix.\n"
 		"\n"
 		"TermIterator Xapian::Database::allterms_begin(const std::string\n"
-		"&prefix=std::string()) const Xapian::Database::allterms_begin\n"
+		"&prefix=std::string()) const Xapian::Database::allterms_begin The\n"
+		"terms are returned in ascending string order (by byte value).\n"
 		"\n"
 		"Parameters:\n"
 		"-----------\n"
@@ -63314,6 +64632,10 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"not performed at all: it is then up to the application to work out\n"
 		"which operations need to be repeated.\n"
 		"\n"
+		"However, note that if called on a sharded database, atomicity isn't\n"
+		"guaranteed between shards - it's possible for the changes to one shard\n"
+		"to be committed but changes to another shard to fail.\n"
+		"\n"
 		"It's not valid to call commit() within a transaction.\n"
 		"\n"
 		"Beware of calling commit() too frequently: this will make indexing\n"
@@ -63359,6 +64681,10 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"all. Even in the case of a power failure, this characteristic should\n"
 		"be preserved (as long as the filesystem isn't corrupted, etc).\n"
 		"\n"
+		"However, note that if called on a sharded database, atomicity isn't\n"
+		"guaranteed between shards. Within each shard, the transaction will\n"
+		"still act atomically.\n"
+		"\n"
 		"A transaction is started with begin_transaction() and can either be\n"
 		"committed by calling commit_transaction() or aborted by calling\n"
 		"cancel_transaction().\n"
@@ -63417,6 +64743,10 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"\n"
 		"In all cases the transaction will no longer be in progress.\n"
 		"\n"
+		"Note that if called on a sharded database, atomicity isn't guaranteed\n"
+		"between shards. Within each shard, the transaction will still act\n"
+		"atomically.\n"
+		"\n"
 		"Parameters:\n"
 		"-----------\n"
 		"\n"
@@ -65157,6 +66487,7 @@ SWIG_init(void) {
   SWIG_Python_SetConstant(d, "Query_WILDCARD_LIMIT_FIRST",SWIG_From_int(static_cast< int >(Xapian::Query::WILDCARD_LIMIT_FIRST)));
   SWIG_Python_SetConstant(d, "Query_WILDCARD_LIMIT_MOST_FREQUENT",SWIG_From_int(static_cast< int >(Xapian::Query::WILDCARD_LIMIT_MOST_FREQUENT)));
   SWIG_Python_SetConstant(d, "TermGenerator_FLAG_SPELLING",SWIG_From_int(static_cast< int >(Xapian::TermGenerator::FLAG_SPELLING)));
+  SWIG_Python_SetConstant(d, "TermGenerator_FLAG_NGRAMS",SWIG_From_int(static_cast< int >(Xapian::TermGenerator::FLAG_NGRAMS)));
   SWIG_Python_SetConstant(d, "TermGenerator_FLAG_CJK_NGRAM",SWIG_From_int(static_cast< int >(Xapian::TermGenerator::FLAG_CJK_NGRAM)));
   SWIG_Python_SetConstant(d, "TermGenerator_STEM_NONE",SWIG_From_int(static_cast< int >(Xapian::TermGenerator::STEM_NONE)));
   SWIG_Python_SetConstant(d, "TermGenerator_STEM_SOME",SWIG_From_int(static_cast< int >(Xapian::TermGenerator::STEM_SOME)));
@@ -65169,6 +66500,7 @@ SWIG_init(void) {
   SWIG_Python_SetConstant(d, "MSet_SNIPPET_BACKGROUND_MODEL",SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_BACKGROUND_MODEL)));
   SWIG_Python_SetConstant(d, "MSet_SNIPPET_EXHAUSTIVE",SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_EXHAUSTIVE)));
   SWIG_Python_SetConstant(d, "MSet_SNIPPET_EMPTY_WITHOUT_MATCH",SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_EMPTY_WITHOUT_MATCH)));
+  SWIG_Python_SetConstant(d, "MSet_SNIPPET_NGRAMS",SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_NGRAMS)));
   SWIG_Python_SetConstant(d, "MSet_SNIPPET_CJK_NGRAM",SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_CJK_NGRAM)));
   SWIG_Python_SetConstant(d, "Enquire_ASCENDING",SWIG_From_int(static_cast< int >(Xapian::Enquire::ASCENDING)));
   SWIG_Python_SetConstant(d, "Enquire_DESCENDING",SWIG_From_int(static_cast< int >(Xapian::Enquire::DESCENDING)));
@@ -65189,6 +66521,7 @@ SWIG_init(void) {
   SWIG_Python_SetConstant(d, "QueryParser_FLAG_SYNONYM",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_SYNONYM)));
   SWIG_Python_SetConstant(d, "QueryParser_FLAG_AUTO_SYNONYMS",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_AUTO_SYNONYMS)));
   SWIG_Python_SetConstant(d, "QueryParser_FLAG_AUTO_MULTIWORD_SYNONYMS",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_AUTO_MULTIWORD_SYNONYMS)));
+  SWIG_Python_SetConstant(d, "QueryParser_FLAG_NGRAMS",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_NGRAMS)));
   SWIG_Python_SetConstant(d, "QueryParser_FLAG_CJK_NGRAM",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_CJK_NGRAM)));
   SWIG_Python_SetConstant(d, "QueryParser_FLAG_ACCUMULATE",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_ACCUMULATE)));
   SWIG_Python_SetConstant(d, "QueryParser_FLAG_NO_POSITIONS",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_NO_POSITIONS)));
diff --git a/python/xapian_wrap.h b/python/xapian_wrap.h
index f5654c6f8026d7676e871487bafa93dc1c8007f3..3792c617ccf72d3f8175e551b3a26a249372a8fa 100644
--- a/python/xapian_wrap.h
+++ b/python/xapian_wrap.h
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/python3/Makefile.am b/python3/Makefile.am
index a836b069d369431a17792dcb92e3b40449176eba..55b8dc836e8fb87cc06c9e5e48149346619c42fe 100644
--- a/python3/Makefile.am
+++ b/python3/Makefile.am
@@ -5,11 +5,7 @@ include ../generic/generic.mk
 ## Test programs to be run
 TESTS = smoketest.py pythontest.py
 AM_TESTS_ENVIRONMENT = \
-	abs_builddir='$(abs_builddir)' ;\
-	srcdir='$(srcdir)' ;\
 	PYTHON3='$(PYTHON3)' ;\
-	export abs_builddir ;\
-	export srcdir ;\
 	export PYTHON3 ;
 LOG_COMPILER = '$(srcdir)'/run-python-test
 
@@ -23,7 +19,7 @@ RST_DOCS = \
 	docs/introduction.rst \
 	docs/xapian.rst
 
-BUILT_SOURCES = xapian_wrap.cc xapian_wrap.h xapian.py
+BUILT_SOURCES = xapian_wrap.cc xapian_wrap.h xapian__init__.py
 
 EXTRA_DIST = python.i util.i extra.i extracomments.i except.i \
 	doccomments.i \
@@ -63,11 +59,10 @@ _xapian_la_LDFLAGS = -avoid-version -module -shrext "$(PYTHON3_EXT_SUFFIX)" $(NO
 _xapian_la_SOURCES = xapian_wrap.cc
 _xapian_la_LIBADD = $(XAPIAN_LIBS) $(PYTHON3_LIBS)
 
-# We want `xapian/__init__.py` rather than xapian.py so the module is treated
-# as a package.
-xapian/__init__.py: xapian.py
+# We want `xapian/__init__.py` so the module is treated as a package.
+xapian/__init__.py: xapian__init__.py
 	$(MKDIR_P) xapian
-	cp `test -f xapian.py || echo '$(srcdir)/'`xapian.py xapian/__init__.py
+	cp `test -f xapian__init__.py || echo '$(srcdir)/'`xapian__init__.py xapian/__init__.py
 
 # We "import _xapian" first so that if we fail to import the glue library
 # we don't generate a broken .pyc or .pyo, and we do it with the current
@@ -88,10 +83,7 @@ xapian/__pycache__/__init__.@PYTHON3_CACHE_OPT1_EXT@: xapian/__init__.py xapian/
 
 xapian/_xapian$(PYTHON3_EXT_SUFFIX): _xapian.la
 	$(MKDIR_P) xapian
-	$(LIBTOOL) --config > libtoolconfig.tmp
-## ksh requires a path on the sourced file.
-	. ./libtoolconfig.tmp; cp $$objdir/_xapian$(PYTHON3_EXT_SUFFIX) xapian
-	rm -f libtoolconfig.tmp
+	cp $(_libs)/_xapian$(PYTHON3_EXT_SUFFIX) xapian
 
 CLEANFILES = \
     xapian/_xapian$(PYTHON3_EXT_SUFFIX) \
@@ -133,14 +125,15 @@ stamp = xapian_wrap.stamp
 RUN_SWIG = stamp='$(stamp)' $(PERL) '$(top_srcdir)'/swig-depcomp $(SWIG)
 SWIG_FLAGS += -DSWIG_PYTHON_LEGACY_BOOL
 
-xapian_wrap.cc xapian_wrap.h xapian.py xapian_wrap.d: $(stamp)
+xapian_wrap.cc xapian_wrap.h xapian__init__.py xapian_wrap.d: $(stamp)
 	$(make_many_locked)
 $(stamp): except.i doccomments.i fixup-swig-py3-wrapper
 	$(multitarget_begin)
 	$(RUN_SWIG) $(SWIG_WERROR) -I. -I'$(srcdir)' $(SWIG_FLAGS) -c++ \
 	    -python -threads -shadow -O \
 	    -o xapian_wrap.cc '$(srcdir)/'python.i
-	$(PERL) -i $(srcdir)/fixup-swig-py3-wrapper xapian.py
+	$(PERL) $(srcdir)/fixup-swig-py3-wrapper xapian.py > xapian__init__.py
+	rm xapian.py
 	$(multitarget_end)
 
 -include xapian_wrap.d
diff --git a/python3/Makefile.in b/python3/Makefile.in
index 75f3611f726fece1d2c1367e53359914819d2c84..9df4eec394915f543bdeb1220ebd6243c3519a37 100644
--- a/python3/Makefile.in
+++ b/python3/Makefile.in
@@ -95,9 +95,7 @@ host_triplet = @host@
 subdir = python3
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(dist_exampledata_DATA) \
@@ -455,9 +453,9 @@ LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 LUA = @LUA@
-LUA_CPPFLAGS = @LUA_CPPFLAGS@
-LUA_INC = @LUA_INC@
+LUA_CFLAGS = @LUA_CFLAGS@
 LUA_LIB = @LUA_LIB@
+LUA_LIBS = @LUA_LIBS@
 LUA_SO = @LUA_SO@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
@@ -491,6 +489,10 @@ PHP_INC = @PHP_INC@
 PHP_LIBS = @PHP_LIBS@
 PHP_MAJOR_VERSION = @PHP_MAJOR_VERSION@
 PHP_PATH_SEPARATOR = @PHP_PATH_SEPARATOR@
+PHP_SHLIB_SUFFIX = @PHP_SHLIB_SUFFIX@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 PYTHON = @PYTHON@
 PYTHON2 = @PYTHON2@
 PYTHON2_INC = @PYTHON2_INC@
@@ -528,6 +530,7 @@ TCL_CPPFLAGS = @TCL_CPPFLAGS@
 TCL_INC = @TCL_INC@
 TCL_LIB = @TCL_LIB@
 TCL_LIBS = @TCL_LIBS@
+TCL_SHLIB_EXT = @TCL_SHLIB_EXT@
 THREAD_LOCAL = @THREAD_LOCAL@
 VERSION = @VERSION@
 VERSION_NO_SNAPSHOT = @VERSION_NO_SNAPSHOT@
@@ -537,6 +540,7 @@ XAPIAN_HEADERS = @XAPIAN_HEADERS@
 XAPIAN_HEADER_DIRS = @XAPIAN_HEADER_DIRS@
 XAPIAN_LIBS = @XAPIAN_LIBS@
 XAPIAN_VERSION = @XAPIAN_VERSION@
+_libs = @_libs@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -614,11 +618,7 @@ multitarget_begin = @rm -f $@-t; touch $@-t
 multitarget_end = @mv -f $@-t $@
 TESTS = smoketest.py pythontest.py
 AM_TESTS_ENVIRONMENT = \
-	abs_builddir='$(abs_builddir)' ;\
-	srcdir='$(srcdir)' ;\
 	PYTHON3='$(PYTHON3)' ;\
-	export abs_builddir ;\
-	export srcdir ;\
 	export PYTHON3 ;
 
 LOG_COMPILER = '$(srcdir)'/run-python-test
@@ -628,7 +628,8 @@ RST_DOCS = \
 	docs/introduction.rst \
 	docs/xapian.rst
 
-BUILT_SOURCES = xapian_wrap.cc xapian_wrap.h xapian.py $(am__append_1)
+BUILT_SOURCES = xapian_wrap.cc xapian_wrap.h xapian__init__.py \
+	$(am__append_1)
 EXTRA_DIST = python.i util.i extra.i extracomments.i except.i \
 	doccomments.i \
 	doxy2swig.py \
@@ -1265,11 +1266,10 @@ install-data-hook:
 uninstall-local:
 	rm -f $(DESTDIR)$(pkgpylibdir)/_xapian$(PYTHON3_EXT_SUFFIX)
 
-# We want `xapian/__init__.py` rather than xapian.py so the module is treated
-# as a package.
-xapian/__init__.py: xapian.py
+# We want `xapian/__init__.py` so the module is treated as a package.
+xapian/__init__.py: xapian__init__.py
 	$(MKDIR_P) xapian
-	cp `test -f xapian.py || echo '$(srcdir)/'`xapian.py xapian/__init__.py
+	cp `test -f xapian__init__.py || echo '$(srcdir)/'`xapian__init__.py xapian/__init__.py
 
 # We "import _xapian" first so that if we fail to import the glue library
 # we don't generate a broken .pyc or .pyo, and we do it with the current
@@ -1290,9 +1290,7 @@ xapian/__pycache__/__init__.@PYTHON3_CACHE_OPT1_EXT@: xapian/__init__.py xapian/
 
 xapian/_xapian$(PYTHON3_EXT_SUFFIX): _xapian.la
 	$(MKDIR_P) xapian
-	$(LIBTOOL) --config > libtoolconfig.tmp
-	. ./libtoolconfig.tmp; cp $$objdir/_xapian$(PYTHON3_EXT_SUFFIX) xapian
-	rm -f libtoolconfig.tmp
+	cp $(_libs)/_xapian$(PYTHON3_EXT_SUFFIX) xapian
 
 # Clean the xapian directory which we created and its __pycache__ subdirectory
 # (if they're empty), output from sphinx, and any databases created by test
@@ -1313,14 +1311,15 @@ clean-local:
 @MAINTAINER_MODE_TRUE@2to3:
 @MAINTAINER_MODE_TRUE@	for a in pythontest smoketest testsuite ; do cp ../python/$${a}.py $${a}.py ; 2to3 -w --no-diffs $${a}.py ; done
 
-@MAINTAINER_MODE_TRUE@xapian_wrap.cc xapian_wrap.h xapian.py xapian_wrap.d: $(stamp)
+@MAINTAINER_MODE_TRUE@xapian_wrap.cc xapian_wrap.h xapian__init__.py xapian_wrap.d: $(stamp)
 @MAINTAINER_MODE_TRUE@	$(make_many_locked)
 @MAINTAINER_MODE_TRUE@$(stamp): except.i doccomments.i fixup-swig-py3-wrapper
 @MAINTAINER_MODE_TRUE@	$(multitarget_begin)
 @MAINTAINER_MODE_TRUE@	$(RUN_SWIG) $(SWIG_WERROR) -I. -I'$(srcdir)' $(SWIG_FLAGS) -c++ \
 @MAINTAINER_MODE_TRUE@	    -python -threads -shadow -O \
 @MAINTAINER_MODE_TRUE@	    -o xapian_wrap.cc '$(srcdir)/'python.i
-@MAINTAINER_MODE_TRUE@	$(PERL) -i $(srcdir)/fixup-swig-py3-wrapper xapian.py
+@MAINTAINER_MODE_TRUE@	$(PERL) $(srcdir)/fixup-swig-py3-wrapper xapian.py > xapian__init__.py
+@MAINTAINER_MODE_TRUE@	rm xapian.py
 @MAINTAINER_MODE_TRUE@	$(multitarget_end)
 
 @MAINTAINER_MODE_TRUE@-include xapian_wrap.d
diff --git a/python3/doccomments.i b/python3/doccomments.i
index 4d3aca43940484452de5da6cbede5193b913f64a..babd03079c849af51966d19b64d36450e8c971b1 100644
--- a/python3/doccomments.i
+++ b/python3/doccomments.i
@@ -1119,7 +1119,8 @@ An iterator pointing to the start of the termlist for a given
 document.
 
 TermIterator Xapian::Database::termlist_begin(Xapian::docid did) const
-Xapian::Database::termlist_begin
+Xapian::Database::termlist_begin The terms are returned in ascending
+string order (by byte value).
 
 Parameters:
 -----------
@@ -1161,7 +1162,8 @@ const std::string &) const Xapian::Database::positionlist_end";
 An iterator which runs across all terms with a given prefix.
 
 TermIterator Xapian::Database::allterms_begin(const std::string
-&prefix=std::string()) const Xapian::Database::allterms_begin
+&prefix=std::string()) const Xapian::Database::allterms_begin The
+terms are returned in ascending string order (by byte value).
 
 Parameters:
 -----------
@@ -2923,9 +2925,10 @@ deciders in a value instead. ";
 Set data stored in the document.
 
 void Xapian::Document::set_data(const std::string &data)
-Xapian::Document::set_data  Xapian treats the data as an opaque blob.
-It may try to compress it, but other than that it will just store it
-and return it when requested.
+Xapian::Document::set_data This is an opaque blob as far as Xapian is
+concerned - it's up to you to impose whatever structure you want on
+it. If you want to store structured data, consider using something
+like protocol buffers.
 
 Parameters:
 -----------
@@ -3081,10 +3084,16 @@ index this document. ";
 
 %feature("docstring")  Xapian::Document::termlist_begin "
 
-Iterator for the terms in this document.
+Start iterating the terms in this document.
 
 TermIterator Xapian::Document::termlist_begin() const
-Xapian::Document::termlist_begin";
+Xapian::Document::termlist_begin The terms are returned in ascending
+string order (by byte value).
+
+Note that if the Document object came from a sharded database then the
+TermIterator returned by this method only knows about the shard the
+document came from so calling get_termfreq() on it will give you the
+term frequency in that shard rather than in the combined database. ";
 
 %feature("docstring")  Xapian::Document::termlist_end "
 
@@ -3409,7 +3418,9 @@ Parameters:
 
 spy:  The MatchSpy subclass to add. The caller must ensure that this
 remains valid while the Enquire object remains active, or until
-clear_matchspies() is called. ";
+clear_matchspies() is called, or else allocate the MatchSpy object
+with new and then disown it by calling spy->release() before passing
+it in. ";
 
 %feature("docstring")  Xapian::Enquire::clear_matchspies "
 
@@ -4205,20 +4216,20 @@ Xapian::ExpandDecider::~ExpandDecider";
 Start reference counting this object.
 
 ExpandDecider * Xapian::ExpandDecider::release()
-Xapian::ExpandDecider::release You can hand ownership of a dynamically
-allocated ExpandDecider object to Xapian by calling release() and then
-passing the object to a Xapian method. Xapian will arrange to delete
-the object once it is no longer required. ";
+Xapian::ExpandDecider::release You can transfer ownership of a
+dynamically allocated ExpandDecider object to Xapian by calling
+release() and then passing the object to a Xapian method. Xapian will
+arrange to delete the object once it is no longer required. ";
 
 %feature("docstring")  Xapian::ExpandDecider::release "
 
 Start reference counting this object.
 
 const ExpandDecider * Xapian::ExpandDecider::release() const
-Xapian::ExpandDecider::release You can hand ownership of a dynamically
-allocated ExpandDecider object to Xapian by calling release() and then
-passing the object to a Xapian method. Xapian will arrange to delete
-the object once it is no longer required. ";
+Xapian::ExpandDecider::release You can transfer ownership of a
+dynamically allocated ExpandDecider object to Xapian by calling
+release() and then passing the object to a Xapian method. Xapian will
+arrange to delete the object once it is no longer required. ";
 
 
 // File: classXapian_1_1ExpandDeciderAnd.xml
@@ -4381,7 +4392,7 @@ Xapian::FieldProcessor::~FieldProcessor";
 Start reference counting this object.
 
 FieldProcessor * Xapian::FieldProcessor::release()
-Xapian::FieldProcessor::release You can hand ownership of a
+Xapian::FieldProcessor::release You can transfer ownership of a
 dynamically allocated FieldProcessor object to Xapian by calling
 release() and then passing the object to a Xapian method. Xapian will
 arrange to delete the object once it is no longer required. ";
@@ -4391,7 +4402,7 @@ arrange to delete the object once it is no longer required. ";
 Start reference counting this object.
 
 const FieldProcessor * Xapian::FieldProcessor::release() const
-Xapian::FieldProcessor::release You can hand ownership of a
+Xapian::FieldProcessor::release You can transfer ownership of a
 dynamically allocated FieldProcessor object to Xapian by calling
 release() and then passing the object to a Xapian method. Xapian will
 arrange to delete the object once it is no longer required. ";
@@ -5377,7 +5388,7 @@ virtual Xapian::KeyMaker::~KeyMaker() Xapian::KeyMaker::~KeyMaker";
 Start reference counting this object.
 
 KeyMaker * Xapian::KeyMaker::release() Xapian::KeyMaker::release You
-can hand ownership of a dynamically allocated KeyMaker object to
+can transfer ownership of a dynamically allocated KeyMaker object to
 Xapian by calling release() and then passing the object to a Xapian
 method. Xapian will arrange to delete the object once it is no longer
 required. ";
@@ -5387,7 +5398,7 @@ required. ";
 Start reference counting this object.
 
 const KeyMaker * Xapian::KeyMaker::release() const
-Xapian::KeyMaker::release You can hand ownership of a dynamically
+Xapian::KeyMaker::release You can transfer ownership of a dynamically
 allocated KeyMaker object to Xapian by calling release() and then
 passing the object to a Xapian method. Xapian will arrange to delete
 the object once it is no longer required. ";
@@ -6457,7 +6468,7 @@ get_description() gives for their subclass). ";
 Start reference counting this object.
 
 MatchSpy * Xapian::MatchSpy::release() Xapian::MatchSpy::release You
-can hand ownership of a dynamically allocated MatchSpy object to
+can transfer ownership of a dynamically allocated MatchSpy object to
 Xapian by calling release() and then passing the object to a Xapian
 method. Xapian will arrange to delete the object once it is no longer
 required. ";
@@ -6467,7 +6478,7 @@ required. ";
 Start reference counting this object.
 
 const MatchSpy * Xapian::MatchSpy::release() const
-Xapian::MatchSpy::release You can hand ownership of a dynamically
+Xapian::MatchSpy::release You can transfer ownership of a dynamically
 allocated MatchSpy object to Xapian by calling release() and then
 passing the object to a Xapian method. Xapian will arrange to delete
 the object once it is no longer required. ";
@@ -7884,20 +7895,20 @@ their subclass). ";
 Start reference counting this object.
 
 PostingSource * Xapian::PostingSource::release()
-Xapian::PostingSource::release You can hand ownership of a dynamically
-allocated PostingSource object to Xapian by calling release() and then
-passing the object to a Xapian method. Xapian will arrange to delete
-the object once it is no longer required. ";
+Xapian::PostingSource::release You can transfer ownership of a
+dynamically allocated PostingSource object to Xapian by calling
+release() and then passing the object to a Xapian method. Xapian will
+arrange to delete the object once it is no longer required. ";
 
 %feature("docstring")  Xapian::PostingSource::release "
 
 Start reference counting this object.
 
 const PostingSource * Xapian::PostingSource::release() const
-Xapian::PostingSource::release You can hand ownership of a dynamically
-allocated PostingSource object to Xapian by calling release() and then
-passing the object to a Xapian method. Xapian will arrange to delete
-the object once it is no longer required. ";
+Xapian::PostingSource::release You can transfer ownership of a
+dynamically allocated PostingSource object to Xapian by calling
+release() and then passing the object to a Xapian method. Xapian will
+arrange to delete the object once it is no longer required. ";
 
 
 // File: classXapian_1_1Query.xml
@@ -8779,7 +8790,7 @@ handle the range. ";
 Start reference counting this object.
 
 RangeProcessor * Xapian::RangeProcessor::release()
-Xapian::RangeProcessor::release You can hand ownership of a
+Xapian::RangeProcessor::release You can transfer ownership of a
 dynamically allocated RangeProcessor object to Xapian by calling
 release() and then passing the object to a Xapian method. Xapian will
 arrange to delete the object once it is no longer required. ";
@@ -8789,7 +8800,7 @@ arrange to delete the object once it is no longer required. ";
 Start reference counting this object.
 
 const RangeProcessor * Xapian::RangeProcessor::release() const
-Xapian::RangeProcessor::release You can hand ownership of a
+Xapian::RangeProcessor::release You can transfer ownership of a
 dynamically allocated RangeProcessor object to Xapian by calling
 release() and then passing the object to a Xapian method. Xapian will
 arrange to delete the object once it is no longer required. ";
@@ -9227,8 +9238,8 @@ Xapian::Stopper::get_description";
 Start reference counting this object.
 
 Stopper * Xapian::Stopper::release() Xapian::Stopper::release You can
-hand ownership of a dynamically allocated Stopper object to Xapian by
-calling release() and then passing the object to a Xapian method.
+transfer ownership of a dynamically allocated Stopper object to Xapian
+by calling release() and then passing the object to a Xapian method.
 Xapian will arrange to delete the object once it is no longer
 required. ";
 
@@ -9237,7 +9248,7 @@ required. ";
 Start reference counting this object.
 
 const Stopper * Xapian::Stopper::release() const
-Xapian::Stopper::release You can hand ownership of a dynamically
+Xapian::Stopper::release You can transfer ownership of a dynamically
 allocated Stopper object to Xapian by calling release() and then
 passing the object to a Xapian method. Xapian will arrange to delete
 the object once it is no longer required. ";
@@ -9611,7 +9622,11 @@ Xapian::TermIterator::get_wdf";
 Return the term frequency for the term at the current position.
 
 Xapian::doccount Xapian::TermIterator::get_termfreq() const
-Xapian::TermIterator::get_termfreq";
+Xapian::TermIterator::get_termfreq Note that for a TermIterator
+returned by calling termlist_begin() on a Document object obtained
+from a sharded database, this method will return the term frequency
+from the shard that the document is in rather than for the combined
+database. ";
 
 %feature("docstring")  Xapian::TermIterator::positionlist_count "
 
@@ -11445,6 +11460,10 @@ replacement or deletion operation has either been fully performed or
 not performed at all: it is then up to the application to work out
 which operations need to be repeated.
 
+However, note that if called on a sharded database, atomicity isn't
+guaranteed between shards - it's possible for the changes to one shard
+to be committed but changes to another shard to fail.
+
 It's not valid to call commit() within a transaction.
 
 Beware of calling commit() too frequently: this will make indexing
@@ -11488,6 +11507,10 @@ either all will be applied simultaneously or none will be applied at
 all. Even in the case of a power failure, this characteristic should
 be preserved (as long as the filesystem isn't corrupted, etc).
 
+However, note that if called on a sharded database, atomicity isn't
+guaranteed between shards. Within each shard, the transaction will
+still act atomically.
+
 A transaction is started with begin_transaction() and can either be
 committed by calling commit_transaction() or aborted by calling
 cancel_transaction().
@@ -11545,6 +11568,10 @@ been applied to the database.
 
 In all cases the transaction will no longer be in progress.
 
+Note that if called on a sharded database, atomicity isn't guaranteed
+between shards. Within each shard, the transaction will still act
+atomically.
+
 Parameters:
 -----------
 
diff --git a/python3/python.i b/python3/python.i
index fa5fd43f0c38dcbd27f37e10a3d0448d8d1cf26d..0663a06e9228cfb7c7673ccd448bf6348b0a230c 100644
--- a/python3/python.i
+++ b/python3/python.i
@@ -2,7 +2,7 @@
 %{
 /* python.i: SWIG interface file for the Python bindings
  *
- * Copyright (C) 2011,2012,2013,2014,2015,2016,2018,2019,2021 Olly Betts
+ * Copyright (C) 2011-2023 Olly Betts
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -237,8 +237,11 @@ class XapianSWIG_Python_Thread_Allow {
 %nothreadallow Xapian::Query::Query(op op_, XapianSWIGQueryItor qbegin, XapianSWIGQueryItor qend, Xapian::termcount parameter = 0);
 
 %typemap(typecheck, precedence=500) (XapianSWIGQueryItor qbegin, XapianSWIGQueryItor qend) {
-    // Checking for a sequence is enough to disambiguate currently.
-    $1 = PySequence_Check($input);
+    // Checking for a sequence which isn't a string or bytes is enough to
+    // disambiguate currently.
+    $1 = (PySequence_Check($input) &&
+          !PyUnicode_Check($input) &&
+          !PyBytes_Check($input));
 }
 
 %{
diff --git a/python3/run-python-test b/python3/run-python-test
index 0ead46a788f8d8de27462af7990321f9923f2b70..3bd9411063fffdaeb49466818677c009545c6a66 100755
--- a/python3/run-python-test
+++ b/python3/run-python-test
@@ -1,5 +1,5 @@
 #!/bin/sh
-PYTHONPATH=".:$PYTHONPATH"
+PYTHONPATH=".${PYTHONPATH+:}$PYTHONPATH"
 export PYTHONPATH
 PYTHONDONTWRITEBYTECODE=1
 export PYTHONDONTWRITEBYTECODE
diff --git a/python3/smoketest.py b/python3/smoketest.py
index f0fd57df34021b4a3cfe34af6646020be72aacc7..e3133609068b29d8709d189fc61962da2bf8d908 100644
--- a/python3/smoketest.py
+++ b/python3/smoketest.py
@@ -1,7 +1,7 @@
 # Simple test to ensure that we can load the xapian module and exercise basic
 # functionality successfully.
 #
-# Copyright (C) 2004,2005,2006,2007,2008,2010,2011,2012,2013,2014,2015,2016,2017,2019 Olly Betts
+# Copyright (C) 2004-2023 Olly Betts
 # Copyright (C) 2007 Lemur Consulting Ltd
 #
 # This program is free software; you can redistribute it and/or
@@ -150,6 +150,16 @@ def test_all():
     expect_query(xapian.Query.MatchAll, "<alldocuments>")
     expect_query(xapian.Query.MatchNothing, "")
 
+    # Regression test for constructing OP_WILDCARD queries.
+    expect_query(xapian.Query(xapian.Query.OP_WILDCARD, "wild"),
+                 "WILDCARD SYNONYM wild")
+    expect_query(xapian.Query(xapian.Query.OP_WILDCARD, b"wild"),
+                 "WILDCARD SYNONYM wild")
+    expect_query(xapian.Query(xapian.Query.OP_WILDCARD, "wild", 0),
+                 "WILDCARD SYNONYM wild")
+    expect_query(xapian.Query(xapian.Query.OP_WILDCARD, b"wild", 0),
+                 "WILDCARD SYNONYM wild")
+
     # Feature test for Query.__iter__
     term_count = 0
     for term in query2:
diff --git a/python3/xapian.py b/python3/xapian__init__.py
similarity index 99%
rename from python3/xapian.py
rename to python3/xapian__init__.py
index 8de5b0e6165deebd1706f12d61a7998104e41d21..17bd3e51df861b0dfe910a0ba4d685a9c1fe1b10 100644
--- a/python3/xapian.py
+++ b/python3/xapian__init__.py
@@ -1,5 +1,5 @@
 # This file was automatically generated by SWIG (https://www.swig.org).
-# Version 4.1.1
+# Version 4.2.0
 #
 # Do not make changes to this file unless you know what you are doing - modify
 # the SWIG interface file instead.
@@ -40,7 +40,7 @@ def _swig_repr(self):
 import weakref
 
 
-__version__ = '1.4.22'
+__version__ = '1.4.25'
 
 class SwigPyIterator(object):
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
@@ -1306,6 +1306,7 @@ class TermGenerator(object):
     get_document = _swig_new_instance_method(_xapian.TermGenerator_get_document)
     set_database = _swig_new_instance_method(_xapian.TermGenerator_set_database)
     FLAG_SPELLING = _xapian.TermGenerator_FLAG_SPELLING
+    FLAG_NGRAMS = _xapian.TermGenerator_FLAG_NGRAMS
     FLAG_CJK_NGRAM = _xapian.TermGenerator_FLAG_CJK_NGRAM
     STEM_NONE = _xapian.TermGenerator_STEM_NONE
     STEM_SOME = _xapian.TermGenerator_STEM_SOME
@@ -1364,6 +1365,7 @@ class MSet(object):
     SNIPPET_BACKGROUND_MODEL = _xapian.MSet_SNIPPET_BACKGROUND_MODEL
     SNIPPET_EXHAUSTIVE = _xapian.MSet_SNIPPET_EXHAUSTIVE
     SNIPPET_EMPTY_WITHOUT_MATCH = _xapian.MSet_SNIPPET_EMPTY_WITHOUT_MATCH
+    SNIPPET_NGRAMS = _xapian.MSet_SNIPPET_NGRAMS
     SNIPPET_CJK_NGRAM = _xapian.MSet_SNIPPET_CJK_NGRAM
     snippet = _swig_new_instance_method(_xapian.MSet_snippet)
     fetch = _swig_new_instance_method(_xapian.MSet_fetch)
@@ -2341,6 +2343,7 @@ class QueryParser(object):
     FLAG_SYNONYM = _xapian.QueryParser_FLAG_SYNONYM
     FLAG_AUTO_SYNONYMS = _xapian.QueryParser_FLAG_AUTO_SYNONYMS
     FLAG_AUTO_MULTIWORD_SYNONYMS = _xapian.QueryParser_FLAG_AUTO_MULTIWORD_SYNONYMS
+    FLAG_NGRAMS = _xapian.QueryParser_FLAG_NGRAMS
     FLAG_CJK_NGRAM = _xapian.QueryParser_FLAG_CJK_NGRAM
     FLAG_ACCUMULATE = _xapian.QueryParser_FLAG_ACCUMULATE
     FLAG_NO_POSITIONS = _xapian.QueryParser_FLAG_NO_POSITIONS
diff --git a/python3/xapian_wrap.cc b/python3/xapian_wrap.cc
index d1fdb1a9b1d9eb1d361e211cded51ca1b53d04c2..8ba6cd1fd959f96843144483f50364bce893177b 100644
--- a/python3/xapian_wrap.cc
+++ b/python3/xapian_wrap.cc
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -144,7 +144,7 @@ class XapianSWIG_Python_Thread_Allow {
 
 
 
-#define SWIG_VERSION 0x040101
+#define SWIG_VERSION 0x040200
 #define SWIGPYTHON
 #define SWIG_DIRECTORS
 #define SWIG_PYTHON_THREADS
@@ -275,6 +275,32 @@ class XapianSWIG_Python_Thread_Allow {
 # pragma warning disable 592
 #endif
 
+#if __cplusplus >=201103L
+# define SWIG_NULLPTR nullptr
+#else
+# define SWIG_NULLPTR NULL
+#endif 
+
+
+/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
+ * if you're missing it.
+ */
+#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
+     (defined __cplusplus && __cplusplus >= 201103L) || \
+     defined SWIG_HAVE_SNPRINTF) && \
+    !defined SWIG_NO_SNPRINTF
+# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
+#else
+/* Fallback versions ignore the buffer size, but most of our uses either have a
+ * fixed maximum possible size or dynamically allocate a buffer that's large
+ * enough.
+ */
+# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
+#endif
+
+
 
 #if defined(__GNUC__) && defined(_WIN32) && !defined(SWIG_PYTHON_NO_HYPOT_WORKAROUND)
 /* Workaround for '::hypot' has not been declared', see https://bugs.python.org/issue11566 */
@@ -312,6 +338,8 @@ class XapianSWIG_Python_Thread_Allow {
 #pragma GCC diagnostic pop
 #endif
 
+#include <stdio.h>
+
 /* -----------------------------------------------------------------------------
  * swigrun.swg
  *
@@ -459,7 +487,7 @@ class XapianSWIG_Python_Thread_Allow {
 #define SWIG_CASTRANKLIMIT         (1 << 8)
 /* The NewMask denotes the object was created (using new/malloc) */
 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
-/* The TmpMask is for in/out typemaps that use temporal objects */
+/* The TmpMask is for in/out typemaps that use temporary objects */
 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
 /* Simple returning values */
 #define SWIG_BADOBJ                (SWIG_ERROR)
@@ -942,21 +970,29 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
 #endif
 
 
-SWIGINTERN char*
-SWIG_Python_str_AsChar(PyObject *str)
+/* Wrapper around PyUnicode_AsUTF8AndSize - call Py_XDECREF on the returned pbytes when finished with the returned string */
+SWIGINTERN const char *
+SWIG_PyUnicode_AsUTF8AndSize(PyObject *str, Py_ssize_t *psize, PyObject **pbytes)
 {
 #if PY_VERSION_HEX >= 0x03030000
-  return (char *)PyUnicode_AsUTF8(str);
+# if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000
+  *pbytes = NULL;
+  return PyUnicode_AsUTF8AndSize(str, psize);
+# else
+   *pbytes = PyUnicode_AsUTF8String(str);
+   const char *chars = *pbytes ? PyBytes_AsString(*pbytes) : NULL;
+   if (chars && psize)
+     *psize = PyBytes_Size(*pbytes);
+  return chars;
+# endif
 #else
-  return PyString_AsString(str);
+  char *chars = NULL;
+  *pbytes = NULL;
+  PyString_AsStringAndSize(str, &chars, psize);
+  return chars;
 #endif
 }
 
-/* Was useful for Python 3.0.x-3.2.x - now provided only for compatibility
- * with any uses in user interface files. */
-#define SWIG_Python_str_DelForPy3(x)
-
-
 SWIGINTERN PyObject*
 SWIG_Python_str_FromChar(const char *c)
 {
@@ -986,6 +1022,20 @@ SWIG_Python_str_FromChar(const char *c)
 #define Py_hash_t long
 #endif
 
+#ifdef Py_LIMITED_API
+# define PyTuple_GET_ITEM PyTuple_GetItem
+/* Note that PyTuple_SetItem() has different semantics from PyTuple_SET_ITEM as it decref's the original tuple item, so in general they cannot be used
+  interchangeably. However in SWIG-generated code PyTuple_SET_ITEM is only used with newly initialized tuples without any items and for them this does work. */
+# define PyTuple_SET_ITEM PyTuple_SetItem
+# define PyTuple_GET_SIZE PyTuple_Size
+# define PyCFunction_GET_FLAGS PyCFunction_GetFlags
+# define PyCFunction_GET_FUNCTION PyCFunction_GetFunction
+# define PyCFunction_GET_SELF PyCFunction_GetSelf
+# define PyList_GET_ITEM PyList_GetItem
+# define PyList_SET_ITEM PyList_SetItem
+# define PySliceObject PyObject
+#endif
+
 /* -----------------------------------------------------------------------------
  * error manipulation
  * ----------------------------------------------------------------------------- */
@@ -1045,13 +1095,15 @@ SWIG_Python_AddErrorMsg(const char* mesg)
     PyErr_Fetch(&type, &value, &traceback);
   if (value) {
     PyObject *old_str = PyObject_Str(value);
-    const char *tmp = SWIG_Python_str_AsChar(old_str);
+    PyObject *bytes = NULL;
+    const char *tmp = SWIG_PyUnicode_AsUTF8AndSize(old_str, NULL, &bytes);
     PyErr_Clear();
     Py_XINCREF(type);
     if (tmp)
       PyErr_Format(type, "%s %s", tmp, mesg);
     else
       PyErr_Format(type, "%s", mesg);
+    Py_XDECREF(bytes);
     Py_DECREF(old_str);
     Py_DECREF(value);
   } else {
@@ -1124,7 +1176,7 @@ SWIG_Python_RaiseOrModifyTypeError(const char *message)
          bool status;
          PyThreadState *save;
        public:
-         void end() { if (status) { PyEval_RestoreThread(save); status = false; }}
+         void end() { if (status) { status = false; PyEval_RestoreThread(save); }}
          SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {}
          ~SWIG_Python_Thread_Allow() { end(); }
        };
@@ -1534,6 +1586,7 @@ swig_varlink_setattr(PyObject *o, char *n, PyObject *p) {
 SWIGINTERN PyTypeObject*
 swig_varlink_type(void) {
   static char varlink__doc__[] = "Swig var link object";
+#ifndef Py_LIMITED_API
   static PyTypeObject varlink_type;
   static int type_init = 0;
   if (!type_init) {
@@ -1584,6 +1637,9 @@ swig_varlink_type(void) {
 #if (PY_VERSION_HEX >= 0x03080000) && (PY_VERSION_HEX < 0x03090000)
       0,                                  /* tp_print */
 #endif
+#if PY_VERSION_HEX >= 0x030C0000
+      0,                                  /* tp_watched */
+#endif
 #ifdef COUNT_ALLOCS
       0,                                  /* tp_allocs */
       0,                                  /* tp_frees */
@@ -1598,12 +1654,31 @@ swig_varlink_type(void) {
       return NULL;
   }
   return &varlink_type;
+#else
+  PyType_Slot slots[] = {
+    { Py_tp_dealloc, (void *)swig_varlink_dealloc },
+    { Py_tp_repr, (void *)swig_varlink_repr },
+    { Py_tp_getattr, (void *)swig_varlink_getattr },
+    { Py_tp_setattr, (void *)swig_varlink_setattr },
+    { Py_tp_str, (void *)swig_varlink_str },
+    { Py_tp_doc, (void *)varlink__doc__ },
+    { 0, NULL }
+  };
+  PyType_Spec spec = {
+    "swigvarlink",
+    sizeof(swig_varlinkobject),
+    0,
+    Py_TPFLAGS_DEFAULT,
+    slots
+  };
+  return (PyTypeObject *)PyType_FromSpec(&spec);
+#endif
 }
 
 /* Create a variable linking object for use later */
 SWIGINTERN PyObject *
 SWIG_Python_newvarlink(void) {
-  swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type());
+  swig_varlinkobject *result = PyObject_New(swig_varlinkobject, swig_varlink_type());
   if (result) {
     result->vars = 0;
   }
@@ -1876,12 +1951,14 @@ SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w)
 SWIGRUNTIME PyObject*
 SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op)
 {
-  PyObject* res;
-  if( op != Py_EQ && op != Py_NE ) {
-    Py_INCREF(Py_NotImplemented);
-    return Py_NotImplemented;
+  PyObject* res = NULL;
+  if (!PyErr_Occurred()) {
+    if (op != Py_EQ && op != Py_NE) {
+      Py_INCREF(Py_NotImplemented);
+      return Py_NotImplemented;
+    }
+    res = PyBool_FromLong( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ? 1 : 0);
   }
-  res = PyBool_FromLong( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ? 1 : 0);
   return res;  
 }
 
@@ -1909,14 +1986,26 @@ SwigPyObject_type(void) {
 
 SWIGRUNTIMEINLINE int
 SwigPyObject_Check(PyObject *op) {
-#ifdef SWIGPYTHON_BUILTIN
   PyTypeObject *target_tp = SwigPyObject_type();
-  if (PyType_IsSubtype(op->ob_type, target_tp))
+  PyTypeObject *op_type = Py_TYPE(op);
+#ifdef SWIGPYTHON_BUILTIN
+  if (PyType_IsSubtype(op_type, target_tp))
     return 1;
-  return (strcmp(op->ob_type->tp_name, "SwigPyObject") == 0);
+  return (strcmp(op_type->tp_name, "SwigPyObject") == 0);
 #else
-  return (Py_TYPE(op) == SwigPyObject_type())
-    || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0);
+  if (op_type == target_tp)
+    return 1;
+# ifdef Py_LIMITED_API
+  int cmp;
+  PyObject *tp_name = PyObject_GetAttrString((PyObject *)op_type, "__name__");
+  if (!tp_name)
+    return 0;
+  cmp = PyUnicode_CompareWithASCIIString(tp_name, "SwigPyObject");
+  Py_DECREF(tp_name);
+  return cmp == 0;
+# else
+  return (strcmp(op_type->tp_name, "SwigPyObject") == 0);
+# endif
 #endif
 }
 
@@ -2060,7 +2149,7 @@ swigobject_methods[] = {
 SWIGRUNTIME PyTypeObject*
 SwigPyObject_TypeOnce(void) {
   static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer";
-
+#ifndef Py_LIMITED_API
   static PyNumberMethods SwigPyObject_as_number = {
     (binaryfunc)0, /*nb_add*/
     (binaryfunc)0, /*nb_subtract*/
@@ -2178,6 +2267,9 @@ SwigPyObject_TypeOnce(void) {
 #if (PY_VERSION_HEX >= 0x03080000) && (PY_VERSION_HEX < 0x03090000)
       0,                                    /* tp_print */
 #endif
+#if PY_VERSION_HEX >= 0x030C0000
+      0,                                    /* tp_watched */
+#endif
 #ifdef COUNT_ALLOCS
       0,                                    /* tp_allocs */
       0,                                    /* tp_frees */
@@ -2192,12 +2284,32 @@ SwigPyObject_TypeOnce(void) {
       return NULL;
   }
   return &swigpyobject_type;
+#else
+  PyType_Slot slots[] = {
+    { Py_tp_dealloc, (void *)SwigPyObject_dealloc },
+    { Py_tp_repr, (void *)SwigPyObject_repr },
+    { Py_tp_getattro, (void *)PyObject_GenericGetAttr },
+    { Py_tp_doc, (void *)swigobject_doc },
+    { Py_tp_richcompare, (void *)SwigPyObject_richcompare },
+    { Py_tp_methods, (void *)swigobject_methods },
+    { Py_nb_int, (void *)SwigPyObject_long },
+    { 0, NULL }
+  };
+  PyType_Spec spec = {
+    "SwigPyObject",
+    sizeof(SwigPyObject),
+    0,
+    Py_TPFLAGS_DEFAULT,
+    slots
+  };
+  return (PyTypeObject *)PyType_FromSpec(&spec);
+#endif
 }
 
 SWIGRUNTIME PyObject *
 SwigPyObject_New(void *ptr, swig_type_info *ty, int own)
 {
-  SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type());
+  SwigPyObject *sobj = PyObject_New(SwigPyObject, SwigPyObject_type());
   if (sobj) {
     sobj->ptr  = ptr;
     sobj->ty   = ty;
@@ -2268,8 +2380,20 @@ SwigPyPacked_type(void) {
 
 SWIGRUNTIMEINLINE int
 SwigPyPacked_Check(PyObject *op) {
-  return ((op)->ob_type == SwigPyPacked_TypeOnce()) 
-    || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0);
+  PyTypeObject* op_type = Py_TYPE(op);
+  if (op_type == SwigPyPacked_TypeOnce())
+    return 1;
+#ifdef Py_LIMITED_API
+  int cmp;
+  PyObject *tp_name = PyObject_GetAttrString((PyObject *)op_type, "__name__");
+  if (!tp_name)
+    return 0;
+  cmp = PyUnicode_CompareWithASCIIString(tp_name, "SwigPyPacked");
+  Py_DECREF(tp_name);
+  return cmp == 0;
+#else
+  return (strcmp(op_type->tp_name, "SwigPyPacked") == 0);
+#endif
 }
 
 SWIGRUNTIME void
@@ -2285,6 +2409,7 @@ SwigPyPacked_dealloc(PyObject *v)
 SWIGRUNTIME PyTypeObject*
 SwigPyPacked_TypeOnce(void) {
   static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer";
+#ifndef Py_LIMITED_API
   static PyTypeObject swigpypacked_type;
   static int type_init = 0;
   if (!type_init) {
@@ -2358,6 +2483,9 @@ SwigPyPacked_TypeOnce(void) {
 #if (PY_VERSION_HEX >= 0x03080000) && (PY_VERSION_HEX < 0x03090000)
       0,                                    /* tp_print */
 #endif
+#if PY_VERSION_HEX >= 0x030C0000
+      0,                                    /* tp_watched */
+#endif
 #ifdef COUNT_ALLOCS
       0,                                    /* tp_allocs */
       0,                                    /* tp_frees */
@@ -2372,12 +2500,30 @@ SwigPyPacked_TypeOnce(void) {
       return NULL;
   }
   return &swigpypacked_type;
+#else
+  PyType_Slot slots[] = {
+    { Py_tp_dealloc, (void *)SwigPyPacked_dealloc },
+    { Py_tp_repr, (void *)SwigPyPacked_repr },
+    { Py_tp_str, (void *)SwigPyPacked_str },
+    { Py_tp_getattro, (void *)PyObject_GenericGetAttr },
+    { Py_tp_doc, (void *)swigpacked_doc },
+    { 0, NULL }
+  };
+  PyType_Spec spec = {
+    "SwigPyPacked",
+    sizeof(SwigPyPacked),
+    0,
+    Py_TPFLAGS_DEFAULT,
+    slots
+  };
+  return (PyTypeObject *)PyType_FromSpec(&spec);
+#endif
 }
 
 SWIGRUNTIME PyObject *
 SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty)
 {
-  SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type());
+  SwigPyPacked *sobj = PyObject_New(SwigPyPacked, SwigPyPacked_type());
   if (sobj) {
     void *pack = malloc(size);
     if (pack) {
@@ -2629,10 +2775,20 @@ SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
     swig_cast_info *tc;
 
     /* here we get the method pointer for callbacks */
+#ifndef Py_LIMITED_API
     const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
+#else
+    PyObject* pystr_doc = PyObject_GetAttrString(obj, "__doc__");
+    PyObject *bytes = NULL;
+    const char *doc = pystr_doc ? SWIG_PyUnicode_AsUTF8AndSize(pystr_doc, NULL, &bytes) : 0;
+#endif
     const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
     if (desc)
       desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
+#ifdef Py_LIMITED_API
+    Py_XDECREF(bytes);
+    Py_XDECREF(pystr_doc);
+#endif
     if (!desc)
       return SWIG_ERROR;
     tc = SWIG_TypeCheck(desc,ty);
@@ -2708,7 +2864,12 @@ SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this)
     if (empty_args) {
       PyObject *empty_kwargs = PyDict_New();
       if (empty_kwargs) {
-        inst = ((PyTypeObject *)data->newargs)->tp_new((PyTypeObject *)data->newargs, empty_args, empty_kwargs);
+#ifndef Py_LIMITED_API
+        newfunc newfn = ((PyTypeObject *)data->newargs)->tp_new;
+#else
+        newfunc newfn = (newfunc)PyType_GetSlot((PyTypeObject *)data->newargs, Py_tp_new);
+#endif
+        inst = newfn((PyTypeObject *)data->newargs, empty_args, empty_kwargs);
         Py_DECREF(empty_kwargs);
         if (inst) {
           if (PyObject_SetAttr(inst, SWIG_This(), swig_this) == -1) {
@@ -2790,7 +2951,12 @@ SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int f
     if (flags & SWIG_BUILTIN_TP_INIT) {
       newobj = (SwigPyObject*) self;
       if (newobj->ptr) {
-        PyObject *next_self = clientdata->pytype->tp_alloc(clientdata->pytype, 0);
+#ifndef Py_LIMITED_API
+        allocfunc alloc = clientdata->pytype->tp_alloc;
+#else
+        allocfunc alloc = (allocfunc)PyType_GetSlot(clientdata->pytype, Py_tp_alloc);
+#endif
+        PyObject *next_self = alloc(clientdata->pytype, 0);
         while (newobj->next)
 	  newobj = (SwigPyObject *) newobj->next;
         newobj->next = next_self;
@@ -2873,7 +3039,7 @@ SWIG_Python_GetModule(void *SWIGUNUSEDPARM(clientdata)) {
 }
 
 
-static int interpreter_counter = 0; // how many (sub-)interpreters are using swig_module's types
+static int interpreter_counter = 0; /* how many (sub-)interpreters are using swig_module's types */
 
 SWIGRUNTIME void
 SWIG_Python_DestroyModule(PyObject *obj)
@@ -2881,7 +3047,7 @@ SWIG_Python_DestroyModule(PyObject *obj)
   swig_module_info *swig_module = (swig_module_info *) PyCapsule_GetPointer(obj, SWIGPY_CAPSULE_NAME);
   swig_type_info **types = swig_module->types;
   size_t i;
-  if (--interpreter_counter != 0) // another sub-interpreter may still be using the swig_module's types
+  if (--interpreter_counter != 0) /* another sub-interpreter may still be using the swig_module's types */
     return;
   for (i =0; i < swig_module->size; ++i) {
     swig_type_info *ty = types[i];
@@ -2963,7 +3129,8 @@ SWIG_Python_AddErrMesg(const char* mesg, int infront)
     PyErr_Fetch(&type, &value, &traceback);
     if (value) {
       PyObject *old_str = PyObject_Str(value);
-      const char *tmp = SWIG_Python_str_AsChar(old_str);
+      PyObject *bytes = NULL;
+      const char *tmp = SWIG_PyUnicode_AsUTF8AndSize(old_str, NULL, &bytes);
       const char *errmesg = tmp ? tmp : "Invalid error message";
       Py_XINCREF(type);
       PyErr_Clear();
@@ -2972,6 +3139,7 @@ SWIG_Python_AddErrMesg(const char* mesg, int infront)
       } else {
 	PyErr_Format(type, "%s %s", errmesg, mesg);
       }
+      Py_XDECREF(bytes);
       Py_DECREF(old_str);
     }
     return 1;
@@ -3016,10 +3184,13 @@ SWIG_Python_TypeError(const char *type, PyObject *obj)
     } else 
 #endif      
     {
+#ifndef Py_LIMITED_API
+      /* tp_name is not accessible */
       const char *otype = (obj ? obj->ob_type->tp_name : 0); 
       if (otype) {
 	PyObject *str = PyObject_Str(obj);
-	const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0;
+	PyObject *bytes = NULL;
+	const char *cstr = str ? SWIG_PyUnicode_AsUTF8AndSize(str, NULL, &bytes) : 0;
 	if (cstr) {
 	  PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received",
 		       type, otype, cstr);
@@ -3027,9 +3198,11 @@ SWIG_Python_TypeError(const char *type, PyObject *obj)
 	  PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
 		       type, otype);
 	}
+	Py_XDECREF(bytes);
 	Py_XDECREF(str);
 	return;
       }
+#endif
     }   
     PyErr_Format(PyExc_TypeError, "a '%s' is expected", type);
   } else {
@@ -3164,6 +3337,24 @@ SWIGINTERN PyObject *SWIG_PyStaticMethod_New(PyObject *SWIGUNUSEDPARM(self), PyO
 #include <vector>
 #include <map>
 
+#if defined(SWIG_PYTHON_THREADS)
+/*  __THREAD__ is the old macro to activate some thread support */
+# if !defined(__THREAD__)
+#   define __THREAD__ 1
+# endif
+#endif
+
+#ifdef __THREAD__
+#ifndef Py_LIMITED_API
+# include "pythread.h"
+#else
+# if defined(_WIN32)
+#   include <windows.h>
+# else
+#   include <pthread.h>
+# endif
+#endif
+#endif
 
 /*
   Use -DSWIG_PYTHON_DIRECTOR_NO_VTABLE if you don't want to generate a 'virtual
@@ -3323,7 +3514,7 @@ namespace Swig {
         swig_msg += msg;
       }
       if (!PyErr_Occurred()) {
-        PyErr_SetString(error, what());
+        PyErr_SetString(error, swig_msg.c_str());
       }
       SWIG_PYTHON_THREAD_END_BLOCK;
     }
@@ -3394,25 +3585,89 @@ namespace Swig {
   };
 
 
-#if defined(SWIG_PYTHON_THREADS)
-/*  __THREAD__ is the old macro to activate some thread support */
-# if !defined(__THREAD__)
-#   define __THREAD__ 1
-# endif
-#endif
-
 #ifdef __THREAD__
-# include "pythread.h"
+#ifndef Py_LIMITED_API
+   class Mutex
+   {
+   public:
+       Mutex() {
+           mutex_ = PyThread_allocate_lock();
+       }
+
+       ~Mutex() {
+           PyThread_release_lock(mutex_);
+       }
+
+   private:
+       void Lock() {
+           PyThread_acquire_lock(mutex_, WAIT_LOCK);
+       }
+
+       void Unlock() {
+           PyThread_free_lock(mutex_);
+       }
+
+       PyThread_type_lock mutex_;
+
+       friend class Guard;
+   };
+#elif defined(_WIN32)
+    class Mutex : private CRITICAL_SECTION {
+    public:
+        Mutex() {
+            InitializeCriticalSection(this);
+        }
+
+        ~Mutex() {
+            DeleteCriticalSection(this);
+        }
+
+    private:
+        void Lock() {
+            EnterCriticalSection(this);
+        }
+
+        void Unlock() {
+            LeaveCriticalSection(this);
+        }
+
+        friend class Guard;
+    };
+#else
+    class Mutex {
+    public:
+        Mutex() {
+            pthread_mutex_init(&mutex_, NULL);
+        }
+
+        ~Mutex() {
+            pthread_mutex_destroy(&mutex_);
+        }
+
+    private:
+        void Lock() {
+            pthread_mutex_lock(&mutex_);
+        }
+
+        void Unlock() {
+            pthread_mutex_unlock(&mutex_);
+        }
+
+        friend class Guard;
+
+        pthread_mutex_t mutex_;
+    };
+#endif
   class Guard {
-    PyThread_type_lock &mutex_;
+    Mutex &mutex_;
 
   public:
-    Guard(PyThread_type_lock & mutex) : mutex_(mutex) {
-      PyThread_acquire_lock(mutex_, WAIT_LOCK);
+    Guard(Mutex & mutex) : mutex_(mutex) {
+      mutex_.Lock();
     }
 
     ~Guard() {
-      PyThread_release_lock(mutex_);
+      mutex_.Unlock();
     }
   };
 # define SWIG_GUARD(mutex) Guard _guard(mutex)
@@ -3480,7 +3735,7 @@ namespace Swig {
     typedef std::map<void *, GCItem_var> swig_ownership_map;
     mutable swig_ownership_map swig_owner;
 #ifdef __THREAD__
-    static PyThread_type_lock swig_mutex_own;
+    static Mutex swig_mutex_own;
 #endif
 
   public:
@@ -3532,7 +3787,7 @@ namespace Swig {
   };
 
 #ifdef __THREAD__
-  PyThread_type_lock Director::swig_mutex_own = PyThread_allocate_lock();
+  Mutex Director::swig_mutex_own;
 #endif
 }
 
@@ -3800,7 +4055,7 @@ namespace swig {
 
 /* python.i: SWIG interface file for the Python bindings
  *
- * Copyright (C) 2011,2012,2013,2014,2015,2016,2018,2019,2021 Olly Betts
+ * Copyright (C) 2011-2023 Olly Betts
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -4112,9 +4367,11 @@ SWIGINTERNINLINE int
 SWIG_CanCastAsInteger(double *d, double min, double max) {
   double x = *d;
   if ((min <= x && x <= max)) {
-   double fx = floor(x);
-   double cx = ceil(x);
-   double rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
+   double fx, cx, rd;
+   errno = 0;
+   fx = floor(x);
+   cx = ceil(x);
+   rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
    if ((errno == EDOM) || (errno == ERANGE)) {
      errno = 0;
    } else {
@@ -4175,7 +4432,11 @@ SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val)
     if (!dispatch) {
       double d;
       int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
-      if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) {
+      // Largest double not larger than ULONG_MAX (not portably calculated easily)
+      // Note that double(ULONG_MAX) is stored in a double rounded up by one (for 64-bit unsigned long)
+      // 0xfffffffffffff800ULL == (uint64_t)std::nextafter(double(__uint128_t(ULONG_MAX)+1), double(0))
+      const double ulong_max = sizeof(unsigned long) == 8 ? 0xfffffffffffff800ULL : ULONG_MAX;
+      if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ulong_max)) {
 	if (val) *val = (unsigned long)(d);
 	return res;
       }
@@ -4331,7 +4592,12 @@ SWIG_AsVal_long (PyObject *obj, long* val)
     if (!dispatch) {
       double d;
       int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
-      if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
+      // Largest double not larger than LONG_MAX (not portably calculated easily)
+      // Note that double(LONG_MAX) is stored in a double rounded up by one (for 64-bit long)
+      // 0x7ffffffffffffc00LL == (int64_t)std::nextafter(double(__uint128_t(LONG_MAX)+1), double(0))
+      const double long_max = sizeof(long) == 8 ? 0x7ffffffffffffc00LL : LONG_MAX;
+      // No equivalent needed for 64-bit double(LONG_MIN) is exactly LONG_MIN
+      if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, long_max)) {
 	if (val) *val = (long)(d);
 	return res;
       }
@@ -4623,8 +4889,10 @@ SWIGINTERN std::string Xapian_Error___str__(Xapian::Error const *self){
 	return desc;
     }
 
+/* Return string from Python obj. NOTE: obj must remain in scope in order
+   to use the returned cptr (but only when alloc is set to SWIG_OLDOBJ) */
 SWIGINTERN int
-SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
+SWIG_AsCharPtrAndSize(PyObject *obj, char **cptr, size_t *psize, int *alloc)
 {
 #if PY_VERSION_HEX>=0x03000000
 #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
@@ -4637,55 +4905,31 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
 #endif
   {
     char *cstr; Py_ssize_t len;
+    PyObject *bytes = NULL;
     int ret = SWIG_OK;
-#if PY_VERSION_HEX>=0x03000000
-#if !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
-    if (!alloc && cptr) {
-        /* We can't allow converting without allocation, since the internal
-           representation of string in Python 3 is UCS-2/UCS-4 but we require
-           a UTF-8 representation.
-           TODO(bhy) More detailed explanation */
-        return SWIG_RuntimeError;
-    }
-    obj = PyUnicode_AsUTF8String(obj);
-    if (!obj)
-      return SWIG_TypeError;
     if (alloc)
-      *alloc = SWIG_NEWOBJ;
-#endif
+      *alloc = SWIG_OLDOBJ;
+#if PY_VERSION_HEX>=0x03000000 && defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
     if (PyBytes_AsStringAndSize(obj, &cstr, &len) == -1)
       return SWIG_TypeError;
 #else
-    if (PyString_AsStringAndSize(obj, &cstr, &len) == -1)
+    cstr = (char *)SWIG_PyUnicode_AsUTF8AndSize(obj, &len, &bytes);
+    if (!cstr)
       return SWIG_TypeError;
-#endif
-    if (cptr) {
+    /* The returned string is only duplicated if the char * returned is not owned and memory managed by obj */
+    if (bytes && cptr) {
       if (alloc) {
-	if (*alloc == SWIG_NEWOBJ) {
-	  *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1)));
-	  *alloc = SWIG_NEWOBJ;
-	} else {
-	  *cptr = cstr;
-	  *alloc = SWIG_OLDOBJ;
-	}
+        cstr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1)));
+        *alloc = SWIG_NEWOBJ;
       } else {
-#if PY_VERSION_HEX>=0x03000000
-#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
-	*cptr = PyBytes_AsString(obj);
-#else
-	assert(0); /* Should never reach here with Unicode strings in Python 3 */
-#endif
-#else
-	*cptr = SWIG_Python_str_AsChar(obj);
-        if (!*cptr)
-          ret = SWIG_TypeError;
-#endif
+        /* alloc must be set in order to clean up allocated memory */
+        return SWIG_RuntimeError;
       }
     }
-    if (psize) *psize = len + 1;
-#if PY_VERSION_HEX>=0x03000000 && !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
-    Py_XDECREF(obj);
 #endif
+    if (cptr) *cptr = cstr;
+    if (psize) *psize = len + 1;
+    Py_XDECREF(bytes);
     return ret;
   } else {
 #if defined(SWIG_PYTHON_2_UNICODE)
@@ -5142,7 +5386,7 @@ SWIGINTERN bool Xapian_ESetIterator_equals(Xapian::ESetIterator const *self,Xapi
 SWIGINTERN std::string Xapian_ESetIterator_get_term(Xapian::ESetIterator const *self){ return **self; }
 SWIGINTERN void Xapian_ESetIterator_next(Xapian::ESetIterator *self){ ++(*self); }
 SWIGINTERN void Xapian_ESetIterator_prev(Xapian::ESetIterator *self){ --(*self); }
-SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_2(std::string const &file){
+SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_1(std::string const &file){
 	ifstream in_file(file.c_str());
 	if (!in_file.is_open())
 	    throw Xapian::InvalidArgumentError("Stopword file not found: " + file);
@@ -7593,6 +7837,7 @@ SWIGINTERN PyObject *_wrap_delete_SwigPyIterator(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_DISOWN |  0 );
@@ -7620,6 +7865,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_value(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   PyObject *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
@@ -7657,6 +7903,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_incr__SWIG_0(PyObject *self, Py_ssize_
   int ecode2 = 0 ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -7695,6 +7942,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_incr__SWIG_1(PyObject *self, Py_ssize_
   int res1 = 0 ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -7759,6 +8007,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_decr__SWIG_0(PyObject *self, Py_ssize_
   int ecode2 = 0 ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -7797,6 +8046,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_decr__SWIG_1(PyObject *self, Py_ssize_
   int res1 = 0 ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -7862,6 +8112,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_distance(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   ptrdiff_t result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator_distance", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -7903,6 +8154,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_equal(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator_equal", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -7941,6 +8193,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_copy(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
@@ -7968,6 +8221,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_next(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   PyObject *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
@@ -8003,6 +8257,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___next__(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   PyObject *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
@@ -8038,6 +8293,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_previous(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   PyObject *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
@@ -8076,6 +8332,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator_advance(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator_advance", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8118,6 +8375,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___eq__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8140,6 +8398,9 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___eq__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -8157,6 +8418,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___ne__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8179,6 +8441,9 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___ne__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -8196,6 +8461,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___iadd__(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator___iadd__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8238,6 +8504,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___isub__(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator___isub__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8280,6 +8547,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___add__(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator___add__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8307,6 +8575,9 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___add__(PyObject *self, PyObject *args
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -8323,6 +8594,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___sub____SWIG_0(PyObject *self, Py_ssi
   int ecode2 = 0 ;
   swig::SwigPyIterator *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8350,6 +8622,9 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___sub____SWIG_0(PyObject *self, Py_ssi
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -8366,6 +8641,7 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___sub____SWIG_1(PyObject *self, Py_ssi
   int res2 = 0 ;
   ptrdiff_t result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -8388,6 +8664,9 @@ SWIGINTERN PyObject *_wrap_SwigPyIterator___sub____SWIG_1(PyObject *self, Py_ssi
   resultobj = SWIG_From_ptrdiff_t(static_cast< ptrdiff_t >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -8440,6 +8719,7 @@ SWIGINTERN PyObject *_wrap_Error_get_type(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   char *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Error, 0 |  0 );
@@ -8469,6 +8749,7 @@ SWIGINTERN PyObject *_wrap_Error_get_msg(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Error, 0 |  0 );
@@ -8496,6 +8777,7 @@ SWIGINTERN PyObject *_wrap_Error_get_context(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Error, 0 |  0 );
@@ -8523,6 +8805,7 @@ SWIGINTERN PyObject *_wrap_Error_get_error_string(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   char *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Error, 0 |  0 );
@@ -8552,6 +8835,7 @@ SWIGINTERN PyObject *_wrap_Error___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Error, 0 |  0 );
@@ -8578,6 +8862,7 @@ SWIGINTERN PyObject *_wrap_delete_Error(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Error, SWIG_POINTER_DISOWN |  0 );
@@ -8618,6 +8903,7 @@ SWIGINTERN PyObject *_wrap_delete_LogicError(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LogicError, SWIG_POINTER_DISOWN |  0 );
@@ -8658,6 +8944,7 @@ SWIGINTERN PyObject *_wrap_delete_RuntimeError(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RuntimeError, SWIG_POINTER_DISOWN |  0 );
@@ -8703,6 +8990,7 @@ SWIGINTERN PyObject *_wrap_new_AssertionError__SWIG_0(PyObject *self, Py_ssize_t
   int alloc3 = 0 ;
   Xapian::AssertionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -8762,6 +9050,7 @@ SWIGINTERN PyObject *_wrap_new_AssertionError__SWIG_1(PyObject *self, Py_ssize_t
   int ecode3 = 0 ;
   Xapian::AssertionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -8816,6 +9105,7 @@ SWIGINTERN PyObject *_wrap_new_AssertionError__SWIG_2(PyObject *self, Py_ssize_t
   int res2 = SWIG_OLDOBJ ;
   Xapian::AssertionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -8863,6 +9153,7 @@ SWIGINTERN PyObject *_wrap_new_AssertionError__SWIG_3(PyObject *self, Py_ssize_t
   int res1 = SWIG_OLDOBJ ;
   Xapian::AssertionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -8899,6 +9190,7 @@ SWIGINTERN PyObject *_wrap_new_AssertionError__SWIG_4(PyObject *self, Py_ssize_t
   int ecode2 = 0 ;
   Xapian::AssertionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9000,6 +9292,7 @@ SWIGINTERN PyObject *_wrap_delete_AssertionError(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__AssertionError, SWIG_POINTER_DISOWN |  0 );
@@ -9049,6 +9342,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidArgumentError__SWIG_0(PyObject *self, Py_s
   int alloc3 = 0 ;
   Xapian::InvalidArgumentError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9108,6 +9402,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidArgumentError__SWIG_1(PyObject *self, Py_s
   int ecode3 = 0 ;
   Xapian::InvalidArgumentError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9162,6 +9457,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidArgumentError__SWIG_2(PyObject *self, Py_s
   int res2 = SWIG_OLDOBJ ;
   Xapian::InvalidArgumentError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9209,6 +9505,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidArgumentError__SWIG_3(PyObject *self, Py_s
   int res1 = SWIG_OLDOBJ ;
   Xapian::InvalidArgumentError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9245,6 +9542,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidArgumentError__SWIG_4(PyObject *self, Py_s
   int ecode2 = 0 ;
   Xapian::InvalidArgumentError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9346,6 +9644,7 @@ SWIGINTERN PyObject *_wrap_delete_InvalidArgumentError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__InvalidArgumentError, SWIG_POINTER_DISOWN |  0 );
@@ -9395,6 +9694,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidOperationError__SWIG_0(PyObject *self, Py_
   int alloc3 = 0 ;
   Xapian::InvalidOperationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9454,6 +9754,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidOperationError__SWIG_1(PyObject *self, Py_
   int ecode3 = 0 ;
   Xapian::InvalidOperationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9508,6 +9809,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidOperationError__SWIG_2(PyObject *self, Py_
   int res2 = SWIG_OLDOBJ ;
   Xapian::InvalidOperationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9555,6 +9857,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidOperationError__SWIG_3(PyObject *self, Py_
   int res1 = SWIG_OLDOBJ ;
   Xapian::InvalidOperationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9591,6 +9894,7 @@ SWIGINTERN PyObject *_wrap_new_InvalidOperationError__SWIG_4(PyObject *self, Py_
   int ecode2 = 0 ;
   Xapian::InvalidOperationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9692,6 +9996,7 @@ SWIGINTERN PyObject *_wrap_delete_InvalidOperationError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__InvalidOperationError, SWIG_POINTER_DISOWN |  0 );
@@ -9741,6 +10046,7 @@ SWIGINTERN PyObject *_wrap_new_UnimplementedError__SWIG_0(PyObject *self, Py_ssi
   int alloc3 = 0 ;
   Xapian::UnimplementedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9800,6 +10106,7 @@ SWIGINTERN PyObject *_wrap_new_UnimplementedError__SWIG_1(PyObject *self, Py_ssi
   int ecode3 = 0 ;
   Xapian::UnimplementedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9854,6 +10161,7 @@ SWIGINTERN PyObject *_wrap_new_UnimplementedError__SWIG_2(PyObject *self, Py_ssi
   int res2 = SWIG_OLDOBJ ;
   Xapian::UnimplementedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9901,6 +10209,7 @@ SWIGINTERN PyObject *_wrap_new_UnimplementedError__SWIG_3(PyObject *self, Py_ssi
   int res1 = SWIG_OLDOBJ ;
   Xapian::UnimplementedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -9937,6 +10246,7 @@ SWIGINTERN PyObject *_wrap_new_UnimplementedError__SWIG_4(PyObject *self, Py_ssi
   int ecode2 = 0 ;
   Xapian::UnimplementedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10038,6 +10348,7 @@ SWIGINTERN PyObject *_wrap_delete_UnimplementedError(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__UnimplementedError, SWIG_POINTER_DISOWN |  0 );
@@ -10087,6 +10398,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseError__SWIG_0(PyObject *self, Py_ssize_t
   int alloc3 = 0 ;
   Xapian::DatabaseError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10146,6 +10458,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseError__SWIG_1(PyObject *self, Py_ssize_t
   int ecode3 = 0 ;
   Xapian::DatabaseError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10200,6 +10513,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseError__SWIG_2(PyObject *self, Py_ssize_t
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10247,6 +10561,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseError__SWIG_3(PyObject *self, Py_ssize_t
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10283,6 +10598,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseError__SWIG_4(PyObject *self, Py_ssize_t
   int ecode2 = 0 ;
   Xapian::DatabaseError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10384,6 +10700,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseError(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseError, SWIG_POINTER_DISOWN |  0 );
@@ -10433,6 +10750,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCorruptError__SWIG_0(PyObject *self, Py_s
   int alloc3 = 0 ;
   Xapian::DatabaseCorruptError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10492,6 +10810,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCorruptError__SWIG_1(PyObject *self, Py_s
   int ecode3 = 0 ;
   Xapian::DatabaseCorruptError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10546,6 +10865,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCorruptError__SWIG_2(PyObject *self, Py_s
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseCorruptError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10593,6 +10913,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCorruptError__SWIG_3(PyObject *self, Py_s
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseCorruptError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10629,6 +10950,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCorruptError__SWIG_4(PyObject *self, Py_s
   int ecode2 = 0 ;
   Xapian::DatabaseCorruptError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10730,6 +11052,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseCorruptError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseCorruptError, SWIG_POINTER_DISOWN |  0 );
@@ -10779,6 +11102,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCreateError__SWIG_0(PyObject *self, Py_ss
   int alloc3 = 0 ;
   Xapian::DatabaseCreateError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10838,6 +11162,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCreateError__SWIG_1(PyObject *self, Py_ss
   int ecode3 = 0 ;
   Xapian::DatabaseCreateError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10892,6 +11217,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCreateError__SWIG_2(PyObject *self, Py_ss
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseCreateError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10939,6 +11265,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCreateError__SWIG_3(PyObject *self, Py_ss
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseCreateError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -10975,6 +11302,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseCreateError__SWIG_4(PyObject *self, Py_ss
   int ecode2 = 0 ;
   Xapian::DatabaseCreateError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11076,6 +11404,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseCreateError(PyObject *self, PyObject *
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseCreateError, SWIG_POINTER_DISOWN |  0 );
@@ -11125,6 +11454,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseLockError__SWIG_0(PyObject *self, Py_ssiz
   int alloc3 = 0 ;
   Xapian::DatabaseLockError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11184,6 +11514,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseLockError__SWIG_1(PyObject *self, Py_ssiz
   int ecode3 = 0 ;
   Xapian::DatabaseLockError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11238,6 +11569,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseLockError__SWIG_2(PyObject *self, Py_ssiz
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseLockError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11285,6 +11617,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseLockError__SWIG_3(PyObject *self, Py_ssiz
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseLockError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11321,6 +11654,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseLockError__SWIG_4(PyObject *self, Py_ssiz
   int ecode2 = 0 ;
   Xapian::DatabaseLockError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11422,6 +11756,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseLockError(PyObject *self, PyObject *ar
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseLockError, SWIG_POINTER_DISOWN |  0 );
@@ -11471,6 +11806,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseModifiedError__SWIG_0(PyObject *self, Py_
   int alloc3 = 0 ;
   Xapian::DatabaseModifiedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11530,6 +11866,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseModifiedError__SWIG_1(PyObject *self, Py_
   int ecode3 = 0 ;
   Xapian::DatabaseModifiedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11584,6 +11921,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseModifiedError__SWIG_2(PyObject *self, Py_
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseModifiedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11631,6 +11969,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseModifiedError__SWIG_3(PyObject *self, Py_
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseModifiedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11667,6 +12006,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseModifiedError__SWIG_4(PyObject *self, Py_
   int ecode2 = 0 ;
   Xapian::DatabaseModifiedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11768,6 +12108,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseModifiedError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseModifiedError, SWIG_POINTER_DISOWN |  0 );
@@ -11817,6 +12158,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseOpeningError__SWIG_0(PyObject *self, Py_s
   int alloc3 = 0 ;
   Xapian::DatabaseOpeningError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11876,6 +12218,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseOpeningError__SWIG_1(PyObject *self, Py_s
   int ecode3 = 0 ;
   Xapian::DatabaseOpeningError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11930,6 +12273,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseOpeningError__SWIG_2(PyObject *self, Py_s
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseOpeningError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -11977,6 +12321,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseOpeningError__SWIG_3(PyObject *self, Py_s
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseOpeningError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12013,6 +12358,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseOpeningError__SWIG_4(PyObject *self, Py_s
   int ecode2 = 0 ;
   Xapian::DatabaseOpeningError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12114,6 +12460,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseOpeningError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseOpeningError, SWIG_POINTER_DISOWN |  0 );
@@ -12163,6 +12510,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseVersionError__SWIG_0(PyObject *self, Py_s
   int alloc3 = 0 ;
   Xapian::DatabaseVersionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12222,6 +12570,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseVersionError__SWIG_1(PyObject *self, Py_s
   int ecode3 = 0 ;
   Xapian::DatabaseVersionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12276,6 +12625,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseVersionError__SWIG_2(PyObject *self, Py_s
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseVersionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12323,6 +12673,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseVersionError__SWIG_3(PyObject *self, Py_s
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseVersionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12359,6 +12710,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseVersionError__SWIG_4(PyObject *self, Py_s
   int ecode2 = 0 ;
   Xapian::DatabaseVersionError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12460,6 +12812,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseVersionError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseVersionError, SWIG_POINTER_DISOWN |  0 );
@@ -12509,6 +12862,7 @@ SWIGINTERN PyObject *_wrap_new_DocNotFoundError__SWIG_0(PyObject *self, Py_ssize
   int alloc3 = 0 ;
   Xapian::DocNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12568,6 +12922,7 @@ SWIGINTERN PyObject *_wrap_new_DocNotFoundError__SWIG_1(PyObject *self, Py_ssize
   int ecode3 = 0 ;
   Xapian::DocNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12622,6 +12977,7 @@ SWIGINTERN PyObject *_wrap_new_DocNotFoundError__SWIG_2(PyObject *self, Py_ssize
   int res2 = SWIG_OLDOBJ ;
   Xapian::DocNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12669,6 +13025,7 @@ SWIGINTERN PyObject *_wrap_new_DocNotFoundError__SWIG_3(PyObject *self, Py_ssize
   int res1 = SWIG_OLDOBJ ;
   Xapian::DocNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12705,6 +13062,7 @@ SWIGINTERN PyObject *_wrap_new_DocNotFoundError__SWIG_4(PyObject *self, Py_ssize
   int ecode2 = 0 ;
   Xapian::DocNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12806,6 +13164,7 @@ SWIGINTERN PyObject *_wrap_delete_DocNotFoundError(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DocNotFoundError, SWIG_POINTER_DISOWN |  0 );
@@ -12855,6 +13214,7 @@ SWIGINTERN PyObject *_wrap_new_FeatureUnavailableError__SWIG_0(PyObject *self, P
   int alloc3 = 0 ;
   Xapian::FeatureUnavailableError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12914,6 +13274,7 @@ SWIGINTERN PyObject *_wrap_new_FeatureUnavailableError__SWIG_1(PyObject *self, P
   int ecode3 = 0 ;
   Xapian::FeatureUnavailableError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -12968,6 +13329,7 @@ SWIGINTERN PyObject *_wrap_new_FeatureUnavailableError__SWIG_2(PyObject *self, P
   int res2 = SWIG_OLDOBJ ;
   Xapian::FeatureUnavailableError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13015,6 +13377,7 @@ SWIGINTERN PyObject *_wrap_new_FeatureUnavailableError__SWIG_3(PyObject *self, P
   int res1 = SWIG_OLDOBJ ;
   Xapian::FeatureUnavailableError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13051,6 +13414,7 @@ SWIGINTERN PyObject *_wrap_new_FeatureUnavailableError__SWIG_4(PyObject *self, P
   int ecode2 = 0 ;
   Xapian::FeatureUnavailableError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13152,6 +13516,7 @@ SWIGINTERN PyObject *_wrap_delete_FeatureUnavailableError(PyObject *self, PyObje
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__FeatureUnavailableError, SWIG_POINTER_DISOWN |  0 );
@@ -13201,6 +13566,7 @@ SWIGINTERN PyObject *_wrap_new_InternalError__SWIG_0(PyObject *self, Py_ssize_t
   int alloc3 = 0 ;
   Xapian::InternalError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13260,6 +13626,7 @@ SWIGINTERN PyObject *_wrap_new_InternalError__SWIG_1(PyObject *self, Py_ssize_t
   int ecode3 = 0 ;
   Xapian::InternalError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13314,6 +13681,7 @@ SWIGINTERN PyObject *_wrap_new_InternalError__SWIG_2(PyObject *self, Py_ssize_t
   int res2 = SWIG_OLDOBJ ;
   Xapian::InternalError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13361,6 +13729,7 @@ SWIGINTERN PyObject *_wrap_new_InternalError__SWIG_3(PyObject *self, Py_ssize_t
   int res1 = SWIG_OLDOBJ ;
   Xapian::InternalError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13397,6 +13766,7 @@ SWIGINTERN PyObject *_wrap_new_InternalError__SWIG_4(PyObject *self, Py_ssize_t
   int ecode2 = 0 ;
   Xapian::InternalError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13498,6 +13868,7 @@ SWIGINTERN PyObject *_wrap_delete_InternalError(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__InternalError, SWIG_POINTER_DISOWN |  0 );
@@ -13547,6 +13918,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkError__SWIG_0(PyObject *self, Py_ssize_t n
   int alloc3 = 0 ;
   Xapian::NetworkError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13606,6 +13978,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkError__SWIG_1(PyObject *self, Py_ssize_t n
   int ecode3 = 0 ;
   Xapian::NetworkError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13660,6 +14033,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkError__SWIG_2(PyObject *self, Py_ssize_t n
   int res2 = SWIG_OLDOBJ ;
   Xapian::NetworkError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13707,6 +14081,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkError__SWIG_3(PyObject *self, Py_ssize_t n
   int res1 = SWIG_OLDOBJ ;
   Xapian::NetworkError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13743,6 +14118,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkError__SWIG_4(PyObject *self, Py_ssize_t n
   int ecode2 = 0 ;
   Xapian::NetworkError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13844,6 +14220,7 @@ SWIGINTERN PyObject *_wrap_delete_NetworkError(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__NetworkError, SWIG_POINTER_DISOWN |  0 );
@@ -13893,6 +14270,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkTimeoutError__SWIG_0(PyObject *self, Py_ss
   int alloc3 = 0 ;
   Xapian::NetworkTimeoutError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -13952,6 +14330,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkTimeoutError__SWIG_1(PyObject *self, Py_ss
   int ecode3 = 0 ;
   Xapian::NetworkTimeoutError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14006,6 +14385,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkTimeoutError__SWIG_2(PyObject *self, Py_ss
   int res2 = SWIG_OLDOBJ ;
   Xapian::NetworkTimeoutError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14053,6 +14433,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkTimeoutError__SWIG_3(PyObject *self, Py_ss
   int res1 = SWIG_OLDOBJ ;
   Xapian::NetworkTimeoutError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14089,6 +14470,7 @@ SWIGINTERN PyObject *_wrap_new_NetworkTimeoutError__SWIG_4(PyObject *self, Py_ss
   int ecode2 = 0 ;
   Xapian::NetworkTimeoutError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14190,6 +14572,7 @@ SWIGINTERN PyObject *_wrap_delete_NetworkTimeoutError(PyObject *self, PyObject *
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__NetworkTimeoutError, SWIG_POINTER_DISOWN |  0 );
@@ -14239,6 +14622,7 @@ SWIGINTERN PyObject *_wrap_new_QueryParserError__SWIG_0(PyObject *self, Py_ssize
   int alloc3 = 0 ;
   Xapian::QueryParserError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14298,6 +14682,7 @@ SWIGINTERN PyObject *_wrap_new_QueryParserError__SWIG_1(PyObject *self, Py_ssize
   int ecode3 = 0 ;
   Xapian::QueryParserError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14352,6 +14737,7 @@ SWIGINTERN PyObject *_wrap_new_QueryParserError__SWIG_2(PyObject *self, Py_ssize
   int res2 = SWIG_OLDOBJ ;
   Xapian::QueryParserError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14399,6 +14785,7 @@ SWIGINTERN PyObject *_wrap_new_QueryParserError__SWIG_3(PyObject *self, Py_ssize
   int res1 = SWIG_OLDOBJ ;
   Xapian::QueryParserError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14435,6 +14822,7 @@ SWIGINTERN PyObject *_wrap_new_QueryParserError__SWIG_4(PyObject *self, Py_ssize
   int ecode2 = 0 ;
   Xapian::QueryParserError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14536,6 +14924,7 @@ SWIGINTERN PyObject *_wrap_delete_QueryParserError(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParserError, SWIG_POINTER_DISOWN |  0 );
@@ -14585,6 +14974,7 @@ SWIGINTERN PyObject *_wrap_new_SerialisationError__SWIG_0(PyObject *self, Py_ssi
   int alloc3 = 0 ;
   Xapian::SerialisationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14644,6 +15034,7 @@ SWIGINTERN PyObject *_wrap_new_SerialisationError__SWIG_1(PyObject *self, Py_ssi
   int ecode3 = 0 ;
   Xapian::SerialisationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14698,6 +15089,7 @@ SWIGINTERN PyObject *_wrap_new_SerialisationError__SWIG_2(PyObject *self, Py_ssi
   int res2 = SWIG_OLDOBJ ;
   Xapian::SerialisationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14745,6 +15137,7 @@ SWIGINTERN PyObject *_wrap_new_SerialisationError__SWIG_3(PyObject *self, Py_ssi
   int res1 = SWIG_OLDOBJ ;
   Xapian::SerialisationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14781,6 +15174,7 @@ SWIGINTERN PyObject *_wrap_new_SerialisationError__SWIG_4(PyObject *self, Py_ssi
   int ecode2 = 0 ;
   Xapian::SerialisationError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14882,6 +15276,7 @@ SWIGINTERN PyObject *_wrap_delete_SerialisationError(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__SerialisationError, SWIG_POINTER_DISOWN |  0 );
@@ -14931,6 +15326,7 @@ SWIGINTERN PyObject *_wrap_new_RangeError__SWIG_0(PyObject *self, Py_ssize_t nob
   int alloc3 = 0 ;
   Xapian::RangeError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -14990,6 +15386,7 @@ SWIGINTERN PyObject *_wrap_new_RangeError__SWIG_1(PyObject *self, Py_ssize_t nob
   int ecode3 = 0 ;
   Xapian::RangeError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15044,6 +15441,7 @@ SWIGINTERN PyObject *_wrap_new_RangeError__SWIG_2(PyObject *self, Py_ssize_t nob
   int res2 = SWIG_OLDOBJ ;
   Xapian::RangeError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15091,6 +15489,7 @@ SWIGINTERN PyObject *_wrap_new_RangeError__SWIG_3(PyObject *self, Py_ssize_t nob
   int res1 = SWIG_OLDOBJ ;
   Xapian::RangeError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15127,6 +15526,7 @@ SWIGINTERN PyObject *_wrap_new_RangeError__SWIG_4(PyObject *self, Py_ssize_t nob
   int ecode2 = 0 ;
   Xapian::RangeError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15228,6 +15628,7 @@ SWIGINTERN PyObject *_wrap_delete_RangeError(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RangeError, SWIG_POINTER_DISOWN |  0 );
@@ -15277,6 +15678,7 @@ SWIGINTERN PyObject *_wrap_new_WildcardError__SWIG_0(PyObject *self, Py_ssize_t
   int alloc3 = 0 ;
   Xapian::WildcardError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15336,6 +15738,7 @@ SWIGINTERN PyObject *_wrap_new_WildcardError__SWIG_1(PyObject *self, Py_ssize_t
   int ecode3 = 0 ;
   Xapian::WildcardError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15390,6 +15793,7 @@ SWIGINTERN PyObject *_wrap_new_WildcardError__SWIG_2(PyObject *self, Py_ssize_t
   int res2 = SWIG_OLDOBJ ;
   Xapian::WildcardError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15437,6 +15841,7 @@ SWIGINTERN PyObject *_wrap_new_WildcardError__SWIG_3(PyObject *self, Py_ssize_t
   int res1 = SWIG_OLDOBJ ;
   Xapian::WildcardError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15473,6 +15878,7 @@ SWIGINTERN PyObject *_wrap_new_WildcardError__SWIG_4(PyObject *self, Py_ssize_t
   int ecode2 = 0 ;
   Xapian::WildcardError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15574,6 +15980,7 @@ SWIGINTERN PyObject *_wrap_delete_WildcardError(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WildcardError, SWIG_POINTER_DISOWN |  0 );
@@ -15623,6 +16030,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseNotFoundError__SWIG_0(PyObject *self, Py_
   int alloc3 = 0 ;
   Xapian::DatabaseNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15682,6 +16090,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseNotFoundError__SWIG_1(PyObject *self, Py_
   int ecode3 = 0 ;
   Xapian::DatabaseNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15736,6 +16145,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseNotFoundError__SWIG_2(PyObject *self, Py_
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15783,6 +16193,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseNotFoundError__SWIG_3(PyObject *self, Py_
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15819,6 +16230,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseNotFoundError__SWIG_4(PyObject *self, Py_
   int ecode2 = 0 ;
   Xapian::DatabaseNotFoundError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -15920,6 +16332,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseNotFoundError(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseNotFoundError, SWIG_POINTER_DISOWN |  0 );
@@ -15969,6 +16382,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseClosedError__SWIG_0(PyObject *self, Py_ss
   int alloc3 = 0 ;
   Xapian::DatabaseClosedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -16028,6 +16442,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseClosedError__SWIG_1(PyObject *self, Py_ss
   int ecode3 = 0 ;
   Xapian::DatabaseClosedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -16082,6 +16497,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseClosedError__SWIG_2(PyObject *self, Py_ss
   int res2 = SWIG_OLDOBJ ;
   Xapian::DatabaseClosedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -16129,6 +16545,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseClosedError__SWIG_3(PyObject *self, Py_ss
   int res1 = SWIG_OLDOBJ ;
   Xapian::DatabaseClosedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -16165,6 +16582,7 @@ SWIGINTERN PyObject *_wrap_new_DatabaseClosedError__SWIG_4(PyObject *self, Py_ss
   int ecode2 = 0 ;
   Xapian::DatabaseClosedError *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -16266,6 +16684,7 @@ SWIGINTERN PyObject *_wrap_delete_DatabaseClosedError(PyObject *self, PyObject *
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DatabaseClosedError, SWIG_POINTER_DISOWN |  0 );
@@ -16307,6 +16726,7 @@ SWIGINTERN PyObject *_wrap_version_string(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   char *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "version_string", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -16326,6 +16746,7 @@ SWIGINTERN PyObject *_wrap_major_version(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   int result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "major_version", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -16343,6 +16764,7 @@ SWIGINTERN PyObject *_wrap_minor_version(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   int result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "minor_version", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -16360,6 +16782,7 @@ SWIGINTERN PyObject *_wrap_revision(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   int result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "revision", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -16377,6 +16800,7 @@ SWIGINTERN PyObject *_wrap_new__PositionIterator(PyObject *self, PyObject *args)
   PyObject *resultobj = 0;
   Xapian::PositionIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new__PositionIterator", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -16397,6 +16821,7 @@ SWIGINTERN PyObject *_wrap_delete__PositionIterator(PyObject *self, PyObject *ar
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, SWIG_POINTER_DISOWN |  0 );
@@ -16426,6 +16851,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator_skip_to(PyObject *self, PyObject *a
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PositionIterator_skip_to", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -16464,6 +16890,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator___str__(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
@@ -16501,6 +16928,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator___eq__(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PositionIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -16523,6 +16951,9 @@ SWIGINTERN PyObject *_wrap__PositionIterator___eq__(PyObject *self, PyObject *ar
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -16540,6 +16971,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator___ne__(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PositionIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -16562,6 +16994,9 @@ SWIGINTERN PyObject *_wrap__PositionIterator___ne__(PyObject *self, PyObject *ar
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -16579,6 +17014,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator_equals(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PositionIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -16620,6 +17056,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator_get_termpos(PyObject *self, PyObjec
   PyObject *swig_obj[1] ;
   Xapian::termpos result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
@@ -16653,6 +17090,7 @@ SWIGINTERN PyObject *_wrap__PositionIterator___next__(PyObject *self, PyObject *
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PositionIterator, 0 |  0 );
@@ -16700,6 +17138,7 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__PositionIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -16732,6 +17171,9 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -16748,6 +17190,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__PositionIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -16780,6 +17223,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -16790,6 +17236,7 @@ SWIGINTERN PyObject *_wrap_new__PostingIterator(PyObject *self, PyObject *args)
   PyObject *resultobj = 0;
   Xapian::PostingIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new__PostingIterator", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -16810,6 +17257,7 @@ SWIGINTERN PyObject *_wrap_delete__PostingIterator(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, SWIG_POINTER_DISOWN |  0 );
@@ -16837,6 +17285,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator_get_wdf(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -16871,6 +17320,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator_get_doclength(PyObject *self, PyObje
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -16905,6 +17355,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator_get_unique_terms(PyObject *self, PyO
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -16939,6 +17390,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator__positionlist_begin(PyObject *self,
   PyObject *swig_obj[1] ;
   Xapian::PositionIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -16973,6 +17425,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator__positionlist_end(PyObject *self, Py
   PyObject *swig_obj[1] ;
   Xapian::PositionIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -17002,6 +17455,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator_skip_to(PyObject *self, PyObject *ar
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PostingIterator_skip_to", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17040,6 +17494,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator___str__(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -17077,6 +17532,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator___eq__(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PostingIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17099,6 +17555,9 @@ SWIGINTERN PyObject *_wrap__PostingIterator___eq__(PyObject *self, PyObject *arg
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17116,6 +17575,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator___ne__(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PostingIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17138,6 +17598,9 @@ SWIGINTERN PyObject *_wrap__PostingIterator___ne__(PyObject *self, PyObject *arg
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17155,6 +17618,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator_equals(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_PostingIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17196,6 +17660,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator_get_docid(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -17229,6 +17694,7 @@ SWIGINTERN PyObject *_wrap__PostingIterator___next__(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingIterator, 0 |  0 );
@@ -17276,6 +17742,7 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__PostingIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -17308,6 +17775,9 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17324,6 +17794,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__PostingIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -17356,6 +17827,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17366,6 +17840,7 @@ SWIGINTERN PyObject *_wrap_new__TermIterator(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::TermIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new__TermIterator", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -17386,6 +17861,7 @@ SWIGINTERN PyObject *_wrap_delete__TermIterator(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, SWIG_POINTER_DISOWN |  0 );
@@ -17413,6 +17889,7 @@ SWIGINTERN PyObject *_wrap__TermIterator_get_wdf(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17447,6 +17924,7 @@ SWIGINTERN PyObject *_wrap__TermIterator_get_termfreq(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17481,6 +17959,7 @@ SWIGINTERN PyObject *_wrap__TermIterator_positionlist_count(PyObject *self, PyOb
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17515,6 +17994,7 @@ SWIGINTERN PyObject *_wrap__TermIterator__positionlist_begin(PyObject *self, PyO
   PyObject *swig_obj[1] ;
   Xapian::PositionIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17549,6 +18029,7 @@ SWIGINTERN PyObject *_wrap__TermIterator__positionlist_end(PyObject *self, PyObj
   PyObject *swig_obj[1] ;
   Xapian::PositionIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17577,6 +18058,7 @@ SWIGINTERN PyObject *_wrap__TermIterator_skip_to(PyObject *self, PyObject *args)
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_TermIterator_skip_to", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17624,6 +18106,7 @@ SWIGINTERN PyObject *_wrap__TermIterator___str__(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17661,6 +18144,7 @@ SWIGINTERN PyObject *_wrap__TermIterator___eq__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_TermIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17683,6 +18167,9 @@ SWIGINTERN PyObject *_wrap__TermIterator___eq__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17700,6 +18187,7 @@ SWIGINTERN PyObject *_wrap__TermIterator___ne__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_TermIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17722,6 +18210,9 @@ SWIGINTERN PyObject *_wrap__TermIterator___ne__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17739,6 +18230,7 @@ SWIGINTERN PyObject *_wrap__TermIterator_equals(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_TermIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -17780,6 +18272,7 @@ SWIGINTERN PyObject *_wrap__TermIterator_get_term(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17815,6 +18308,7 @@ SWIGINTERN PyObject *_wrap__TermIterator___next__(PyObject *self, PyObject *args
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermIterator, 0 |  0 );
@@ -17862,6 +18356,7 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_2(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__TermIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -17894,6 +18389,9 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_2(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17910,6 +18408,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_2(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__TermIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -17942,6 +18441,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_2(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -17952,6 +18454,7 @@ SWIGINTERN PyObject *_wrap_new__ValueIterator(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::ValueIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new__ValueIterator", 0, 0, 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -17972,6 +18475,7 @@ SWIGINTERN PyObject *_wrap_delete__ValueIterator(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, SWIG_POINTER_DISOWN |  0 );
@@ -17999,6 +18503,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator_get_docid(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
@@ -18033,6 +18538,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator_get_valueno(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::valueno result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
@@ -18069,6 +18575,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator_skip_to(PyObject *self, PyObject *args
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ValueIterator_skip_to", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18110,6 +18617,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator_check(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ValueIterator_check", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18148,6 +18656,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator___str__(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
@@ -18185,6 +18694,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator___eq__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ValueIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18207,6 +18717,9 @@ SWIGINTERN PyObject *_wrap__ValueIterator___eq__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -18224,6 +18737,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator___ne__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ValueIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18246,6 +18760,9 @@ SWIGINTERN PyObject *_wrap__ValueIterator___ne__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -18263,6 +18780,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator_equals(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ValueIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18304,6 +18822,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator_get_value(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
@@ -18339,6 +18858,7 @@ SWIGINTERN PyObject *_wrap__ValueIterator___next__(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueIterator, 0 |  0 );
@@ -18386,6 +18906,7 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_3(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ValueIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -18418,6 +18939,9 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_3(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -18434,6 +18958,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_3(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ValueIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -18466,6 +18991,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_3(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -18476,6 +19004,7 @@ SWIGINTERN PyObject *_wrap_new_Document(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::Document *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_Document", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -18503,6 +19032,7 @@ SWIGINTERN PyObject *_wrap_delete_Document(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, SWIG_POINTER_DISOWN |  0 );
@@ -18533,6 +19063,7 @@ SWIGINTERN PyObject *_wrap_Document_get_value(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Document_get_value", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18577,6 +19108,7 @@ SWIGINTERN PyObject *_wrap_Document_add_value(PyObject *self, PyObject *args) {
   int res3 = SWIG_OLDOBJ ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Document_add_value", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18631,6 +19163,7 @@ SWIGINTERN PyObject *_wrap_Document_remove_value(PyObject *self, PyObject *args)
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Document_remove_value", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18668,6 +19201,7 @@ SWIGINTERN PyObject *_wrap_Document_clear_values(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -18702,6 +19236,7 @@ SWIGINTERN PyObject *_wrap_Document_get_data(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -18739,6 +19274,7 @@ SWIGINTERN PyObject *_wrap_Document_set_data(PyObject *self, PyObject *args) {
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Document_set_data", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18792,6 +19328,7 @@ SWIGINTERN PyObject *_wrap_Document_add_posting__SWIG_0(PyObject *self, Py_ssize
   unsigned int val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18852,6 +19389,7 @@ SWIGINTERN PyObject *_wrap_Document_add_posting__SWIG_1(PyObject *self, Py_ssize
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18935,6 +19473,7 @@ SWIGINTERN PyObject *_wrap_Document_add_term__SWIG_0(PyObject *self, Py_ssize_t
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -18987,6 +19526,7 @@ SWIGINTERN PyObject *_wrap_Document_add_term__SWIG_1(PyObject *self, Py_ssize_t
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19063,6 +19603,7 @@ SWIGINTERN PyObject *_wrap_Document_add_boolean_term(PyObject *self, PyObject *a
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Document_add_boolean_term", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19116,6 +19657,7 @@ SWIGINTERN PyObject *_wrap_Document_remove_posting__SWIG_0(PyObject *self, Py_ss
   unsigned int val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19176,6 +19718,7 @@ SWIGINTERN PyObject *_wrap_Document_remove_posting__SWIG_1(PyObject *self, Py_ss
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19266,6 +19809,7 @@ SWIGINTERN PyObject *_wrap_Document_remove_postings__SWIG_0(PyObject *self, Py_s
   int ecode5 = 0 ;
   Xapian::termpos result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19335,6 +19879,7 @@ SWIGINTERN PyObject *_wrap_Document_remove_postings__SWIG_1(PyObject *self, Py_s
   int ecode4 = 0 ;
   Xapian::termpos result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19421,6 +19966,7 @@ SWIGINTERN PyObject *_wrap_Document_remove_term(PyObject *self, PyObject *args)
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Document_remove_term", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19467,6 +20013,7 @@ SWIGINTERN PyObject *_wrap_Document_clear_terms(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19501,6 +20048,7 @@ SWIGINTERN PyObject *_wrap_Document_termlist_count(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19535,6 +20083,7 @@ SWIGINTERN PyObject *_wrap_Document__termlist_begin(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19569,6 +20118,7 @@ SWIGINTERN PyObject *_wrap_Document__termlist_end(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19596,6 +20146,7 @@ SWIGINTERN PyObject *_wrap_Document_values_count(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19630,6 +20181,7 @@ SWIGINTERN PyObject *_wrap_Document__values_begin(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::ValueIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19664,6 +20216,7 @@ SWIGINTERN PyObject *_wrap_Document__values_end(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::ValueIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19691,6 +20244,7 @@ SWIGINTERN PyObject *_wrap_Document_get_docid(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19725,6 +20279,7 @@ SWIGINTERN PyObject *_wrap_Document_serialise(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19760,6 +20315,7 @@ SWIGINTERN PyObject *_wrap_Document_unserialise(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::Document result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   {
@@ -19796,6 +20352,7 @@ SWIGINTERN PyObject *_wrap_Document___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Document, 0 |  0 );
@@ -19837,6 +20394,7 @@ SWIGINTERN PyObject *_wrap_new_Registry(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::Registry *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_Registry", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -19864,6 +20422,7 @@ SWIGINTERN PyObject *_wrap_delete_Registry(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, SWIG_POINTER_DISOWN |  0 );
@@ -19893,6 +20452,7 @@ SWIGINTERN PyObject *_wrap_Registry_register_weighting_scheme(PyObject *self, Py
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_register_weighting_scheme", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19936,6 +20496,7 @@ SWIGINTERN PyObject *_wrap_Registry_get_weighting_scheme(PyObject *self, PyObjec
   PyObject *swig_obj[2] ;
   Xapian::Weight *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_get_weighting_scheme", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -19985,6 +20546,7 @@ SWIGINTERN PyObject *_wrap_Registry_register_posting_source(PyObject *self, PyOb
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_register_posting_source", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -20028,6 +20590,7 @@ SWIGINTERN PyObject *_wrap_Registry_get_posting_source(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   Xapian::PostingSource *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_get_posting_source", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -20077,6 +20640,7 @@ SWIGINTERN PyObject *_wrap_Registry_register_match_spy(PyObject *self, PyObject
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_register_match_spy", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -20120,6 +20684,7 @@ SWIGINTERN PyObject *_wrap_Registry_get_match_spy(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::MatchSpy *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_get_match_spy", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -20169,6 +20734,7 @@ SWIGINTERN PyObject *_wrap_Registry_register_lat_long_metric(PyObject *self, PyO
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_register_lat_long_metric", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -20212,6 +20778,7 @@ SWIGINTERN PyObject *_wrap_Registry_get_lat_long_metric(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   Xapian::LatLongMetric *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Registry_get_lat_long_metric", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Registry, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -20266,6 +20833,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_0(PyObject *self, Py_ssize_t nobjs, P
   PyObject *resultobj = 0;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     SWIG_PYTHON_THREAD_BEGIN_ALLOW;
@@ -20286,6 +20854,7 @@ SWIGINTERN PyObject *_wrap_delete_Query(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, SWIG_POINTER_DISOWN |  0 );
@@ -20317,6 +20886,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_1(PyObject *self, Py_ssize_t nobjs, P
   int ecode3 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -20370,6 +20940,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_2(PyObject *self, Py_ssize_t nobjs, P
   int ecode2 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -20415,6 +20986,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_3(PyObject *self, Py_ssize_t nobjs, P
   int res1 = SWIG_OLDOBJ ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -20456,6 +21028,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_4(PyObject *self, Py_ssize_t nobjs, P
   int res1 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -20491,6 +21064,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_5(PyObject *self, Py_ssize_t nobjs, P
   int res2 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20537,6 +21111,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_6(PyObject *self, Py_ssize_t nobjs, P
   int ecode3 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20588,6 +21163,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_7(PyObject *self, Py_ssize_t nobjs, P
   int res3 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20640,6 +21216,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_8(PyObject *self, Py_ssize_t nobjs, P
   int res3 = SWIG_OLDOBJ ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20705,6 +21282,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_9(PyObject *self, Py_ssize_t nobjs, P
   int res3 = SWIG_OLDOBJ ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20763,6 +21341,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_10(PyObject *self, Py_ssize_t nobjs,
   int res4 = SWIG_OLDOBJ ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20839,6 +21418,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_11(PyObject *self, Py_ssize_t nobjs,
   int ecode5 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20908,6 +21488,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_12(PyObject *self, Py_ssize_t nobjs,
   int ecode4 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -20969,6 +21550,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_13(PyObject *self, Py_ssize_t nobjs,
   int ecode3 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -21022,6 +21604,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_14(PyObject *self, Py_ssize_t nobjs,
   int res2 = SWIG_OLDOBJ ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -21061,7 +21644,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_new_Query__SWIG_17(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_new_Query__SWIG_15(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   Xapian::Query::op arg1 ;
   XapianSWIGQueryItor arg2 ;
@@ -21073,6 +21656,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_17(PyObject *self, Py_ssize_t nobjs,
   int ecode4 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -21109,7 +21693,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_new_Query__SWIG_18(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_new_Query__SWIG_16(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   Xapian::Query::op arg1 ;
   XapianSWIGQueryItor arg2 ;
@@ -21118,6 +21702,7 @@ SWIGINTERN PyObject *_wrap_new_Query__SWIG_18(PyObject *self, Py_ssize_t nobjs,
   int ecode1 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -21157,6 +21742,7 @@ SWIGINTERN PyObject *_wrap_Query__get_terms_begin(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21191,6 +21777,7 @@ SWIGINTERN PyObject *_wrap_Query__get_terms_end(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21218,6 +21805,7 @@ SWIGINTERN PyObject *_wrap_Query_get_unique_terms_begin(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21252,6 +21840,7 @@ SWIGINTERN PyObject *_wrap_Query_get_unique_terms_end(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21279,6 +21868,7 @@ SWIGINTERN PyObject *_wrap_Query_get_length(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21306,6 +21896,7 @@ SWIGINTERN PyObject *_wrap_Query_empty(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21333,6 +21924,7 @@ SWIGINTERN PyObject *_wrap_Query_serialise(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21370,6 +21962,7 @@ SWIGINTERN PyObject *_wrap_Query_unserialise__SWIG_0(PyObject *self, Py_ssize_t
   int res2 = 0 ;
   Xapian::Query result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     char * p;
@@ -21411,6 +22004,7 @@ SWIGINTERN PyObject *_wrap_Query_unserialise__SWIG_1(PyObject *self, Py_ssize_t
   std::string bytes1 ;
   Xapian::Query result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     char * p;
@@ -21474,6 +22068,7 @@ SWIGINTERN PyObject *_wrap_Query_get_type(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::Query::op result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21501,6 +22096,7 @@ SWIGINTERN PyObject *_wrap_Query_get_num_subqueries(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   size_t result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21531,6 +22127,7 @@ SWIGINTERN PyObject *_wrap_Query_get_subquery(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   Xapian::Query result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Query_get_subquery", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -21569,6 +22166,7 @@ SWIGINTERN PyObject *_wrap_Query___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Query, 0 |  0 );
@@ -21595,13 +22193,14 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_new_Query__SWIG_19(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_new_Query__SWIG_17(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   Xapian::Query::op arg1 ;
   int val1 ;
   int ecode1 = 0 ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -21661,7 +22260,7 @@ check_2:
       }
     }
     if (!_v) goto check_3;
-    return _wrap_new_Query__SWIG_19(self, argc, argv);
+    return _wrap_new_Query__SWIG_17(self, argc, argv);
   }
 check_3:
   
@@ -21681,12 +22280,15 @@ check_3:
     if (!_v) goto check_5;
     {
       {
-        // Checking for a sequence is enough to disambiguate currently.
-        _v = PySequence_Check(argv[1]);
+        // Checking for a sequence which isn't a string or bytes is enough to
+        // disambiguate currently.
+        _v = (PySequence_Check(argv[1]) &&
+          !PyUnicode_Check(argv[1]) &&
+          !PyBytes_Check(argv[1]));
       }
     }
     if (!_v) goto check_5;
-    return _wrap_new_Query__SWIG_18(self, argc, argv);
+    return _wrap_new_Query__SWIG_16(self, argc, argv);
   }
 check_5:
   
@@ -21827,8 +22429,11 @@ check_11:
     if (!_v) goto check_12;
     {
       {
-        // Checking for a sequence is enough to disambiguate currently.
-        _v = PySequence_Check(argv[1]);
+        // Checking for a sequence which isn't a string or bytes is enough to
+        // disambiguate currently.
+        _v = (PySequence_Check(argv[1]) &&
+          !PyUnicode_Check(argv[1]) &&
+          !PyBytes_Check(argv[1]));
       }
     }
     if (!_v) goto check_12;
@@ -21839,7 +22444,7 @@ check_11:
       }
     }
     if (!_v) goto check_12;
-    return _wrap_new_Query__SWIG_17(self, argc, argv);
+    return _wrap_new_Query__SWIG_15(self, argc, argv);
   }
 check_12:
   
@@ -22002,6 +22607,7 @@ SWIGINTERN PyObject *_wrap_new_StemImplementation(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::StemImplementation *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -22038,6 +22644,7 @@ SWIGINTERN PyObject *_wrap_delete_StemImplementation(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__StemImplementation, SWIG_POINTER_DISOWN |  0 );
@@ -22069,6 +22676,7 @@ SWIGINTERN PyObject *_wrap_StemImplementation___call__(PyObject *self, PyObject
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "StemImplementation___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__StemImplementation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22126,6 +22734,7 @@ SWIGINTERN PyObject *_wrap_StemImplementation___str__(PyObject *self, PyObject *
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__StemImplementation, 0 |  0 );
@@ -22165,6 +22774,7 @@ SWIGINTERN PyObject *_wrap_disown_StemImplementation(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__StemImplementation, 0 |  0 );
@@ -22205,6 +22815,7 @@ SWIGINTERN PyObject *_wrap_new_Stem__SWIG_0(PyObject *self, Py_ssize_t nobjs, Py
   int res1 = SWIG_OLDOBJ ;
   Xapian::Stem *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -22248,6 +22859,7 @@ SWIGINTERN PyObject *_wrap_new_Stem__SWIG_1(PyObject *self, Py_ssize_t nobjs, Py
   int ecode2 = 0 ;
   Xapian::Stem *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -22294,6 +22906,7 @@ SWIGINTERN PyObject *_wrap_new_Stem__SWIG_2(PyObject *self, Py_ssize_t nobjs, Py
   int res1 = 0 ;
   Xapian::Stem *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__StemImplementation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22367,6 +22980,7 @@ SWIGINTERN PyObject *_wrap_delete_Stem(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stem, SWIG_POINTER_DISOWN |  0 );
@@ -22396,6 +23010,7 @@ SWIGINTERN PyObject *_wrap_Stem___call__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Stem___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stem, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22445,6 +23060,7 @@ SWIGINTERN PyObject *_wrap_Stem_is_none(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stem, 0 |  0 );
@@ -22479,6 +23095,7 @@ SWIGINTERN PyObject *_wrap_Stem___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stem, 0 |  0 );
@@ -22509,6 +23126,7 @@ SWIGINTERN PyObject *_wrap_Stem_get_available_languages(PyObject *self, PyObject
   PyObject *resultobj = 0;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Stem_get_available_languages", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -22546,6 +23164,7 @@ SWIGINTERN PyObject *_wrap_new_TermGenerator(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::TermGenerator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_TermGenerator", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -22573,6 +23192,7 @@ SWIGINTERN PyObject *_wrap_delete_TermGenerator(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, SWIG_POINTER_DISOWN |  0 );
@@ -22602,6 +23222,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_stemmer(PyObject *self, PyObject *a
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_stemmer", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22644,6 +23265,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_stopper__SWIG_0(PyObject *self, Py_
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22680,6 +23302,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_stopper__SWIG_1(PyObject *self, Py_
   void *argp1 = 0 ;
   int res1 = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22743,6 +23366,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_document(PyObject *self, PyObject *
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_document", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22784,6 +23408,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_get_document(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::Document *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
@@ -22820,6 +23445,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_database(PyObject *self, PyObject *
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_database", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22866,6 +23492,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_flags__SWIG_0(PyObject *self, Py_ss
   int ecode3 = 0 ;
   Xapian::TermGenerator::flags result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22911,6 +23538,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_flags__SWIG_1(PyObject *self, Py_ss
   int ecode2 = 0 ;
   Xapian::TermGenerator::flags result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -22979,6 +23607,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_stemming_strategy(PyObject *self, P
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_stemming_strategy", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23019,6 +23648,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_stopper_strategy(PyObject *self, Py
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_stopper_strategy", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23059,6 +23689,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_max_word_length(PyObject *self, PyO
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_max_word_length", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23102,6 +23733,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_index_text__SWIG_0(PyObject *self, Py_s
   int ecode3 = 0 ;
   int res4 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23171,6 +23803,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_index_text__SWIG_1(PyObject *self, Py_s
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23223,6 +23856,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_index_text__SWIG_2(PyObject *self, Py_s
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23309,6 +23943,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_index_text_without_positions__SWIG_0(Py
   int ecode3 = 0 ;
   int res4 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23378,6 +24013,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_index_text_without_positions__SWIG_1(Py
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23430,6 +24066,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_index_text_without_positions__SWIG_2(Py
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23512,6 +24149,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_increase_termpos__SWIG_0(PyObject *self
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23548,6 +24186,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_increase_termpos__SWIG_1(PyObject *self
   void *argp1 = 0 ;
   int res1 = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23609,6 +24248,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_get_termpos(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   Xapian::termpos result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
@@ -23645,6 +24285,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator_set_termpos(PyObject *self, PyObject *a
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "TermGenerator_set_termpos", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23683,6 +24324,7 @@ SWIGINTERN PyObject *_wrap_TermGenerator___str__(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TermGenerator, 0 |  0 );
@@ -23724,6 +24366,7 @@ SWIGINTERN PyObject *_wrap_new_MSet(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::MSet *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_MSet", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -23751,6 +24394,7 @@ SWIGINTERN PyObject *_wrap_delete_MSet(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, SWIG_POINTER_DISOWN |  0 );
@@ -23780,6 +24424,7 @@ SWIGINTERN PyObject *_wrap_MSet_convert_to_percent__SWIG_0(PyObject *self, Py_ss
   int ecode2 = 0 ;
   int result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23820,6 +24465,7 @@ SWIGINTERN PyObject *_wrap_MSet_convert_to_percent__SWIG_1(PyObject *self, Py_ss
   int res2 = 0 ;
   int result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23897,6 +24543,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_termfreq(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MSet_get_termfreq", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23946,6 +24593,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_termweight(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   double result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MSet_get_termweight", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -23993,6 +24641,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_firstitem(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24027,6 +24676,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_matches_lower_bound(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24061,6 +24711,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_matches_estimated(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24095,6 +24746,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_matches_upper_bound(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24129,6 +24781,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_uncollapsed_matches_lower_bound(PyObject *se
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24163,6 +24816,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_uncollapsed_matches_estimated(PyObject *self
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24197,6 +24851,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_uncollapsed_matches_upper_bound(PyObject *se
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24231,6 +24886,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_max_attained(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24265,6 +24921,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_max_possible(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -24315,6 +24972,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_0(PyObject *self, Py_ssize_t nobjs
   int res8 = SWIG_OLDOBJ ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 8) || (nobjs > 8)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24438,6 +25096,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_1(PyObject *self, Py_ssize_t nobjs
   int res7 = SWIG_OLDOBJ ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 7) || (nobjs > 7)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24545,6 +25204,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_2(PyObject *self, Py_ssize_t nobjs
   int res6 = SWIG_OLDOBJ ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24636,6 +25296,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_3(PyObject *self, Py_ssize_t nobjs
   int ecode5 = 0 ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24710,6 +25371,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_4(PyObject *self, Py_ssize_t nobjs
   int res4 = 0 ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24776,6 +25438,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_5(PyObject *self, Py_ssize_t nobjs
   int ecode3 = 0 ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24831,6 +25494,7 @@ SWIGINTERN PyObject *_wrap_MSet_snippet__SWIG_6(PyObject *self, Py_ssize_t nobjs
   int res2 = SWIG_OLDOBJ ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24942,6 +25606,7 @@ SWIGINTERN PyObject *_wrap_MSet_fetch__SWIG_0(PyObject *self, Py_ssize_t nobjs,
   void *argp3 = 0 ;
   int res3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -24992,6 +25657,7 @@ SWIGINTERN PyObject *_wrap_MSet_fetch__SWIG_1(PyObject *self, Py_ssize_t nobjs,
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25031,6 +25697,7 @@ SWIGINTERN PyObject *_wrap_MSet_fetch__SWIG_2(PyObject *self, Py_ssize_t nobjs,
   void *argp1 = 0 ;
   int res1 = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25098,6 +25765,7 @@ SWIGINTERN PyObject *_wrap_MSet_size(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -25132,6 +25800,7 @@ SWIGINTERN PyObject *_wrap_MSet_empty(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -25166,6 +25835,7 @@ SWIGINTERN PyObject *_wrap_MSet__begin(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::MSetIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -25200,6 +25870,7 @@ SWIGINTERN PyObject *_wrap_MSet__end(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::MSetIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -25234,6 +25905,7 @@ SWIGINTERN PyObject *_wrap_MSet_back(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::MSetIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -25268,6 +25940,7 @@ SWIGINTERN PyObject *_wrap_MSet___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
@@ -25305,6 +25978,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_docid(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   Xapian::docid result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MSet_get_docid", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25346,6 +26020,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_document(PyObject *self, PyObject *args) {
   PyObject *swig_obj[2] ;
   Xapian::Document result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MSet_get_document", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25387,6 +26062,7 @@ SWIGINTERN PyObject *_wrap_MSet__get_hit_internal(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::MSetIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MSet__get_hit_internal", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25428,6 +26104,7 @@ SWIGINTERN PyObject *_wrap_MSet_get_document_percentage(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   int result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MSet_get_document_percentage", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25479,6 +26156,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_mset_set(PyObject *self, PyObject *args
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_MSetIterator_mset_set", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25510,6 +26188,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_mset_get(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::MSet *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25539,6 +26218,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_off_from_end_set(PyObject *self, PyObje
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_MSetIterator_off_from_end_set", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25570,6 +26250,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_off_from_end_get(PyObject *self, PyObje
   PyObject *swig_obj[1] ;
   Xapian::MSet::size_type result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25593,6 +26274,7 @@ SWIGINTERN PyObject *_wrap_new__MSetIterator(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::MSetIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new__MSetIterator", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -25621,6 +26303,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_rank(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25655,6 +26338,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_document(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::Document result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25689,6 +26373,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_weight(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25723,6 +26408,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_collapse_key(PyObject *self, PyObje
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25759,6 +26445,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_collapse_count(PyObject *self, PyOb
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25793,6 +26480,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_sort_key(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25829,6 +26517,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_percent(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   int result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25863,6 +26552,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator___str__(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -25900,6 +26590,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator___eq__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_MSetIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25922,6 +26613,9 @@ SWIGINTERN PyObject *_wrap__MSetIterator___eq__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -25939,6 +26633,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator___ne__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_MSetIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -25961,6 +26656,9 @@ SWIGINTERN PyObject *_wrap__MSetIterator___ne__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -25978,6 +26676,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_equals(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_MSetIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -26019,6 +26718,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_get_docid(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -26052,6 +26752,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator___next__(PyObject *self, PyObject *args
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -26085,6 +26786,7 @@ SWIGINTERN PyObject *_wrap__MSetIterator_prev(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, 0 |  0 );
@@ -26118,6 +26820,7 @@ SWIGINTERN PyObject *_wrap_delete__MSetIterator(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MSetIterator, SWIG_POINTER_DISOWN |  0 );
@@ -26158,6 +26861,7 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_4(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__MSetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -26190,6 +26894,9 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_4(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26206,6 +26913,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_4(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__MSetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -26238,6 +26946,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_4(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26254,6 +26965,7 @@ SWIGINTERN PyObject *_wrap___lt____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__MSetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -26286,6 +26998,9 @@ SWIGINTERN PyObject *_wrap___lt____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26302,6 +27017,7 @@ SWIGINTERN PyObject *_wrap___gt____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__MSetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -26334,6 +27050,9 @@ SWIGINTERN PyObject *_wrap___gt____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26350,6 +27069,7 @@ SWIGINTERN PyObject *_wrap___ge____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__MSetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -26382,6 +27102,9 @@ SWIGINTERN PyObject *_wrap___ge____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26398,6 +27121,7 @@ SWIGINTERN PyObject *_wrap___le____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__MSetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -26430,6 +27154,9 @@ SWIGINTERN PyObject *_wrap___le____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26446,6 +27173,7 @@ SWIGINTERN PyObject *_wrap___add____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyO
   int res2 = 0 ;
   Xapian::MSetIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -26475,6 +27203,9 @@ SWIGINTERN PyObject *_wrap___add____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyO
   resultobj = SWIG_NewPointerObj((new Xapian::MSetIterator(result)), SWIGTYPE_p_Xapian__MSetIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -26485,6 +27216,7 @@ SWIGINTERN PyObject *_wrap_new_ESet(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::ESet *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_ESet", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -26512,6 +27244,7 @@ SWIGINTERN PyObject *_wrap_delete_ESet(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, SWIG_POINTER_DISOWN |  0 );
@@ -26539,6 +27272,7 @@ SWIGINTERN PyObject *_wrap_ESet_size(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26573,6 +27307,7 @@ SWIGINTERN PyObject *_wrap_ESet_empty(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26607,6 +27342,7 @@ SWIGINTERN PyObject *_wrap_ESet_get_ebound(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26641,6 +27377,7 @@ SWIGINTERN PyObject *_wrap_ESet__begin(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::ESetIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26675,6 +27412,7 @@ SWIGINTERN PyObject *_wrap_ESet__end(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::ESetIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26709,6 +27447,7 @@ SWIGINTERN PyObject *_wrap_ESet_back(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::ESetIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26743,6 +27482,7 @@ SWIGINTERN PyObject *_wrap_ESet___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESet, 0 |  0 );
@@ -26790,6 +27530,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_eset_set(PyObject *self, PyObject *args
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ESetIterator_eset_set", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -26821,6 +27562,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_eset_get(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::ESet *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -26850,6 +27592,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_off_from_end_set(PyObject *self, PyObje
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ESetIterator_off_from_end_set", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -26881,6 +27624,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_off_from_end_get(PyObject *self, PyObje
   PyObject *swig_obj[1] ;
   Xapian::ESet::size_type result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -26904,6 +27648,7 @@ SWIGINTERN PyObject *_wrap_new__ESetIterator(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::ESetIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new__ESetIterator", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -26932,6 +27677,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_get_weight(PyObject *self, PyObject *ar
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -26966,6 +27712,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator___str__(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -27003,6 +27750,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator___eq__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ESetIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -27025,6 +27773,9 @@ SWIGINTERN PyObject *_wrap__ESetIterator___eq__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27042,6 +27793,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator___ne__(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ESetIterator___ne__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -27064,6 +27816,9 @@ SWIGINTERN PyObject *_wrap__ESetIterator___ne__(PyObject *self, PyObject *args)
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27081,6 +27836,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_equals(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "_ESetIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -27122,6 +27878,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_get_term(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -27157,6 +27914,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator___next__(PyObject *self, PyObject *args
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -27190,6 +27948,7 @@ SWIGINTERN PyObject *_wrap__ESetIterator_prev(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, 0 |  0 );
@@ -27223,6 +27982,7 @@ SWIGINTERN PyObject *_wrap_delete__ESetIterator(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ESetIterator, SWIG_POINTER_DISOWN |  0 );
@@ -27263,6 +28023,7 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_5(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ESetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -27295,6 +28056,9 @@ SWIGINTERN PyObject *_wrap___eq____SWIG_5(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27411,6 +28175,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_5(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ESetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -27443,6 +28208,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_5(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27459,6 +28227,7 @@ SWIGINTERN PyObject *_wrap___lt____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ESetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -27491,6 +28260,9 @@ SWIGINTERN PyObject *_wrap___lt____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27543,6 +28315,7 @@ SWIGINTERN PyObject *_wrap___gt____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ESetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -27575,6 +28348,9 @@ SWIGINTERN PyObject *_wrap___gt____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27627,6 +28403,7 @@ SWIGINTERN PyObject *_wrap___ge____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ESetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -27659,6 +28436,9 @@ SWIGINTERN PyObject *_wrap___ge____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27711,6 +28491,7 @@ SWIGINTERN PyObject *_wrap___le____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ESetIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -27743,6 +28524,9 @@ SWIGINTERN PyObject *_wrap___le____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27795,6 +28579,7 @@ SWIGINTERN PyObject *_wrap___add____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyO
   int res2 = 0 ;
   Xapian::ESetIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -27824,6 +28609,9 @@ SWIGINTERN PyObject *_wrap___add____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyO
   resultobj = SWIG_NewPointerObj((new Xapian::ESetIterator(result)), SWIGTYPE_p_Xapian__ESetIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -27865,6 +28653,7 @@ SWIGINTERN PyObject *_wrap_new_RSet(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::RSet *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_RSet", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -27892,6 +28681,7 @@ SWIGINTERN PyObject *_wrap_delete_RSet(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, SWIG_POINTER_DISOWN |  0 );
@@ -27919,6 +28709,7 @@ SWIGINTERN PyObject *_wrap_RSet_size(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
@@ -27953,6 +28744,7 @@ SWIGINTERN PyObject *_wrap_RSet_empty(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
@@ -27988,6 +28780,7 @@ SWIGINTERN PyObject *_wrap_RSet_add_document__SWIG_0(PyObject *self, Py_ssize_t
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28027,6 +28820,7 @@ SWIGINTERN PyObject *_wrap_RSet_add_document__SWIG_1(PyObject *self, Py_ssize_t
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28103,6 +28897,7 @@ SWIGINTERN PyObject *_wrap_RSet_remove_document__SWIG_0(PyObject *self, Py_ssize
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28142,6 +28937,7 @@ SWIGINTERN PyObject *_wrap_RSet_remove_document__SWIG_1(PyObject *self, Py_ssize
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28219,6 +29015,7 @@ SWIGINTERN PyObject *_wrap_RSet_contains__SWIG_0(PyObject *self, Py_ssize_t nobj
   int ecode2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28259,6 +29056,7 @@ SWIGINTERN PyObject *_wrap_RSet_contains__SWIG_1(PyObject *self, Py_ssize_t nobj
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28334,6 +29132,7 @@ SWIGINTERN PyObject *_wrap_RSet___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RSet, 0 |  0 );
@@ -28377,6 +29176,7 @@ SWIGINTERN PyObject *_wrap_new_MatchDecider(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::MatchDecider *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -28419,6 +29219,7 @@ SWIGINTERN PyObject *_wrap_MatchDecider___call__(PyObject *self, PyObject *args)
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MatchDecider___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchDecider, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28465,6 +29266,7 @@ SWIGINTERN PyObject *_wrap_delete_MatchDecider(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchDecider, SWIG_POINTER_DISOWN |  0 );
@@ -28491,6 +29293,7 @@ SWIGINTERN PyObject *_wrap_disown_MatchDecider(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchDecider, 0 |  0 );
@@ -28533,6 +29336,7 @@ SWIGINTERN PyObject *_wrap_new_Enquire(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::Enquire *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__Database,  0  | 0);
@@ -28569,6 +29373,7 @@ SWIGINTERN PyObject *_wrap_delete_Enquire(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, SWIG_POINTER_DISOWN |  0 );
@@ -28600,6 +29405,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_query__SWIG_0(PyObject *self, Py_ssize_t
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28647,6 +29453,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_query__SWIG_1(PyObject *self, Py_ssize_t
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28716,6 +29523,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_query(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::Query *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
@@ -28752,6 +29560,7 @@ SWIGINTERN PyObject *_wrap_Enquire_add_matchspy(PyObject *self, PyObject *args)
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_add_matchspy", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28789,6 +29598,7 @@ SWIGINTERN PyObject *_wrap_Enquire_clear_matchspies(PyObject *self, PyObject *ar
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
@@ -28825,6 +29635,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_weighting_scheme(PyObject *self, PyObject
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_weighting_scheme", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28869,6 +29680,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_expansion_scheme__SWIG_0(PyObject *self,
   double val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -28921,6 +29733,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_expansion_scheme__SWIG_1(PyObject *self,
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29000,6 +29813,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_collapse_key__SWIG_0(PyObject *self, Py_s
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29044,6 +29858,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_collapse_key__SWIG_1(PyObject *self, Py_s
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29112,6 +29927,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_docid_order(PyObject *self, PyObject *arg
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_docid_order", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29154,6 +29970,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_cutoff__SWIG_0(PyObject *self, Py_ssize_t
   double val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29198,6 +30015,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_cutoff__SWIG_1(PyObject *self, Py_ssize_t
   int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29263,6 +30081,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_relevance(PyObject *self, PyObjec
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
@@ -29302,6 +30121,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_value(PyObject *self, PyObject *a
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_sort_by_value", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29350,6 +30170,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_key(PyObject *self, PyObject *arg
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_sort_by_key", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29398,6 +30219,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_value_then_relevance(PyObject *se
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_sort_by_value_then_relevance", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29446,6 +30268,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_key_then_relevance(PyObject *self
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_sort_by_key_then_relevance", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29494,6 +30317,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_relevance_then_value(PyObject *se
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_sort_by_relevance_then_value", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29542,6 +30366,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_sort_by_relevance_then_key(PyObject *self
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_sort_by_relevance_then_key", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29587,6 +30412,7 @@ SWIGINTERN PyObject *_wrap_Enquire_set_time_limit(PyObject *self, PyObject *args
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Enquire_set_time_limit", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29639,6 +30465,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_mset__SWIG_0(PyObject *self, Py_ssize_t n
   int res6 = 0 ;
   Xapian::MSet result;
   
+  (void)self;
   if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29708,6 +30535,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_mset__SWIG_1(PyObject *self, Py_ssize_t n
   int res5 = 0 ;
   Xapian::MSet result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29769,6 +30597,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_mset__SWIG_2(PyObject *self, Py_ssize_t n
   int ecode4 = 0 ;
   Xapian::MSet result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29822,6 +30651,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_mset__SWIG_3(PyObject *self, Py_ssize_t n
   int ecode3 = 0 ;
   Xapian::MSet result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29876,6 +30706,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_mset__SWIG_4(PyObject *self, Py_ssize_t n
   int res5 = 0 ;
   Xapian::MSet result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -29937,6 +30768,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_mset__SWIG_5(PyObject *self, Py_ssize_t n
   int res4 = 0 ;
   Xapian::MSet result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30071,6 +30903,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_0(PyObject *self, Py_ssize_t n
   int ecode6 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30143,6 +30976,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_1(PyObject *self, Py_ssize_t n
   int res5 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30207,6 +31041,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_2(PyObject *self, Py_ssize_t n
   int ecode4 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30263,6 +31098,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_3(PyObject *self, Py_ssize_t n
   int res3 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30317,6 +31153,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_4(PyObject *self, Py_ssize_t n
   int res4 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30385,6 +31222,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_5(PyObject *self, Py_ssize_t n
   int ecode7 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 7) || (nobjs > 7)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30465,6 +31303,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_6(PyObject *self, Py_ssize_t n
   int res6 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30537,6 +31376,7 @@ SWIGINTERN PyObject *_wrap_Enquire_get_eset__SWIG_7(PyObject *self, Py_ssize_t n
   int ecode5 = 0 ;
   Xapian::ESet result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30687,6 +31527,7 @@ SWIGINTERN PyObject *_wrap_Enquire__get_matching_terms_begin__SWIG_0(PyObject *s
   int ecode2 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30727,6 +31568,7 @@ SWIGINTERN PyObject *_wrap_Enquire__get_matching_terms_end__SWIG_0(PyObject *sel
   int ecode2 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30760,6 +31602,7 @@ SWIGINTERN PyObject *_wrap_Enquire__get_matching_terms_begin__SWIG_1(PyObject *s
   int res2 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30837,6 +31680,7 @@ SWIGINTERN PyObject *_wrap_Enquire__get_matching_terms_end__SWIG_1(PyObject *sel
   int res2 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -30905,6 +31749,7 @@ SWIGINTERN PyObject *_wrap_Enquire___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Enquire, 0 |  0 );
@@ -30948,6 +31793,7 @@ SWIGINTERN PyObject *_wrap_new_ExpandDecider(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::ExpandDecider *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -30989,6 +31835,7 @@ SWIGINTERN PyObject *_wrap_ExpandDecider___call__(PyObject *self, PyObject *args
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ExpandDecider___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ExpandDecider, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -31041,6 +31888,7 @@ SWIGINTERN PyObject *_wrap_delete_ExpandDecider(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ExpandDecider, SWIG_POINTER_DISOWN |  0 );
@@ -31069,6 +31917,7 @@ SWIGINTERN PyObject *_wrap_ExpandDecider_release(PyObject *self, PyObject *args)
   Swig::Director *director = 0;
   Xapian::ExpandDecider *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ExpandDecider, 0 |  0 );
@@ -31108,6 +31957,7 @@ SWIGINTERN PyObject *_wrap_disown_ExpandDecider(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ExpandDecider, 0 |  0 );
@@ -31153,6 +32003,7 @@ SWIGINTERN PyObject *_wrap_new_ExpandDeciderAnd(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   Xapian::ExpandDeciderAnd *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_ExpandDeciderAnd", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__ExpandDecider,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -31196,6 +32047,7 @@ SWIGINTERN PyObject *_wrap_delete_ExpandDeciderAnd(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ExpandDeciderAnd, SWIG_POINTER_DISOWN |  0 );
@@ -31233,6 +32085,7 @@ SWIGINTERN PyObject *_wrap_new_ExpandDeciderFilterPrefix(PyObject *self, PyObjec
   PyObject *swig_obj[1] ;
   Xapian::ExpandDeciderFilterPrefix *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   {
@@ -31275,6 +32128,7 @@ SWIGINTERN PyObject *_wrap_delete_ExpandDeciderFilterPrefix(PyObject *self, PyOb
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ExpandDeciderFilterPrefix, SWIG_POINTER_DISOWN |  0 );
@@ -31311,6 +32165,7 @@ SWIGINTERN PyObject *_wrap_new_KeyMaker(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::KeyMaker *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -31353,6 +32208,7 @@ SWIGINTERN PyObject *_wrap_KeyMaker___call__(PyObject *self, PyObject *args) {
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "KeyMaker___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__KeyMaker, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -31401,6 +32257,7 @@ SWIGINTERN PyObject *_wrap_delete_KeyMaker(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__KeyMaker, SWIG_POINTER_DISOWN |  0 );
@@ -31429,6 +32286,7 @@ SWIGINTERN PyObject *_wrap_KeyMaker_release(PyObject *self, PyObject *args) {
   Swig::Director *director = 0;
   Xapian::KeyMaker *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__KeyMaker, 0 |  0 );
@@ -31468,6 +32326,7 @@ SWIGINTERN PyObject *_wrap_disown_KeyMaker(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__KeyMaker, 0 |  0 );
@@ -31506,6 +32365,7 @@ SWIGINTERN PyObject *_wrap_new_MultiValueKeyMaker(PyObject *self, PyObject *args
   PyObject *resultobj = 0;
   Xapian::MultiValueKeyMaker *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_MultiValueKeyMaker", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -31540,6 +32400,7 @@ SWIGINTERN PyObject *_wrap_MultiValueKeyMaker_add_value__SWIG_0(PyObject *self,
   int ecode3 = 0 ;
   int res4 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MultiValueKeyMaker, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -31601,6 +32462,7 @@ SWIGINTERN PyObject *_wrap_MultiValueKeyMaker_add_value__SWIG_1(PyObject *self,
   bool val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MultiValueKeyMaker, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -31645,6 +32507,7 @@ SWIGINTERN PyObject *_wrap_MultiValueKeyMaker_add_value__SWIG_2(PyObject *self,
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MultiValueKeyMaker, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -31716,6 +32579,7 @@ SWIGINTERN PyObject *_wrap_delete_MultiValueKeyMaker(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MultiValueKeyMaker, SWIG_POINTER_DISOWN |  0 );
@@ -31752,6 +32616,7 @@ SWIGINTERN PyObject *_wrap_new_Stopper(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::Stopper *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -31793,6 +32658,7 @@ SWIGINTERN PyObject *_wrap_Stopper___call__(PyObject *self, PyObject *args) {
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Stopper___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stopper, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -31845,6 +32711,7 @@ SWIGINTERN PyObject *_wrap_delete_Stopper(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stopper, SWIG_POINTER_DISOWN |  0 );
@@ -31874,6 +32741,7 @@ SWIGINTERN PyObject *_wrap_Stopper___str__(PyObject *self, PyObject *args) {
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stopper, 0 |  0 );
@@ -31915,6 +32783,7 @@ SWIGINTERN PyObject *_wrap_Stopper_release(PyObject *self, PyObject *args) {
   Swig::Director *director = 0;
   Xapian::Stopper *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stopper, 0 |  0 );
@@ -31954,6 +32823,7 @@ SWIGINTERN PyObject *_wrap_disown_Stopper(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Stopper, 0 |  0 );
@@ -31992,6 +32862,7 @@ SWIGINTERN PyObject *_wrap_new_SimpleStopper__SWIG_0(PyObject *self, Py_ssize_t
   PyObject *resultobj = 0;
   Xapian::SimpleStopper *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -32021,6 +32892,7 @@ SWIGINTERN PyObject *_wrap_SimpleStopper_add(PyObject *self, PyObject *args) {
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "SimpleStopper_add", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__SimpleStopper, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -32060,12 +32932,13 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_new_SimpleStopper__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_new_SimpleStopper__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   Xapian::SimpleStopper *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -32083,7 +32956,7 @@ SWIGINTERN PyObject *_wrap_new_SimpleStopper__SWIG_2(PyObject *self, Py_ssize_t
     try {
       {
         SWIG_PYTHON_THREAD_BEGIN_ALLOW;
-        result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_2((std::string const &)*arg1);
+        result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_1((std::string const &)*arg1);
         SWIG_PYTHON_THREAD_END_ALLOW;
       }
     } catch (...) {
@@ -32114,7 +32987,7 @@ SWIGINTERN PyObject *_wrap_new_SimpleStopper(PyObject *self, PyObject *args) {
     SWIG_fail;
   }
   if (argc == 1) {
-    PyObject *retobj = _wrap_new_SimpleStopper__SWIG_2(self, argc, argv);
+    PyObject *retobj = _wrap_new_SimpleStopper__SWIG_1(self, argc, argv);
     if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj;
     SWIG_fail;
   }
@@ -32135,6 +33008,7 @@ SWIGINTERN PyObject *_wrap_delete_SimpleStopper(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__SimpleStopper, SWIG_POINTER_DISOWN |  0 );
@@ -32170,6 +33044,7 @@ SWIGINTERN PyObject *_wrap_new_RangeProcessor__SWIG_0(PyObject *self, Py_ssize_t
   PyObject *arg1 = (PyObject *) 0 ;
   Xapian::RangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   arg1 = swig_obj[0];
   {
@@ -32210,6 +33085,7 @@ SWIGINTERN PyObject *_wrap_new_RangeProcessor__SWIG_1(PyObject *self, Py_ssize_t
   int ecode4 = 0 ;
   Xapian::RangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   arg1 = swig_obj[0];
   ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val2);
@@ -32271,6 +33147,7 @@ SWIGINTERN PyObject *_wrap_new_RangeProcessor__SWIG_2(PyObject *self, Py_ssize_t
   int res3 = SWIG_OLDOBJ ;
   Xapian::RangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   arg1 = swig_obj[0];
   ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val2);
@@ -32325,6 +33202,7 @@ SWIGINTERN PyObject *_wrap_new_RangeProcessor__SWIG_3(PyObject *self, Py_ssize_t
   int ecode2 = 0 ;
   Xapian::RangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   arg1 = swig_obj[0];
   ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val2);
@@ -32404,6 +33282,7 @@ SWIGINTERN PyObject *_wrap_delete_RangeProcessor(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -32435,6 +33314,7 @@ SWIGINTERN PyObject *_wrap_RangeProcessor_check_range(PyObject *self, PyObject *
   PyObject *swig_obj[3] ;
   Xapian::Query result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "RangeProcessor_check_range", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RangeProcessor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -32502,6 +33382,7 @@ SWIGINTERN PyObject *_wrap_RangeProcessor___call__(PyObject *self, PyObject *arg
   bool upcall = false;
   Xapian::Query result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "RangeProcessor___call__", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RangeProcessor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -32570,6 +33451,7 @@ SWIGINTERN PyObject *_wrap_RangeProcessor_release(PyObject *self, PyObject *args
   Swig::Director *director = 0;
   Xapian::RangeProcessor *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RangeProcessor, 0 |  0 );
@@ -32609,6 +33491,7 @@ SWIGINTERN PyObject *_wrap_disown_RangeProcessor(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__RangeProcessor, 0 |  0 );
@@ -32656,6 +33539,7 @@ SWIGINTERN PyObject *_wrap_new_DateRangeProcessor__SWIG_0(PyObject *self, Py_ssi
   int ecode3 = 0 ;
   Xapian::DateRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -32701,6 +33585,7 @@ SWIGINTERN PyObject *_wrap_new_DateRangeProcessor__SWIG_1(PyObject *self, Py_ssi
   int ecode2 = 0 ;
   Xapian::DateRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -32738,6 +33623,7 @@ SWIGINTERN PyObject *_wrap_new_DateRangeProcessor__SWIG_2(PyObject *self, Py_ssi
   int ecode1 = 0 ;
   Xapian::DateRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -32778,6 +33664,7 @@ SWIGINTERN PyObject *_wrap_new_DateRangeProcessor__SWIG_3(PyObject *self, Py_ssi
   int ecode4 = 0 ;
   Xapian::DateRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -32839,6 +33726,7 @@ SWIGINTERN PyObject *_wrap_new_DateRangeProcessor__SWIG_4(PyObject *self, Py_ssi
   int ecode3 = 0 ;
   Xapian::DateRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -32892,6 +33780,7 @@ SWIGINTERN PyObject *_wrap_new_DateRangeProcessor__SWIG_5(PyObject *self, Py_ssi
   int res2 = SWIG_OLDOBJ ;
   Xapian::DateRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33013,6 +33902,7 @@ SWIGINTERN PyObject *_wrap_delete_DateRangeProcessor(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DateRangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -33055,6 +33945,7 @@ SWIGINTERN PyObject *_wrap_new_NumberRangeProcessor__SWIG_0(PyObject *self, Py_s
   int ecode3 = 0 ;
   Xapian::NumberRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33108,6 +33999,7 @@ SWIGINTERN PyObject *_wrap_new_NumberRangeProcessor__SWIG_1(PyObject *self, Py_s
   int res2 = SWIG_OLDOBJ ;
   Xapian::NumberRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33154,6 +34046,7 @@ SWIGINTERN PyObject *_wrap_new_NumberRangeProcessor__SWIG_2(PyObject *self, Py_s
   int ecode1 = 0 ;
   Xapian::NumberRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33220,6 +34113,7 @@ SWIGINTERN PyObject *_wrap_delete_NumberRangeProcessor(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__NumberRangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -33256,6 +34150,7 @@ SWIGINTERN PyObject *_wrap_new_ValueRangeProcessor(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   Xapian::ValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -33292,6 +34187,7 @@ SWIGINTERN PyObject *_wrap_delete_ValueRangeProcessor(PyObject *self, PyObject *
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueRangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -33325,6 +34221,7 @@ SWIGINTERN PyObject *_wrap_ValueRangeProcessor___call__(PyObject *self, PyObject
   bool upcall = false;
   Xapian::valueno result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueRangeProcessor___call__", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueRangeProcessor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -33416,6 +34313,7 @@ SWIGINTERN PyObject *_wrap_ValueRangeProcessor_release(PyObject *self, PyObject
   Swig::Director *director = 0;
   Xapian::ValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueRangeProcessor, 0 |  0 );
@@ -33455,6 +34353,7 @@ SWIGINTERN PyObject *_wrap_disown_ValueRangeProcessor(PyObject *self, PyObject *
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueRangeProcessor, 0 |  0 );
@@ -33496,6 +34395,7 @@ SWIGINTERN PyObject *_wrap_new_StringValueRangeProcessor__SWIG_0(PyObject *self,
   int ecode1 = 0 ;
   Xapian::StringValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33533,6 +34433,7 @@ SWIGINTERN PyObject *_wrap_new_StringValueRangeProcessor__SWIG_1(PyObject *self,
   int ecode3 = 0 ;
   Xapian::StringValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33586,6 +34487,7 @@ SWIGINTERN PyObject *_wrap_new_StringValueRangeProcessor__SWIG_2(PyObject *self,
   int res2 = SWIG_OLDOBJ ;
   Xapian::StringValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33666,6 +34568,7 @@ SWIGINTERN PyObject *_wrap_delete_StringValueRangeProcessor(PyObject *self, PyOb
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__StringValueRangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -33716,6 +34619,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_0(PyObject *self, P
   int ecode3 = 0 ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33761,6 +34665,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_1(PyObject *self, P
   int ecode2 = 0 ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33798,6 +34703,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_2(PyObject *self, P
   int ecode1 = 0 ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33841,6 +34747,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_3(PyObject *self, P
   int ecode5 = 0 ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33910,6 +34817,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_4(PyObject *self, P
   int ecode4 = 0 ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -33971,6 +34879,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_5(PyObject *self, P
   int ecode3 = 0 ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -34024,6 +34933,7 @@ SWIGINTERN PyObject *_wrap_new_DateValueRangeProcessor__SWIG_6(PyObject *self, P
   int res2 = SWIG_OLDOBJ ;
   Xapian::DateValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -34159,6 +35069,7 @@ SWIGINTERN PyObject *_wrap_delete_DateValueRangeProcessor(PyObject *self, PyObje
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DateValueRangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -34203,6 +35114,7 @@ SWIGINTERN PyObject *_wrap_new_NumberValueRangeProcessor__SWIG_0(PyObject *self,
   int ecode1 = 0 ;
   Xapian::NumberValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -34240,6 +35152,7 @@ SWIGINTERN PyObject *_wrap_new_NumberValueRangeProcessor__SWIG_1(PyObject *self,
   int ecode3 = 0 ;
   Xapian::NumberValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -34293,6 +35206,7 @@ SWIGINTERN PyObject *_wrap_new_NumberValueRangeProcessor__SWIG_2(PyObject *self,
   int res2 = SWIG_OLDOBJ ;
   Xapian::NumberValueRangeProcessor *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -34373,6 +35287,7 @@ SWIGINTERN PyObject *_wrap_delete_NumberValueRangeProcessor(PyObject *self, PyOb
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__NumberValueRangeProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -34416,6 +35331,7 @@ SWIGINTERN PyObject *_wrap_new_FieldProcessor(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::FieldProcessor *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -34452,6 +35368,7 @@ SWIGINTERN PyObject *_wrap_delete_FieldProcessor(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__FieldProcessor, SWIG_POINTER_DISOWN |  0 );
@@ -34483,6 +35400,7 @@ SWIGINTERN PyObject *_wrap_FieldProcessor___call__(PyObject *self, PyObject *arg
   bool upcall = false;
   Xapian::Query result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "FieldProcessor___call__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__FieldProcessor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34537,6 +35455,7 @@ SWIGINTERN PyObject *_wrap_FieldProcessor_release(PyObject *self, PyObject *args
   Swig::Director *director = 0;
   Xapian::FieldProcessor *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__FieldProcessor, 0 |  0 );
@@ -34576,6 +35495,7 @@ SWIGINTERN PyObject *_wrap_disown_FieldProcessor(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__FieldProcessor, 0 |  0 );
@@ -34614,6 +35534,7 @@ SWIGINTERN PyObject *_wrap_new_QueryParser(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::QueryParser *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_QueryParser", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -34641,6 +35562,7 @@ SWIGINTERN PyObject *_wrap_delete_QueryParser(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, SWIG_POINTER_DISOWN |  0 );
@@ -34670,6 +35592,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_stemmer(PyObject *self, PyObject *arg
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser_set_stemmer", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34713,6 +35636,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_stemming_strategy(PyObject *self, PyO
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser_set_stemming_strategy", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34752,6 +35676,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_stopper__SWIG_0(PyObject *self, Py_ss
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34788,6 +35713,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_stopper__SWIG_1(PyObject *self, Py_ss
   void *argp1 = 0 ;
   int res1 = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34851,6 +35777,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_default_op(PyObject *self, PyObject *
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser_set_default_op", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34889,6 +35816,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_get_default_op(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   Xapian::Query::op result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
@@ -34925,6 +35853,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_database(PyObject *self, PyObject *ar
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser_set_database", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -34973,6 +35902,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_max_expansion__SWIG_0(PyObject *self,
   unsigned int val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35025,6 +35955,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_max_expansion__SWIG_1(PyObject *self,
   int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35069,6 +36000,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_max_expansion__SWIG_2(PyObject *self,
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35143,6 +36075,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_set_max_wildcard_expansion(PyObject *self
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser_set_max_wildcard_expansion", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35187,6 +36120,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_parse_query__SWIG_0(PyObject *self, Py_ss
   int res4 = SWIG_OLDOBJ ;
   Xapian::Query result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35257,6 +36191,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_parse_query__SWIG_1(PyObject *self, Py_ss
   int ecode3 = 0 ;
   Xapian::Query result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35310,6 +36245,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_parse_query__SWIG_2(PyObject *self, Py_ss
   int res2 = SWIG_OLDOBJ ;
   Xapian::Query result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35393,6 +36329,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_prefix__SWIG_0(PyObject *self, Py_ssi
   int res2 = SWIG_OLDOBJ ;
   int res3 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35457,6 +36394,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_prefix__SWIG_1(PyObject *self, Py_ssi
   void *argp3 = 0 ;
   int res3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35548,6 +36486,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_boolean_prefix__SWIG_0(PyObject *self
   int res3 = SWIG_OLDOBJ ;
   int res4 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35624,6 +36563,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_boolean_prefix__SWIG_1(PyObject *self
   int res2 = SWIG_OLDOBJ ;
   int res3 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35690,6 +36630,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_boolean_prefix__SWIG_2(PyObject *self
   bool val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35761,6 +36702,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_boolean_prefix__SWIG_3(PyObject *self
   int res3 = 0 ;
   int res4 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35829,6 +36771,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_boolean_prefix__SWIG_4(PyObject *self
   void *argp3 = 0 ;
   int res3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -35887,6 +36830,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_boolean_prefix__SWIG_5(PyObject *self
   bool val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36051,6 +36995,7 @@ SWIGINTERN PyObject *_wrap_QueryParser__stoplist_begin(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
@@ -36085,6 +37030,7 @@ SWIGINTERN PyObject *_wrap_QueryParser__stoplist_end(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
@@ -36114,6 +37060,7 @@ SWIGINTERN PyObject *_wrap_QueryParser__unstem_begin(PyObject *self, PyObject *a
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser__unstem_begin", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36163,6 +37110,7 @@ SWIGINTERN PyObject *_wrap_QueryParser__unstem_end(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser__unstem_end", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36206,6 +37154,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_rangeprocessor__SWIG_0(PyObject *self
   int res2 = 0 ;
   int res3 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36258,6 +37207,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_rangeprocessor__SWIG_1(PyObject *self
   void *argp2 = 0 ;
   int res2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36326,6 +37276,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_add_valuerangeprocessor(PyObject *self, P
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "QueryParser_add_valuerangeprocessor", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36364,6 +37315,7 @@ SWIGINTERN PyObject *_wrap_QueryParser_get_corrected_query_string(PyObject *self
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
@@ -36400,6 +37352,7 @@ SWIGINTERN PyObject *_wrap_QueryParser___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__QueryParser, 0 |  0 );
@@ -36445,6 +37398,7 @@ SWIGINTERN PyObject *_wrap_sortable_serialise(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
@@ -36480,6 +37434,7 @@ SWIGINTERN PyObject *_wrap_sortable_unserialise(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   {
@@ -36519,6 +37474,7 @@ SWIGINTERN PyObject *_wrap_new_ValueSetMatchDecider(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   Xapian::ValueSetMatchDecider *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_ValueSetMatchDecider", 2, 2, swig_obj)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -36558,6 +37514,7 @@ SWIGINTERN PyObject *_wrap_ValueSetMatchDecider_add_value(PyObject *self, PyObje
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueSetMatchDecider_add_value", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueSetMatchDecider, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36606,6 +37563,7 @@ SWIGINTERN PyObject *_wrap_ValueSetMatchDecider_remove_value(PyObject *self, PyO
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueSetMatchDecider_remove_value", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueSetMatchDecider, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36652,6 +37610,7 @@ SWIGINTERN PyObject *_wrap_delete_ValueSetMatchDecider(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueSetMatchDecider, SWIG_POINTER_DISOWN |  0 );
@@ -36689,6 +37648,7 @@ SWIGINTERN PyObject *_wrap_delete_Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Weight, SWIG_POINTER_DISOWN |  0 );
@@ -36716,6 +37676,7 @@ SWIGINTERN PyObject *_wrap_Weight_name(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Weight, 0 |  0 );
@@ -36761,6 +37722,7 @@ SWIGINTERN PyObject *_wrap_Weight_get_sumpart(PyObject *self, PyObject *args) {
   PyObject *swig_obj[4] ;
   double result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Weight_get_sumpart", 4, 4, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Weight, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36809,6 +37771,7 @@ SWIGINTERN PyObject *_wrap_Weight_get_maxpart(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Weight, 0 |  0 );
@@ -36849,6 +37812,7 @@ SWIGINTERN PyObject *_wrap_Weight_get_sumextra(PyObject *self, PyObject *args) {
   PyObject *swig_obj[3] ;
   double result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Weight_get_sumextra", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Weight, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -36892,6 +37856,7 @@ SWIGINTERN PyObject *_wrap_Weight_get_maxextra(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Weight, 0 |  0 );
@@ -36929,6 +37894,7 @@ SWIGINTERN PyObject *_wrap_new_BoolWeight(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::BoolWeight *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_BoolWeight", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -36956,6 +37922,7 @@ SWIGINTERN PyObject *_wrap_delete_BoolWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__BoolWeight, SWIG_POINTER_DISOWN |  0 );
@@ -36992,6 +37959,7 @@ SWIGINTERN PyObject *_wrap_new_TfIdfWeight__SWIG_0(PyObject *self, Py_ssize_t no
   int res1 = SWIG_OLDOBJ ;
   Xapian::TfIdfWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -37030,6 +37998,7 @@ SWIGINTERN PyObject *_wrap_new_TfIdfWeight__SWIG_1(PyObject *self, Py_ssize_t no
   PyObject *resultobj = 0;
   Xapian::TfIdfWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37085,6 +38054,7 @@ SWIGINTERN PyObject *_wrap_delete_TfIdfWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TfIdfWeight, SWIG_POINTER_DISOWN |  0 );
@@ -37134,6 +38104,7 @@ SWIGINTERN PyObject *_wrap_new_BM25Weight__SWIG_0(PyObject *self, Py_ssize_t nob
   int ecode5 = 0 ;
   Xapian::BM25Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37183,6 +38154,7 @@ SWIGINTERN PyObject *_wrap_new_BM25Weight__SWIG_1(PyObject *self, Py_ssize_t nob
   PyObject *resultobj = 0;
   Xapian::BM25Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37238,6 +38210,7 @@ SWIGINTERN PyObject *_wrap_delete_BM25Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__BM25Weight, SWIG_POINTER_DISOWN |  0 );
@@ -37290,6 +38263,7 @@ SWIGINTERN PyObject *_wrap_new_BM25PlusWeight__SWIG_0(PyObject *self, Py_ssize_t
   int ecode6 = 0 ;
   Xapian::BM25PlusWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37344,6 +38318,7 @@ SWIGINTERN PyObject *_wrap_new_BM25PlusWeight__SWIG_1(PyObject *self, Py_ssize_t
   PyObject *resultobj = 0;
   Xapian::BM25PlusWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37399,6 +38374,7 @@ SWIGINTERN PyObject *_wrap_delete_BM25PlusWeight(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__BM25PlusWeight, SWIG_POINTER_DISOWN |  0 );
@@ -37436,6 +38412,7 @@ SWIGINTERN PyObject *_wrap_new_TradWeight__SWIG_0(PyObject *self, Py_ssize_t nob
   int ecode1 = 0 ;
   Xapian::TradWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37465,6 +38442,7 @@ SWIGINTERN PyObject *_wrap_new_TradWeight__SWIG_1(PyObject *self, Py_ssize_t nob
   PyObject *resultobj = 0;
   Xapian::TradWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37520,6 +38498,7 @@ SWIGINTERN PyObject *_wrap_delete_TradWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__TradWeight, SWIG_POINTER_DISOWN |  0 );
@@ -37557,6 +38536,7 @@ SWIGINTERN PyObject *_wrap_new_InL2Weight__SWIG_0(PyObject *self, Py_ssize_t nob
   int ecode1 = 0 ;
   Xapian::InL2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37586,6 +38566,7 @@ SWIGINTERN PyObject *_wrap_new_InL2Weight__SWIG_1(PyObject *self, Py_ssize_t nob
   PyObject *resultobj = 0;
   Xapian::InL2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37641,6 +38622,7 @@ SWIGINTERN PyObject *_wrap_delete_InL2Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__InL2Weight, SWIG_POINTER_DISOWN |  0 );
@@ -37678,6 +38660,7 @@ SWIGINTERN PyObject *_wrap_new_IfB2Weight__SWIG_0(PyObject *self, Py_ssize_t nob
   int ecode1 = 0 ;
   Xapian::IfB2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37707,6 +38690,7 @@ SWIGINTERN PyObject *_wrap_new_IfB2Weight__SWIG_1(PyObject *self, Py_ssize_t nob
   PyObject *resultobj = 0;
   Xapian::IfB2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37762,6 +38746,7 @@ SWIGINTERN PyObject *_wrap_delete_IfB2Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__IfB2Weight, SWIG_POINTER_DISOWN |  0 );
@@ -37799,6 +38784,7 @@ SWIGINTERN PyObject *_wrap_new_IneB2Weight__SWIG_0(PyObject *self, Py_ssize_t no
   int ecode1 = 0 ;
   Xapian::IneB2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37828,6 +38814,7 @@ SWIGINTERN PyObject *_wrap_new_IneB2Weight__SWIG_1(PyObject *self, Py_ssize_t no
   PyObject *resultobj = 0;
   Xapian::IneB2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -37883,6 +38870,7 @@ SWIGINTERN PyObject *_wrap_delete_IneB2Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__IneB2Weight, SWIG_POINTER_DISOWN |  0 );
@@ -37920,6 +38908,7 @@ SWIGINTERN PyObject *_wrap_new_BB2Weight__SWIG_0(PyObject *self, Py_ssize_t nobj
   int ecode1 = 0 ;
   Xapian::BB2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -37949,6 +38938,7 @@ SWIGINTERN PyObject *_wrap_new_BB2Weight__SWIG_1(PyObject *self, Py_ssize_t nobj
   PyObject *resultobj = 0;
   Xapian::BB2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -38004,6 +38994,7 @@ SWIGINTERN PyObject *_wrap_delete_BB2Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__BB2Weight, SWIG_POINTER_DISOWN |  0 );
@@ -38038,6 +39029,7 @@ SWIGINTERN PyObject *_wrap_new_DLHWeight(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::DLHWeight *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_DLHWeight", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -38065,6 +39057,7 @@ SWIGINTERN PyObject *_wrap_delete_DLHWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DLHWeight, SWIG_POINTER_DISOWN |  0 );
@@ -38102,6 +39095,7 @@ SWIGINTERN PyObject *_wrap_new_PL2Weight__SWIG_0(PyObject *self, Py_ssize_t nobj
   int ecode1 = 0 ;
   Xapian::PL2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -38131,6 +39125,7 @@ SWIGINTERN PyObject *_wrap_new_PL2Weight__SWIG_1(PyObject *self, Py_ssize_t nobj
   PyObject *resultobj = 0;
   Xapian::PL2Weight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -38186,6 +39181,7 @@ SWIGINTERN PyObject *_wrap_delete_PL2Weight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PL2Weight, SWIG_POINTER_DISOWN |  0 );
@@ -38226,6 +39222,7 @@ SWIGINTERN PyObject *_wrap_new_PL2PlusWeight__SWIG_0(PyObject *self, Py_ssize_t
   int ecode2 = 0 ;
   Xapian::PL2PlusWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -38260,6 +39257,7 @@ SWIGINTERN PyObject *_wrap_new_PL2PlusWeight__SWIG_1(PyObject *self, Py_ssize_t
   PyObject *resultobj = 0;
   Xapian::PL2PlusWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -38315,6 +39313,7 @@ SWIGINTERN PyObject *_wrap_delete_PL2PlusWeight(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PL2PlusWeight, SWIG_POINTER_DISOWN |  0 );
@@ -38349,6 +39348,7 @@ SWIGINTERN PyObject *_wrap_new_DPHWeight(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::DPHWeight *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_DPHWeight", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -38376,6 +39376,7 @@ SWIGINTERN PyObject *_wrap_delete_DPHWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DPHWeight, SWIG_POINTER_DISOWN |  0 );
@@ -38422,6 +39423,7 @@ SWIGINTERN PyObject *_wrap_new_LMWeight__SWIG_0(PyObject *self, Py_ssize_t nobjs
   int ecode4 = 0 ;
   Xapian::LMWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -38475,6 +39477,7 @@ SWIGINTERN PyObject *_wrap_new_LMWeight__SWIG_1(PyObject *self, Py_ssize_t nobjs
   int ecode3 = 0 ;
   Xapian::LMWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -38520,6 +39523,7 @@ SWIGINTERN PyObject *_wrap_new_LMWeight__SWIG_2(PyObject *self, Py_ssize_t nobjs
   int ecode2 = 0 ;
   Xapian::LMWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -38557,6 +39561,7 @@ SWIGINTERN PyObject *_wrap_new_LMWeight__SWIG_3(PyObject *self, Py_ssize_t nobjs
   int ecode1 = 0 ;
   Xapian::LMWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -38586,6 +39591,7 @@ SWIGINTERN PyObject *_wrap_new_LMWeight__SWIG_4(PyObject *self, Py_ssize_t nobjs
   PyObject *resultobj = 0;
   Xapian::LMWeight *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -38659,6 +39665,7 @@ SWIGINTERN PyObject *_wrap_delete_LMWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LMWeight, SWIG_POINTER_DISOWN |  0 );
@@ -38699,6 +39706,7 @@ SWIGINTERN PyObject *_wrap_CoordWeight_init(PyObject *self, PyObject *args) {
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "CoordWeight_init", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__CoordWeight, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -38733,6 +39741,7 @@ SWIGINTERN PyObject *_wrap_new_CoordWeight(PyObject *self, PyObject *args) {
   PyObject *resultobj = 0;
   Xapian::CoordWeight *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_CoordWeight", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -38760,6 +39769,7 @@ SWIGINTERN PyObject *_wrap_delete_CoordWeight(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__CoordWeight, SWIG_POINTER_DISOWN |  0 );
@@ -38796,6 +39806,7 @@ SWIGINTERN PyObject *_wrap_new_Compactor(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::Compactor *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -38831,6 +39842,7 @@ SWIGINTERN PyObject *_wrap_delete_Compactor(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, SWIG_POINTER_DISOWN |  0 );
@@ -38860,6 +39872,7 @@ SWIGINTERN PyObject *_wrap_Compactor_set_block_size(PyObject *self, PyObject *ar
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_set_block_size", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -38900,6 +39913,7 @@ SWIGINTERN PyObject *_wrap_Compactor_set_renumber(PyObject *self, PyObject *args
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_set_renumber", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -38940,6 +39954,7 @@ SWIGINTERN PyObject *_wrap_Compactor_set_multipass(PyObject *self, PyObject *arg
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_set_multipass", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -38980,6 +39995,7 @@ SWIGINTERN PyObject *_wrap_Compactor_set_compaction_level(PyObject *self, PyObje
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_set_compaction_level", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39019,6 +40035,7 @@ SWIGINTERN PyObject *_wrap_Compactor_set_destdir(PyObject *self, PyObject *args)
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_set_destdir", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39067,6 +40084,7 @@ SWIGINTERN PyObject *_wrap_Compactor_add_source(PyObject *self, PyObject *args)
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_add_source", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39113,6 +40131,7 @@ SWIGINTERN PyObject *_wrap_Compactor_compact(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
@@ -39152,6 +40171,7 @@ SWIGINTERN PyObject *_wrap_Compactor_set_status(PyObject *self, PyObject *args)
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_set_status", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39216,7 +40236,7 @@ SWIGINTERN PyObject *_wrap_Compactor_resolve_duplicate_metadata(PyObject *self,
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
-  std::string *arg4 ;
+  std::string *arg4 = (std::string *) (std::string *)0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
@@ -39229,6 +40249,7 @@ SWIGINTERN PyObject *_wrap_Compactor_resolve_duplicate_metadata(PyObject *self,
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Compactor_resolve_duplicate_metadata", 4, 4, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39293,6 +40314,7 @@ SWIGINTERN PyObject *_wrap_disown_Compactor(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Compactor, 0 |  0 );
@@ -39333,6 +40355,7 @@ SWIGINTERN PyObject *_wrap_new_PostingSource(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::PostingSource *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -39362,6 +40385,7 @@ SWIGINTERN PyObject *_wrap_delete_PostingSource(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -39391,6 +40415,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_get_termfreq_min(PyObject *self, PyObje
   bool upcall = false;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39433,6 +40458,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_get_termfreq_est(PyObject *self, PyObje
   bool upcall = false;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39475,6 +40501,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_get_termfreq_max(PyObject *self, PyObje
   bool upcall = false;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39517,6 +40544,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_set_maxweight(PyObject *self, PyObject
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "PostingSource_set_maxweight", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39555,6 +40583,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_get_maxweight(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39584,6 +40613,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_get_weight(PyObject *self, PyObject *ar
   bool upcall = false;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39626,6 +40656,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_get_docid(PyObject *self, PyObject *arg
   bool upcall = false;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39670,6 +40701,7 @@ SWIGINTERN PyObject *_wrap_PostingSource___next__(PyObject *self, PyObject *args
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "PostingSource___next__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39721,6 +40753,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_skip_to(PyObject *self, PyObject *args)
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "PostingSource_skip_to", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39778,6 +40811,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_check(PyObject *self, PyObject *args) {
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "PostingSource_check", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39829,6 +40863,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_at_end(PyObject *self, PyObject *args)
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39871,6 +40906,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_name(PyObject *self, PyObject *args) {
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -39917,6 +40953,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_init(PyObject *self, PyObject *args) {
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "PostingSource_init", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -39966,6 +41003,7 @@ SWIGINTERN PyObject *_wrap_PostingSource___str__(PyObject *self, PyObject *args)
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -40007,6 +41045,7 @@ SWIGINTERN PyObject *_wrap_PostingSource_release(PyObject *self, PyObject *args)
   Swig::Director *director = 0;
   Xapian::PostingSource *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -40046,6 +41085,7 @@ SWIGINTERN PyObject *_wrap_disown_PostingSource(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__PostingSource, 0 |  0 );
@@ -40089,6 +41129,7 @@ SWIGINTERN PyObject *_wrap_new_ValuePostingSource(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::ValuePostingSource *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_ValuePostingSource", 2, 2, swig_obj)) SWIG_fail;
   arg1 = swig_obj[0];
   ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val2);
@@ -40131,6 +41172,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_termfreq_min(PyObject *self, P
   bool upcall = false;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40173,6 +41215,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_termfreq_est(PyObject *self, P
   bool upcall = false;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40215,6 +41258,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_termfreq_max(PyObject *self, P
   bool upcall = false;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40259,6 +41303,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource___next__(PyObject *self, PyObject
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource___next__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40310,6 +41355,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_skip_to(PyObject *self, PyObject *
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource_skip_to", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40367,6 +41413,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_check(PyObject *self, PyObject *ar
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource_check", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40418,6 +41465,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_at_end(PyObject *self, PyObject *a
   bool upcall = false;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40460,6 +41508,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_docid(PyObject *self, PyObject
   bool upcall = false;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40504,6 +41553,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_init(PyObject *self, PyObject *arg
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource_init", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40551,6 +41601,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_database(PyObject *self, PyObj
   PyObject *swig_obj[1] ;
   Xapian::Database result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40585,6 +41636,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_slot(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   Xapian::valueno result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40619,6 +41671,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_value(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40654,6 +41707,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_done(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40688,6 +41742,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_get_started(PyObject *self, PyObje
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40724,6 +41779,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_set_termfreq_min(PyObject *self, P
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource_set_termfreq_min", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40764,6 +41820,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_set_termfreq_est(PyObject *self, P
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource_set_termfreq_est", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40804,6 +41861,7 @@ SWIGINTERN PyObject *_wrap_ValuePostingSource_set_termfreq_max(PyObject *self, P
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValuePostingSource_set_termfreq_max", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -40841,6 +41899,7 @@ SWIGINTERN PyObject *_wrap_delete_ValuePostingSource(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -40867,6 +41926,7 @@ SWIGINTERN PyObject *_wrap_disown_ValuePostingSource(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValuePostingSource, 0 |  0 );
@@ -40910,6 +41970,7 @@ SWIGINTERN PyObject *_wrap_new_ValueWeightPostingSource(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   Xapian::ValueWeightPostingSource *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_ValueWeightPostingSource", 2, 2, swig_obj)) SWIG_fail;
   arg1 = swig_obj[0];
   ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val2);
@@ -40952,6 +42013,7 @@ SWIGINTERN PyObject *_wrap_ValueWeightPostingSource_get_weight(PyObject *self, P
   bool upcall = false;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueWeightPostingSource, 0 |  0 );
@@ -40994,6 +42056,7 @@ SWIGINTERN PyObject *_wrap_ValueWeightPostingSource_name(PyObject *self, PyObjec
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueWeightPostingSource, 0 |  0 );
@@ -41040,6 +42103,7 @@ SWIGINTERN PyObject *_wrap_ValueWeightPostingSource_init(PyObject *self, PyObjec
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueWeightPostingSource_init", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueWeightPostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -41089,6 +42153,7 @@ SWIGINTERN PyObject *_wrap_ValueWeightPostingSource___str__(PyObject *self, PyOb
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueWeightPostingSource, 0 |  0 );
@@ -41128,6 +42193,7 @@ SWIGINTERN PyObject *_wrap_delete_ValueWeightPostingSource(PyObject *self, PyObj
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueWeightPostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -41154,6 +42220,7 @@ SWIGINTERN PyObject *_wrap_disown_ValueWeightPostingSource(PyObject *self, PyObj
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueWeightPostingSource, 0 |  0 );
@@ -41201,6 +42268,7 @@ SWIGINTERN PyObject *_wrap_new_DecreasingValueWeightPostingSource__SWIG_0(PyObje
   int ecode3 = 0 ;
   Xapian::DecreasingValueWeightPostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -41246,6 +42314,7 @@ SWIGINTERN PyObject *_wrap_new_DecreasingValueWeightPostingSource__SWIG_1(PyObje
   int ecode2 = 0 ;
   Xapian::DecreasingValueWeightPostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -41283,6 +42352,7 @@ SWIGINTERN PyObject *_wrap_new_DecreasingValueWeightPostingSource__SWIG_2(PyObje
   int ecode1 = 0 ;
   Xapian::DecreasingValueWeightPostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -41349,6 +42419,7 @@ SWIGINTERN PyObject *_wrap_delete_DecreasingValueWeightPostingSource(PyObject *s
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__DecreasingValueWeightPostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -41387,6 +42458,7 @@ SWIGINTERN PyObject *_wrap_new_ValueMapPostingSource(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   Xapian::ValueMapPostingSource *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
@@ -41425,6 +42497,7 @@ SWIGINTERN PyObject *_wrap_ValueMapPostingSource_add_mapping(PyObject *self, PyO
   int ecode3 = 0 ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueMapPostingSource_add_mapping", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueMapPostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -41476,6 +42549,7 @@ SWIGINTERN PyObject *_wrap_ValueMapPostingSource_clear_mappings(PyObject *self,
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueMapPostingSource, 0 |  0 );
@@ -41512,6 +42586,7 @@ SWIGINTERN PyObject *_wrap_ValueMapPostingSource_set_default_weight(PyObject *se
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueMapPostingSource_set_default_weight", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueMapPostingSource, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -41549,6 +42624,7 @@ SWIGINTERN PyObject *_wrap_delete_ValueMapPostingSource(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueMapPostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -41587,6 +42663,7 @@ SWIGINTERN PyObject *_wrap_new_FixedWeightPostingSource(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   Xapian::FixedWeightPostingSource *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
@@ -41620,6 +42697,7 @@ SWIGINTERN PyObject *_wrap_delete_FixedWeightPostingSource(PyObject *self, PyObj
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__FixedWeightPostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -41656,6 +42734,7 @@ SWIGINTERN PyObject *_wrap_new_MatchSpy(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::MatchSpy *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -41685,6 +42764,7 @@ SWIGINTERN PyObject *_wrap_delete_MatchSpy(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, SWIG_POINTER_DISOWN |  0 );
@@ -41719,6 +42799,7 @@ SWIGINTERN PyObject *_wrap_MatchSpy___call__(PyObject *self, PyObject *args) {
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MatchSpy___call__", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -41773,6 +42854,7 @@ SWIGINTERN PyObject *_wrap_MatchSpy_name(PyObject *self, PyObject *args) {
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, 0 |  0 );
@@ -41818,6 +42900,7 @@ SWIGINTERN PyObject *_wrap_MatchSpy_merge_results(PyObject *self, PyObject *args
   Swig::Director *director = 0;
   bool upcall = false;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "MatchSpy_merge_results", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -41866,6 +42949,7 @@ SWIGINTERN PyObject *_wrap_MatchSpy___str__(PyObject *self, PyObject *args) {
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, 0 |  0 );
@@ -41907,6 +42991,7 @@ SWIGINTERN PyObject *_wrap_MatchSpy_release(PyObject *self, PyObject *args) {
   Swig::Director *director = 0;
   Xapian::MatchSpy *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, 0 |  0 );
@@ -41946,6 +43031,7 @@ SWIGINTERN PyObject *_wrap_disown_MatchSpy(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__MatchSpy, 0 |  0 );
@@ -41984,6 +43070,7 @@ SWIGINTERN PyObject *_wrap_new_ValueCountMatchSpy__SWIG_0(PyObject *self, Py_ssi
   PyObject *resultobj = 0;
   Xapian::ValueCountMatchSpy *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -42011,6 +43098,7 @@ SWIGINTERN PyObject *_wrap_new_ValueCountMatchSpy__SWIG_1(PyObject *self, Py_ssi
   int ecode1 = 0 ;
   Xapian::ValueCountMatchSpy *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -42072,6 +43160,7 @@ SWIGINTERN PyObject *_wrap_ValueCountMatchSpy_get_total(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   size_t result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueCountMatchSpy, 0 |  0 );
@@ -42099,6 +43188,7 @@ SWIGINTERN PyObject *_wrap_ValueCountMatchSpy_values_begin(PyObject *self, PyObj
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueCountMatchSpy, 0 |  0 );
@@ -42133,6 +43223,7 @@ SWIGINTERN PyObject *_wrap_ValueCountMatchSpy_values_end(PyObject *self, PyObjec
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueCountMatchSpy, 0 |  0 );
@@ -42163,6 +43254,7 @@ SWIGINTERN PyObject *_wrap_ValueCountMatchSpy_top_values_begin(PyObject *self, P
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueCountMatchSpy_top_values_begin", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueCountMatchSpy, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42204,6 +43296,7 @@ SWIGINTERN PyObject *_wrap_ValueCountMatchSpy_top_values_end(PyObject *self, PyO
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "ValueCountMatchSpy_top_values_end", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueCountMatchSpy, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42234,6 +43327,7 @@ SWIGINTERN PyObject *_wrap_delete_ValueCountMatchSpy(PyObject *self, PyObject *a
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__ValueCountMatchSpy, SWIG_POINTER_DISOWN |  0 );
@@ -42272,6 +43366,7 @@ SWIGINTERN PyObject *_wrap_miles_to_metres(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
@@ -42306,6 +43401,7 @@ SWIGINTERN PyObject *_wrap_metres_to_miles(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
@@ -42342,6 +43438,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord_latitude_set(PyObject *self, PyObject *a
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoord_latitude_set", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42373,6 +43470,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord_latitude_get(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
@@ -42402,6 +43500,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord_longitude_set(PyObject *self, PyObject *
   int ecode2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoord_longitude_set", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42433,6 +43532,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord_longitude_get(PyObject *self, PyObject *
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
@@ -42456,6 +43556,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongCoord__SWIG_0(PyObject *self, Py_ssize_t n
   PyObject *resultobj = 0;
   Xapian::LatLongCoord *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -42486,6 +43587,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongCoord__SWIG_1(PyObject *self, Py_ssize_t n
   int ecode2 = 0 ;
   Xapian::LatLongCoord *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -42553,6 +43655,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord_unserialise(PyObject *self, PyObject *ar
   std::string bytes2 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoord_unserialise", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42593,6 +43696,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord_serialise(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
@@ -42629,6 +43733,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoord___str__(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, 0 |  0 );
@@ -42662,6 +43767,7 @@ SWIGINTERN PyObject *_wrap_delete_LatLongCoord(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoord, SWIG_POINTER_DISOWN |  0 );
@@ -42703,6 +43809,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongCoordsIterator(PyObject *self, PyObject *a
   PyObject *resultobj = 0;
   Xapian::LatLongCoordsIterator *result = 0 ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "new_LatLongCoordsIterator", 0, 0, 0)) SWIG_fail;
   {
     try {
@@ -42734,6 +43841,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoordsIterator___eq__(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoordsIterator___eq__", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoordsIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42763,6 +43871,9 @@ SWIGINTERN PyObject *_wrap_LatLongCoordsIterator___eq__(PyObject *self, PyObject
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -42780,6 +43891,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoordsIterator_equals(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoordsIterator_equals", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoordsIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -42821,6 +43933,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoordsIterator_get_coord(PyObject *self, PyObj
   PyObject *swig_obj[1] ;
   Xapian::LatLongCoord result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoordsIterator, 0 |  0 );
@@ -42854,6 +43967,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoordsIterator___next__(PyObject *self, PyObje
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoordsIterator, 0 |  0 );
@@ -42887,6 +44001,7 @@ SWIGINTERN PyObject *_wrap_delete_LatLongCoordsIterator(PyObject *self, PyObject
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoordsIterator, SWIG_POINTER_DISOWN |  0 );
@@ -42925,6 +44040,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_begin(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::LatLongCoordsIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
@@ -42959,6 +44075,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_end(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::LatLongCoordsIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
@@ -42993,6 +44110,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_size(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   size_t result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
@@ -43027,6 +44145,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_empty(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
@@ -43063,6 +44182,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_append(PyObject *self, PyObject *args)
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoords_append", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -43100,6 +44220,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongCoords__SWIG_0(PyObject *self, Py_ssize_t
   PyObject *resultobj = 0;
   Xapian::LatLongCoords *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -43127,6 +44248,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongCoords__SWIG_1(PyObject *self, Py_ssize_t
   int res1 = 0 ;
   Xapian::LatLongCoords *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__LatLongCoord,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -43192,6 +44314,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_unserialise(PyObject *self, PyObject *a
   std::string bytes2 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongCoords_unserialise", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -43232,6 +44355,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords_serialise(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
@@ -43268,6 +44392,7 @@ SWIGINTERN PyObject *_wrap_LatLongCoords___str__(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, 0 |  0 );
@@ -43301,6 +44426,7 @@ SWIGINTERN PyObject *_wrap_delete_LatLongCoords(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongCoords, SWIG_POINTER_DISOWN |  0 );
@@ -43341,6 +44467,7 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_6(PyObject *self, Py_ssize_t nobjs, PyOb
   int res2 = 0 ;
   bool result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Xapian__LatLongCoordsIterator,  0  | 0);
   if (!SWIG_IsOK(res1)) {
@@ -43373,6 +44500,9 @@ SWIGINTERN PyObject *_wrap___ne____SWIG_6(PyObject *self, Py_ssize_t nobjs, PyOb
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
+  if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError)) {
+    return NULL;
+  }
   PyErr_Clear();
   Py_INCREF(Py_NotImplemented);
   return Py_NotImplemented;
@@ -43502,6 +44632,7 @@ SWIGINTERN PyObject *_wrap_delete_LatLongMetric(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, SWIG_POINTER_DISOWN |  0 );
@@ -43537,6 +44668,7 @@ SWIGINTERN PyObject *_wrap_LatLongMetric_pointwise_distance(PyObject *self, PyOb
   bool upcall = false;
   double result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "LatLongMetric_pointwise_distance", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -43597,6 +44729,7 @@ SWIGINTERN PyObject *_wrap_LatLongMetric___call____SWIG_0(PyObject *self, Py_ssi
   int res3 = 0 ;
   double result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -43650,6 +44783,7 @@ SWIGINTERN PyObject *_wrap_LatLongMetric___call____SWIG_1(PyObject *self, Py_ssi
   int res3 = SWIG_OLDOBJ ;
   double result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -43714,6 +44848,7 @@ SWIGINTERN PyObject *_wrap_LatLongMetric___call____SWIG_2(PyObject *self, Py_ssi
   int ecode4 = 0 ;
   double result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -43809,6 +44944,7 @@ SWIGINTERN PyObject *_wrap_LatLongMetric_name(PyObject *self, PyObject *args) {
   bool upcall = false;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, 0 |  0 );
@@ -43849,6 +44985,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongMetric(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   Xapian::LatLongMetric *result = 0 ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   arg1 = swig_obj[0];
@@ -43885,6 +45022,7 @@ SWIGINTERN PyObject *_wrap_disown_LatLongMetric(PyObject *self, PyObject *args)
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongMetric, 0 |  0 );
@@ -43923,6 +45061,7 @@ SWIGINTERN PyObject *_wrap_new_GreatCircleMetric__SWIG_0(PyObject *self, Py_ssiz
   PyObject *resultobj = 0;
   Xapian::GreatCircleMetric *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -43950,6 +45089,7 @@ SWIGINTERN PyObject *_wrap_new_GreatCircleMetric__SWIG_1(PyObject *self, Py_ssiz
   int ecode1 = 0 ;
   Xapian::GreatCircleMetric *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44010,6 +45150,7 @@ SWIGINTERN PyObject *_wrap_delete_GreatCircleMetric(PyObject *self, PyObject *ar
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__GreatCircleMetric, SWIG_POINTER_DISOWN |  0 );
@@ -44062,6 +45203,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_0(PyObject *se
   int ecode6 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44137,6 +45279,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_1(PyObject *se
   int ecode5 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44204,6 +45347,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_2(PyObject *se
   int ecode4 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44263,6 +45407,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_3(PyObject *se
   int res3 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44323,6 +45468,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_4(PyObject *se
   int ecode5 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44387,6 +45533,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_5(PyObject *se
   int ecode4 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44443,6 +45590,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_6(PyObject *se
   int ecode3 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44491,6 +45639,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistancePostingSource__SWIG_7(PyObject *se
   int res2 = 0 ;
   Xapian::LatLongDistancePostingSource *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44617,6 +45766,7 @@ SWIGINTERN PyObject *_wrap_delete_LatLongDistancePostingSource(PyObject *self, P
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongDistancePostingSource, SWIG_POINTER_DISOWN |  0 );
@@ -44663,6 +45813,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistanceKeyMaker__SWIG_0(PyObject *self, P
   int ecode4 = 0 ;
   Xapian::LatLongDistanceKeyMaker *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44722,6 +45873,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistanceKeyMaker__SWIG_1(PyObject *self, P
   int res3 = 0 ;
   Xapian::LatLongDistanceKeyMaker *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44773,6 +45925,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistanceKeyMaker__SWIG_2(PyObject *self, P
   int res2 = 0 ;
   Xapian::LatLongDistanceKeyMaker *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44822,6 +45975,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistanceKeyMaker__SWIG_3(PyObject *self, P
   int ecode4 = 0 ;
   Xapian::LatLongDistanceKeyMaker *result = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44881,6 +46035,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistanceKeyMaker__SWIG_4(PyObject *self, P
   int res3 = 0 ;
   Xapian::LatLongDistanceKeyMaker *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -44932,6 +46087,7 @@ SWIGINTERN PyObject *_wrap_new_LatLongDistanceKeyMaker__SWIG_5(PyObject *self, P
   int res2 = 0 ;
   Xapian::LatLongDistanceKeyMaker *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -45046,6 +46202,7 @@ SWIGINTERN PyObject *_wrap_delete_LatLongDistanceKeyMaker(PyObject *self, PyObje
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__LatLongDistanceKeyMaker, SWIG_POINTER_DISOWN |  0 );
@@ -45086,6 +46243,7 @@ SWIGINTERN PyObject *_wrap_Database_add_database(PyObject *self, PyObject *args)
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_add_database", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45127,6 +46285,7 @@ SWIGINTERN PyObject *_wrap_Database_size(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   size_t result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45157,6 +46316,7 @@ SWIGINTERN PyObject *_wrap_new_Database__SWIG_0(PyObject *self, Py_ssize_t nobjs
   PyObject *resultobj = 0;
   Xapian::Database *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -45186,6 +46346,7 @@ SWIGINTERN PyObject *_wrap_new_Database__SWIG_1(PyObject *self, Py_ssize_t nobjs
   int ecode2 = 0 ;
   Xapian::Database *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -45231,6 +46392,7 @@ SWIGINTERN PyObject *_wrap_new_Database__SWIG_2(PyObject *self, Py_ssize_t nobjs
   int res1 = SWIG_OLDOBJ ;
   Xapian::Database *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -45275,6 +46437,7 @@ SWIGINTERN PyObject *_wrap_new_Database__SWIG_3(PyObject *self, Py_ssize_t nobjs
   int ecode2 = 0 ;
   Xapian::Database *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -45312,6 +46475,7 @@ SWIGINTERN PyObject *_wrap_new_Database__SWIG_4(PyObject *self, Py_ssize_t nobjs
   int ecode1 = 0 ;
   Xapian::Database *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -45408,6 +46572,7 @@ SWIGINTERN PyObject *_wrap_delete_Database(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, SWIG_POINTER_DISOWN |  0 );
@@ -45435,6 +46600,7 @@ SWIGINTERN PyObject *_wrap_Database_reopen(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45468,6 +46634,7 @@ SWIGINTERN PyObject *_wrap_Database_close(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45502,6 +46669,7 @@ SWIGINTERN PyObject *_wrap_Database___str__(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45538,6 +46706,7 @@ SWIGINTERN PyObject *_wrap_Database__postlist_begin(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   Xapian::PostingIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__postlist_begin", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45587,6 +46756,7 @@ SWIGINTERN PyObject *_wrap_Database__postlist_end(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::PostingIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__postlist_end", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45630,6 +46800,7 @@ SWIGINTERN PyObject *_wrap_Database__termlist_begin(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__termlist_begin", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45671,6 +46842,7 @@ SWIGINTERN PyObject *_wrap_Database__termlist_end(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__termlist_end", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45702,6 +46874,7 @@ SWIGINTERN PyObject *_wrap_Database_has_positions(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -45741,6 +46914,7 @@ SWIGINTERN PyObject *_wrap_Database__positionlist_begin(PyObject *self, PyObject
   PyObject *swig_obj[3] ;
   Xapian::PositionIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__positionlist_begin", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45798,6 +46972,7 @@ SWIGINTERN PyObject *_wrap_Database__positionlist_end(PyObject *self, PyObject *
   PyObject *swig_obj[3] ;
   Xapian::PositionIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__positionlist_end", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45844,6 +47019,7 @@ SWIGINTERN PyObject *_wrap_Database__allterms_begin__SWIG_0(PyObject *self, Py_s
   int res2 = SWIG_OLDOBJ ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45890,6 +47066,7 @@ SWIGINTERN PyObject *_wrap_Database__allterms_begin__SWIG_1(PyObject *self, Py_s
   int res1 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45952,6 +47129,7 @@ SWIGINTERN PyObject *_wrap_Database__allterms_end__SWIG_0(PyObject *self, Py_ssi
   int res2 = SWIG_OLDOBJ ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -45991,6 +47169,7 @@ SWIGINTERN PyObject *_wrap_Database__allterms_end__SWIG_1(PyObject *self, Py_ssi
   int res1 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46045,6 +47224,7 @@ SWIGINTERN PyObject *_wrap_Database_get_doccount(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -46079,6 +47259,7 @@ SWIGINTERN PyObject *_wrap_Database_get_lastdocid(PyObject *self, PyObject *args
   PyObject *swig_obj[1] ;
   Xapian::docid result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -46113,6 +47294,7 @@ SWIGINTERN PyObject *_wrap_Database_get_avlength(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::doclength result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -46147,6 +47329,7 @@ SWIGINTERN PyObject *_wrap_Database_get_average_length(PyObject *self, PyObject
   PyObject *swig_obj[1] ;
   double result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -46181,6 +47364,7 @@ SWIGINTERN PyObject *_wrap_Database_get_total_length(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   Xapian::totallength result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -46217,6 +47401,7 @@ SWIGINTERN PyObject *_wrap_Database_get_termfreq(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_termfreq", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46266,6 +47451,7 @@ SWIGINTERN PyObject *_wrap_Database_term_exists(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   bool result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_term_exists", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46315,6 +47501,7 @@ SWIGINTERN PyObject *_wrap_Database_get_collection_freq(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_collection_freq", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46365,6 +47552,7 @@ SWIGINTERN PyObject *_wrap_Database_get_value_freq(PyObject *self, PyObject *arg
   PyObject *swig_obj[2] ;
   Xapian::doccount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_value_freq", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46406,6 +47594,7 @@ SWIGINTERN PyObject *_wrap_Database_get_value_lower_bound(PyObject *self, PyObje
   PyObject *swig_obj[2] ;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_value_lower_bound", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46449,6 +47638,7 @@ SWIGINTERN PyObject *_wrap_Database_get_value_upper_bound(PyObject *self, PyObje
   PyObject *swig_obj[2] ;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_value_upper_bound", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46489,6 +47679,7 @@ SWIGINTERN PyObject *_wrap_Database_get_doclength_lower_bound(PyObject *self, Py
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -46523,6 +47714,7 @@ SWIGINTERN PyObject *_wrap_Database_get_doclength_upper_bound(PyObject *self, Py
   PyObject *swig_obj[1] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -46559,6 +47751,7 @@ SWIGINTERN PyObject *_wrap_Database_get_wdf_upper_bound(PyObject *self, PyObject
   PyObject *swig_obj[2] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_wdf_upper_bound", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46609,6 +47802,7 @@ SWIGINTERN PyObject *_wrap_Database_valuestream_begin(PyObject *self, PyObject *
   PyObject *swig_obj[2] ;
   Xapian::ValueIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_valuestream_begin", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46650,6 +47844,7 @@ SWIGINTERN PyObject *_wrap_Database_valuestream_end(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   Xapian::ValueIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_valuestream_end", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46684,6 +47879,7 @@ SWIGINTERN PyObject *_wrap_Database_get_doclength(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_doclength", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46725,6 +47921,7 @@ SWIGINTERN PyObject *_wrap_Database_get_unique_terms(PyObject *self, PyObject *a
   PyObject *swig_obj[2] ;
   Xapian::termcount result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_unique_terms", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46762,6 +47959,7 @@ SWIGINTERN PyObject *_wrap_Database_keep_alive(PyObject *self, PyObject *args) {
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -46798,6 +47996,7 @@ SWIGINTERN PyObject *_wrap_Database_get_document__SWIG_0(PyObject *self, Py_ssiz
   int ecode2 = 0 ;
   Xapian::Document result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46841,6 +48040,7 @@ SWIGINTERN PyObject *_wrap_Database_get_document__SWIG_1(PyObject *self, Py_ssiz
   int ecode3 = 0 ;
   Xapian::Document result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46916,6 +48116,7 @@ SWIGINTERN PyObject *_wrap_Database_get_spelling_suggestion__SWIG_0(PyObject *se
   int ecode3 = 0 ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -46971,6 +48172,7 @@ SWIGINTERN PyObject *_wrap_Database_get_spelling_suggestion__SWIG_1(PyObject *se
   int res2 = SWIG_OLDOBJ ;
   std::string result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47048,6 +48250,7 @@ SWIGINTERN PyObject *_wrap_Database__spellings_begin(PyObject *self, PyObject *a
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -47082,6 +48285,7 @@ SWIGINTERN PyObject *_wrap_Database__spellings_end(PyObject *self, PyObject *arg
   PyObject *swig_obj[1] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -47111,6 +48315,7 @@ SWIGINTERN PyObject *_wrap_Database__synonyms_begin(PyObject *self, PyObject *ar
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__synonyms_begin", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47160,6 +48365,7 @@ SWIGINTERN PyObject *_wrap_Database__synonyms_end(PyObject *self, PyObject *args
   PyObject *swig_obj[2] ;
   Xapian::TermIterator result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database__synonyms_end", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47201,6 +48407,7 @@ SWIGINTERN PyObject *_wrap_Database__synonym_keys_begin__SWIG_0(PyObject *self,
   int res2 = SWIG_OLDOBJ ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47247,6 +48454,7 @@ SWIGINTERN PyObject *_wrap_Database__synonym_keys_begin__SWIG_1(PyObject *self,
   int res1 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47309,6 +48517,7 @@ SWIGINTERN PyObject *_wrap_Database__synonym_keys_end__SWIG_0(PyObject *self, Py
   int res2 = SWIG_OLDOBJ ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47348,6 +48557,7 @@ SWIGINTERN PyObject *_wrap_Database__synonym_keys_end__SWIG_1(PyObject *self, Py
   int res1 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47404,6 +48614,7 @@ SWIGINTERN PyObject *_wrap_Database_get_metadata(PyObject *self, PyObject *args)
   PyObject *swig_obj[2] ;
   std::string result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "Database_get_metadata", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47454,6 +48665,7 @@ SWIGINTERN PyObject *_wrap_Database__metadata_keys_begin__SWIG_0(PyObject *self,
   int res2 = SWIG_OLDOBJ ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47500,6 +48712,7 @@ SWIGINTERN PyObject *_wrap_Database__metadata_keys_begin__SWIG_1(PyObject *self,
   int res1 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47562,6 +48775,7 @@ SWIGINTERN PyObject *_wrap_Database__metadata_keys_end__SWIG_0(PyObject *self, P
   int res2 = SWIG_OLDOBJ ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47601,6 +48815,7 @@ SWIGINTERN PyObject *_wrap_Database__metadata_keys_end__SWIG_1(PyObject *self, P
   int res1 = 0 ;
   Xapian::TermIterator result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -47655,6 +48870,7 @@ SWIGINTERN PyObject *_wrap_Database_get_uuid(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   std::string result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -47691,6 +48907,7 @@ SWIGINTERN PyObject *_wrap_Database_locked(PyObject *self, PyObject *args) {
   PyObject *swig_obj[1] ;
   bool result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -47725,6 +48942,7 @@ SWIGINTERN PyObject *_wrap_Database_get_revision(PyObject *self, PyObject *args)
   PyObject *swig_obj[1] ;
   Xapian::rev result;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
@@ -47760,6 +48978,7 @@ SWIGINTERN PyObject *_wrap_Database_check__SWIG_0(PyObject *self, Py_ssize_t nob
   int ecode2 = 0 ;
   size_t result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -47805,6 +49024,7 @@ SWIGINTERN PyObject *_wrap_Database_check__SWIG_1(PyObject *self, Py_ssize_t nob
   int res1 = SWIG_OLDOBJ ;
   size_t result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -47849,6 +49069,7 @@ SWIGINTERN PyObject *_wrap_Database_check__SWIG_2(PyObject *self, Py_ssize_t nob
   int ecode2 = 0 ;
   size_t result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -47886,6 +49107,7 @@ SWIGINTERN PyObject *_wrap_Database_check__SWIG_3(PyObject *self, Py_ssize_t nob
   int ecode1 = 0 ;
   size_t result;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(swig_obj[0], &val1);
   if (!SWIG_IsOK(ecode1)) {
@@ -47983,6 +49205,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_0(PyObject *self, Py_ssize_t n
   int val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48043,6 +49266,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_1(PyObject *self, Py_ssize_t n
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48095,6 +49319,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_2(PyObject *self, Py_ssize_t n
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48149,6 +49374,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_3(PyObject *self, Py_ssize_t n
   int val4 ;
   int ecode4 = 0 ;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48201,6 +49427,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_4(PyObject *self, Py_ssize_t n
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48245,6 +49472,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_5(PyObject *self, Py_ssize_t n
   int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48292,6 +49520,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_6(PyObject *self, Py_ssize_t n
   void *argp5 = 0 ;
   int res5 = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48367,6 +49596,7 @@ SWIGINTERN PyObject *_wrap_Database_compact__SWIG_7(PyObject *self, Py_ssize_t n
   void *argp5 = 0 ;
   int res5 = 0 ;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__Database, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48535,6 +49765,7 @@ SWIGINTERN PyObject *_wrap_delete_WritableDatabase(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, SWIG_POINTER_DISOWN |  0 );
@@ -48558,6 +49789,7 @@ SWIGINTERN PyObject *_wrap_new_WritableDatabase__SWIG_0(PyObject *self, Py_ssize
   PyObject *resultobj = 0;
   Xapian::WritableDatabase *result = 0 ;
   
+  (void)self;
   if ((nobjs < 0) || (nobjs > 0)) SWIG_fail;
   {
     try {
@@ -48590,6 +49822,7 @@ SWIGINTERN PyObject *_wrap_new_WritableDatabase__SWIG_1(PyObject *self, Py_ssize
   int ecode3 = 0 ;
   Xapian::WritableDatabase *result = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -48643,6 +49876,7 @@ SWIGINTERN PyObject *_wrap_new_WritableDatabase__SWIG_2(PyObject *self, Py_ssize
   int ecode2 = 0 ;
   Xapian::WritableDatabase *result = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -48688,6 +49922,7 @@ SWIGINTERN PyObject *_wrap_new_WritableDatabase__SWIG_3(PyObject *self, Py_ssize
   int res1 = SWIG_OLDOBJ ;
   Xapian::WritableDatabase *result = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -48772,6 +50007,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_add_database(PyObject *self, PyObjec
   int res2 = 0 ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "WritableDatabase_add_database", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48812,6 +50048,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_commit(PyObject *self, PyObject *arg
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
@@ -48845,6 +50082,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_flush(PyObject *self, PyObject *args
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
@@ -48880,6 +50118,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_begin_transaction__SWIG_0(PyObject *
   bool val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48916,6 +50155,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_begin_transaction__SWIG_1(PyObject *
   void *argp1 = 0 ;
   int res1 = 0 ;
   
+  (void)self;
   if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -48976,6 +50216,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_commit_transaction(PyObject *self, P
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
@@ -49009,6 +50250,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_cancel_transaction(PyObject *self, P
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
+  (void)self;
   if (!args) SWIG_fail;
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
@@ -49046,6 +50288,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_add_document(PyObject *self, PyObjec
   PyObject *swig_obj[2] ;
   Xapian::docid result;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "WritableDatabase_add_document", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49088,6 +50331,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_delete_document__SWIG_0(PyObject *se
   unsigned int val2 ;
   int ecode2 = 0 ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49126,6 +50370,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_delete_document__SWIG_1(PyObject *se
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49213,6 +50458,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_replace_document__SWIG_0(PyObject *s
   void *argp3 = 0 ;
   int res3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49263,6 +50509,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_replace_document__SWIG_1(PyObject *s
   int res3 = 0 ;
   Xapian::docid result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49359,6 +50606,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_add_spelling__SWIG_0(PyObject *self,
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49411,6 +50659,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_add_spelling__SWIG_1(PyObject *self,
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49489,6 +50738,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_remove_spelling__SWIG_0(PyObject *se
   unsigned int val3 ;
   int ecode3 = 0 ;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49541,6 +50791,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_remove_spelling__SWIG_1(PyObject *se
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49619,6 +50870,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_add_synonym(PyObject *self, PyObject
   int res3 = SWIG_OLDOBJ ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "WritableDatabase_add_synonym", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49683,6 +50935,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_remove_synonym(PyObject *self, PyObj
   int res3 = SWIG_OLDOBJ ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "WritableDatabase_remove_synonym", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49745,6 +50998,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_clear_synonyms(PyObject *self, PyObj
   int res2 = SWIG_OLDOBJ ;
   PyObject *swig_obj[2] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "WritableDatabase_clear_synonyms", 2, 2, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49795,6 +51049,7 @@ SWIGINTERN PyObject *_wrap_WritableDatabase_set_metadata(PyObject *self, PyObjec
   int res3 = SWIG_OLDOBJ ;
   PyObject *swig_obj[3] ;
   
+  (void)self;
   if (!SWIG_Python_UnpackTuple(args, "WritableDatabase_set_metadata", 3, 3, swig_obj)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Xapian__WritableDatabase, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
@@ -49874,6 +51129,7 @@ SWIGINTERN PyObject *_wrap_remote_open__SWIG_0(PyObject *self, Py_ssize_t nobjs,
   int ecode4 = 0 ;
   Xapian::Database result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -49935,6 +51191,7 @@ SWIGINTERN PyObject *_wrap_remote_open__SWIG_1(PyObject *self, Py_ssize_t nobjs,
   int ecode3 = 0 ;
   Xapian::Database result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -49988,6 +51245,7 @@ SWIGINTERN PyObject *_wrap_remote_open__SWIG_2(PyObject *self, Py_ssize_t nobjs,
   int ecode2 = 0 ;
   Xapian::Database result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50045,6 +51303,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_0(PyObject *self, Py_ssize
   int ecode5 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 5) || (nobjs > 5)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50114,6 +51373,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_1(PyObject *self, Py_ssize
   int ecode4 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50175,6 +51435,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_2(PyObject *self, Py_ssize
   int ecode3 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50228,6 +51489,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_3(PyObject *self, Py_ssize
   int ecode2 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50278,6 +51540,7 @@ SWIGINTERN PyObject *_wrap_remote_open__SWIG_3(PyObject *self, Py_ssize_t nobjs,
   int ecode3 = 0 ;
   Xapian::Database result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50339,6 +51602,7 @@ SWIGINTERN PyObject *_wrap_remote_open__SWIG_4(PyObject *self, Py_ssize_t nobjs,
   int res2 = SWIG_OLDOBJ ;
   Xapian::Database result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50465,6 +51729,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_4(PyObject *self, Py_ssize
   int ecode4 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50534,6 +51799,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_5(PyObject *self, Py_ssize
   int ecode3 = 0 ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -50595,6 +51861,7 @@ SWIGINTERN PyObject *_wrap_remote_open_writable__SWIG_6(PyObject *self, Py_ssize
   int res2 = SWIG_OLDOBJ ;
   Xapian::WritableDatabase result;
   
+  (void)self;
   if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   {
     std::string *ptr = (std::string *)0;
@@ -51393,7 +52660,11 @@ static PyMethodDef SwigMethods[] = {
 		"Return the term frequency for the term at the current position.\n"
 		"\n"
 		"Xapian::doccount Xapian::TermIterator::get_termfreq() const\n"
-		"Xapian::TermIterator::get_termfreq\n"
+		"Xapian::TermIterator::get_termfreq Note that for a TermIterator\n"
+		"returned by calling termlist_begin() on a Document object obtained\n"
+		"from a sharded database, this method will return the term frequency\n"
+		"from the shard that the document is in rather than for the combined\n"
+		"database. \n"
 		""},
 	 { "_TermIterator_positionlist_count", _wrap__TermIterator_positionlist_count, METH_O, "\n"
 		"\n"
@@ -51638,9 +52909,10 @@ static PyMethodDef SwigMethods[] = {
 		"Set data stored in the document.\n"
 		"\n"
 		"void Xapian::Document::set_data(const std::string &data)\n"
-		"Xapian::Document::set_data  Xapian treats the data as an opaque blob.\n"
-		"It may try to compress it, but other than that it will just store it\n"
-		"and return it when requested.\n"
+		"Xapian::Document::set_data This is an opaque blob as far as Xapian is\n"
+		"concerned - it's up to you to impose whatever structure you want on\n"
+		"it. If you want to store structured data, consider using something\n"
+		"like protocol buffers.\n"
 		"\n"
 		"Parameters:\n"
 		"-----------\n"
@@ -51805,10 +53077,16 @@ static PyMethodDef SwigMethods[] = {
 	 { "Document__termlist_begin", _wrap_Document__termlist_begin, METH_O, "\n"
 		"\n"
 		"\n"
-		"Iterator for the terms in this document.\n"
+		"Start iterating the terms in this document.\n"
 		"\n"
 		"TermIterator Xapian::Document::termlist_begin() const\n"
-		"Xapian::Document::termlist_begin\n"
+		"Xapian::Document::termlist_begin The terms are returned in ascending\n"
+		"string order (by byte value).\n"
+		"\n"
+		"Note that if the Document object came from a sharded database then the\n"
+		"TermIterator returned by this method only knows about the shard the\n"
+		"document came from so calling get_termfreq() on it will give you the\n"
+		"term frequency in that shard rather than in the combined database. \n"
 		""},
 	 { "Document__termlist_end", _wrap_Document__termlist_end, METH_O, "\n"
 		"\n"
@@ -53074,7 +54352,9 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		"spy:  The MatchSpy subclass to add. The caller must ensure that this\n"
 		"remains valid while the Enquire object remains active, or until\n"
-		"clear_matchspies() is called. \n"
+		"clear_matchspies() is called, or else allocate the MatchSpy object\n"
+		"with new and then disown it by calling spy->release() before passing\n"
+		"it in. \n"
 		""},
 	 { "Enquire_clear_matchspies", _wrap_Enquire_clear_matchspies, METH_O, "\n"
 		"\n"
@@ -53531,10 +54811,10 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const ExpandDecider * Xapian::ExpandDecider::release() const\n"
-		"Xapian::ExpandDecider::release You can hand ownership of a dynamically\n"
-		"allocated ExpandDecider object to Xapian by calling release() and then\n"
-		"passing the object to a Xapian method. Xapian will arrange to delete\n"
-		"the object once it is no longer required. \n"
+		"Xapian::ExpandDecider::release You can transfer ownership of a\n"
+		"dynamically allocated ExpandDecider object to Xapian by calling\n"
+		"release() and then passing the object to a Xapian method. Xapian will\n"
+		"arrange to delete the object once it is no longer required. \n"
 		""},
 	 { "disown_ExpandDecider", _wrap_disown_ExpandDecider, METH_O, NULL},
 	 { "ExpandDecider_swigregister", ExpandDecider_swigregister, METH_O, NULL},
@@ -53596,7 +54876,7 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const KeyMaker * Xapian::KeyMaker::release() const\n"
-		"Xapian::KeyMaker::release You can hand ownership of a dynamically\n"
+		"Xapian::KeyMaker::release You can transfer ownership of a dynamically\n"
 		"allocated KeyMaker object to Xapian by calling release() and then\n"
 		"passing the object to a Xapian method. Xapian will arrange to delete\n"
 		"the object once it is no longer required. \n"
@@ -53668,7 +54948,7 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const Stopper * Xapian::Stopper::release() const\n"
-		"Xapian::Stopper::release You can hand ownership of a dynamically\n"
+		"Xapian::Stopper::release You can transfer ownership of a dynamically\n"
 		"allocated Stopper object to Xapian by calling release() and then\n"
 		"passing the object to a Xapian method. Xapian will arrange to delete\n"
 		"the object once it is no longer required. \n"
@@ -53752,7 +55032,7 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const RangeProcessor * Xapian::RangeProcessor::release() const\n"
-		"Xapian::RangeProcessor::release You can hand ownership of a\n"
+		"Xapian::RangeProcessor::release You can transfer ownership of a\n"
 		"dynamically allocated RangeProcessor object to Xapian by calling\n"
 		"release() and then passing the object to a Xapian method. Xapian will\n"
 		"arrange to delete the object once it is no longer required. \n"
@@ -54038,7 +55318,7 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const FieldProcessor * Xapian::FieldProcessor::release() const\n"
-		"Xapian::FieldProcessor::release You can hand ownership of a\n"
+		"Xapian::FieldProcessor::release You can transfer ownership of a\n"
 		"dynamically allocated FieldProcessor object to Xapian by calling\n"
 		"release() and then passing the object to a Xapian method. Xapian will\n"
 		"arrange to delete the object once it is no longer required. \n"
@@ -55114,10 +56394,10 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const PostingSource * Xapian::PostingSource::release() const\n"
-		"Xapian::PostingSource::release You can hand ownership of a dynamically\n"
-		"allocated PostingSource object to Xapian by calling release() and then\n"
-		"passing the object to a Xapian method. Xapian will arrange to delete\n"
-		"the object once it is no longer required. \n"
+		"Xapian::PostingSource::release You can transfer ownership of a\n"
+		"dynamically allocated PostingSource object to Xapian by calling\n"
+		"release() and then passing the object to a Xapian method. Xapian will\n"
+		"arrange to delete the object once it is no longer required. \n"
 		""},
 	 { "disown_PostingSource", _wrap_disown_PostingSource, METH_O, NULL},
 	 { "PostingSource_swigregister", PostingSource_swigregister, METH_O, NULL},
@@ -55657,7 +56937,7 @@ static PyMethodDef SwigMethods[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const MatchSpy * Xapian::MatchSpy::release() const\n"
-		"Xapian::MatchSpy::release You can hand ownership of a dynamically\n"
+		"Xapian::MatchSpy::release You can transfer ownership of a dynamically\n"
 		"allocated MatchSpy object to Xapian by calling release() and then\n"
 		"passing the object to a Xapian method. Xapian will arrange to delete\n"
 		"the object once it is no longer required. \n"
@@ -56153,7 +57433,8 @@ static PyMethodDef SwigMethods[] = {
 		"document.\n"
 		"\n"
 		"TermIterator Xapian::Database::termlist_begin(Xapian::docid did) const\n"
-		"Xapian::Database::termlist_begin\n"
+		"Xapian::Database::termlist_begin The terms are returned in ascending\n"
+		"string order (by byte value).\n"
 		"\n"
 		"Parameters:\n"
 		"-----------\n"
@@ -56200,7 +57481,8 @@ static PyMethodDef SwigMethods[] = {
 		"An iterator which runs across all terms with a given prefix.\n"
 		"\n"
 		"TermIterator Xapian::Database::allterms_begin(const std::string\n"
-		"&prefix=std::string()) const Xapian::Database::allterms_begin\n"
+		"&prefix=std::string()) const Xapian::Database::allterms_begin The\n"
+		"terms are returned in ascending string order (by byte value).\n"
 		"\n"
 		"Parameters:\n"
 		"-----------\n"
@@ -56756,6 +58038,10 @@ static PyMethodDef SwigMethods[] = {
 		"not performed at all: it is then up to the application to work out\n"
 		"which operations need to be repeated.\n"
 		"\n"
+		"However, note that if called on a sharded database, atomicity isn't\n"
+		"guaranteed between shards - it's possible for the changes to one shard\n"
+		"to be committed but changes to another shard to fail.\n"
+		"\n"
 		"It's not valid to call commit() within a transaction.\n"
 		"\n"
 		"Beware of calling commit() too frequently: this will make indexing\n"
@@ -56801,6 +58087,10 @@ static PyMethodDef SwigMethods[] = {
 		"all. Even in the case of a power failure, this characteristic should\n"
 		"be preserved (as long as the filesystem isn't corrupted, etc).\n"
 		"\n"
+		"However, note that if called on a sharded database, atomicity isn't\n"
+		"guaranteed between shards. Within each shard, the transaction will\n"
+		"still act atomically.\n"
+		"\n"
 		"A transaction is started with begin_transaction() and can either be\n"
 		"committed by calling commit_transaction() or aborted by calling\n"
 		"cancel_transaction().\n"
@@ -56859,6 +58149,10 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		"In all cases the transaction will no longer be in progress.\n"
 		"\n"
+		"Note that if called on a sharded database, atomicity isn't guaranteed\n"
+		"between shards. Within each shard, the transaction will still act\n"
+		"atomically.\n"
+		"\n"
 		"Parameters:\n"
 		"-----------\n"
 		"\n"
@@ -57861,7 +59155,11 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Return the term frequency for the term at the current position.\n"
 		"\n"
 		"Xapian::doccount Xapian::TermIterator::get_termfreq() const\n"
-		"Xapian::TermIterator::get_termfreq\n"
+		"Xapian::TermIterator::get_termfreq Note that for a TermIterator\n"
+		"returned by calling termlist_begin() on a Document object obtained\n"
+		"from a sharded database, this method will return the term frequency\n"
+		"from the shard that the document is in rather than for the combined\n"
+		"database. \n"
 		""},
 	 { "_TermIterator_positionlist_count", _wrap__TermIterator_positionlist_count, METH_O, "\n"
 		"\n"
@@ -58106,9 +59404,10 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Set data stored in the document.\n"
 		"\n"
 		"void Xapian::Document::set_data(const std::string &data)\n"
-		"Xapian::Document::set_data  Xapian treats the data as an opaque blob.\n"
-		"It may try to compress it, but other than that it will just store it\n"
-		"and return it when requested.\n"
+		"Xapian::Document::set_data This is an opaque blob as far as Xapian is\n"
+		"concerned - it's up to you to impose whatever structure you want on\n"
+		"it. If you want to store structured data, consider using something\n"
+		"like protocol buffers.\n"
 		"\n"
 		"Parameters:\n"
 		"-----------\n"
@@ -58273,10 +59572,16 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 	 { "Document__termlist_begin", _wrap_Document__termlist_begin, METH_O, "\n"
 		"\n"
 		"\n"
-		"Iterator for the terms in this document.\n"
+		"Start iterating the terms in this document.\n"
 		"\n"
 		"TermIterator Xapian::Document::termlist_begin() const\n"
-		"Xapian::Document::termlist_begin\n"
+		"Xapian::Document::termlist_begin The terms are returned in ascending\n"
+		"string order (by byte value).\n"
+		"\n"
+		"Note that if the Document object came from a sharded database then the\n"
+		"TermIterator returned by this method only knows about the shard the\n"
+		"document came from so calling get_termfreq() on it will give you the\n"
+		"term frequency in that shard rather than in the combined database. \n"
 		""},
 	 { "Document__termlist_end", _wrap_Document__termlist_end, METH_O, "\n"
 		"\n"
@@ -59542,7 +60847,9 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"\n"
 		"spy:  The MatchSpy subclass to add. The caller must ensure that this\n"
 		"remains valid while the Enquire object remains active, or until\n"
-		"clear_matchspies() is called. \n"
+		"clear_matchspies() is called, or else allocate the MatchSpy object\n"
+		"with new and then disown it by calling spy->release() before passing\n"
+		"it in. \n"
 		""},
 	 { "Enquire_clear_matchspies", _wrap_Enquire_clear_matchspies, METH_O, "\n"
 		"\n"
@@ -59999,10 +61306,10 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const ExpandDecider * Xapian::ExpandDecider::release() const\n"
-		"Xapian::ExpandDecider::release You can hand ownership of a dynamically\n"
-		"allocated ExpandDecider object to Xapian by calling release() and then\n"
-		"passing the object to a Xapian method. Xapian will arrange to delete\n"
-		"the object once it is no longer required. \n"
+		"Xapian::ExpandDecider::release You can transfer ownership of a\n"
+		"dynamically allocated ExpandDecider object to Xapian by calling\n"
+		"release() and then passing the object to a Xapian method. Xapian will\n"
+		"arrange to delete the object once it is no longer required. \n"
 		""},
 	 { "disown_ExpandDecider", _wrap_disown_ExpandDecider, METH_O, NULL},
 	 { "ExpandDecider_swigregister", ExpandDecider_swigregister, METH_O, NULL},
@@ -60064,7 +61371,7 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const KeyMaker * Xapian::KeyMaker::release() const\n"
-		"Xapian::KeyMaker::release You can hand ownership of a dynamically\n"
+		"Xapian::KeyMaker::release You can transfer ownership of a dynamically\n"
 		"allocated KeyMaker object to Xapian by calling release() and then\n"
 		"passing the object to a Xapian method. Xapian will arrange to delete\n"
 		"the object once it is no longer required. \n"
@@ -60136,7 +61443,7 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const Stopper * Xapian::Stopper::release() const\n"
-		"Xapian::Stopper::release You can hand ownership of a dynamically\n"
+		"Xapian::Stopper::release You can transfer ownership of a dynamically\n"
 		"allocated Stopper object to Xapian by calling release() and then\n"
 		"passing the object to a Xapian method. Xapian will arrange to delete\n"
 		"the object once it is no longer required. \n"
@@ -60220,7 +61527,7 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const RangeProcessor * Xapian::RangeProcessor::release() const\n"
-		"Xapian::RangeProcessor::release You can hand ownership of a\n"
+		"Xapian::RangeProcessor::release You can transfer ownership of a\n"
 		"dynamically allocated RangeProcessor object to Xapian by calling\n"
 		"release() and then passing the object to a Xapian method. Xapian will\n"
 		"arrange to delete the object once it is no longer required. \n"
@@ -60506,7 +61813,7 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const FieldProcessor * Xapian::FieldProcessor::release() const\n"
-		"Xapian::FieldProcessor::release You can hand ownership of a\n"
+		"Xapian::FieldProcessor::release You can transfer ownership of a\n"
 		"dynamically allocated FieldProcessor object to Xapian by calling\n"
 		"release() and then passing the object to a Xapian method. Xapian will\n"
 		"arrange to delete the object once it is no longer required. \n"
@@ -61582,10 +62889,10 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const PostingSource * Xapian::PostingSource::release() const\n"
-		"Xapian::PostingSource::release You can hand ownership of a dynamically\n"
-		"allocated PostingSource object to Xapian by calling release() and then\n"
-		"passing the object to a Xapian method. Xapian will arrange to delete\n"
-		"the object once it is no longer required. \n"
+		"Xapian::PostingSource::release You can transfer ownership of a\n"
+		"dynamically allocated PostingSource object to Xapian by calling\n"
+		"release() and then passing the object to a Xapian method. Xapian will\n"
+		"arrange to delete the object once it is no longer required. \n"
 		""},
 	 { "disown_PostingSource", _wrap_disown_PostingSource, METH_O, NULL},
 	 { "PostingSource_swigregister", PostingSource_swigregister, METH_O, NULL},
@@ -62125,7 +63432,7 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"Start reference counting this object.\n"
 		"\n"
 		"const MatchSpy * Xapian::MatchSpy::release() const\n"
-		"Xapian::MatchSpy::release You can hand ownership of a dynamically\n"
+		"Xapian::MatchSpy::release You can transfer ownership of a dynamically\n"
 		"allocated MatchSpy object to Xapian by calling release() and then\n"
 		"passing the object to a Xapian method. Xapian will arrange to delete\n"
 		"the object once it is no longer required. \n"
@@ -62621,7 +63928,8 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"document.\n"
 		"\n"
 		"TermIterator Xapian::Database::termlist_begin(Xapian::docid did) const\n"
-		"Xapian::Database::termlist_begin\n"
+		"Xapian::Database::termlist_begin The terms are returned in ascending\n"
+		"string order (by byte value).\n"
 		"\n"
 		"Parameters:\n"
 		"-----------\n"
@@ -62668,7 +63976,8 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"An iterator which runs across all terms with a given prefix.\n"
 		"\n"
 		"TermIterator Xapian::Database::allterms_begin(const std::string\n"
-		"&prefix=std::string()) const Xapian::Database::allterms_begin\n"
+		"&prefix=std::string()) const Xapian::Database::allterms_begin The\n"
+		"terms are returned in ascending string order (by byte value).\n"
 		"\n"
 		"Parameters:\n"
 		"-----------\n"
@@ -63224,6 +64533,10 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"not performed at all: it is then up to the application to work out\n"
 		"which operations need to be repeated.\n"
 		"\n"
+		"However, note that if called on a sharded database, atomicity isn't\n"
+		"guaranteed between shards - it's possible for the changes to one shard\n"
+		"to be committed but changes to another shard to fail.\n"
+		"\n"
 		"It's not valid to call commit() within a transaction.\n"
 		"\n"
 		"Beware of calling commit() too frequently: this will make indexing\n"
@@ -63269,6 +64582,10 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"all. Even in the case of a power failure, this characteristic should\n"
 		"be preserved (as long as the filesystem isn't corrupted, etc).\n"
 		"\n"
+		"However, note that if called on a sharded database, atomicity isn't\n"
+		"guaranteed between shards. Within each shard, the transaction will\n"
+		"still act atomically.\n"
+		"\n"
 		"A transaction is started with begin_transaction() and can either be\n"
 		"committed by calling commit_transaction() or aborted by calling\n"
 		"cancel_transaction().\n"
@@ -63327,6 +64644,10 @@ static PyMethodDef SwigMethods_proxydocs[] = {
 		"\n"
 		"In all cases the transaction will no longer be in progress.\n"
 		"\n"
+		"Note that if called on a sharded database, atomicity isn't guaranteed\n"
+		"between shards. Within each shard, the transaction will still act\n"
+		"atomically.\n"
+		"\n"
 		"Parameters:\n"
 		"-----------\n"
 		"\n"
@@ -64994,6 +66315,7 @@ SWIG_init(void) {
   SWIG_Python_SetConstant(d, "Query_WILDCARD_LIMIT_FIRST",SWIG_From_int(static_cast< int >(Xapian::Query::WILDCARD_LIMIT_FIRST)));
   SWIG_Python_SetConstant(d, "Query_WILDCARD_LIMIT_MOST_FREQUENT",SWIG_From_int(static_cast< int >(Xapian::Query::WILDCARD_LIMIT_MOST_FREQUENT)));
   SWIG_Python_SetConstant(d, "TermGenerator_FLAG_SPELLING",SWIG_From_int(static_cast< int >(Xapian::TermGenerator::FLAG_SPELLING)));
+  SWIG_Python_SetConstant(d, "TermGenerator_FLAG_NGRAMS",SWIG_From_int(static_cast< int >(Xapian::TermGenerator::FLAG_NGRAMS)));
   SWIG_Python_SetConstant(d, "TermGenerator_FLAG_CJK_NGRAM",SWIG_From_int(static_cast< int >(Xapian::TermGenerator::FLAG_CJK_NGRAM)));
   SWIG_Python_SetConstant(d, "TermGenerator_STEM_NONE",SWIG_From_int(static_cast< int >(Xapian::TermGenerator::STEM_NONE)));
   SWIG_Python_SetConstant(d, "TermGenerator_STEM_SOME",SWIG_From_int(static_cast< int >(Xapian::TermGenerator::STEM_SOME)));
@@ -65006,6 +66328,7 @@ SWIG_init(void) {
   SWIG_Python_SetConstant(d, "MSet_SNIPPET_BACKGROUND_MODEL",SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_BACKGROUND_MODEL)));
   SWIG_Python_SetConstant(d, "MSet_SNIPPET_EXHAUSTIVE",SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_EXHAUSTIVE)));
   SWIG_Python_SetConstant(d, "MSet_SNIPPET_EMPTY_WITHOUT_MATCH",SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_EMPTY_WITHOUT_MATCH)));
+  SWIG_Python_SetConstant(d, "MSet_SNIPPET_NGRAMS",SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_NGRAMS)));
   SWIG_Python_SetConstant(d, "MSet_SNIPPET_CJK_NGRAM",SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_CJK_NGRAM)));
   SWIG_Python_SetConstant(d, "Enquire_ASCENDING",SWIG_From_int(static_cast< int >(Xapian::Enquire::ASCENDING)));
   SWIG_Python_SetConstant(d, "Enquire_DESCENDING",SWIG_From_int(static_cast< int >(Xapian::Enquire::DESCENDING)));
@@ -65026,6 +66349,7 @@ SWIG_init(void) {
   SWIG_Python_SetConstant(d, "QueryParser_FLAG_SYNONYM",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_SYNONYM)));
   SWIG_Python_SetConstant(d, "QueryParser_FLAG_AUTO_SYNONYMS",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_AUTO_SYNONYMS)));
   SWIG_Python_SetConstant(d, "QueryParser_FLAG_AUTO_MULTIWORD_SYNONYMS",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_AUTO_MULTIWORD_SYNONYMS)));
+  SWIG_Python_SetConstant(d, "QueryParser_FLAG_NGRAMS",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_NGRAMS)));
   SWIG_Python_SetConstant(d, "QueryParser_FLAG_CJK_NGRAM",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_CJK_NGRAM)));
   SWIG_Python_SetConstant(d, "QueryParser_FLAG_ACCUMULATE",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_ACCUMULATE)));
   SWIG_Python_SetConstant(d, "QueryParser_FLAG_NO_POSITIONS",SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_NO_POSITIONS)));
diff --git a/python3/xapian_wrap.h b/python3/xapian_wrap.h
index f5654c6f8026d7676e871487bafa93dc1c8007f3..3792c617ccf72d3f8175e551b3a26a249372a8fa 100644
--- a/python3/xapian_wrap.h
+++ b/python3/xapian_wrap.h
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/ruby/Makefile.am b/ruby/Makefile.am
index 8cd9b77bf2d1db805148bf8d4251287769931f99..495f6ac5121ffc6956aea4a908ebc587cbd38eb7 100644
--- a/ruby/Makefile.am
+++ b/ruby/Makefile.am
@@ -5,7 +5,7 @@ include ../generic/generic.mk
 ## Test programs to be run
 TESTS = smoketest.rb
 LOG_COMPILER = $(MACOS_SIP_HACK_ENV) $(RUBY)
-AM_LOG_FLAGS = -I.libs -I'$(srcdir)'
+AM_LOG_FLAGS = -I'$(_libs)' -I'$(srcdir)'
 
 installcheck-local:
 	$(MAKE) check AM_LOG_FLAGS=
diff --git a/ruby/Makefile.in b/ruby/Makefile.in
index 4c921b2c5fd8de49450bfedca0709f0d9d9dbe35..0e2c61bf6e7f586a5abbf68b43c5e562ffc6aa33 100644
--- a/ruby/Makefile.in
+++ b/ruby/Makefile.in
@@ -95,9 +95,7 @@ host_triplet = @host@
 subdir = ruby
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(dist_docdata_DATA) \
@@ -476,9 +474,9 @@ LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 LUA = @LUA@
-LUA_CPPFLAGS = @LUA_CPPFLAGS@
-LUA_INC = @LUA_INC@
+LUA_CFLAGS = @LUA_CFLAGS@
 LUA_LIB = @LUA_LIB@
+LUA_LIBS = @LUA_LIBS@
 LUA_SO = @LUA_SO@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
@@ -512,6 +510,10 @@ PHP_INC = @PHP_INC@
 PHP_LIBS = @PHP_LIBS@
 PHP_MAJOR_VERSION = @PHP_MAJOR_VERSION@
 PHP_PATH_SEPARATOR = @PHP_PATH_SEPARATOR@
+PHP_SHLIB_SUFFIX = @PHP_SHLIB_SUFFIX@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 PYTHON = @PYTHON@
 PYTHON2 = @PYTHON2@
 PYTHON2_INC = @PYTHON2_INC@
@@ -549,6 +551,7 @@ TCL_CPPFLAGS = @TCL_CPPFLAGS@
 TCL_INC = @TCL_INC@
 TCL_LIB = @TCL_LIB@
 TCL_LIBS = @TCL_LIBS@
+TCL_SHLIB_EXT = @TCL_SHLIB_EXT@
 THREAD_LOCAL = @THREAD_LOCAL@
 VERSION = @VERSION@
 VERSION_NO_SNAPSHOT = @VERSION_NO_SNAPSHOT@
@@ -558,6 +561,7 @@ XAPIAN_HEADERS = @XAPIAN_HEADERS@
 XAPIAN_HEADER_DIRS = @XAPIAN_HEADER_DIRS@
 XAPIAN_LIBS = @XAPIAN_LIBS@
 XAPIAN_VERSION = @XAPIAN_VERSION@
+_libs = @_libs@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -635,7 +639,7 @@ multitarget_begin = @rm -f $@-t; touch $@-t
 multitarget_end = @mv -f $@-t $@
 TESTS = smoketest.rb
 LOG_COMPILER = $(MACOS_SIP_HACK_ENV) $(RUBY)
-AM_LOG_FLAGS = -I.libs -I'$(srcdir)'
+AM_LOG_FLAGS = -I'$(_libs)' -I'$(srcdir)'
 SWIG_GENERATED = xapian_wrap.cc xapian_wrap.h
 EXTRA_DIST = ruby.i extra.i docs/index.rst $(TESTS) $(SWIG_GENERATED) \
 	generate-rdoc-stubs docs/xapian.rb
diff --git a/ruby/docs/index.html b/ruby/docs/index.html
index 0759e6bae1b67bd2ebe0fb69b5342c84a7da44ec..a81b38c22a8c4cb98b1be564a09a5919a3e1fadb 100644
--- a/ruby/docs/index.html
+++ b/ruby/docs/index.html
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
+<meta name="generator" content="Docutils 0.20.1: https://docutils.sourceforge.io/" />
 <title>Ruby bindings for Xapian</title>
 <style type="text/css">
 
@@ -382,7 +382,7 @@ in your ruby program.</p>
 to your Ruby program. Names have been altered to conform to the
 standard Ruby naming conventions (i.e. <tt class="docutils literal">get_foo()</tt> in C++ becomes <tt class="docutils literal">foo()</tt>
 in Ruby; <tt class="docutils literal">set_foo()</tt> becomes <tt class="docutils literal"><span class="pre">foo=()</span></tt>).  C++ <tt class="docutils literal">operator()</tt> methods are
-renamed to <tt class="docutils literal">call</tt> methods in Ruby.</p>
+renamed to <tt class="docutils literal">__call__</tt> methods in Ruby.</p>
 <p>The C++ methods are not yet documented in the <a class="reference external" href="rdocs/">RDocs</a>.
 In the meantime, refer to the
 <a class="reference external" href="https://xapian.org/docs/apidoc/html/annotated.html">C++ API documentation</a>
@@ -390,11 +390,11 @@ for information on how to use the various methods. Most are
 available directly in the Ruby version. The RDocs currently provide information
 only on methods that are unique to the Ruby version.</p>
 <p>The dangerous/non-Rubish methods from the C++ API have been renamed to
-start with underscores (<tt class="docutils literal">_</tt>) in the Ruby bindings. You can see them in
-use in xapian.rb. It is strongly recommended that you do not call any
-method that starts with <tt class="docutils literal">_</tt> directly in your code, but instead use the
-wrappers defined in xapian.rb. Improper use of an <tt class="docutils literal">_</tt> method can cause
-the Ruby process to segfault.</p>
+start with a single underscore (<tt class="docutils literal">_</tt>) in the Ruby bindings. You can see them
+in use in xapian.rb. It is strongly recommended that you do not call any
+method that starts with a single underscore directly in your code, but instead
+use the wrappers defined in xapian.rb. Improper use of such methods can
+cause the Ruby process to segfault.</p>
 </div>
 <div class="section" id="unicode-support">
 <h1>Unicode Support</h1>
@@ -473,10 +473,10 @@ q = Xapian::Query.new(Xapian::Query::OP_AND, [subq, &quot;foo&quot;, Xapian::Que
 <h1>MatchDecider</h1>
 <p>Custom MatchDeciders can be created in Ruby; simply subclass
 Xapian::MatchDecider, ensure you call the superclass constructor, and define a
-__call__ method that will do the work. The simplest example (which does nothing
-useful) would be as follows:</p>
+<tt class="docutils literal">__call__</tt> method that will do the work. The simplest example (which does
+nothing useful) would be as follows:</p>
 <pre class="literal-block">
-class MyMatchDecider &lt; Xapian\::MatchDecider
+class MyMatchDecider &lt; Xapian::MatchDecider
   def __call__(doc):
     return true
   end
diff --git a/ruby/docs/index.rst b/ruby/docs/index.rst
index 56ff2c7046951e991c7720c11e197e808a82bb73..6306173e70b24e7242a9ea1f9e3c5148eb517c07 100644
--- a/ruby/docs/index.rst
+++ b/ruby/docs/index.rst
@@ -25,7 +25,7 @@ Most standard Xapian methods are available directly
 to your Ruby program. Names have been altered to conform to the
 standard Ruby naming conventions (i.e. ``get_foo()`` in C++ becomes ``foo()``
 in Ruby; ``set_foo()`` becomes ``foo=()``).  C++ ``operator()`` methods are
-renamed to ``call`` methods in Ruby.
+renamed to ``__call__`` methods in Ruby.
 
 The C++ methods are not yet documented in the `RDocs <rdocs/>`_.
 In the meantime, refer to the
@@ -35,11 +35,11 @@ available directly in the Ruby version. The RDocs currently provide information
 only on methods that are unique to the Ruby version.
 
 The dangerous/non-Rubish methods from the C++ API have been renamed to
-start with underscores (``_``) in the Ruby bindings. You can see them in
-use in xapian.rb. It is strongly recommended that you do not call any
-method that starts with ``_`` directly in your code, but instead use the
-wrappers defined in xapian.rb. Improper use of an ``_`` method can cause
-the Ruby process to segfault.
+start with a single underscore (``_``) in the Ruby bindings. You can see them
+in use in xapian.rb. It is strongly recommended that you do not call any
+method that starts with a single underscore directly in your code, but instead
+use the wrappers defined in xapian.rb. Improper use of such methods can
+cause the Ruby process to segfault.
 
 Unicode Support
 ###############
@@ -129,12 +129,12 @@ MatchDecider
 
 Custom MatchDeciders can be created in Ruby; simply subclass
 Xapian::MatchDecider, ensure you call the superclass constructor, and define a
-__call__ method that will do the work. The simplest example (which does nothing
-useful) would be as follows:
+``__call__`` method that will do the work. The simplest example (which does
+nothing useful) would be as follows:
 
 ::
 
-  class MyMatchDecider < Xapian\::MatchDecider
+  class MyMatchDecider < Xapian::MatchDecider
     def __call__(doc):
       return true
     end
diff --git a/ruby/xapian_wrap.cc b/ruby/xapian_wrap.cc
index 224bdf8bc21376769057116df4b45ed9e1c8259f..6a39a5eb6819791d0549e852dd3f20c765bfb5ae 100644
--- a/ruby/xapian_wrap.cc
+++ b/ruby/xapian_wrap.cc
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
@@ -40,7 +40,7 @@
 
 
 
-#define SWIG_VERSION 0x040101
+#define SWIG_VERSION 0x040200
 #define SWIGRUBY
 #define SWIG_DIRECTORS
 
@@ -168,6 +168,32 @@
 # pragma warning disable 592
 #endif
 
+#if __cplusplus >=201103L
+# define SWIG_NULLPTR nullptr
+#else
+# define SWIG_NULLPTR NULL
+#endif 
+
+
+/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
+ * if you're missing it.
+ */
+#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
+     (defined __cplusplus && __cplusplus >= 201103L) || \
+     defined SWIG_HAVE_SNPRINTF) && \
+    !defined SWIG_NO_SNPRINTF
+# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
+#else
+/* Fallback versions ignore the buffer size, but most of our uses either have a
+ * fixed maximum possible size or dynamically allocate a buffer that's large
+ * enough.
+ */
+# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
+#endif
+
+
 /* -----------------------------------------------------------------------------
  *  This section contains generic SWIG labels for method/variable
  *  declarations/attributes, and other compiler dependent labels.
@@ -292,6 +318,12 @@
 # pragma warning disable 592
 #endif
 
+#if __cplusplus >=201103L
+# define SWIG_NULLPTR nullptr
+#else
+# define SWIG_NULLPTR NULL
+#endif 
+
 /* -----------------------------------------------------------------------------
  * swigrun.swg
  *
@@ -439,7 +471,7 @@
 #define SWIG_CASTRANKLIMIT         (1 << 8)
 /* The NewMask denotes the object was created (using new/malloc) */
 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
-/* The TmpMask is for in/out typemaps that use temporal objects */
+/* The TmpMask is for in/out typemaps that use temporary objects */
 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
 /* Simple returning values */
 #define SWIG_BADOBJ                (SWIG_ERROR)
@@ -904,6 +936,7 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
 #endif
 
 #include <ruby.h>
+#include <ruby/version.h> /* For RUBY_API_VERSION_CODE */
 
 #if __GNUC__ >= 7
 #pragma GCC diagnostic pop
@@ -1009,9 +1042,9 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
 /*
  * The following macros are used for providing the correct type of a
  * function pointer to the Ruby C API.
- * Starting with Ruby 2.7 (corresponding to RB_METHOD_DEFINITION_DECL being
- * defined) these macros act transparently due to Ruby's moving away from
- * ANYARGS and instead employing strict function signatures.
+ *
+ * Starting with Ruby 2.7 these macros act transparently due to Ruby's moving
+ * moving away from ANYARGS and instead employing strict function signatures.
  *
  * Note: In case of C (not C++) the macros are transparent even before
  * Ruby 2.7 due to the fact that the Ruby C API used function declarators
@@ -1035,7 +1068,7 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
  * SWIG_RUBY_INT_ANYARGS_FUNC(f) is used for the function pointer
  * argument(s) of Ruby C API functions like st_foreach().
  */
-#if defined(__cplusplus) && !defined(RB_METHOD_DEFINITION_DECL)
+#if defined(__cplusplus) && RUBY_API_VERSION_CODE < 20700
 #  define PROTECTFUNC(f) ((VALUE (*)(VALUE)) f)
 #  define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f)
 #  define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
@@ -1188,7 +1221,7 @@ const char* Ruby_Format_TypeError( const char* msg,
     }
 
   str = rb_str_cat2( str, "Expected argument " );
-  sprintf( buf, "%d of type ", argn-1 );
+  SWIG_snprintf( buf, sizeof( buf), "%d of type ", argn-1 );
   str = rb_str_cat2( str, buf );
   str = rb_str_cat2( str, type );
   str = rb_str_cat2( str, ", but got " );
@@ -1487,6 +1520,7 @@ static VALUE swig_runtime_data_type_pointer = Qnil;
 /* Global IDs used to keep some internal SWIG stuff */
 static ID swig_arity_id = 0;
 static ID swig_call_id  = 0;
+static ID swig_lowerthan_id = 0;
 
 /*
   If your swig extension is to be run within an embedded ruby and has
@@ -1538,7 +1572,7 @@ SWIG_Ruby_ExceptionType(swig_type_info *desc, VALUE obj) {
   VALUE exceptionClass = getExceptionClass();
   if (rb_obj_is_kind_of(obj, exceptionClass)) {
     return obj;
-  }  else {
+  } else {
     return rb_exc_new3(rb_eRuntimeError, rb_obj_as_string(obj));
   }
 }
@@ -1551,6 +1585,7 @@ SWIG_Ruby_InitRuntime(void)
     _mSWIG = rb_define_module("SWIG");
     swig_call_id  = rb_intern("call");
     swig_arity_id = rb_intern("arity");
+    swig_lowerthan_id = rb_intern("<");
   }
 }
 
@@ -1558,13 +1593,14 @@ SWIG_Ruby_InitRuntime(void)
 SWIGRUNTIME void
 SWIG_Ruby_define_class(swig_type_info *type)
 {
-  char *klass_name = (char *) malloc(4 + strlen(type->name) + 1);
-  sprintf(klass_name, "TYPE%s", type->name);
+  size_t klass_len = 4 + strlen(type->name) + 1;
+  char *klass_name = (char *) malloc(klass_len);
+  SWIG_snprintf(klass_name, klass_len, "TYPE%s", type->name);
   if (NIL_P(_cSWIG_Pointer)) {
     _cSWIG_Pointer = rb_define_class_under(_mSWIG, "Pointer", rb_cObject);
     rb_undef_method(CLASS_OF(_cSWIG_Pointer), "new");
   }
-  rb_define_class_under(_mSWIG, klass_name, _cSWIG_Pointer);
+  rb_undef_alloc_func(rb_define_class_under(_mSWIG, klass_name, _cSWIG_Pointer));
   free((void *) klass_name);
 }
 
@@ -1615,8 +1651,9 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
       SWIG_RubyAddTracking(ptr, obj);
     }
   } else {
-    klass_name = (char *) malloc(4 + strlen(type->name) + 1);
-    sprintf(klass_name, "TYPE%s", type->name);
+    size_t klass_len = 4 + strlen(type->name) + 1;
+    klass_name = (char *) malloc(klass_len);
+    SWIG_snprintf(klass_name, klass_len, "TYPE%s", type->name);
     klass = rb_const_get(_mSWIG, rb_intern(klass_name));
     free((void *) klass_name);
     obj = Data_Wrap_Struct(klass, 0, 0, ptr);
@@ -3039,7 +3076,7 @@ SWIG_ruby_failed(VALUE SWIGUNUSEDPARM(arg1), VALUE SWIGUNUSEDPARM(arg2))
 } 
 
 
-/*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
+/*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
 SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE arg)
 {
   VALUE *args = (VALUE *)arg;
@@ -3061,6 +3098,8 @@ SWIG_AsVal_unsigned_SS_long (VALUE obj, unsigned long *val)
     a[0] = obj;
     a[1] = (VALUE)(&v);
     if (rb_rescue(VALUEFUNC(SWIG_AUX_NUM2ULONG), (VALUE)a, VALUEFUNC(SWIG_ruby_failed), 0) != Qnil) {
+      if (rb_funcall(obj, swig_lowerthan_id, 1, INT2FIX(0)) != Qfalse)
+        return SWIG_OverflowError;
       if (val) *val = v;
       return SWIG_OK;
     }
@@ -3085,7 +3124,7 @@ SWIG_AsVal_unsigned_SS_long (VALUE obj, unsigned long *val)
 
 
 #ifdef SWIG_LONG_LONG_AVAILABLE
-/*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
+/*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
 SWIGINTERN VALUE SWIG_AUX_NUM2ULL(VALUE arg)
 {
   VALUE *args = (VALUE *)arg;
@@ -3107,6 +3146,8 @@ SWIG_AsVal_unsigned_SS_long_SS_long (VALUE obj, unsigned long long *val)
     a[0] = obj;
     a[1] = (VALUE)(&v);
     if (rb_rescue(VALUEFUNC(SWIG_AUX_NUM2ULL), (VALUE)a, VALUEFUNC(SWIG_ruby_failed), 0) != Qnil) {
+      if (rb_funcall(obj, swig_lowerthan_id, 1, INT2FIX(0)) != Qfalse)
+        return SWIG_OverflowError;
       if (val) *val = v;
       return SWIG_OK;
     }
@@ -3144,7 +3185,7 @@ SWIG_From_bool  (bool value)
 }
 
 
-/*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
+/*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
 SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE arg)
 {
   VALUE *args = (VALUE *)arg;
@@ -3175,7 +3216,7 @@ SWIG_AsVal_long (VALUE obj, long* val)
 
 
 #ifdef SWIG_LONG_LONG_AVAILABLE
-/*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
+/*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
 SWIGINTERN VALUE SWIG_AUX_NUM2LL(VALUE arg)
 {
   VALUE *args = (VALUE *)arg;
@@ -3577,7 +3618,7 @@ SWIGINTERN bool Xapian_ValueIterator_equals(Xapian::ValueIterator const *self,Xa
 SWIGINTERN std::string Xapian_ValueIterator_get_value(Xapian::ValueIterator const *self){ return **self; }
 SWIGINTERN void Xapian_ValueIterator_next(Xapian::ValueIterator *self){ ++(*self); }
 
-/*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.CvkeOGDC6G/swig/Lib/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
+/*@SWIG:/home/olly/git/xapian-1.4/TMP.make_dist.QReMRLFUbP/swig/Lib/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
 SWIGINTERN VALUE SWIG_AUX_NUM2DBL(VALUE arg)
 {
   VALUE *args = (VALUE *)arg;
@@ -3690,7 +3731,7 @@ SWIGINTERN bool Xapian_ESetIterator_equals(Xapian::ESetIterator const *self,Xapi
 SWIGINTERN std::string Xapian_ESetIterator_get_term(Xapian::ESetIterator const *self){ return **self; }
 SWIGINTERN void Xapian_ESetIterator_next(Xapian::ESetIterator *self){ ++(*self); }
 SWIGINTERN void Xapian_ESetIterator_prev(Xapian::ESetIterator *self){ --(*self); }
-SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_2(std::string const &file){
+SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_1(std::string const &file){
 	ifstream in_file(file.c_str());
 	if (!in_file.is_open())
 	    throw Xapian::InvalidArgumentError("Stopword file not found: " + file);
@@ -10103,7 +10144,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_new_Query__SWIG_17(int argc, VALUE *argv, VALUE self) {
+_wrap_new_Query__SWIG_15(int argc, VALUE *argv, VALUE self) {
   Xapian::Query::op arg1 ;
   XapianSWIGQueryItor arg2 ;
   XapianSWIGQueryItor arg3 ;
@@ -10155,7 +10196,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_new_Query__SWIG_18(int argc, VALUE *argv, VALUE self) {
+_wrap_new_Query__SWIG_16(int argc, VALUE *argv, VALUE self) {
   Xapian::Query::op arg1 ;
   XapianSWIGQueryItor arg2 ;
   XapianSWIGQueryItor arg3 ;
@@ -10664,7 +10705,7 @@ _wrap_Query_allocate(int argc, VALUE *argv, VALUE self)
 
 
 SWIGINTERN VALUE
-_wrap_new_Query__SWIG_19(int argc, VALUE *argv, VALUE self) {
+_wrap_new_Query__SWIG_17(int argc, VALUE *argv, VALUE self) {
   Xapian::Query::op arg1 ;
   int val1 ;
   int ecode1 = 0 ;
@@ -10724,7 +10765,7 @@ SWIGINTERN VALUE _wrap_new_Query(int nargs, VALUE *args, VALUE self) {
       _v = SWIG_CheckState(res);
     }
     if (_v) {
-      return _wrap_new_Query__SWIG_19(nargs, args, self);
+      return _wrap_new_Query__SWIG_17(nargs, args, self);
     }
   }
   if (argc == 1) {
@@ -10769,9 +10810,9 @@ SWIGINTERN VALUE _wrap_new_Query(int nargs, VALUE *args, VALUE self) {
       }
       if (_v) {
         if (argc <= 2) {
-          return _wrap_new_Query__SWIG_18(nargs, args, self);
+          return _wrap_new_Query__SWIG_16(nargs, args, self);
         }
-        return _wrap_new_Query__SWIG_18(nargs, args, self);
+        return _wrap_new_Query__SWIG_16(nargs, args, self);
       }
     }
   }
@@ -10927,7 +10968,7 @@ SWIGINTERN VALUE _wrap_new_Query(int nargs, VALUE *args, VALUE self) {
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_new_Query__SWIG_17(nargs, args, self);
+          return _wrap_new_Query__SWIG_15(nargs, args, self);
         }
       }
     }
@@ -21669,7 +21710,7 @@ _wrap_SimpleStopper_allocate(int argc, VALUE *argv, VALUE self)
 
 
 SWIGINTERN VALUE
-_wrap_new_SimpleStopper__SWIG_2(int argc, VALUE *argv, VALUE self) {
+_wrap_new_SimpleStopper__SWIG_1(int argc, VALUE *argv, VALUE self) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   const char *classname SWIGUNUSED = "Xapian::SimpleStopper";
@@ -21691,7 +21732,7 @@ _wrap_new_SimpleStopper__SWIG_2(int argc, VALUE *argv, VALUE self) {
   }
   {
     try {
-      result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_2((std::string const &)*arg1);
+      result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_1((std::string const &)*arg1);
       DATA_PTR(self) = result;
     } catch (...) {
       string msg;
@@ -21725,7 +21766,7 @@ SWIGINTERN VALUE _wrap_new_SimpleStopper(int nargs, VALUE *args, VALUE self) {
     int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_new_SimpleStopper__SWIG_2(nargs, args, self);
+      return _wrap_new_SimpleStopper__SWIG_1(nargs, args, self);
     }
   }
   
@@ -32135,7 +32176,7 @@ _wrap_Compactor_resolve_duplicate_metadata(int argc, VALUE *argv, VALUE self) {
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
-  std::string *arg4 ;
+  std::string *arg4 = (std::string *) (std::string *)0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
@@ -46629,6 +46670,7 @@ SWIGEXPORT void Init__xapian(void) {
   rb_define_method(SwigClassTermGenerator.klass, "document", VALUEFUNC(_wrap_TermGenerator_document), -1);
   rb_define_method(SwigClassTermGenerator.klass, "database=", VALUEFUNC(_wrap_TermGenerator_databasee___), -1);
   rb_define_const(SwigClassTermGenerator.klass, "FLAG_SPELLING", SWIG_From_int(static_cast< int >(Xapian::TermGenerator::FLAG_SPELLING)));
+  rb_define_const(SwigClassTermGenerator.klass, "FLAG_NGRAMS", SWIG_From_int(static_cast< int >(Xapian::TermGenerator::FLAG_NGRAMS)));
   rb_define_const(SwigClassTermGenerator.klass, "FLAG_CJK_NGRAM", SWIG_From_int(static_cast< int >(Xapian::TermGenerator::FLAG_CJK_NGRAM)));
   rb_define_const(SwigClassTermGenerator.klass, "STEM_NONE", SWIG_From_int(static_cast< int >(Xapian::TermGenerator::STEM_NONE)));
   rb_define_const(SwigClassTermGenerator.klass, "STEM_SOME", SWIG_From_int(static_cast< int >(Xapian::TermGenerator::STEM_SOME)));
@@ -46671,6 +46713,7 @@ SWIGEXPORT void Init__xapian(void) {
   rb_define_const(SwigClassMSet.klass, "SNIPPET_BACKGROUND_MODEL", SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_BACKGROUND_MODEL)));
   rb_define_const(SwigClassMSet.klass, "SNIPPET_EXHAUSTIVE", SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_EXHAUSTIVE)));
   rb_define_const(SwigClassMSet.klass, "SNIPPET_EMPTY_WITHOUT_MATCH", SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_EMPTY_WITHOUT_MATCH)));
+  rb_define_const(SwigClassMSet.klass, "SNIPPET_NGRAMS", SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_NGRAMS)));
   rb_define_const(SwigClassMSet.klass, "SNIPPET_CJK_NGRAM", SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_CJK_NGRAM)));
   rb_define_method(SwigClassMSet.klass, "snippet", VALUEFUNC(_wrap_MSet_snippet), -1);
   rb_define_method(SwigClassMSet.klass, "fetch", VALUEFUNC(_wrap_MSet_fetch), -1);
@@ -46981,6 +47024,7 @@ SWIGEXPORT void Init__xapian(void) {
   rb_define_const(SwigClassQueryParser.klass, "FLAG_SYNONYM", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_SYNONYM)));
   rb_define_const(SwigClassQueryParser.klass, "FLAG_AUTO_SYNONYMS", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_AUTO_SYNONYMS)));
   rb_define_const(SwigClassQueryParser.klass, "FLAG_AUTO_MULTIWORD_SYNONYMS", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_AUTO_MULTIWORD_SYNONYMS)));
+  rb_define_const(SwigClassQueryParser.klass, "FLAG_NGRAMS", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_NGRAMS)));
   rb_define_const(SwigClassQueryParser.klass, "FLAG_CJK_NGRAM", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_CJK_NGRAM)));
   rb_define_const(SwigClassQueryParser.klass, "FLAG_ACCUMULATE", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_ACCUMULATE)));
   rb_define_const(SwigClassQueryParser.klass, "FLAG_NO_POSITIONS", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_NO_POSITIONS)));
diff --git a/ruby/xapian_wrap.h b/ruby/xapian_wrap.h
index 0caf8468779681a2792bafcaed8d1880cb6f73f8..0ef8bc216d09898e4af6e34307de8d0c4f08c144 100644
--- a/ruby/xapian_wrap.h
+++ b/ruby/xapian_wrap.h
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
diff --git a/swig-depcomp b/swig-depcomp
index 9d6137614cc5015f70dbb41f5bd7f76e39510858..c36ae2027b8ec9a01feab41ef68ac6634f19ee1a 100644
--- a/swig-depcomp
+++ b/swig-depcomp
@@ -42,6 +42,7 @@ my $target;
 
 my @sources = ();
 while (<TMPDEPS>) {
+    s/\r$//;
     if (!defined $target) {
 	/(.*):/ or next;
 	$target = $1;
diff --git a/tcl8/Makefile.am b/tcl8/Makefile.am
index 594a79f2fa14ad1cbf40972867bca65cef5c553c..a736092791b95cf29c57230356628d3e3f45a5b1 100644
--- a/tcl8/Makefile.am
+++ b/tcl8/Makefile.am
@@ -6,11 +6,14 @@ include ../generic/generic.mk
 TESTS = smoketest.tcl
 AM_TESTS_ENVIRONMENT = \
 	srcdir='$(srcdir)' ;\
-	LIBTOOL='$(LIBTOOL)' ;\
-	TCLSH='$(TCLSH)' ; \
+	TCLSH='$(TCLSH)' ;\
+	TCL_SHLIB_EXT='$(TCL_SHLIB_EXT)' ;\
+	_libs="$(_libs)" ;\
 	export srcdir ;\
-	export LIBTOOL ;\
-	export TCLSH ;
+	export TCLSH ;\
+	export TCL_SHLIB_EXT ;\
+	export _libs ;
+
 LOG_COMPILER = $(srcdir)/run-tcl-test
 
 installcheck-local:
@@ -39,12 +42,11 @@ install-data-hook:
 # Because we don't install the .la file, "make uninstall" doesn't work and
 # we need to remove the file ourselves.
 uninstall-local:
-	eval `grep '^dlname=' $(tcllib_LTLIBRARIES)` ; \
-	  rm -f $(DESTDIR)$(tcllibdir)/"$$dlname"
+	rm -f $(DESTDIR)$(tcllibdir)/xapian$(TCL_SHLIB_EXT)
 
 AM_CPPFLAGS = @TCL_CPPFLAGS@
 AM_CXXFLAGS = @SWIG_CXXFLAGS@ $(XAPIAN_CXXFLAGS)
-xapian_la_LDFLAGS = -avoid-version -module $(NO_UNDEFINED)
+xapian_la_LDFLAGS = -avoid-version -module -shrext '$(TCL_SHLIB_EXT)' $(NO_UNDEFINED)
 nodist_xapian_la_SOURCES = xapian_wrap.cc
 xapian_la_LIBADD = $(XAPIAN_LIBS) $(TCL_LIBS)
 
diff --git a/tcl8/Makefile.in b/tcl8/Makefile.in
index 514c55258f80584ee0db01a25e86a0bb4c92aad5..f5b0102a78a6cd8d65fe8b25bd429458661dfb0c 100644
--- a/tcl8/Makefile.in
+++ b/tcl8/Makefile.in
@@ -94,9 +94,7 @@ host_triplet = @host@
 subdir = tcl8
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(dist_docdata_DATA) \
@@ -454,9 +452,9 @@ LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
 LUA = @LUA@
-LUA_CPPFLAGS = @LUA_CPPFLAGS@
-LUA_INC = @LUA_INC@
+LUA_CFLAGS = @LUA_CFLAGS@
 LUA_LIB = @LUA_LIB@
+LUA_LIBS = @LUA_LIBS@
 LUA_SO = @LUA_SO@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
@@ -490,6 +488,10 @@ PHP_INC = @PHP_INC@
 PHP_LIBS = @PHP_LIBS@
 PHP_MAJOR_VERSION = @PHP_MAJOR_VERSION@
 PHP_PATH_SEPARATOR = @PHP_PATH_SEPARATOR@
+PHP_SHLIB_SUFFIX = @PHP_SHLIB_SUFFIX@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 PYTHON = @PYTHON@
 PYTHON2 = @PYTHON2@
 PYTHON2_INC = @PYTHON2_INC@
@@ -527,6 +529,7 @@ TCL_CPPFLAGS = @TCL_CPPFLAGS@
 TCL_INC = @TCL_INC@
 TCL_LIB = @TCL_LIB@
 TCL_LIBS = @TCL_LIBS@
+TCL_SHLIB_EXT = @TCL_SHLIB_EXT@
 THREAD_LOCAL = @THREAD_LOCAL@
 VERSION = @VERSION@
 VERSION_NO_SNAPSHOT = @VERSION_NO_SNAPSHOT@
@@ -536,6 +539,7 @@ XAPIAN_HEADERS = @XAPIAN_HEADERS@
 XAPIAN_HEADER_DIRS = @XAPIAN_HEADER_DIRS@
 XAPIAN_LIBS = @XAPIAN_LIBS@
 XAPIAN_VERSION = @XAPIAN_VERSION@
+_libs = @_libs@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -614,11 +618,13 @@ multitarget_end = @mv -f $@-t $@
 TESTS = smoketest.tcl
 AM_TESTS_ENVIRONMENT = \
 	srcdir='$(srcdir)' ;\
-	LIBTOOL='$(LIBTOOL)' ;\
-	TCLSH='$(TCLSH)' ; \
+	TCLSH='$(TCLSH)' ;\
+	TCL_SHLIB_EXT='$(TCL_SHLIB_EXT)' ;\
+	_libs="$(_libs)" ;\
 	export srcdir ;\
-	export LIBTOOL ;\
-	export TCLSH ;
+	export TCLSH ;\
+	export TCL_SHLIB_EXT ;\
+	export _libs ;
 
 LOG_COMPILER = $(srcdir)/run-tcl-test
 SWIG_GENERATED = xapian_wrap.cc
@@ -633,7 +639,7 @@ tcllib_LTLIBRARIES = xapian.la
 tcllib_DATA = pkgIndex.tcl
 AM_CPPFLAGS = @TCL_CPPFLAGS@
 AM_CXXFLAGS = @SWIG_CXXFLAGS@ $(XAPIAN_CXXFLAGS)
-xapian_la_LDFLAGS = -avoid-version -module $(NO_UNDEFINED)
+xapian_la_LDFLAGS = -avoid-version -module -shrext '$(TCL_SHLIB_EXT)' $(NO_UNDEFINED)
 nodist_xapian_la_SOURCES = xapian_wrap.cc
 xapian_la_LIBADD = $(XAPIAN_LIBS) $(TCL_LIBS)
 @MAINTAINER_MODE_TRUE@RUN_SWIG = $(PERL) '$(top_srcdir)'/swig-depcomp $(SWIG)
@@ -1249,8 +1255,7 @@ install-data-hook:
 # Because we don't install the .la file, "make uninstall" doesn't work and
 # we need to remove the file ourselves.
 uninstall-local:
-	eval `grep '^dlname=' $(tcllib_LTLIBRARIES)` ; \
-	  rm -f $(DESTDIR)$(tcllibdir)/"$$dlname"
+	rm -f $(DESTDIR)$(tcllibdir)/xapian$(TCL_SHLIB_EXT)
 @MAINTAINER_MODE_TRUE@except.i: $(srcdir)/generate-tcl-exceptions ../../xapian-core/exception_data.pm
 @MAINTAINER_MODE_TRUE@	$(PERL) -w -I$(srcdir)/../../xapian-core $(srcdir)/generate-tcl-exceptions
 
diff --git a/tcl8/docs/index.html b/tcl8/docs/index.html
index d0db9afb595957e4b6c1ffa16b6906a8260303f3..a6ac4b6efed663419aec4502dd423a57cb66bf16 100644
--- a/tcl8/docs/index.html
+++ b/tcl8/docs/index.html
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
+<meta name="generator" content="Docutils 0.20.1: https://docutils.sourceforge.io/" />
 <title>Tcl8 bindings for Xapian</title>
 <style type="text/css">
 
diff --git a/tcl8/run-tcl-test b/tcl8/run-tcl-test
index 71545638689b9e10fdf8b0c56ccf500e856a4cb4..1e9e39d5b12e60e1d33a21a4c2a098c1ff3e33f6 100755
--- a/tcl8/run-tcl-test
+++ b/tcl8/run-tcl-test
@@ -1,15 +1,9 @@
 #!/bin/sh
-${LIBTOOL-../libtool} --config > libtoolconfig.$$
-. ./libtoolconfig.$$
-rm -f libtoolconfig.$$
-module=yes
-eval shlibext=$shrext_cmds
+set -e
 
-tclshlibext=`echo 'puts [info sharedlibextension]'|${TCLSH-tclsh}`
+: ${TCL_SHLIB_EXT=.so}
 
-rm -f xapian$tclshlibext
-ln -s $objdir/xapian$shlibext xapian$tclshlibext
-$MACOS_SIP_HACK_ENV ${TCLSH-tclsh} ${srcdir-.}/runtest.tcl ${srcdir-.}/smoketest.tcl
-rc=$?
-rm -f xapian$tclshlibext
-exit $rc
+rm -f "xapian$TCL_SHLIB_EXT"
+trap 'rm -f "xapian$TCL_SHLIB_EXT"' 0 1 2 13 15
+ln -s "${_libs-.libs}/xapian$TCL_SHLIB_EXT" "xapian$TCL_SHLIB_EXT"
+$MACOS_SIP_HACK_ENV ${TCLSH-tclsh} "${srcdir-.}/runtest.tcl" "$@"
diff --git a/tcl8/smoketest.tcl b/tcl8/smoketest.tcl
index 17dc42c3346dbcbc3e605d40770e32118ecbd6f0..9f4284a1642338f2edd99c5516ad017179415c77 100644
--- a/tcl8/smoketest.tcl
+++ b/tcl8/smoketest.tcl
@@ -1,4 +1,4 @@
-# Simple test that we can load the xapian module and run a simple test
+# Simple test that we can use xapian from Tcl
 #
 # Copyright (C) 2004,2006,2009,2011,2019 Olly Betts
 #
diff --git a/tcl8/xapian_wrap.cc b/tcl8/xapian_wrap.cc
index 6783a4ae8765187f75092ed24c109cb74fa10ecb..86fca0fa8e76ec2ce79e067648e1a7c1b3d5ea80 100644
--- a/tcl8/xapian_wrap.cc
+++ b/tcl8/xapian_wrap.cc
@@ -1,13 +1,13 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (https://www.swig.org).
- * Version 4.1.1
+ * Version 4.2.0
  *
  * Do not make changes to this file unless you know what you are doing - modify
  * the SWIG interface file instead.
  * ----------------------------------------------------------------------------- */
 
 
-#define SWIG_VERSION 0x040101
+#define SWIG_VERSION 0x040200
 #define SWIGTCL
 /* -----------------------------------------------------------------------------
  *  This section contains generic SWIG labels for method/variable
@@ -133,6 +133,32 @@
 # pragma warning disable 592
 #endif
 
+#if __cplusplus >=201103L
+# define SWIG_NULLPTR nullptr
+#else
+# define SWIG_NULLPTR NULL
+#endif 
+
+
+/* C99 and C++11 should provide snprintf, but define SWIG_NO_SNPRINTF
+ * if you're missing it.
+ */
+#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || \
+     (defined __cplusplus && __cplusplus >= 201103L) || \
+     defined SWIG_HAVE_SNPRINTF) && \
+    !defined SWIG_NO_SNPRINTF
+# define SWIG_snprintf(O,S,F,A) snprintf(O,S,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) snprintf(O,S,F,A,B)
+#else
+/* Fallback versions ignore the buffer size, but most of our uses either have a
+ * fixed maximum possible size or dynamically allocate a buffer that's large
+ * enough.
+ */
+# define SWIG_snprintf(O,S,F,A) sprintf(O,F,A)
+# define SWIG_snprintf2(O,S,F,A,B) sprintf(O,F,A,B)
+#endif
+
+
 
 #include <stdio.h>
 #include <tcl.h>
@@ -288,7 +314,7 @@
 #define SWIG_CASTRANKLIMIT         (1 << 8)
 /* The NewMask denotes the object was created (using new/malloc) */
 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
-/* The TmpMask is for in/out typemaps that use temporal objects */
+/* The TmpMask is for in/out typemaps that use temporary objects */
 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
 /* Simple returning values */
 #define SWIG_BADOBJ                (SWIG_ERROR)
@@ -792,15 +818,15 @@ SWIG_Tcl_SetErrorObj(Tcl_Interp *interp, const char *ctype, Tcl_Obj *obj)
 {
   Tcl_ResetResult(interp);
   Tcl_SetObjResult(interp, obj);
-  Tcl_SetErrorCode(interp, "SWIG", ctype, NULL);
+  Tcl_SetErrorCode(interp, "SWIG", ctype, (char *)NULL);
 }
 
 SWIGINTERN void
 SWIG_Tcl_SetErrorMsg(Tcl_Interp *interp, const char *ctype, const char *mesg)
 {
   Tcl_ResetResult(interp);
-  Tcl_SetErrorCode(interp, "SWIG", ctype, NULL);
-  Tcl_AppendResult(interp, ctype, " ", mesg, NULL);
+  Tcl_SetErrorCode(interp, "SWIG", ctype, (char *)NULL);
+  Tcl_AppendResult(interp, ctype, " ", mesg, (char *)NULL);
   /*
   Tcl_AddErrorInfo(interp, ctype);
   Tcl_AddErrorInfo(interp, " ");
@@ -841,8 +867,8 @@ typedef struct swig_const_info {
     swig_type_info **ptype;
 } swig_const_info;
 
-typedef int   (*swig_wrapper)(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST []);
-typedef int   (*swig_wrapper_func)(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST []);
+typedef int   (*swig_wrapper)(ClientData, Tcl_Interp *, int, Tcl_Obj *const []);
+typedef int   (*swig_wrapper_func)(ClientData, Tcl_Interp *, int, Tcl_Obj *const []);
 typedef char *(*swig_variable_func)(ClientData, Tcl_Interp *, char *, char *, int);
 typedef void  (*swig_delete_func)(ClientData);
 
@@ -881,7 +907,7 @@ typedef struct swig_instance {
 /* Structure for command table */
 typedef struct {
   const char *name;
-  int       (*wrapper)(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST []);
+  int       (*wrapper)(ClientData, Tcl_Interp *, int, Tcl_Obj *const []);
   ClientData  clientdata;
 } swig_command_info;
 
@@ -995,7 +1021,7 @@ SWIG_Tcl_GetConstantObj(const char *key) {
 #define SWIG_Tcl_GetConstant    SWIG_Tcl_GetConstantObj
 
 #if TCL_MAJOR_VERSION > 8 || (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION >= 5)
-#define SWIG_TCL_HASHTABLE_INIT {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+#define SWIG_TCL_HASHTABLE_INIT {0, {0, 0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0}
 #else
 #define SWIG_TCL_HASHTABLE_INIT {0}
 #endif
@@ -1065,7 +1091,7 @@ SWIG_Tcl_ConvertPtrFromString(Tcl_Interp *interp, const char *c, void **ptr, swi
     /* from being called when c is not a command, firing the unknown proc */
     if (Tcl_VarEval(interp,"info commands ", c, (char *) NULL) == TCL_OK) {
       Tcl_Obj *result = Tcl_GetObjResult(interp);
-      if (*(Tcl_GetStringFromObj(result, NULL)) == 0) {
+      if (*(Tcl_GetString(result)) == 0) {
         /* It's not a command, so it can't be a pointer */
         Tcl_ResetResult(interp);
         return SWIG_ERROR;
@@ -1083,7 +1109,7 @@ SWIG_Tcl_ConvertPtrFromString(Tcl_Interp *interp, const char *c, void **ptr, swi
       return SWIG_ERROR;
     }
 
-    c = Tcl_GetStringFromObj(Tcl_GetObjResult(interp), NULL);
+    c = Tcl_GetString(Tcl_GetObjResult(interp));
   }
   cmd_name = c;
 
@@ -1127,7 +1153,7 @@ SWIG_Tcl_ConvertPtrFromString(Tcl_Interp *interp, const char *c, void **ptr, swi
 /* Convert a pointer value */
 SWIGRUNTIMEINLINE int
 SWIG_Tcl_ConvertPtr(Tcl_Interp *interp, Tcl_Obj *oc, void **ptr, swig_type_info *ty, int flags) {
-  return SWIG_Tcl_ConvertPtrFromString(interp, Tcl_GetStringFromObj(oc,NULL), ptr, ty, flags);
+  return SWIG_Tcl_ConvertPtrFromString(interp, Tcl_GetString(oc), ptr, ty, flags);
 }
 
 /* Convert a pointer value */
@@ -1154,7 +1180,7 @@ SWIG_Tcl_ConvertPacked(Tcl_Interp *SWIGUNUSEDPARM(interp) , Tcl_Obj *obj, void *
   const char  *c;
 
   if (!obj) goto type_error;
-  c = Tcl_GetStringFromObj(obj,NULL);
+  c = Tcl_GetString(obj);
   /* Pointer values must start with leading underscore */
   if (*c != '_') goto type_error;
   c++;
@@ -1253,7 +1279,7 @@ SWIG_Tcl_ObjectDelete(ClientData clientData) {
 
 /* Function to invoke object methods given an instance */
 SWIGRUNTIME int
-SWIG_Tcl_MethodCommand(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST _objv[]) {
+SWIG_Tcl_MethodCommand(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const _objv[]) {
   char *method,   *attrname;
   swig_instance   *inst = (swig_instance *) clientData;
   swig_method     *meth;
@@ -1273,7 +1299,7 @@ SWIG_Tcl_MethodCommand(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_
     Tcl_SetResult(interp, (char *) "wrong # args.", TCL_STATIC);
     return TCL_ERROR;
   }
-  method = Tcl_GetStringFromObj(objv[1],NULL);
+  method = Tcl_GetString(objv[1]);
   if (strcmp(method,"-acquire") == 0) {
     inst->destroy = 1;
     SWIG_Acquire(inst->thisvalue);
@@ -1336,7 +1362,7 @@ SWIG_Tcl_MethodCommand(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_
         Tcl_SetResult(interp, (char *) "wrong # args.", TCL_STATIC);
         return TCL_ERROR;
       }
-      attrname = Tcl_GetStringFromObj(objv[2],NULL);
+      attrname = Tcl_GetString(objv[2]);
       attr = cls->attributes;
       while (attr && attr->name) {
         if ((strcmp(attr->name, attrname) == 0) && (attr->getmethod)) {
@@ -1370,7 +1396,7 @@ SWIG_Tcl_MethodCommand(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_
       }
       i = 2;
       while (i < objc) {
-        attrname = Tcl_GetStringFromObj(objv[i],NULL);
+        attrname = Tcl_GetString(objv[i]);
         attr = cls->attributes;
         while (attr && attr->name) {
           if ((strcmp(attr->name, attrname) == 0) && (attr->setmethod)) {
@@ -1439,7 +1465,7 @@ SWIG_Tcl_NewInstanceObj(Tcl_Interp *interp, void *thisvalue, swig_type_info *typ
     Tcl_CmdInfo    ci;
     int has_command;
     char          *name;
-    name = Tcl_GetStringFromObj(robj,NULL);
+    name = Tcl_GetString(robj);
     has_command = Tcl_GetCommandInfo(interp, name, &ci);
     if (!has_command || flags) {
       swig_instance *newinst = (swig_instance *) malloc(sizeof(swig_instance));
@@ -1448,7 +1474,7 @@ SWIG_Tcl_NewInstanceObj(Tcl_Interp *interp, void *thisvalue, swig_type_info *typ
       newinst->thisvalue = thisvalue;
       newinst->classptr = (swig_class *) type->clientdata;
       newinst->destroy = flags;
-      newinst->cmdtok = Tcl_CreateObjCommand(interp, Tcl_GetStringFromObj(robj,NULL), (swig_wrapper_func) SWIG_MethodCommand, (ClientData) newinst, (swig_delete_func) SWIG_ObjectDelete);
+      newinst->cmdtok = Tcl_CreateObjCommand(interp, Tcl_GetString(robj), (swig_wrapper_func) SWIG_MethodCommand, (ClientData) newinst, (swig_delete_func) SWIG_ObjectDelete);
       if (flags) {
         SWIG_Acquire(thisvalue);
       }
@@ -1468,7 +1494,7 @@ SWIG_Tcl_NewInstanceObj(Tcl_Interp *interp, void *thisvalue, swig_type_info *typ
 
 /* Function to create objects */
 SWIGRUNTIME int
-SWIG_Tcl_ObjectConstructor(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+SWIG_Tcl_ObjectConstructor(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Tcl_Obj          *newObj = 0;
   void             *thisvalue = 0;
   swig_instance   *newinst = 0;
@@ -1485,7 +1511,7 @@ SWIG_Tcl_ObjectConstructor(ClientData clientData, Tcl_Interp *interp, int objc,
   }
   cons = classptr->constructor;
   if (objc > 1) {
-    char *s = Tcl_GetStringFromObj(objv[1],NULL);
+    char *s = Tcl_GetString(objv[1]);
     if (strcmp(s,"-this") == 0) {
       thisarg = 2;
       cons = 0;
@@ -1497,7 +1523,7 @@ SWIG_Tcl_ObjectConstructor(ClientData clientData, Tcl_Interp *interp, int objc,
     } else if (objc >= 3) {
       char *s1;
       name = s;
-      s1 = Tcl_GetStringFromObj(objv[2],NULL);
+      s1 = Tcl_GetString(objv[2]);
       if (strcmp(s1,"-this") == 0) {
 	thisarg = 3;
 	cons = 0;
@@ -1513,12 +1539,12 @@ SWIG_Tcl_ObjectConstructor(ClientData clientData, Tcl_Interp *interp, int objc,
       return result;
     }
     newObj = Tcl_DuplicateObj(Tcl_GetObjResult(interp));
-    if (!name) name = Tcl_GetStringFromObj(newObj,NULL);
+    if (!name) name = Tcl_GetString(newObj);
   } else if (thisarg > 0) {
     if (thisarg < objc) {
       destroy = 0;
       newObj = Tcl_DuplicateObj(objv[thisarg]);
-      if (!name) name = Tcl_GetStringFromObj(newObj,NULL);
+      if (!name) name = Tcl_GetString(newObj);
     } else {
       Tcl_SetResult(interp, (char *) "wrong # args.", TCL_STATIC);
       return TCL_ERROR;
@@ -1548,7 +1574,7 @@ SWIG_Tcl_ObjectConstructor(ClientData clientData, Tcl_Interp *interp, int objc,
  *   Get arguments 
  * -----------------------------------------------------------------------------*/
 SWIGRUNTIME int
-SWIG_Tcl_GetArgs(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], const char *fmt, ...) {
+SWIG_Tcl_GetArgs(Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], const char *fmt, ...) {
   int        argno = 0, opt = 0;
   long       tempi;
   double     tempd;
@@ -1577,7 +1603,7 @@ SWIG_Tcl_GetArgs(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], const char
     vptr = va_arg(ap,void *);
     if (vptr) {
       if (isupper(*c)) {
-        obj = SWIG_Tcl_GetConstantObj(Tcl_GetStringFromObj(objv[argno+1],0));
+        obj = SWIG_Tcl_GetConstantObj(Tcl_GetString(objv[argno+1]));
         if (!obj) obj = objv[argno+1];
       } else {
         obj = objv[argno+1];
@@ -1605,11 +1631,11 @@ SWIG_Tcl_GetArgs(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], const char
           *((char **) vptr) = Tcl_GetStringFromObj(obj, vlptr);
           c++;
         } else {
-          *((char **)vptr) = Tcl_GetStringFromObj(obj,NULL);
+          *((char **)vptr) = Tcl_GetString(obj);
         }
         break;
       case 'c': case 'C':
-        *((char *)vptr) = *(Tcl_GetStringFromObj(obj,NULL));
+        *((char *)vptr) = *(Tcl_GetString(obj));
         break;
       case 'p': case 'P':
         ty = (swig_type_info *) va_arg(ap, void *);
@@ -1634,11 +1660,11 @@ SWIG_Tcl_GetArgs(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], const char
  argerror:
   {
     char temp[32];
-    sprintf(temp,"%d", argno+1);
+    SWIG_snprintf(temp, sizeof(temp), "%d", argno+1);
     c = strchr(fmt,':');
     if (!c) c = strchr(fmt,';');
     if (!c) c = (char *)"";
-    Tcl_AppendResult(interp,c," argument ", temp, NULL);
+    Tcl_AppendResult(interp,c," argument ", temp, (char *)NULL);
     va_end(ap);
     return TCL_ERROR;
   }
@@ -1757,7 +1783,7 @@ static swig_module_info swig_module = {swig_types, 84, 0, 0, 0, 0};
 #define SWIG_prefix  "xapian::"
 #define SWIG_namespace "xapian"
 
-#define SWIG_version "1.4.22"
+#define SWIG_version "1.4.25"
 
 #ifdef __cplusplus
 #include <utility>
@@ -1957,7 +1983,7 @@ SWIGINTERN Tcl_Obj* SwigString_FromString(const std::string &s) {
     return Tcl_NewStringObj(s.data(), (int)s.length());
 }
 
-SWIGINTERN int Tcl_GetBoolFromObj(Tcl_Interp *interp, Tcl_Obj *o, bool *val) {
+SWIGINTERN int SWIG_Tcl_GetBoolFromObj(Tcl_Interp *interp, Tcl_Obj *o, bool *val) {
   int v;
   int res = Tcl_GetBooleanFromObj(interp, o, &v);
   if (res == TCL_OK) {
@@ -2152,7 +2178,7 @@ SWIG_From_unsigned_SS_long  (unsigned long value)
     return SWIG_From_long  (static_cast< long >(value));
   } else {
     char temp[256]; 
-    sprintf(temp, "%lu", value);
+    SWIG_snprintf(temp, sizeof(temp), "%lu", value);
     return Tcl_NewStringObj(temp,-1);
   }
 }
@@ -2341,7 +2367,7 @@ SWIG_From_long_SS_long  (long long value)
     return SWIG_From_long  (static_cast< long >(value));
   } else {    
     char temp[256]; 
-    sprintf(temp, "%lld", value);
+    SWIG_snprintf(temp, sizeof(temp), "%lld", value);
     return Tcl_NewStringObj(temp,-1);
   }
 }
@@ -2356,7 +2382,7 @@ SWIG_From_unsigned_SS_long_SS_long  (unsigned long long value)
     return SWIG_From_long_SS_long  (static_cast< long long >(value));
   } else {
     char temp[256]; 
-    sprintf(temp, "%llu", value);
+    SWIG_snprintf(temp, sizeof(temp), "%llu", value);
     return Tcl_NewStringObj(temp,-1);
   }
 }
@@ -2484,7 +2510,7 @@ SWIGINTERN std::pair< Xapian::TermIterator,Xapian::TermIterator > Xapian_Enquire
 	return std::make_pair(self->get_matching_terms_begin(item),
 			      self->get_matching_terms_end(item));
     }
-SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_2(std::string const &file){
+SWIGINTERN Xapian::SimpleStopper *new_Xapian_SimpleStopper__SWIG_1(std::string const &file){
 	ifstream in_file(file.c_str());
 	if (!in_file.is_open())
 	    throw Xapian::InvalidArgumentError("Stopword file not found: " + file);
@@ -2502,7 +2528,7 @@ SWIGINTERN void Xapian_LatLongCoordsIterator_next(Xapian::LatLongCoordsIterator
 extern "C" {
 #endif
 SWIGINTERN int
-_wrap_version_string(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_version_string(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   char *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::version_string ") == TCL_ERROR) SWIG_fail;
@@ -2515,7 +2541,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_major_version(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_major_version(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   int result;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::major_version ") == TCL_ERROR) SWIG_fail;
@@ -2528,7 +2554,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_minor_version(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_minor_version(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   int result;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::minor_version ") == TCL_ERROR) SWIG_fail;
@@ -2541,7 +2567,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_revision(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_revision(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   int result;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::revision ") == TCL_ERROR) SWIG_fail;
@@ -2554,7 +2580,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_PositionIterator__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_PositionIterator__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PositionIterator *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -2586,7 +2612,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_PositionIterator__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_PositionIterator__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PositionIterator *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_PositionIterator ") == TCL_ERROR) SWIG_fail;
@@ -2607,8 +2633,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_PositionIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_PositionIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_PositionIterator__SWIG_1(clientData, interp, objc, argv - 1);
@@ -2632,7 +2658,7 @@ _wrap_new_PositionIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp,
 
 
 SWIGINTERN int
-_wrap_delete_PositionIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_PositionIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PositionIterator *arg1 = (Xapian::PositionIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -2660,7 +2686,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PositionIterator_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PositionIterator_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PositionIterator *arg1 = (Xapian::PositionIterator *) 0 ;
   Xapian::termpos arg2 ;
   void *argp1 = 0 ;
@@ -2696,7 +2722,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PositionIterator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PositionIterator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PositionIterator *arg1 = (Xapian::PositionIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -2725,7 +2751,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PositionIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PositionIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PositionIterator *arg1 = (Xapian::PositionIterator *) 0 ;
   Xapian::PositionIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -2765,7 +2791,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PositionIterator_get_termpos(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PositionIterator_get_termpos(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PositionIterator *arg1 = (Xapian::PositionIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -2794,7 +2820,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PositionIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PositionIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PositionIterator *arg1 = (Xapian::PositionIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -2840,7 +2866,7 @@ static swig_class *swig_Xapian_PositionIterator_bases[] = {0};
 static const char * swig_Xapian_PositionIterator_base_names[] = {0};
 static swig_class _wrap_class_Xapian_PositionIterator = { "PositionIterator", &SWIGTYPE_p_Xapian__PositionIterator,_wrap_new_PositionIterator, swig_delete_PositionIterator, swig_Xapian_PositionIterator_methods, swig_Xapian_PositionIterator_attributes, swig_Xapian_PositionIterator_bases,swig_Xapian_PositionIterator_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_PostingIterator__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_PostingIterator__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingIterator *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -2872,7 +2898,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_PostingIterator__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_PostingIterator__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingIterator *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_PostingIterator ") == TCL_ERROR) SWIG_fail;
@@ -2893,8 +2919,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_PostingIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_PostingIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_PostingIterator__SWIG_1(clientData, interp, objc, argv - 1);
@@ -2918,7 +2944,7 @@ _wrap_new_PostingIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp,
 
 
 SWIGINTERN int
-_wrap_delete_PostingIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_PostingIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingIterator *arg1 = (Xapian::PostingIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -2946,7 +2972,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingIterator_get_wdf(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingIterator_get_wdf(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingIterator *arg1 = (Xapian::PostingIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -2975,7 +3001,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingIterator_get_doclength(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingIterator_get_doclength(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingIterator *arg1 = (Xapian::PostingIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3004,7 +3030,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingIterator_get_unique_terms(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingIterator_get_unique_terms(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingIterator *arg1 = (Xapian::PostingIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3033,7 +3059,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingIterator_positionlist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingIterator_positionlist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingIterator *arg1 = (Xapian::PostingIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3062,7 +3088,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingIterator_positionlist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingIterator_positionlist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingIterator *arg1 = (Xapian::PostingIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3091,7 +3117,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingIterator_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingIterator_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingIterator *arg1 = (Xapian::PostingIterator *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -3127,7 +3153,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingIterator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingIterator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingIterator *arg1 = (Xapian::PostingIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3156,7 +3182,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingIterator *arg1 = (Xapian::PostingIterator *) 0 ;
   Xapian::PostingIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -3196,7 +3222,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingIterator_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingIterator_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingIterator *arg1 = (Xapian::PostingIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3225,7 +3251,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingIterator *arg1 = (Xapian::PostingIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3276,7 +3302,7 @@ static swig_class *swig_Xapian_PostingIterator_bases[] = {0};
 static const char * swig_Xapian_PostingIterator_base_names[] = {0};
 static swig_class _wrap_class_Xapian_PostingIterator = { "PostingIterator", &SWIGTYPE_p_Xapian__PostingIterator,_wrap_new_PostingIterator, swig_delete_PostingIterator, swig_Xapian_PostingIterator_methods, swig_Xapian_PostingIterator_attributes, swig_Xapian_PostingIterator_bases,swig_Xapian_PostingIterator_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_TermIterator__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_TermIterator__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermIterator *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3308,7 +3334,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_TermIterator__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_TermIterator__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermIterator *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_TermIterator ") == TCL_ERROR) SWIG_fail;
@@ -3329,8 +3355,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_TermIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_TermIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_TermIterator__SWIG_1(clientData, interp, objc, argv - 1);
@@ -3354,7 +3380,7 @@ _wrap_new_TermIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int
 
 
 SWIGINTERN int
-_wrap_delete_TermIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_TermIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermIterator *arg1 = (Xapian::TermIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3382,7 +3408,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermIterator_get_wdf(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermIterator_get_wdf(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermIterator *arg1 = (Xapian::TermIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3411,7 +3437,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermIterator_get_termfreq(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermIterator_get_termfreq(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermIterator *arg1 = (Xapian::TermIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3440,7 +3466,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermIterator_positionlist_count(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermIterator_positionlist_count(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermIterator *arg1 = (Xapian::TermIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3469,7 +3495,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermIterator_positionlist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermIterator_positionlist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermIterator *arg1 = (Xapian::TermIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3498,7 +3524,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermIterator_positionlist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermIterator_positionlist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermIterator *arg1 = (Xapian::TermIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3527,7 +3553,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermIterator_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermIterator_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermIterator *arg1 = (Xapian::TermIterator *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -3570,7 +3596,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermIterator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermIterator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermIterator *arg1 = (Xapian::TermIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3599,7 +3625,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermIterator *arg1 = (Xapian::TermIterator *) 0 ;
   Xapian::TermIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -3639,7 +3665,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermIterator_get_term(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermIterator_get_term(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermIterator *arg1 = (Xapian::TermIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3668,7 +3694,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermIterator *arg1 = (Xapian::TermIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3719,7 +3745,7 @@ static swig_class *swig_Xapian_TermIterator_bases[] = {0};
 static const char * swig_Xapian_TermIterator_base_names[] = {0};
 static swig_class _wrap_class_Xapian_TermIterator = { "TermIterator", &SWIGTYPE_p_Xapian__TermIterator,_wrap_new_TermIterator, swig_delete_TermIterator, swig_Xapian_TermIterator_methods, swig_Xapian_TermIterator_attributes, swig_Xapian_TermIterator_bases,swig_Xapian_TermIterator_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_ValueIterator__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_ValueIterator__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueIterator *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3751,7 +3777,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_ValueIterator__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_ValueIterator__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueIterator *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_ValueIterator ") == TCL_ERROR) SWIG_fail;
@@ -3772,8 +3798,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_ValueIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_ValueIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_ValueIterator__SWIG_1(clientData, interp, objc, argv - 1);
@@ -3797,7 +3823,7 @@ _wrap_new_ValueIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, in
 
 
 SWIGINTERN int
-_wrap_delete_ValueIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_ValueIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueIterator *arg1 = (Xapian::ValueIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3825,7 +3851,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueIterator_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueIterator_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueIterator *arg1 = (Xapian::ValueIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3854,7 +3880,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueIterator_get_valueno(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueIterator_get_valueno(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueIterator *arg1 = (Xapian::ValueIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3883,7 +3909,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueIterator_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueIterator_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueIterator *arg1 = (Xapian::ValueIterator *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -3919,7 +3945,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueIterator_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueIterator_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueIterator *arg1 = (Xapian::ValueIterator *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -3956,7 +3982,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueIterator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueIterator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueIterator *arg1 = (Xapian::ValueIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -3985,7 +4011,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueIterator *arg1 = (Xapian::ValueIterator *) 0 ;
   Xapian::ValueIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -4025,7 +4051,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueIterator_get_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueIterator_get_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueIterator *arg1 = (Xapian::ValueIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -4054,7 +4080,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueIterator *arg1 = (Xapian::ValueIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -4103,7 +4129,7 @@ static swig_class *swig_Xapian_ValueIterator_bases[] = {0};
 static const char * swig_Xapian_ValueIterator_base_names[] = {0};
 static swig_class _wrap_class_Xapian_ValueIterator = { "ValueIterator", &SWIGTYPE_p_Xapian__ValueIterator,_wrap_new_ValueIterator, swig_delete_ValueIterator, swig_Xapian_ValueIterator_methods, swig_Xapian_ValueIterator_attributes, swig_Xapian_ValueIterator_bases,swig_Xapian_ValueIterator_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_Document__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Document__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -4135,7 +4161,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Document__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Document__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_Document ") == TCL_ERROR) SWIG_fail;
@@ -4156,8 +4182,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_Document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_Document__SWIG_1(clientData, interp, objc, argv - 1);
@@ -4181,7 +4207,7 @@ _wrap_new_Document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int obj
 
 
 SWIGINTERN int
-_wrap_delete_Document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_Document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -4209,7 +4235,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_get_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_get_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   Xapian::valueno arg2 ;
   void *argp1 = 0 ;
@@ -4246,7 +4272,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_add_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_add_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   Xapian::valueno arg2 ;
   std::string *arg3 = 0 ;
@@ -4297,7 +4323,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_remove_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_remove_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   Xapian::valueno arg2 ;
   void *argp1 = 0 ;
@@ -4333,7 +4359,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_clear_values(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_clear_values(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -4361,7 +4387,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_get_data(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_get_data(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -4390,7 +4416,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_set_data(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_set_data(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -4433,7 +4459,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_add_posting__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_add_posting__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::termpos arg3 ;
@@ -4492,7 +4518,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_add_posting__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_add_posting__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::termpos arg3 ;
@@ -4543,8 +4569,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_add_posting(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Document_add_posting(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 3) {
     int _v = 0;
@@ -4600,7 +4626,7 @@ _wrap_Document_add_posting(ClientData clientData SWIGUNUSED, Tcl_Interp *interp,
 
 
 SWIGINTERN int
-_wrap_Document_add_term__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_add_term__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::termcount arg3 ;
@@ -4651,7 +4677,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_add_term__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_add_term__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -4694,8 +4720,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_add_term(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Document_add_term(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -4739,7 +4765,7 @@ _wrap_Document_add_term(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, in
 
 
 SWIGINTERN int
-_wrap_Document_add_boolean_term(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_add_boolean_term(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -4782,7 +4808,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_remove_posting__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_remove_posting__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::termpos arg3 ;
@@ -4841,7 +4867,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_remove_posting__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_remove_posting__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::termpos arg3 ;
@@ -4892,8 +4918,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_remove_posting(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Document_remove_posting(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 3) {
     int _v = 0;
@@ -4949,7 +4975,7 @@ _wrap_Document_remove_posting(ClientData clientData SWIGUNUSED, Tcl_Interp *inte
 
 
 SWIGINTERN int
-_wrap_Document_remove_postings__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_remove_postings__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::termpos arg3 ;
@@ -5017,7 +5043,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_remove_postings__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_remove_postings__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::termpos arg3 ;
@@ -5077,8 +5103,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_remove_postings(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Document_remove_postings(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 4) {
     int _v = 0;
@@ -5146,7 +5172,7 @@ _wrap_Document_remove_postings(ClientData clientData SWIGUNUSED, Tcl_Interp *int
 
 
 SWIGINTERN int
-_wrap_Document_remove_term(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_remove_term(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -5189,7 +5215,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_clear_terms(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_clear_terms(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -5217,7 +5243,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_termlist_count(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_termlist_count(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -5246,7 +5272,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_termlist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_termlist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -5275,7 +5301,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_termlist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_termlist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -5304,7 +5330,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_values_count(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_values_count(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -5333,7 +5359,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_values_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_values_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -5362,7 +5388,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_values_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_values_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -5391,7 +5417,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -5420,7 +5446,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_serialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_serialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -5449,7 +5475,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_unserialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_unserialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   Xapian::Document result;
@@ -5485,7 +5511,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Document_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Document_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Document *arg1 = (Xapian::Document *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -5549,7 +5575,7 @@ static swig_class *swig_Xapian_Document_bases[] = {0};
 static const char * swig_Xapian_Document_base_names[] = {0};
 static swig_class _wrap_class_Xapian_Document = { "Document", &SWIGTYPE_p_Xapian__Document,_wrap_new_Document, swig_delete_Document, swig_Xapian_Document_methods, swig_Xapian_Document_attributes, swig_Xapian_Document_bases,swig_Xapian_Document_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_Registry__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Registry__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Registry *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -5581,7 +5607,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Registry__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Registry__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Registry *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_Registry ") == TCL_ERROR) SWIG_fail;
@@ -5602,8 +5628,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Registry(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_Registry(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_Registry__SWIG_1(clientData, interp, objc, argv - 1);
@@ -5627,7 +5653,7 @@ _wrap_new_Registry(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int obj
 
 
 SWIGINTERN int
-_wrap_delete_Registry(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_Registry(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Registry *arg1 = (Xapian::Registry *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -5655,7 +5681,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Registry_register_weighting_scheme(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Registry_register_weighting_scheme(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Registry *arg1 = (Xapian::Registry *) 0 ;
   Xapian::Weight *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -5694,7 +5720,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Registry_get_weighting_scheme(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Registry_get_weighting_scheme(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Registry *arg1 = (Xapian::Registry *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -5738,7 +5764,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Registry_register_posting_source(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Registry_register_posting_source(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Registry *arg1 = (Xapian::Registry *) 0 ;
   Xapian::PostingSource *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -5777,7 +5803,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Registry_get_posting_source(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Registry_get_posting_source(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Registry *arg1 = (Xapian::Registry *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -5821,7 +5847,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Registry_register_match_spy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Registry_register_match_spy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Registry *arg1 = (Xapian::Registry *) 0 ;
   Xapian::MatchSpy *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -5860,7 +5886,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Registry_get_match_spy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Registry_get_match_spy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Registry *arg1 = (Xapian::Registry *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -5904,7 +5930,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Registry_register_lat_long_metric(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Registry_register_lat_long_metric(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Registry *arg1 = (Xapian::Registry *) 0 ;
   Xapian::LatLongMetric *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -5943,7 +5969,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Registry_get_lat_long_metric(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Registry_get_lat_long_metric(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Registry *arg1 = (Xapian::Registry *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -6012,7 +6038,7 @@ SWIGINTERN const char *_wrap_Query_MatchNothing_get(ClientData clientData SWIGUN
   
   value = SWIG_NewInstanceObj(SWIG_as_voidptr(&Xapian::Query::MatchNothing), SWIGTYPE_p_Xapian__Query, 0 );
   if (value) {
-    Tcl_SetVar2(interp,name1,name2,Tcl_GetStringFromObj(value,NULL), flags);
+    Tcl_SetVar2(interp,name1,name2,Tcl_GetString(value), flags);
     Tcl_DecrRefCount(value);
   }
   return NULL;
@@ -6029,7 +6055,7 @@ SWIGINTERN const char *_wrap_Query_MatchAll_get(ClientData clientData SWIGUNUSED
   
   value = SWIG_NewInstanceObj(SWIG_as_voidptr(&Xapian::Query::MatchAll), SWIGTYPE_p_Xapian__Query, 0 );
   if (value) {
-    Tcl_SetVar2(interp,name1,name2,Tcl_GetStringFromObj(value,NULL), flags);
+    Tcl_SetVar2(interp,name1,name2,Tcl_GetString(value), flags);
     Tcl_DecrRefCount(value);
   }
   return NULL;
@@ -6037,7 +6063,7 @@ SWIGINTERN const char *_wrap_Query_MatchAll_get(ClientData clientData SWIGUNUSED
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_Query ") == TCL_ERROR) SWIG_fail;
@@ -6058,7 +6084,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_Query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_Query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -6086,7 +6112,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -6118,7 +6144,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   Xapian::termcount arg2 ;
   Xapian::termpos arg3 ;
@@ -6170,7 +6196,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   Xapian::termcount arg2 ;
   int res1 = SWIG_OLDOBJ ;
@@ -6214,7 +6240,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   Xapian::Query *result = 0 ;
@@ -6250,7 +6276,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -6279,7 +6305,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   Xapian::Query *arg2 = 0 ;
   double val1 ;
@@ -6319,7 +6345,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_7(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_7(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query::op arg1 ;
   Xapian::Query *arg2 = 0 ;
   double arg3 ;
@@ -6367,7 +6393,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_8(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_8(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query::op arg1 ;
   Xapian::Query *arg2 = 0 ;
   Xapian::Query *arg3 = 0 ;
@@ -6418,7 +6444,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_9(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_9(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query::op arg1 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -6477,7 +6503,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_10(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_10(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query::op arg1 ;
   Xapian::valueno arg2 ;
   std::string *arg3 = 0 ;
@@ -6529,7 +6555,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_11(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_11(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query::op arg1 ;
   Xapian::valueno arg2 ;
   std::string *arg3 = 0 ;
@@ -6596,7 +6622,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_12(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_12(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query::op arg1 ;
   std::string *arg2 = 0 ;
   Xapian::termcount arg3 ;
@@ -6664,7 +6690,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_13(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_13(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query::op arg1 ;
   std::string *arg2 = 0 ;
   Xapian::termcount arg3 ;
@@ -6724,7 +6750,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_14(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_14(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query::op arg1 ;
   std::string *arg2 = 0 ;
   Xapian::termcount arg3 ;
@@ -6776,7 +6802,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_15(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_15(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query::op arg1 ;
   std::string *arg2 = 0 ;
   int val1 ;
@@ -6820,7 +6846,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_18(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_16(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query::op arg1 ;
   XapianSWIGQueryItor arg2 ;
   XapianSWIGQueryItor arg3 ;
@@ -6868,7 +6894,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_19(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_17(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query::op arg1 ;
   XapianSWIGQueryItor arg2 ;
   XapianSWIGQueryItor arg3 ;
@@ -6908,7 +6934,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Query_get_terms_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Query_get_terms_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -6937,7 +6963,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Query_get_terms_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Query_get_terms_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -6966,7 +6992,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Query_get_unique_terms_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Query_get_unique_terms_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -6995,7 +7021,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Query_get_unique_terms_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Query_get_unique_terms_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -7024,7 +7050,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Query_get_length(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Query_get_length(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -7053,7 +7079,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Query_empty(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Query_empty(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -7082,7 +7108,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Query_serialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Query_serialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -7111,7 +7137,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Query_unserialise__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Query_unserialise__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   Xapian::Registry *arg2 = 0 ;
   int res1 = SWIG_OLDOBJ ;
@@ -7158,7 +7184,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Query_unserialise__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Query_unserialise__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   Xapian::Query result;
@@ -7194,8 +7220,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Query_unserialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Query_unserialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -7228,7 +7254,7 @@ _wrap_Query_unserialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, in
 
 
 SWIGINTERN int
-_wrap_Query_get_type(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Query_get_type(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -7257,7 +7283,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Query_get_num_subqueries(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Query_get_num_subqueries(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -7286,7 +7312,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Query_get_subquery(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Query_get_subquery(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   size_t arg2 ;
   void *argp1 = 0 ;
@@ -7323,7 +7349,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Query_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Query_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query *arg1 = (Xapian::Query *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -7352,7 +7378,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query__SWIG_20(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Query__SWIG_18(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Query::op arg1 ;
   int val1 ;
   int ecode1 = 0 ;
@@ -7381,8 +7407,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_Query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_Query__SWIG_0(clientData, interp, objc, argv - 1);
@@ -7412,7 +7438,7 @@ _wrap_new_Query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc,
       _v = SWIG_CheckState(res);
     }
     if (_v) {
-      return _wrap_new_Query__SWIG_20(clientData, interp, objc, argv - 1);
+      return _wrap_new_Query__SWIG_18(clientData, interp, objc, argv - 1);
     }
   }
   if (argc == 1) {
@@ -7438,9 +7464,9 @@ _wrap_new_Query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc,
       }
       if (_v) {
         if (argc <= 2) {
-          return _wrap_new_Query__SWIG_19(clientData, interp, objc, argv - 1);
+          return _wrap_new_Query__SWIG_17(clientData, interp, objc, argv - 1);
         }
-        return _wrap_new_Query__SWIG_19(clientData, interp, objc, argv - 1);
+        return _wrap_new_Query__SWIG_17(clientData, interp, objc, argv - 1);
       }
     }
   }
@@ -7567,7 +7593,7 @@ _wrap_new_Query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc,
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          return _wrap_new_Query__SWIG_18(clientData, interp, objc, argv - 1);
+          return _wrap_new_Query__SWIG_16(clientData, interp, objc, argv - 1);
         }
       }
     }
@@ -7763,7 +7789,7 @@ static swig_class *swig_Xapian_Query_bases[] = {0};
 static const char * swig_Xapian_Query_base_names[] = {0};
 static swig_class _wrap_class_Xapian_Query = { "Query", &SWIGTYPE_p_Xapian__Query,_wrap_new_Query, swig_delete_Query, swig_Xapian_Query_methods, swig_Xapian_Query_attributes, swig_Xapian_Query_bases,swig_Xapian_Query_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_Stem__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Stem__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Stem *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -7795,7 +7821,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Stem__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Stem__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   Xapian::Stem *result = 0 ;
@@ -7831,7 +7857,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Stem__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Stem__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   bool arg2 ;
   int res1 = SWIG_OLDOBJ ;
@@ -7875,7 +7901,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Stem__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Stem__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::StemImplementation *arg1 = (Xapian::StemImplementation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -7904,8 +7930,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Stem(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_Stem(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -7959,7 +7985,7 @@ _wrap_new_Stem(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, T
 
 
 SWIGINTERN int
-_wrap_delete_Stem(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_Stem(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Stem *arg1 = (Xapian::Stem *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -7987,7 +8013,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Stem_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Stem_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Stem *arg1 = (Xapian::Stem *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -8031,7 +8057,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Stem_is_none(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Stem_is_none(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Stem *arg1 = (Xapian::Stem *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -8060,7 +8086,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Stem_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Stem_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Stem *arg1 = (Xapian::Stem *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -8089,7 +8115,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Stem_get_available_languages(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Stem_get_available_languages(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string result;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::Stem_get_available_languages ") == TCL_ERROR) SWIG_fail;
@@ -8126,7 +8152,7 @@ static swig_class *swig_Xapian_Stem_bases[] = {0};
 static const char * swig_Xapian_Stem_base_names[] = {0};
 static swig_class _wrap_class_Xapian_Stem = { "Stem", &SWIGTYPE_p_Xapian__Stem,_wrap_new_Stem, swig_delete_Stem, swig_Xapian_Stem_methods, swig_Xapian_Stem_attributes, swig_Xapian_Stem_bases,swig_Xapian_Stem_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_TermGenerator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_TermGenerator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_TermGenerator ") == TCL_ERROR) SWIG_fail;
@@ -8147,7 +8173,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_TermGenerator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_TermGenerator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -8175,7 +8201,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_set_stemmer(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_set_stemmer(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   Xapian::Stem *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -8214,7 +8240,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_set_stopper__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_set_stopper__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   Xapian::Stopper *arg2 = (Xapian::Stopper *) 0 ;
   void *argp1 = 0 ;
@@ -8250,7 +8276,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_set_stopper__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_set_stopper__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -8278,8 +8304,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_set_stopper(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_TermGenerator_set_stopper(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -8314,7 +8340,7 @@ _wrap_TermGenerator_set_stopper(ClientData clientData SWIGUNUSED, Tcl_Interp *in
 
 
 SWIGINTERN int
-_wrap_TermGenerator_set_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_set_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   Xapian::Document *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -8353,7 +8379,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_get_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_get_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -8382,7 +8408,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_set_database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_set_database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   Xapian::WritableDatabase *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -8421,7 +8447,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_set_flags__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_set_flags__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   Xapian::TermGenerator::flags arg2 ;
   Xapian::TermGenerator::flags arg3 ;
@@ -8466,7 +8492,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_set_flags__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_set_flags__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   Xapian::TermGenerator::flags arg2 ;
   void *argp1 = 0 ;
@@ -8503,8 +8529,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_set_flags(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_TermGenerator_set_flags(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -8552,7 +8578,7 @@ _wrap_TermGenerator_set_flags(ClientData clientData SWIGUNUSED, Tcl_Interp *inte
 
 
 SWIGINTERN int
-_wrap_TermGenerator_set_stemming_strategy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_set_stemming_strategy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   Xapian::TermGenerator::stem_strategy arg2 ;
   void *argp1 = 0 ;
@@ -8588,7 +8614,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_set_stopper_strategy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_set_stopper_strategy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   Xapian::TermGenerator::stop_strategy arg2 ;
   void *argp1 = 0 ;
@@ -8624,7 +8650,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_set_max_word_length(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_set_max_word_length(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   unsigned int arg2 ;
   void *argp1 = 0 ;
@@ -8660,7 +8686,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_index_text__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_index_text__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::termcount arg3 ;
@@ -8726,7 +8752,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_index_text__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_index_text__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::termcount arg3 ;
@@ -8777,7 +8803,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_index_text__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_index_text__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -8820,8 +8846,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_index_text(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_TermGenerator_index_text(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -8889,7 +8915,7 @@ _wrap_TermGenerator_index_text(ClientData clientData SWIGUNUSED, Tcl_Interp *int
 
 
 SWIGINTERN int
-_wrap_TermGenerator_index_text_without_positions__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_index_text_without_positions__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::termcount arg3 ;
@@ -8955,7 +8981,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_index_text_without_positions__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_index_text_without_positions__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::termcount arg3 ;
@@ -9006,7 +9032,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_index_text_without_positions__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_index_text_without_positions__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -9049,8 +9075,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_index_text_without_positions(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_TermGenerator_index_text_without_positions(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -9118,7 +9144,7 @@ _wrap_TermGenerator_index_text_without_positions(ClientData clientData SWIGUNUSE
 
 
 SWIGINTERN int
-_wrap_TermGenerator_increase_termpos__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_increase_termpos__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   Xapian::termpos arg2 ;
   void *argp1 = 0 ;
@@ -9154,7 +9180,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_increase_termpos__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_increase_termpos__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9182,8 +9208,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_increase_termpos(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_TermGenerator_increase_termpos(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -9219,7 +9245,7 @@ _wrap_TermGenerator_increase_termpos(ClientData clientData SWIGUNUSED, Tcl_Inter
 
 
 SWIGINTERN int
-_wrap_TermGenerator_get_termpos(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_get_termpos(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9248,7 +9274,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_set_termpos(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_set_termpos(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   Xapian::termpos arg2 ;
   void *argp1 = 0 ;
@@ -9284,7 +9310,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TermGenerator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TermGenerator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TermGenerator *arg1 = (Xapian::TermGenerator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9341,7 +9367,7 @@ static swig_class *swig_Xapian_TermGenerator_bases[] = {0};
 static const char * swig_Xapian_TermGenerator_base_names[] = {0};
 static swig_class _wrap_class_Xapian_TermGenerator = { "TermGenerator", &SWIGTYPE_p_Xapian__TermGenerator,_wrap_new_TermGenerator, swig_delete_TermGenerator, swig_Xapian_TermGenerator_methods, swig_Xapian_TermGenerator_attributes, swig_Xapian_TermGenerator_bases,swig_Xapian_TermGenerator_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_MSet__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_MSet__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9373,7 +9399,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_MSet__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_MSet__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_MSet ") == TCL_ERROR) SWIG_fail;
@@ -9394,8 +9420,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_MSet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_MSet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_MSet__SWIG_1(clientData, interp, objc, argv - 1);
@@ -9419,7 +9445,7 @@ _wrap_new_MSet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, T
 
 
 SWIGINTERN int
-_wrap_delete_MSet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_MSet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9447,7 +9473,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_convert_to_percent__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_convert_to_percent__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -9484,7 +9510,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_convert_to_percent__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_convert_to_percent__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   Xapian::MSetIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -9524,8 +9550,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_convert_to_percent(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_MSet_convert_to_percent(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -9566,7 +9592,7 @@ _wrap_MSet_convert_to_percent(ClientData clientData SWIGUNUSED, Tcl_Interp *inte
 
 
 SWIGINTERN int
-_wrap_MSet_get_termfreq(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_termfreq(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -9610,7 +9636,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_termweight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_termweight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -9654,7 +9680,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_firstitem(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_firstitem(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9683,7 +9709,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_matches_lower_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_matches_lower_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9712,7 +9738,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_matches_estimated(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_matches_estimated(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9741,7 +9767,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_matches_upper_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_matches_upper_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9770,7 +9796,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_uncollapsed_matches_lower_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_uncollapsed_matches_lower_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9799,7 +9825,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_uncollapsed_matches_estimated(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_uncollapsed_matches_estimated(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9828,7 +9854,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_uncollapsed_matches_upper_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_uncollapsed_matches_upper_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9857,7 +9883,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_max_attained(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_max_attained(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9886,7 +9912,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_max_possible(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_max_possible(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9915,7 +9941,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_snippet__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_snippet__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
@@ -10031,7 +10057,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_snippet__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_snippet__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
@@ -10132,7 +10158,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_snippet__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_snippet__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
@@ -10218,7 +10244,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_snippet__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_snippet__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
@@ -10289,7 +10315,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_snippet__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_snippet__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
@@ -10352,7 +10378,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_snippet__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_snippet__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
@@ -10404,7 +10430,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_snippet__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_snippet__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -10448,8 +10474,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_snippet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_MSet_snippet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -10666,7 +10692,7 @@ _wrap_MSet_snippet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int obj
 
 
 SWIGINTERN int
-_wrap_MSet_fetch__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_fetch__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   Xapian::MSetIterator *arg2 = 0 ;
   Xapian::MSetIterator *arg3 = 0 ;
@@ -10716,7 +10742,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_fetch__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_fetch__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   Xapian::MSetIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -10755,7 +10781,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_fetch__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_fetch__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10783,8 +10809,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_fetch(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_MSet_fetch(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -10839,7 +10865,7 @@ _wrap_MSet_fetch(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc,
 
 
 SWIGINTERN int
-_wrap_MSet_size(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_size(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10868,7 +10894,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_empty(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_empty(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10897,7 +10923,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10926,7 +10952,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10955,7 +10981,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_back(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_back(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10984,7 +11010,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11013,7 +11039,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   Xapian::doccount arg2 ;
   void *argp1 = 0 ;
@@ -11050,7 +11076,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   Xapian::doccount arg2 ;
   void *argp1 = 0 ;
@@ -11087,7 +11113,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_hit(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_hit(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   Xapian::doccount arg2 ;
   void *argp1 = 0 ;
@@ -11124,7 +11150,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSet_get_document_percentage(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSet_get_document_percentage(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSet *arg1 = (Xapian::MSet *) 0 ;
   Xapian::doccount arg2 ;
   void *argp1 = 0 ;
@@ -11198,7 +11224,7 @@ static swig_class *swig_Xapian_MSet_bases[] = {0};
 static const char * swig_Xapian_MSet_base_names[] = {0};
 static swig_class _wrap_class_Xapian_MSet = { "MSet", &SWIGTYPE_p_Xapian__MSet,_wrap_new_MSet, swig_delete_MSet, swig_Xapian_MSet_methods, swig_Xapian_MSet_attributes, swig_Xapian_MSet_bases,swig_Xapian_MSet_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_MSetIterator_mset_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_mset_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   Xapian::MSet *arg2 = (Xapian::MSet *) 0 ;
   void *argp1 = 0 ;
@@ -11226,7 +11252,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_mset_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_mset_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11247,7 +11273,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_off_from_end_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_off_from_end_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   Xapian::MSet::size_type arg2 ;
   void *argp1 = 0 ;
@@ -11275,7 +11301,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_off_from_end_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_off_from_end_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11296,7 +11322,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_MSetIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_MSetIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_MSetIterator ") == TCL_ERROR) SWIG_fail;
@@ -11317,7 +11343,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_get_rank(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_get_rank(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11346,7 +11372,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_get_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_get_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11375,7 +11401,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11404,7 +11430,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_get_collapse_key(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_get_collapse_key(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11433,7 +11459,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_get_collapse_count(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_get_collapse_count(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11462,7 +11488,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_get_sort_key(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_get_sort_key(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11491,7 +11517,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_get_percent(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_get_percent(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11520,7 +11546,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11549,7 +11575,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   Xapian::MSetIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -11589,7 +11615,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11618,7 +11644,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11646,7 +11672,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MSetIterator_prev(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MSetIterator_prev(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11674,7 +11700,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_MSetIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_MSetIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator *arg1 = (Xapian::MSetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11729,7 +11755,7 @@ static swig_class *swig_Xapian_MSetIterator_bases[] = {0};
 static const char * swig_Xapian_MSetIterator_base_names[] = {0};
 static swig_class _wrap_class_Xapian_MSetIterator = { "MSetIterator", &SWIGTYPE_p_Xapian__MSetIterator,_wrap_new_MSetIterator, swig_delete_MSetIterator, swig_Xapian_MSetIterator_methods, swig_Xapian_MSetIterator_attributes, swig_Xapian_MSetIterator_bases,swig_Xapian_MSetIterator_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_a_____SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_a_____SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MSetIterator::difference_type arg1 ;
   Xapian::MSetIterator *arg2 = 0 ;
   int val1 ;
@@ -11769,7 +11795,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_ESet__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_ESet__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESet *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11801,7 +11827,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_ESet__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_ESet__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESet *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_ESet ") == TCL_ERROR) SWIG_fail;
@@ -11822,8 +11848,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_ESet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_ESet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_ESet__SWIG_1(clientData, interp, objc, argv - 1);
@@ -11847,7 +11873,7 @@ _wrap_new_ESet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, T
 
 
 SWIGINTERN int
-_wrap_delete_ESet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_ESet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESet *arg1 = (Xapian::ESet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11875,7 +11901,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESet_size(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESet_size(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESet *arg1 = (Xapian::ESet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11904,7 +11930,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESet_empty(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESet_empty(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESet *arg1 = (Xapian::ESet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11933,7 +11959,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESet_get_ebound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESet_get_ebound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESet *arg1 = (Xapian::ESet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11962,7 +11988,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESet_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESet_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESet *arg1 = (Xapian::ESet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11991,7 +12017,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESet_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESet_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESet *arg1 = (Xapian::ESet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12020,7 +12046,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESet_back(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESet_back(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESet *arg1 = (Xapian::ESet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12049,7 +12075,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESet_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESet_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESet *arg1 = (Xapian::ESet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12098,7 +12124,7 @@ static swig_class *swig_Xapian_ESet_bases[] = {0};
 static const char * swig_Xapian_ESet_base_names[] = {0};
 static swig_class _wrap_class_Xapian_ESet = { "ESet", &SWIGTYPE_p_Xapian__ESet,_wrap_new_ESet, swig_delete_ESet, swig_Xapian_ESet_methods, swig_Xapian_ESet_attributes, swig_Xapian_ESet_bases,swig_Xapian_ESet_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_ESetIterator_eset_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESetIterator_eset_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESetIterator *arg1 = (Xapian::ESetIterator *) 0 ;
   Xapian::ESet *arg2 = (Xapian::ESet *) 0 ;
   void *argp1 = 0 ;
@@ -12126,7 +12152,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESetIterator_eset_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESetIterator_eset_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESetIterator *arg1 = (Xapian::ESetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12147,7 +12173,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESetIterator_off_from_end_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESetIterator_off_from_end_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESetIterator *arg1 = (Xapian::ESetIterator *) 0 ;
   Xapian::ESet::size_type arg2 ;
   void *argp1 = 0 ;
@@ -12175,7 +12201,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESetIterator_off_from_end_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESetIterator_off_from_end_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESetIterator *arg1 = (Xapian::ESetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12196,7 +12222,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_ESetIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_ESetIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESetIterator *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_ESetIterator ") == TCL_ERROR) SWIG_fail;
@@ -12217,7 +12243,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESetIterator_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESetIterator_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESetIterator *arg1 = (Xapian::ESetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12246,7 +12272,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESetIterator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESetIterator_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESetIterator *arg1 = (Xapian::ESetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12275,7 +12301,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESetIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESetIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESetIterator *arg1 = (Xapian::ESetIterator *) 0 ;
   Xapian::ESetIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -12315,7 +12341,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESetIterator_get_term(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESetIterator_get_term(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESetIterator *arg1 = (Xapian::ESetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12344,7 +12370,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESetIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESetIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESetIterator *arg1 = (Xapian::ESetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12372,7 +12398,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ESetIterator_prev(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ESetIterator_prev(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESetIterator *arg1 = (Xapian::ESetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12400,7 +12426,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_ESetIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_ESetIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESetIterator *arg1 = (Xapian::ESetIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12449,7 +12475,7 @@ static swig_class *swig_Xapian_ESetIterator_bases[] = {0};
 static const char * swig_Xapian_ESetIterator_base_names[] = {0};
 static swig_class _wrap_class_Xapian_ESetIterator = { "ESetIterator", &SWIGTYPE_p_Xapian__ESetIterator,_wrap_new_ESetIterator, swig_delete_ESetIterator, swig_Xapian_ESetIterator_methods, swig_Xapian_ESetIterator_attributes, swig_Xapian_ESetIterator_bases,swig_Xapian_ESetIterator_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_a_____SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_a_____SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ESetIterator::difference_type arg1 ;
   Xapian::ESetIterator *arg2 = 0 ;
   int val1 ;
@@ -12489,8 +12515,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_a___(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_a___(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -12532,7 +12558,7 @@ _wrap_a___(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_O
 
 
 SWIGINTERN int
-_wrap_new_RSet__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_RSet__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RSet *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12564,7 +12590,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_RSet__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_RSet__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RSet *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_RSet ") == TCL_ERROR) SWIG_fail;
@@ -12585,8 +12611,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_RSet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_RSet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_RSet__SWIG_1(clientData, interp, objc, argv - 1);
@@ -12610,7 +12636,7 @@ _wrap_new_RSet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, T
 
 
 SWIGINTERN int
-_wrap_delete_RSet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_RSet(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RSet *arg1 = (Xapian::RSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12638,7 +12664,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_RSet_size(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_RSet_size(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RSet *arg1 = (Xapian::RSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12667,7 +12693,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_RSet_empty(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_RSet_empty(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RSet *arg1 = (Xapian::RSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12696,7 +12722,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_RSet_add_document__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_RSet_add_document__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RSet *arg1 = (Xapian::RSet *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -12732,7 +12758,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_RSet_add_document__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_RSet_add_document__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RSet *arg1 = (Xapian::RSet *) 0 ;
   Xapian::MSetIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -12771,8 +12797,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_RSet_add_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_RSet_add_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -12813,7 +12839,7 @@ _wrap_RSet_add_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, in
 
 
 SWIGINTERN int
-_wrap_RSet_remove_document__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_RSet_remove_document__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RSet *arg1 = (Xapian::RSet *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -12849,7 +12875,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_RSet_remove_document__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_RSet_remove_document__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RSet *arg1 = (Xapian::RSet *) 0 ;
   Xapian::MSetIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -12888,8 +12914,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_RSet_remove_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_RSet_remove_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -12930,7 +12956,7 @@ _wrap_RSet_remove_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp,
 
 
 SWIGINTERN int
-_wrap_RSet_contains__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_RSet_contains__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RSet *arg1 = (Xapian::RSet *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -12967,7 +12993,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_RSet_contains__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_RSet_contains__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RSet *arg1 = (Xapian::RSet *) 0 ;
   Xapian::MSetIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -13007,8 +13033,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_RSet_contains(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_RSet_contains(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -13049,7 +13075,7 @@ _wrap_RSet_contains(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int ob
 
 
 SWIGINTERN int
-_wrap_RSet_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_RSet_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RSet *arg1 = (Xapian::RSet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13097,7 +13123,7 @@ static swig_class *swig_Xapian_RSet_bases[] = {0};
 static const char * swig_Xapian_RSet_base_names[] = {0};
 static swig_class _wrap_class_Xapian_RSet = { "RSet", &SWIGTYPE_p_Xapian__RSet,_wrap_new_RSet, swig_delete_RSet, swig_Xapian_RSet_methods, swig_Xapian_RSet_attributes, swig_Xapian_RSet_bases,swig_Xapian_RSet_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_MatchDecider_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MatchDecider_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MatchDecider *arg1 = (Xapian::MatchDecider *) 0 ;
   Xapian::Document *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -13137,7 +13163,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_MatchDecider(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_MatchDecider(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MatchDecider *arg1 = (Xapian::MatchDecider *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13179,7 +13205,7 @@ static swig_class *swig_Xapian_MatchDecider_bases[] = {0};
 static const char * swig_Xapian_MatchDecider_base_names[] = {0};
 static swig_class _wrap_class_Xapian_MatchDecider = { "MatchDecider", &SWIGTYPE_p_Xapian__MatchDecider,0, swig_delete_MatchDecider, swig_Xapian_MatchDecider_methods, swig_Xapian_MatchDecider_attributes, swig_Xapian_MatchDecider_bases,swig_Xapian_MatchDecider_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_Enquire__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Enquire__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13211,7 +13237,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Enquire__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Enquire__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13243,8 +13269,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Enquire(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_Enquire(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -13274,7 +13300,7 @@ _wrap_new_Enquire(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc
 
 
 SWIGINTERN int
-_wrap_delete_Enquire(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_Enquire(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13302,7 +13328,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_query__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_query__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::Query *arg2 = 0 ;
   Xapian::termcount arg3 ;
@@ -13349,7 +13375,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_query__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_query__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::Query *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -13388,8 +13414,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Enquire_set_query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -13435,7 +13461,7 @@ _wrap_Enquire_set_query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, in
 
 
 SWIGINTERN int
-_wrap_Enquire_get_query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13464,7 +13490,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_add_matchspy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_add_matchspy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::MatchSpy *arg2 = (Xapian::MatchSpy *) 0 ;
   void *argp1 = 0 ;
@@ -13500,7 +13526,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_clear_matchspies(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_clear_matchspies(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13528,7 +13554,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_weighting_scheme(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_weighting_scheme(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::Weight *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -13567,7 +13593,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_expansion_scheme__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_expansion_scheme__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   std::string *arg2 = 0 ;
   double arg3 ;
@@ -13618,7 +13644,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_expansion_scheme__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_expansion_scheme__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -13661,8 +13687,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_expansion_scheme(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Enquire_set_expansion_scheme(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -13706,7 +13732,7 @@ _wrap_Enquire_set_expansion_scheme(ClientData clientData SWIGUNUSED, Tcl_Interp
 
 
 SWIGINTERN int
-_wrap_Enquire_set_collapse_key__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_collapse_key__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::valueno arg2 ;
   Xapian::doccount arg3 ;
@@ -13750,7 +13776,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_collapse_key__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_collapse_key__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::valueno arg2 ;
   void *argp1 = 0 ;
@@ -13786,8 +13812,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_collapse_key(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Enquire_set_collapse_key(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -13835,7 +13861,7 @@ _wrap_Enquire_set_collapse_key(ClientData clientData SWIGUNUSED, Tcl_Interp *int
 
 
 SWIGINTERN int
-_wrap_Enquire_set_docid_order(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_docid_order(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::Enquire::docid_order arg2 ;
   void *argp1 = 0 ;
@@ -13871,7 +13897,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_cutoff__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_cutoff__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   int arg2 ;
   double arg3 ;
@@ -13915,7 +13941,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_cutoff__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_cutoff__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
@@ -13951,8 +13977,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_cutoff(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Enquire_set_cutoff(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -14000,7 +14026,7 @@ _wrap_Enquire_set_cutoff(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, i
 
 
 SWIGINTERN int
-_wrap_Enquire_set_sort_by_relevance(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_sort_by_relevance(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14028,7 +14054,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_sort_by_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_sort_by_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::valueno arg2 ;
   bool arg3 ;
@@ -14072,7 +14098,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_sort_by_key(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_sort_by_key(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::KeyMaker *arg2 = (Xapian::KeyMaker *) 0 ;
   bool arg3 ;
@@ -14116,7 +14142,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_sort_by_value_then_relevance(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_sort_by_value_then_relevance(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::valueno arg2 ;
   bool arg3 ;
@@ -14160,7 +14186,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_sort_by_key_then_relevance(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_sort_by_key_then_relevance(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::KeyMaker *arg2 = (Xapian::KeyMaker *) 0 ;
   bool arg3 ;
@@ -14204,7 +14230,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_sort_by_relevance_then_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_sort_by_relevance_then_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::valueno arg2 ;
   bool arg3 ;
@@ -14248,7 +14274,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_sort_by_relevance_then_key(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_sort_by_relevance_then_key(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::KeyMaker *arg2 = (Xapian::KeyMaker *) 0 ;
   bool arg3 ;
@@ -14292,7 +14318,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_set_time_limit(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_set_time_limit(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -14328,7 +14354,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_mset__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_mset__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::doccount arg2 ;
   Xapian::doccount arg3 ;
@@ -14397,7 +14423,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_mset__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_mset__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::doccount arg2 ;
   Xapian::doccount arg3 ;
@@ -14458,7 +14484,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_mset__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_mset__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::doccount arg2 ;
   Xapian::doccount arg3 ;
@@ -14511,7 +14537,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_mset__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_mset__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::doccount arg2 ;
   Xapian::doccount arg3 ;
@@ -14556,7 +14582,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_mset__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_mset__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::doccount arg2 ;
   Xapian::doccount arg3 ;
@@ -14617,7 +14643,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_mset__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_mset__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::doccount arg2 ;
   Xapian::doccount arg3 ;
@@ -14670,8 +14696,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_mset(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Enquire_get_mset(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 3) {
     int _v = 0;
@@ -14861,7 +14887,7 @@ _wrap_Enquire_get_mset(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int
 
 
 SWIGINTERN int
-_wrap_Enquire_get_eset__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_eset__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::RSet *arg3 = 0 ;
@@ -14933,7 +14959,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_eset__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_eset__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::RSet *arg3 = 0 ;
@@ -14997,7 +15023,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_eset__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_eset__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::RSet *arg3 = 0 ;
@@ -15053,7 +15079,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_eset__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_eset__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::RSet *arg3 = 0 ;
@@ -15101,7 +15127,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_eset__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_eset__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::RSet *arg3 = 0 ;
@@ -15157,7 +15183,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_eset__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_eset__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::RSet *arg3 = 0 ;
@@ -15237,7 +15263,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_eset__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_eset__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::RSet *arg3 = 0 ;
@@ -15309,7 +15335,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_eset__SWIG_7(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_eset__SWIG_7(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::RSet *arg3 = 0 ;
@@ -15373,8 +15399,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_eset(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Enquire_get_eset(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 3) {
     int _v = 0;
@@ -15643,7 +15669,7 @@ _wrap_Enquire_get_eset(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int
 
 
 SWIGINTERN int
-_wrap_Enquire_get_matching_terms_begin__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_matching_terms_begin__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -15680,7 +15706,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_matching_terms_end__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_matching_terms_end__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -15717,7 +15743,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_matching_terms_begin__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_matching_terms_begin__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::MSetIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -15757,8 +15783,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_matching_terms_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Enquire_get_matching_terms_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -15799,7 +15825,7 @@ _wrap_Enquire_get_matching_terms_begin(ClientData clientData SWIGUNUSED, Tcl_Int
 
 
 SWIGINTERN int
-_wrap_Enquire_get_matching_terms_end__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_matching_terms_end__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::MSetIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -15839,8 +15865,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_matching_terms_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Enquire_get_matching_terms_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -15881,7 +15907,7 @@ _wrap_Enquire_get_matching_terms_end(ClientData clientData SWIGUNUSED, Tcl_Inter
 
 
 SWIGINTERN int
-_wrap_Enquire_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15910,7 +15936,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Enquire_get_matching_terms(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Enquire_get_matching_terms(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Enquire *arg1 = (Xapian::Enquire *) 0 ;
   Xapian::MSetIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -15995,7 +16021,7 @@ static swig_class *swig_Xapian_Enquire_bases[] = {0};
 static const char * swig_Xapian_Enquire_base_names[] = {0};
 static swig_class _wrap_class_Xapian_Enquire = { "Enquire", &SWIGTYPE_p_Xapian__Enquire,_wrap_new_Enquire, swig_delete_Enquire, swig_Xapian_Enquire_methods, swig_Xapian_Enquire_attributes, swig_Xapian_Enquire_bases,swig_Xapian_Enquire_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_ExpandDecider_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ExpandDecider_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ExpandDecider *arg1 = (Xapian::ExpandDecider *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -16039,7 +16065,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_ExpandDecider(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_ExpandDecider(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ExpandDecider *arg1 = (Xapian::ExpandDecider *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16067,7 +16093,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ExpandDecider_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ExpandDecider_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ExpandDecider *arg1 = (Xapian::ExpandDecider *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16111,7 +16137,7 @@ static swig_class *swig_Xapian_ExpandDecider_bases[] = {0};
 static const char * swig_Xapian_ExpandDecider_base_names[] = {0};
 static swig_class _wrap_class_Xapian_ExpandDecider = { "ExpandDecider", &SWIGTYPE_p_Xapian__ExpandDecider,0, swig_delete_ExpandDecider, swig_Xapian_ExpandDecider_methods, swig_Xapian_ExpandDecider_attributes, swig_Xapian_ExpandDecider_bases,swig_Xapian_ExpandDecider_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_ExpandDeciderAnd(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_ExpandDeciderAnd(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ExpandDecider *arg1 = 0 ;
   Xapian::ExpandDecider *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -16154,7 +16180,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ExpandDeciderAnd_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ExpandDeciderAnd_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ExpandDeciderAnd *arg1 = (Xapian::ExpandDeciderAnd *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -16198,7 +16224,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_ExpandDeciderAnd(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_ExpandDeciderAnd(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ExpandDeciderAnd *arg1 = (Xapian::ExpandDeciderAnd *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16240,7 +16266,7 @@ static swig_class *swig_Xapian_ExpandDeciderAnd_bases[] = {0,0};
 static const char * swig_Xapian_ExpandDeciderAnd_base_names[] = {"Xapian::ExpandDecider *",0};
 static swig_class _wrap_class_Xapian_ExpandDeciderAnd = { "ExpandDeciderAnd", &SWIGTYPE_p_Xapian__ExpandDeciderAnd,_wrap_new_ExpandDeciderAnd, swig_delete_ExpandDeciderAnd, swig_Xapian_ExpandDeciderAnd_methods, swig_Xapian_ExpandDeciderAnd_attributes, swig_Xapian_ExpandDeciderAnd_bases,swig_Xapian_ExpandDeciderAnd_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_ExpandDeciderFilterPrefix(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_ExpandDeciderFilterPrefix(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   Xapian::ExpandDeciderFilterPrefix *result = 0 ;
@@ -16276,7 +16302,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ExpandDeciderFilterPrefix_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ExpandDeciderFilterPrefix_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ExpandDeciderFilterPrefix *arg1 = (Xapian::ExpandDeciderFilterPrefix *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -16320,7 +16346,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_ExpandDeciderFilterPrefix(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_ExpandDeciderFilterPrefix(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ExpandDeciderFilterPrefix *arg1 = (Xapian::ExpandDeciderFilterPrefix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16362,7 +16388,7 @@ static swig_class *swig_Xapian_ExpandDeciderFilterPrefix_bases[] = {0,0};
 static const char * swig_Xapian_ExpandDeciderFilterPrefix_base_names[] = {"Xapian::ExpandDecider *",0};
 static swig_class _wrap_class_Xapian_ExpandDeciderFilterPrefix = { "ExpandDeciderFilterPrefix", &SWIGTYPE_p_Xapian__ExpandDeciderFilterPrefix,_wrap_new_ExpandDeciderFilterPrefix, swig_delete_ExpandDeciderFilterPrefix, swig_Xapian_ExpandDeciderFilterPrefix_methods, swig_Xapian_ExpandDeciderFilterPrefix_attributes, swig_Xapian_ExpandDeciderFilterPrefix_bases,swig_Xapian_ExpandDeciderFilterPrefix_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_KeyMaker_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_KeyMaker_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::KeyMaker *arg1 = (Xapian::KeyMaker *) 0 ;
   Xapian::Document *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -16402,7 +16428,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_KeyMaker(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_KeyMaker(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::KeyMaker *arg1 = (Xapian::KeyMaker *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16430,7 +16456,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_KeyMaker_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_KeyMaker_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::KeyMaker *arg1 = (Xapian::KeyMaker *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16474,7 +16500,7 @@ static swig_class *swig_Xapian_KeyMaker_bases[] = {0};
 static const char * swig_Xapian_KeyMaker_base_names[] = {0};
 static swig_class _wrap_class_Xapian_KeyMaker = { "KeyMaker", &SWIGTYPE_p_Xapian__KeyMaker,0, swig_delete_KeyMaker, swig_Xapian_KeyMaker_methods, swig_Xapian_KeyMaker_attributes, swig_Xapian_KeyMaker_bases,swig_Xapian_KeyMaker_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_MultiValueKeyMaker(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_MultiValueKeyMaker(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MultiValueKeyMaker *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_MultiValueKeyMaker ") == TCL_ERROR) SWIG_fail;
@@ -16495,7 +16521,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MultiValueKeyMaker_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MultiValueKeyMaker_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MultiValueKeyMaker *arg1 = (Xapian::MultiValueKeyMaker *) 0 ;
   Xapian::Document *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -16535,7 +16561,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MultiValueKeyMaker_add_value__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MultiValueKeyMaker_add_value__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MultiValueKeyMaker *arg1 = (Xapian::MultiValueKeyMaker *) 0 ;
   Xapian::valueno arg2 ;
   bool arg3 ;
@@ -16594,7 +16620,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MultiValueKeyMaker_add_value__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MultiValueKeyMaker_add_value__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MultiValueKeyMaker *arg1 = (Xapian::MultiValueKeyMaker *) 0 ;
   Xapian::valueno arg2 ;
   bool arg3 ;
@@ -16638,7 +16664,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MultiValueKeyMaker_add_value__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MultiValueKeyMaker_add_value__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MultiValueKeyMaker *arg1 = (Xapian::MultiValueKeyMaker *) 0 ;
   Xapian::valueno arg2 ;
   void *argp1 = 0 ;
@@ -16674,8 +16700,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MultiValueKeyMaker_add_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_MultiValueKeyMaker_add_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -16749,7 +16775,7 @@ _wrap_MultiValueKeyMaker_add_value(ClientData clientData SWIGUNUSED, Tcl_Interp
 
 
 SWIGINTERN int
-_wrap_delete_MultiValueKeyMaker(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_MultiValueKeyMaker(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MultiValueKeyMaker *arg1 = (Xapian::MultiValueKeyMaker *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16792,7 +16818,7 @@ static swig_class *swig_Xapian_MultiValueKeyMaker_bases[] = {0,0};
 static const char * swig_Xapian_MultiValueKeyMaker_base_names[] = {"Xapian::KeyMaker *",0};
 static swig_class _wrap_class_Xapian_MultiValueKeyMaker = { "MultiValueKeyMaker", &SWIGTYPE_p_Xapian__MultiValueKeyMaker,_wrap_new_MultiValueKeyMaker, swig_delete_MultiValueKeyMaker, swig_Xapian_MultiValueKeyMaker_methods, swig_Xapian_MultiValueKeyMaker_attributes, swig_Xapian_MultiValueKeyMaker_bases,swig_Xapian_MultiValueKeyMaker_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_Stopper_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Stopper_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Stopper *arg1 = (Xapian::Stopper *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -16836,7 +16862,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_Stopper(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_Stopper(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Stopper *arg1 = (Xapian::Stopper *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16864,7 +16890,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Stopper_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Stopper_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Stopper *arg1 = (Xapian::Stopper *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16893,7 +16919,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Stopper_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Stopper_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Stopper *arg1 = (Xapian::Stopper *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16938,7 +16964,7 @@ static swig_class *swig_Xapian_Stopper_bases[] = {0};
 static const char * swig_Xapian_Stopper_base_names[] = {0};
 static swig_class _wrap_class_Xapian_Stopper = { "Stopper", &SWIGTYPE_p_Xapian__Stopper,0, swig_delete_Stopper, swig_Xapian_Stopper_methods, swig_Xapian_Stopper_attributes, swig_Xapian_Stopper_bases,swig_Xapian_Stopper_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_SimpleStopper__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_SimpleStopper__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::SimpleStopper *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_SimpleStopper ") == TCL_ERROR) SWIG_fail;
@@ -16959,7 +16985,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_SimpleStopper_add(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_SimpleStopper_add(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::SimpleStopper *arg1 = (Xapian::SimpleStopper *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -17002,7 +17028,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_SimpleStopper_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_SimpleStopper_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::SimpleStopper *arg1 = (Xapian::SimpleStopper *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -17046,7 +17072,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_SimpleStopper_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_SimpleStopper_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::SimpleStopper *arg1 = (Xapian::SimpleStopper *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -17075,7 +17101,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_SimpleStopper__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_SimpleStopper__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   Xapian::SimpleStopper *result = 0 ;
@@ -17094,7 +17120,7 @@ _wrap_new_SimpleStopper__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *in
   }
   {
     try {
-      result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_2((std::string const &)*arg1);
+      result = (Xapian::SimpleStopper *)new_Xapian_SimpleStopper__SWIG_1((std::string const &)*arg1);
     } catch (const Xapian::Error &e) {
       return XapianTclHandleError(interp, e);
     } catch (...) {
@@ -17111,8 +17137,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_SimpleStopper(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_SimpleStopper(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_SimpleStopper__SWIG_0(clientData, interp, objc, argv - 1);
@@ -17122,7 +17148,7 @@ _wrap_new_SimpleStopper(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, in
     int res = SWIG_AsPtr_std_string SWIG_TCL_CALL_ARGS_2(argv[0], (std::string**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_new_SimpleStopper__SWIG_2(clientData, interp, objc, argv - 1);
+      return _wrap_new_SimpleStopper__SWIG_1(clientData, interp, objc, argv - 1);
     }
   }
   
@@ -17135,7 +17161,7 @@ _wrap_new_SimpleStopper(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, in
 
 
 SWIGINTERN int
-_wrap_delete_SimpleStopper(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_SimpleStopper(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::SimpleStopper *arg1 = (Xapian::SimpleStopper *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -17179,7 +17205,7 @@ static swig_class *swig_Xapian_SimpleStopper_bases[] = {0,0};
 static const char * swig_Xapian_SimpleStopper_base_names[] = {"Xapian::Stopper *",0};
 static swig_class _wrap_class_Xapian_SimpleStopper = { "SimpleStopper", &SWIGTYPE_p_Xapian__SimpleStopper,_wrap_new_SimpleStopper, swig_delete_SimpleStopper, swig_Xapian_SimpleStopper_methods, swig_Xapian_SimpleStopper_attributes, swig_Xapian_SimpleStopper_bases,swig_Xapian_SimpleStopper_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_RangeProcessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_RangeProcessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RangeProcessor *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_RangeProcessor ") == TCL_ERROR) SWIG_fail;
@@ -17200,7 +17226,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_RangeProcessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_RangeProcessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   unsigned int arg3 ;
@@ -17252,7 +17278,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_RangeProcessor__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_RangeProcessor__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   unsigned int val1 ;
@@ -17296,7 +17322,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_RangeProcessor__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_RangeProcessor__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   unsigned int val1 ;
   int ecode1 = 0 ;
@@ -17325,8 +17351,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_RangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_RangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_RangeProcessor__SWIG_0(clientData, interp, objc, argv - 1);
@@ -17387,7 +17413,7 @@ _wrap_new_RangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, i
 
 
 SWIGINTERN int
-_wrap_delete_RangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_RangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RangeProcessor *arg1 = (Xapian::RangeProcessor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -17415,7 +17441,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_RangeProcessor_check_range(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_RangeProcessor_check_range(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RangeProcessor *arg1 = (Xapian::RangeProcessor *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -17474,7 +17500,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_RangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_RangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RangeProcessor *arg1 = (Xapian::RangeProcessor *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -17533,7 +17559,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_RangeProcessor_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_RangeProcessor_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::RangeProcessor *arg1 = (Xapian::RangeProcessor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -17578,7 +17604,7 @@ static swig_class *swig_Xapian_RangeProcessor_bases[] = {0};
 static const char * swig_Xapian_RangeProcessor_base_names[] = {0};
 static swig_class _wrap_class_Xapian_RangeProcessor = { "RangeProcessor", &SWIGTYPE_p_Xapian__RangeProcessor,_wrap_new_RangeProcessor, swig_delete_RangeProcessor, swig_Xapian_RangeProcessor_methods, swig_Xapian_RangeProcessor_attributes, swig_Xapian_RangeProcessor_bases,swig_Xapian_RangeProcessor_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_DateRangeProcessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DateRangeProcessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   unsigned int arg2 ;
   int arg3 ;
@@ -17623,7 +17649,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DateRangeProcessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DateRangeProcessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   unsigned int arg2 ;
   unsigned int val1 ;
@@ -17660,7 +17686,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DateRangeProcessor__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DateRangeProcessor__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   unsigned int val1 ;
   int ecode1 = 0 ;
@@ -17689,7 +17715,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DateRangeProcessor__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DateRangeProcessor__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   unsigned int arg3 ;
@@ -17749,7 +17775,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DateRangeProcessor__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DateRangeProcessor__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   unsigned int arg3 ;
@@ -17801,7 +17827,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DateRangeProcessor__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DateRangeProcessor__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   unsigned int val1 ;
@@ -17845,8 +17871,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DateRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_DateRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -17970,7 +17996,7 @@ _wrap_new_DateRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *inter
 
 
 SWIGINTERN int
-_wrap_DateRangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DateRangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DateRangeProcessor *arg1 = (Xapian::DateRangeProcessor *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -18029,7 +18055,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_DateRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_DateRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DateRangeProcessor *arg1 = (Xapian::DateRangeProcessor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -18071,7 +18097,7 @@ static swig_class *swig_Xapian_DateRangeProcessor_bases[] = {0,0};
 static const char * swig_Xapian_DateRangeProcessor_base_names[] = {"Xapian::RangeProcessor *",0};
 static swig_class _wrap_class_Xapian_DateRangeProcessor = { "DateRangeProcessor", &SWIGTYPE_p_Xapian__DateRangeProcessor,_wrap_new_DateRangeProcessor, swig_delete_DateRangeProcessor, swig_Xapian_DateRangeProcessor_methods, swig_Xapian_DateRangeProcessor_attributes, swig_Xapian_DateRangeProcessor_bases,swig_Xapian_DateRangeProcessor_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_NumberRangeProcessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_NumberRangeProcessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   unsigned int arg3 ;
@@ -18123,7 +18149,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_NumberRangeProcessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_NumberRangeProcessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   unsigned int val1 ;
@@ -18167,7 +18193,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_NumberRangeProcessor__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_NumberRangeProcessor__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   unsigned int val1 ;
   int ecode1 = 0 ;
@@ -18196,8 +18222,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_NumberRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_NumberRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -18254,7 +18280,7 @@ _wrap_new_NumberRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *int
 
 
 SWIGINTERN int
-_wrap_NumberRangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_NumberRangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::NumberRangeProcessor *arg1 = (Xapian::NumberRangeProcessor *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -18313,7 +18339,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_NumberRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_NumberRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::NumberRangeProcessor *arg1 = (Xapian::NumberRangeProcessor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -18355,7 +18381,7 @@ static swig_class *swig_Xapian_NumberRangeProcessor_bases[] = {0,0};
 static const char * swig_Xapian_NumberRangeProcessor_base_names[] = {"Xapian::RangeProcessor *",0};
 static swig_class _wrap_class_Xapian_NumberRangeProcessor = { "NumberRangeProcessor", &SWIGTYPE_p_Xapian__NumberRangeProcessor,_wrap_new_NumberRangeProcessor, swig_delete_NumberRangeProcessor, swig_Xapian_NumberRangeProcessor_methods, swig_Xapian_NumberRangeProcessor_attributes, swig_Xapian_NumberRangeProcessor_bases,swig_Xapian_NumberRangeProcessor_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_delete_ValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_ValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueRangeProcessor *arg1 = (Xapian::ValueRangeProcessor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -18383,7 +18409,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueRangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueRangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueRangeProcessor *arg1 = (Xapian::ValueRangeProcessor *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -18434,7 +18460,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueRangeProcessor_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueRangeProcessor_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueRangeProcessor *arg1 = (Xapian::ValueRangeProcessor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -18478,7 +18504,7 @@ static swig_class *swig_Xapian_ValueRangeProcessor_bases[] = {0};
 static const char * swig_Xapian_ValueRangeProcessor_base_names[] = {0};
 static swig_class _wrap_class_Xapian_ValueRangeProcessor = { "ValueRangeProcessor", &SWIGTYPE_p_Xapian__ValueRangeProcessor,0, swig_delete_ValueRangeProcessor, swig_Xapian_ValueRangeProcessor_methods, swig_Xapian_ValueRangeProcessor_attributes, swig_Xapian_ValueRangeProcessor_bases,swig_Xapian_ValueRangeProcessor_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_StringValueRangeProcessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_StringValueRangeProcessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   unsigned int val1 ;
   int ecode1 = 0 ;
@@ -18507,7 +18533,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_StringValueRangeProcessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_StringValueRangeProcessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   bool arg3 ;
@@ -18559,7 +18585,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_StringValueRangeProcessor__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_StringValueRangeProcessor__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   unsigned int val1 ;
@@ -18603,8 +18629,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_StringValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_StringValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -18661,7 +18687,7 @@ _wrap_new_StringValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp
 
 
 SWIGINTERN int
-_wrap_StringValueRangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_StringValueRangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::StringValueRangeProcessor *arg1 = (Xapian::StringValueRangeProcessor *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -18712,7 +18738,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_StringValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_StringValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::StringValueRangeProcessor *arg1 = (Xapian::StringValueRangeProcessor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -18754,7 +18780,7 @@ static swig_class *swig_Xapian_StringValueRangeProcessor_bases[] = {0,0};
 static const char * swig_Xapian_StringValueRangeProcessor_base_names[] = {"Xapian::ValueRangeProcessor *",0};
 static swig_class _wrap_class_Xapian_StringValueRangeProcessor = { "StringValueRangeProcessor", &SWIGTYPE_p_Xapian__StringValueRangeProcessor,_wrap_new_StringValueRangeProcessor, swig_delete_StringValueRangeProcessor, swig_Xapian_StringValueRangeProcessor_methods, swig_Xapian_StringValueRangeProcessor_attributes, swig_Xapian_StringValueRangeProcessor_bases,swig_Xapian_StringValueRangeProcessor_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_DateValueRangeProcessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DateValueRangeProcessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   bool arg2 ;
   int arg3 ;
@@ -18799,7 +18825,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DateValueRangeProcessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DateValueRangeProcessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   bool arg2 ;
   unsigned int val1 ;
@@ -18836,7 +18862,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DateValueRangeProcessor__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DateValueRangeProcessor__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   unsigned int val1 ;
   int ecode1 = 0 ;
@@ -18865,7 +18891,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DateValueRangeProcessor__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DateValueRangeProcessor__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   bool arg3 ;
@@ -18933,7 +18959,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DateValueRangeProcessor__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DateValueRangeProcessor__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   bool arg3 ;
@@ -18993,7 +19019,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DateValueRangeProcessor__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DateValueRangeProcessor__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   bool arg3 ;
@@ -19045,7 +19071,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DateValueRangeProcessor__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DateValueRangeProcessor__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   unsigned int val1 ;
@@ -19089,8 +19115,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DateValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_DateValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -19247,7 +19273,7 @@ _wrap_new_DateValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *
 
 
 SWIGINTERN int
-_wrap_DateValueRangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DateValueRangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DateValueRangeProcessor *arg1 = (Xapian::DateValueRangeProcessor *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -19298,7 +19324,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_DateValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_DateValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DateValueRangeProcessor *arg1 = (Xapian::DateValueRangeProcessor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -19340,7 +19366,7 @@ static swig_class *swig_Xapian_DateValueRangeProcessor_bases[] = {0,0};
 static const char * swig_Xapian_DateValueRangeProcessor_base_names[] = {"Xapian::StringValueRangeProcessor *",0};
 static swig_class _wrap_class_Xapian_DateValueRangeProcessor = { "DateValueRangeProcessor", &SWIGTYPE_p_Xapian__DateValueRangeProcessor,_wrap_new_DateValueRangeProcessor, swig_delete_DateValueRangeProcessor, swig_Xapian_DateValueRangeProcessor_methods, swig_Xapian_DateValueRangeProcessor_attributes, swig_Xapian_DateValueRangeProcessor_bases,swig_Xapian_DateValueRangeProcessor_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_NumberValueRangeProcessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_NumberValueRangeProcessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   unsigned int val1 ;
   int ecode1 = 0 ;
@@ -19369,7 +19395,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_NumberValueRangeProcessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_NumberValueRangeProcessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   bool arg3 ;
@@ -19421,7 +19447,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_NumberValueRangeProcessor__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_NumberValueRangeProcessor__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   std::string *arg2 = 0 ;
   unsigned int val1 ;
@@ -19465,8 +19491,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_NumberValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_NumberValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -19523,7 +19549,7 @@ _wrap_new_NumberValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp
 
 
 SWIGINTERN int
-_wrap_NumberValueRangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_NumberValueRangeProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::NumberValueRangeProcessor *arg1 = (Xapian::NumberValueRangeProcessor *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -19574,7 +19600,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_NumberValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_NumberValueRangeProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::NumberValueRangeProcessor *arg1 = (Xapian::NumberValueRangeProcessor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -19616,7 +19642,7 @@ static swig_class *swig_Xapian_NumberValueRangeProcessor_bases[] = {0,0};
 static const char * swig_Xapian_NumberValueRangeProcessor_base_names[] = {"Xapian::StringValueRangeProcessor *",0};
 static swig_class _wrap_class_Xapian_NumberValueRangeProcessor = { "NumberValueRangeProcessor", &SWIGTYPE_p_Xapian__NumberValueRangeProcessor,_wrap_new_NumberValueRangeProcessor, swig_delete_NumberValueRangeProcessor, swig_Xapian_NumberValueRangeProcessor_methods, swig_Xapian_NumberValueRangeProcessor_attributes, swig_Xapian_NumberValueRangeProcessor_bases,swig_Xapian_NumberValueRangeProcessor_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_delete_FieldProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_FieldProcessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FieldProcessor *arg1 = (Xapian::FieldProcessor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -19644,7 +19670,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FieldProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FieldProcessor_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FieldProcessor *arg1 = (Xapian::FieldProcessor *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -19688,7 +19714,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FieldProcessor_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FieldProcessor_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FieldProcessor *arg1 = (Xapian::FieldProcessor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -19732,7 +19758,7 @@ static swig_class *swig_Xapian_FieldProcessor_bases[] = {0};
 static const char * swig_Xapian_FieldProcessor_base_names[] = {0};
 static swig_class _wrap_class_Xapian_FieldProcessor = { "FieldProcessor", &SWIGTYPE_p_Xapian__FieldProcessor,0, swig_delete_FieldProcessor, swig_Xapian_FieldProcessor_methods, swig_Xapian_FieldProcessor_attributes, swig_Xapian_FieldProcessor_bases,swig_Xapian_FieldProcessor_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_QueryParser(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_QueryParser(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_QueryParser ") == TCL_ERROR) SWIG_fail;
@@ -19753,7 +19779,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_QueryParser(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_QueryParser(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -19781,7 +19807,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_set_stemmer(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_set_stemmer(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   Xapian::Stem *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -19820,7 +19846,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_set_stemming_strategy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_set_stemming_strategy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   Xapian::QueryParser::stem_strategy arg2 ;
   void *argp1 = 0 ;
@@ -19856,7 +19882,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_set_stopper__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_set_stopper__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   Xapian::Stopper *arg2 = (Xapian::Stopper *) 0 ;
   void *argp1 = 0 ;
@@ -19892,7 +19918,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_set_stopper__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_set_stopper__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -19920,8 +19946,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_set_stopper(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_QueryParser_set_stopper(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -19956,7 +19982,7 @@ _wrap_QueryParser_set_stopper(ClientData clientData SWIGUNUSED, Tcl_Interp *inte
 
 
 SWIGINTERN int
-_wrap_QueryParser_set_default_op(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_set_default_op(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   Xapian::Query::op arg2 ;
   void *argp1 = 0 ;
@@ -19992,7 +20018,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_get_default_op(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_get_default_op(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -20021,7 +20047,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_set_database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_set_database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   Xapian::Database *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -20060,7 +20086,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_set_max_expansion__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_set_max_expansion__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   Xapian::termcount arg2 ;
   int arg3 ;
@@ -20112,7 +20138,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_set_max_expansion__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_set_max_expansion__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   Xapian::termcount arg2 ;
   int arg3 ;
@@ -20156,7 +20182,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_set_max_expansion__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_set_max_expansion__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   Xapian::termcount arg2 ;
   void *argp1 = 0 ;
@@ -20192,8 +20218,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_set_max_expansion(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_QueryParser_set_max_expansion(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -20269,7 +20295,7 @@ _wrap_QueryParser_set_max_expansion(ClientData clientData SWIGUNUSED, Tcl_Interp
 
 
 SWIGINTERN int
-_wrap_QueryParser_set_max_wildcard_expansion(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_set_max_wildcard_expansion(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   Xapian::termcount arg2 ;
   void *argp1 = 0 ;
@@ -20305,7 +20331,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_parse_query__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_parse_query__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   std::string *arg2 = 0 ;
   unsigned int arg3 ;
@@ -20372,7 +20398,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_parse_query__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_parse_query__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   std::string *arg2 = 0 ;
   unsigned int arg3 ;
@@ -20424,7 +20450,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_parse_query__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_parse_query__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -20468,8 +20494,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_parse_query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_QueryParser_parse_query(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -20537,7 +20563,7 @@ _wrap_QueryParser_parse_query(ClientData clientData SWIGUNUSED, Tcl_Interp *inte
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_prefix__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_add_prefix__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -20595,7 +20621,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_prefix__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_add_prefix__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::FieldProcessor *arg3 = (Xapian::FieldProcessor *) 0 ;
@@ -20646,8 +20672,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_prefix(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_QueryParser_add_prefix(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 3) {
     int _v = 0;
@@ -20694,7 +20720,7 @@ _wrap_QueryParser_add_prefix(ClientData clientData SWIGUNUSED, Tcl_Interp *inter
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_boolean_prefix__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_add_boolean_prefix__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -20760,7 +20786,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_boolean_prefix__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_add_boolean_prefix__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -20818,7 +20844,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_boolean_prefix__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_add_boolean_prefix__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -20884,7 +20910,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_boolean_prefix__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_add_boolean_prefix__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::FieldProcessor *arg3 = (Xapian::FieldProcessor *) 0 ;
@@ -20943,7 +20969,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_boolean_prefix__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_add_boolean_prefix__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::FieldProcessor *arg3 = (Xapian::FieldProcessor *) 0 ;
@@ -20994,7 +21020,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_boolean_prefix__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_add_boolean_prefix__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::FieldProcessor *arg3 = (Xapian::FieldProcessor *) 0 ;
@@ -21053,8 +21079,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_boolean_prefix(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_QueryParser_add_boolean_prefix(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 3) {
     int _v = 0;
@@ -21195,7 +21221,7 @@ _wrap_QueryParser_add_boolean_prefix(ClientData clientData SWIGUNUSED, Tcl_Inter
 
 
 SWIGINTERN int
-_wrap_QueryParser_stoplist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_stoplist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -21224,7 +21250,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_stoplist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_stoplist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -21253,7 +21279,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_unstem_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_unstem_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -21297,7 +21323,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_unstem_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_unstem_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -21341,7 +21367,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_rangeprocessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_add_rangeprocessor__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   Xapian::RangeProcessor *arg2 = (Xapian::RangeProcessor *) 0 ;
   std::string *arg3 = (std::string *) 0 ;
@@ -21385,7 +21411,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_rangeprocessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_add_rangeprocessor__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   Xapian::RangeProcessor *arg2 = (Xapian::RangeProcessor *) 0 ;
   void *argp1 = 0 ;
@@ -21421,8 +21447,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_rangeprocessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_QueryParser_add_rangeprocessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -21466,7 +21492,7 @@ _wrap_QueryParser_add_rangeprocessor(ClientData clientData SWIGUNUSED, Tcl_Inter
 
 
 SWIGINTERN int
-_wrap_QueryParser_add_valuerangeprocessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_add_valuerangeprocessor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   Xapian::ValueRangeProcessor *arg2 = (Xapian::ValueRangeProcessor *) 0 ;
   void *argp1 = 0 ;
@@ -21502,7 +21528,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_get_corrected_query_string(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_get_corrected_query_string(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -21531,7 +21557,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_QueryParser_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_QueryParser_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::QueryParser *arg1 = (Xapian::QueryParser *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -21592,7 +21618,7 @@ static swig_class *swig_Xapian_QueryParser_bases[] = {0};
 static const char * swig_Xapian_QueryParser_base_names[] = {0};
 static swig_class _wrap_class_Xapian_QueryParser = { "QueryParser", &SWIGTYPE_p_Xapian__QueryParser,_wrap_new_QueryParser, swig_delete_QueryParser, swig_Xapian_QueryParser_methods, swig_Xapian_QueryParser_attributes, swig_Xapian_QueryParser_bases,swig_Xapian_QueryParser_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_sortable_serialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_sortable_serialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
@@ -21621,7 +21647,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_sortable_unserialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_sortable_unserialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   double result;
@@ -21657,7 +21683,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_ValueSetMatchDecider(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_ValueSetMatchDecider(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   bool arg2 ;
   unsigned int val1 ;
@@ -21694,7 +21720,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueSetMatchDecider_add_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueSetMatchDecider_add_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueSetMatchDecider *arg1 = (Xapian::ValueSetMatchDecider *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -21737,7 +21763,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueSetMatchDecider_remove_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueSetMatchDecider_remove_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueSetMatchDecider *arg1 = (Xapian::ValueSetMatchDecider *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -21780,7 +21806,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueSetMatchDecider_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueSetMatchDecider_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueSetMatchDecider *arg1 = (Xapian::ValueSetMatchDecider *) 0 ;
   Xapian::Document *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -21820,7 +21846,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_ValueSetMatchDecider(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_ValueSetMatchDecider(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueSetMatchDecider *arg1 = (Xapian::ValueSetMatchDecider *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -21864,7 +21890,7 @@ static swig_class *swig_Xapian_ValueSetMatchDecider_bases[] = {0,0};
 static const char * swig_Xapian_ValueSetMatchDecider_base_names[] = {"Xapian::MatchDecider *",0};
 static swig_class _wrap_class_Xapian_ValueSetMatchDecider = { "ValueSetMatchDecider", &SWIGTYPE_p_Xapian__ValueSetMatchDecider,_wrap_new_ValueSetMatchDecider, swig_delete_ValueSetMatchDecider, swig_Xapian_ValueSetMatchDecider_methods, swig_Xapian_ValueSetMatchDecider_attributes, swig_Xapian_ValueSetMatchDecider_bases,swig_Xapian_ValueSetMatchDecider_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_delete_Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Weight *arg1 = (Xapian::Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -21892,7 +21918,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Weight *arg1 = (Xapian::Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -21921,7 +21947,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Weight *arg1 = (Xapian::Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -21974,7 +22000,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Weight *arg1 = (Xapian::Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22003,7 +22029,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Weight *arg1 = (Xapian::Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -22048,7 +22074,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Weight *arg1 = (Xapian::Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22095,7 +22121,7 @@ static swig_class *swig_Xapian_Weight_bases[] = {0};
 static const char * swig_Xapian_Weight_base_names[] = {0};
 static swig_class _wrap_class_Xapian_Weight = { "Weight", &SWIGTYPE_p_Xapian__Weight,0, swig_delete_Weight, swig_Xapian_Weight_methods, swig_Xapian_Weight_attributes, swig_Xapian_Weight_bases,swig_Xapian_Weight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_BoolWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_BoolWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BoolWeight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_BoolWeight ") == TCL_ERROR) SWIG_fail;
@@ -22116,7 +22142,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BoolWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BoolWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BoolWeight *arg1 = (Xapian::BoolWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22145,7 +22171,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BoolWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BoolWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BoolWeight *arg1 = (Xapian::BoolWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -22198,7 +22224,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BoolWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BoolWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BoolWeight *arg1 = (Xapian::BoolWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22227,7 +22253,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BoolWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BoolWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BoolWeight *arg1 = (Xapian::BoolWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -22272,7 +22298,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BoolWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BoolWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BoolWeight *arg1 = (Xapian::BoolWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22301,7 +22327,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_BoolWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_BoolWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BoolWeight *arg1 = (Xapian::BoolWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22347,7 +22373,7 @@ static swig_class *swig_Xapian_BoolWeight_bases[] = {0,0};
 static const char * swig_Xapian_BoolWeight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_BoolWeight = { "BoolWeight", &SWIGTYPE_p_Xapian__BoolWeight,_wrap_new_BoolWeight, swig_delete_BoolWeight, swig_Xapian_BoolWeight_methods, swig_Xapian_BoolWeight_attributes, swig_Xapian_BoolWeight_bases,swig_Xapian_BoolWeight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_TfIdfWeight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_TfIdfWeight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   Xapian::TfIdfWeight *result = 0 ;
@@ -22383,7 +22409,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_TfIdfWeight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_TfIdfWeight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TfIdfWeight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_TfIdfWeight ") == TCL_ERROR) SWIG_fail;
@@ -22404,8 +22430,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_TfIdfWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_TfIdfWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_TfIdfWeight__SWIG_1(clientData, interp, objc, argv - 1);
@@ -22428,7 +22454,7 @@ _wrap_new_TfIdfWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int
 
 
 SWIGINTERN int
-_wrap_TfIdfWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TfIdfWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TfIdfWeight *arg1 = (Xapian::TfIdfWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22457,7 +22483,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TfIdfWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TfIdfWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TfIdfWeight *arg1 = (Xapian::TfIdfWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -22510,7 +22536,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TfIdfWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TfIdfWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TfIdfWeight *arg1 = (Xapian::TfIdfWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22539,7 +22565,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TfIdfWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TfIdfWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TfIdfWeight *arg1 = (Xapian::TfIdfWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -22584,7 +22610,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TfIdfWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TfIdfWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TfIdfWeight *arg1 = (Xapian::TfIdfWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22613,7 +22639,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_TfIdfWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_TfIdfWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TfIdfWeight *arg1 = (Xapian::TfIdfWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22659,7 +22685,7 @@ static swig_class *swig_Xapian_TfIdfWeight_bases[] = {0,0};
 static const char * swig_Xapian_TfIdfWeight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_TfIdfWeight = { "TfIdfWeight", &SWIGTYPE_p_Xapian__TfIdfWeight,_wrap_new_TfIdfWeight, swig_delete_TfIdfWeight, swig_Xapian_TfIdfWeight_methods, swig_Xapian_TfIdfWeight_attributes, swig_Xapian_TfIdfWeight_bases,swig_Xapian_TfIdfWeight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_BM25Weight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_BM25Weight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double arg2 ;
   double arg3 ;
@@ -22720,7 +22746,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_BM25Weight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_BM25Weight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25Weight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_BM25Weight ") == TCL_ERROR) SWIG_fail;
@@ -22741,8 +22767,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_BM25Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_BM25Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_BM25Weight__SWIG_1(clientData, interp, objc, argv - 1);
@@ -22791,7 +22817,7 @@ _wrap_new_BM25Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int o
 
 
 SWIGINTERN int
-_wrap_BM25Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BM25Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25Weight *arg1 = (Xapian::BM25Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22820,7 +22846,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BM25Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BM25Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25Weight *arg1 = (Xapian::BM25Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -22873,7 +22899,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BM25Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BM25Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25Weight *arg1 = (Xapian::BM25Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22902,7 +22928,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BM25Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BM25Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25Weight *arg1 = (Xapian::BM25Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -22947,7 +22973,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BM25Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BM25Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25Weight *arg1 = (Xapian::BM25Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22976,7 +23002,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_BM25Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_BM25Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25Weight *arg1 = (Xapian::BM25Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23022,7 +23048,7 @@ static swig_class *swig_Xapian_BM25Weight_bases[] = {0,0};
 static const char * swig_Xapian_BM25Weight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_BM25Weight = { "BM25Weight", &SWIGTYPE_p_Xapian__BM25Weight,_wrap_new_BM25Weight, swig_delete_BM25Weight, swig_Xapian_BM25Weight_methods, swig_Xapian_BM25Weight_attributes, swig_Xapian_BM25Weight_bases,swig_Xapian_BM25Weight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_BM25PlusWeight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_BM25PlusWeight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double arg2 ;
   double arg3 ;
@@ -23091,7 +23117,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_BM25PlusWeight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_BM25PlusWeight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25PlusWeight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_BM25PlusWeight ") == TCL_ERROR) SWIG_fail;
@@ -23112,8 +23138,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_BM25PlusWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_BM25PlusWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_BM25PlusWeight__SWIG_1(clientData, interp, objc, argv - 1);
@@ -23168,7 +23194,7 @@ _wrap_new_BM25PlusWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, i
 
 
 SWIGINTERN int
-_wrap_BM25PlusWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BM25PlusWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25PlusWeight *arg1 = (Xapian::BM25PlusWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23197,7 +23223,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BM25PlusWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BM25PlusWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25PlusWeight *arg1 = (Xapian::BM25PlusWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -23250,7 +23276,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BM25PlusWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BM25PlusWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25PlusWeight *arg1 = (Xapian::BM25PlusWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23279,7 +23305,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BM25PlusWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BM25PlusWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25PlusWeight *arg1 = (Xapian::BM25PlusWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -23324,7 +23350,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BM25PlusWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BM25PlusWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25PlusWeight *arg1 = (Xapian::BM25PlusWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23353,7 +23379,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_BM25PlusWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_BM25PlusWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BM25PlusWeight *arg1 = (Xapian::BM25PlusWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23399,7 +23425,7 @@ static swig_class *swig_Xapian_BM25PlusWeight_bases[] = {0,0};
 static const char * swig_Xapian_BM25PlusWeight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_BM25PlusWeight = { "BM25PlusWeight", &SWIGTYPE_p_Xapian__BM25PlusWeight,_wrap_new_BM25PlusWeight, swig_delete_BM25PlusWeight, swig_Xapian_BM25PlusWeight_methods, swig_Xapian_BM25PlusWeight_attributes, swig_Xapian_BM25PlusWeight_bases,swig_Xapian_BM25PlusWeight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_TradWeight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_TradWeight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
@@ -23428,7 +23454,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_TradWeight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_TradWeight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TradWeight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_TradWeight ") == TCL_ERROR) SWIG_fail;
@@ -23449,8 +23475,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_TradWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_TradWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_TradWeight__SWIG_1(clientData, interp, objc, argv - 1);
@@ -23475,7 +23501,7 @@ _wrap_new_TradWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int o
 
 
 SWIGINTERN int
-_wrap_TradWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TradWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TradWeight *arg1 = (Xapian::TradWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23504,7 +23530,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TradWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TradWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TradWeight *arg1 = (Xapian::TradWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -23557,7 +23583,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TradWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TradWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TradWeight *arg1 = (Xapian::TradWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23586,7 +23612,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TradWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TradWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TradWeight *arg1 = (Xapian::TradWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -23631,7 +23657,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_TradWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_TradWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TradWeight *arg1 = (Xapian::TradWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23660,7 +23686,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_TradWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_TradWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::TradWeight *arg1 = (Xapian::TradWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23706,7 +23732,7 @@ static swig_class *swig_Xapian_TradWeight_bases[] = {0,0};
 static const char * swig_Xapian_TradWeight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_TradWeight = { "TradWeight", &SWIGTYPE_p_Xapian__TradWeight,_wrap_new_TradWeight, swig_delete_TradWeight, swig_Xapian_TradWeight_methods, swig_Xapian_TradWeight_attributes, swig_Xapian_TradWeight_bases,swig_Xapian_TradWeight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_InL2Weight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_InL2Weight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
@@ -23735,7 +23761,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_InL2Weight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_InL2Weight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::InL2Weight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_InL2Weight ") == TCL_ERROR) SWIG_fail;
@@ -23756,8 +23782,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_InL2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_InL2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_InL2Weight__SWIG_1(clientData, interp, objc, argv - 1);
@@ -23782,7 +23808,7 @@ _wrap_new_InL2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int o
 
 
 SWIGINTERN int
-_wrap_InL2Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_InL2Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::InL2Weight *arg1 = (Xapian::InL2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23811,7 +23837,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_InL2Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_InL2Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::InL2Weight *arg1 = (Xapian::InL2Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -23864,7 +23890,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_InL2Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_InL2Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::InL2Weight *arg1 = (Xapian::InL2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23893,7 +23919,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_InL2Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_InL2Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::InL2Weight *arg1 = (Xapian::InL2Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -23938,7 +23964,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_InL2Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_InL2Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::InL2Weight *arg1 = (Xapian::InL2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23967,7 +23993,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_InL2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_InL2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::InL2Weight *arg1 = (Xapian::InL2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24013,7 +24039,7 @@ static swig_class *swig_Xapian_InL2Weight_bases[] = {0,0};
 static const char * swig_Xapian_InL2Weight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_InL2Weight = { "InL2Weight", &SWIGTYPE_p_Xapian__InL2Weight,_wrap_new_InL2Weight, swig_delete_InL2Weight, swig_Xapian_InL2Weight_methods, swig_Xapian_InL2Weight_attributes, swig_Xapian_InL2Weight_bases,swig_Xapian_InL2Weight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_IfB2Weight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_IfB2Weight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
@@ -24042,7 +24068,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_IfB2Weight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_IfB2Weight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IfB2Weight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_IfB2Weight ") == TCL_ERROR) SWIG_fail;
@@ -24063,8 +24089,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_IfB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_IfB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_IfB2Weight__SWIG_1(clientData, interp, objc, argv - 1);
@@ -24089,7 +24115,7 @@ _wrap_new_IfB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int o
 
 
 SWIGINTERN int
-_wrap_IfB2Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_IfB2Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IfB2Weight *arg1 = (Xapian::IfB2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24118,7 +24144,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_IfB2Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_IfB2Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IfB2Weight *arg1 = (Xapian::IfB2Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -24171,7 +24197,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_IfB2Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_IfB2Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IfB2Weight *arg1 = (Xapian::IfB2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24200,7 +24226,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_IfB2Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_IfB2Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IfB2Weight *arg1 = (Xapian::IfB2Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -24245,7 +24271,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_IfB2Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_IfB2Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IfB2Weight *arg1 = (Xapian::IfB2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24274,7 +24300,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_IfB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_IfB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IfB2Weight *arg1 = (Xapian::IfB2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24320,7 +24346,7 @@ static swig_class *swig_Xapian_IfB2Weight_bases[] = {0,0};
 static const char * swig_Xapian_IfB2Weight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_IfB2Weight = { "IfB2Weight", &SWIGTYPE_p_Xapian__IfB2Weight,_wrap_new_IfB2Weight, swig_delete_IfB2Weight, swig_Xapian_IfB2Weight_methods, swig_Xapian_IfB2Weight_attributes, swig_Xapian_IfB2Weight_bases,swig_Xapian_IfB2Weight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_IneB2Weight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_IneB2Weight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
@@ -24349,7 +24375,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_IneB2Weight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_IneB2Weight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IneB2Weight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_IneB2Weight ") == TCL_ERROR) SWIG_fail;
@@ -24370,8 +24396,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_IneB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_IneB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_IneB2Weight__SWIG_1(clientData, interp, objc, argv - 1);
@@ -24396,7 +24422,7 @@ _wrap_new_IneB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int
 
 
 SWIGINTERN int
-_wrap_IneB2Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_IneB2Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IneB2Weight *arg1 = (Xapian::IneB2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24425,7 +24451,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_IneB2Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_IneB2Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IneB2Weight *arg1 = (Xapian::IneB2Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -24478,7 +24504,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_IneB2Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_IneB2Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IneB2Weight *arg1 = (Xapian::IneB2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24507,7 +24533,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_IneB2Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_IneB2Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IneB2Weight *arg1 = (Xapian::IneB2Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -24552,7 +24578,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_IneB2Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_IneB2Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IneB2Weight *arg1 = (Xapian::IneB2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24581,7 +24607,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_IneB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_IneB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::IneB2Weight *arg1 = (Xapian::IneB2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24627,7 +24653,7 @@ static swig_class *swig_Xapian_IneB2Weight_bases[] = {0,0};
 static const char * swig_Xapian_IneB2Weight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_IneB2Weight = { "IneB2Weight", &SWIGTYPE_p_Xapian__IneB2Weight,_wrap_new_IneB2Weight, swig_delete_IneB2Weight, swig_Xapian_IneB2Weight_methods, swig_Xapian_IneB2Weight_attributes, swig_Xapian_IneB2Weight_bases,swig_Xapian_IneB2Weight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_BB2Weight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_BB2Weight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
@@ -24656,7 +24682,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_BB2Weight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_BB2Weight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BB2Weight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_BB2Weight ") == TCL_ERROR) SWIG_fail;
@@ -24677,8 +24703,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_BB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_BB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_BB2Weight__SWIG_1(clientData, interp, objc, argv - 1);
@@ -24703,7 +24729,7 @@ _wrap_new_BB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int ob
 
 
 SWIGINTERN int
-_wrap_BB2Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BB2Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BB2Weight *arg1 = (Xapian::BB2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24732,7 +24758,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BB2Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BB2Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BB2Weight *arg1 = (Xapian::BB2Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -24785,7 +24811,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BB2Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BB2Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BB2Weight *arg1 = (Xapian::BB2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24814,7 +24840,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BB2Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BB2Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BB2Weight *arg1 = (Xapian::BB2Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -24859,7 +24885,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_BB2Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_BB2Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BB2Weight *arg1 = (Xapian::BB2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24888,7 +24914,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_BB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_BB2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::BB2Weight *arg1 = (Xapian::BB2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24934,7 +24960,7 @@ static swig_class *swig_Xapian_BB2Weight_bases[] = {0,0};
 static const char * swig_Xapian_BB2Weight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_BB2Weight = { "BB2Weight", &SWIGTYPE_p_Xapian__BB2Weight,_wrap_new_BB2Weight, swig_delete_BB2Weight, swig_Xapian_BB2Weight_methods, swig_Xapian_BB2Weight_attributes, swig_Xapian_BB2Weight_bases,swig_Xapian_BB2Weight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_DLHWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DLHWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DLHWeight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_DLHWeight ") == TCL_ERROR) SWIG_fail;
@@ -24955,7 +24981,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DLHWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DLHWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DLHWeight *arg1 = (Xapian::DLHWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24984,7 +25010,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DLHWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DLHWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DLHWeight *arg1 = (Xapian::DLHWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -25037,7 +25063,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DLHWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DLHWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DLHWeight *arg1 = (Xapian::DLHWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25066,7 +25092,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DLHWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DLHWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DLHWeight *arg1 = (Xapian::DLHWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -25111,7 +25137,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DLHWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DLHWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DLHWeight *arg1 = (Xapian::DLHWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25140,7 +25166,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_DLHWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_DLHWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DLHWeight *arg1 = (Xapian::DLHWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25186,7 +25212,7 @@ static swig_class *swig_Xapian_DLHWeight_bases[] = {0,0};
 static const char * swig_Xapian_DLHWeight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_DLHWeight = { "DLHWeight", &SWIGTYPE_p_Xapian__DLHWeight,_wrap_new_DLHWeight, swig_delete_DLHWeight, swig_Xapian_DLHWeight_methods, swig_Xapian_DLHWeight_attributes, swig_Xapian_DLHWeight_bases,swig_Xapian_DLHWeight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_PL2Weight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_PL2Weight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
@@ -25215,7 +25241,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_PL2Weight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_PL2Weight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2Weight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_PL2Weight ") == TCL_ERROR) SWIG_fail;
@@ -25236,8 +25262,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_PL2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_PL2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_PL2Weight__SWIG_1(clientData, interp, objc, argv - 1);
@@ -25262,7 +25288,7 @@ _wrap_new_PL2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int ob
 
 
 SWIGINTERN int
-_wrap_PL2Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PL2Weight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2Weight *arg1 = (Xapian::PL2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25291,7 +25317,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PL2Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PL2Weight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2Weight *arg1 = (Xapian::PL2Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -25344,7 +25370,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PL2Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PL2Weight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2Weight *arg1 = (Xapian::PL2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25373,7 +25399,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PL2Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PL2Weight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2Weight *arg1 = (Xapian::PL2Weight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -25418,7 +25444,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PL2Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PL2Weight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2Weight *arg1 = (Xapian::PL2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25447,7 +25473,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_PL2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_PL2Weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2Weight *arg1 = (Xapian::PL2Weight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25493,7 +25519,7 @@ static swig_class *swig_Xapian_PL2Weight_bases[] = {0,0};
 static const char * swig_Xapian_PL2Weight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_PL2Weight = { "PL2Weight", &SWIGTYPE_p_Xapian__PL2Weight,_wrap_new_PL2Weight, swig_delete_PL2Weight, swig_Xapian_PL2Weight_methods, swig_Xapian_PL2Weight_attributes, swig_Xapian_PL2Weight_bases,swig_Xapian_PL2Weight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_PL2PlusWeight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_PL2PlusWeight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double arg2 ;
   double val1 ;
@@ -25530,7 +25556,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_PL2PlusWeight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_PL2PlusWeight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2PlusWeight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_PL2PlusWeight ") == TCL_ERROR) SWIG_fail;
@@ -25551,8 +25577,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_PL2PlusWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_PL2PlusWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_PL2PlusWeight__SWIG_1(clientData, interp, objc, argv - 1);
@@ -25583,7 +25609,7 @@ _wrap_new_PL2PlusWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, in
 
 
 SWIGINTERN int
-_wrap_PL2PlusWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PL2PlusWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2PlusWeight *arg1 = (Xapian::PL2PlusWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25612,7 +25638,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PL2PlusWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PL2PlusWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2PlusWeight *arg1 = (Xapian::PL2PlusWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -25665,7 +25691,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PL2PlusWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PL2PlusWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2PlusWeight *arg1 = (Xapian::PL2PlusWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25694,7 +25720,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PL2PlusWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PL2PlusWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2PlusWeight *arg1 = (Xapian::PL2PlusWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -25739,7 +25765,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PL2PlusWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PL2PlusWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2PlusWeight *arg1 = (Xapian::PL2PlusWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25768,7 +25794,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_PL2PlusWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_PL2PlusWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PL2PlusWeight *arg1 = (Xapian::PL2PlusWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25814,7 +25840,7 @@ static swig_class *swig_Xapian_PL2PlusWeight_bases[] = {0,0};
 static const char * swig_Xapian_PL2PlusWeight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_PL2PlusWeight = { "PL2PlusWeight", &SWIGTYPE_p_Xapian__PL2PlusWeight,_wrap_new_PL2PlusWeight, swig_delete_PL2PlusWeight, swig_Xapian_PL2PlusWeight_methods, swig_Xapian_PL2PlusWeight_attributes, swig_Xapian_PL2PlusWeight_bases,swig_Xapian_PL2PlusWeight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_DPHWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DPHWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DPHWeight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_DPHWeight ") == TCL_ERROR) SWIG_fail;
@@ -25835,7 +25861,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DPHWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DPHWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DPHWeight *arg1 = (Xapian::DPHWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25864,7 +25890,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DPHWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DPHWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DPHWeight *arg1 = (Xapian::DPHWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -25917,7 +25943,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DPHWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DPHWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DPHWeight *arg1 = (Xapian::DPHWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25946,7 +25972,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DPHWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DPHWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DPHWeight *arg1 = (Xapian::DPHWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -25991,7 +26017,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DPHWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DPHWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DPHWeight *arg1 = (Xapian::DPHWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26020,7 +26046,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_DPHWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_DPHWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DPHWeight *arg1 = (Xapian::DPHWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26066,7 +26092,7 @@ static swig_class *swig_Xapian_DPHWeight_bases[] = {0,0};
 static const char * swig_Xapian_DPHWeight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_DPHWeight = { "DPHWeight", &SWIGTYPE_p_Xapian__DPHWeight,_wrap_new_DPHWeight, swig_delete_DPHWeight, swig_Xapian_DPHWeight_methods, swig_Xapian_DPHWeight_attributes, swig_Xapian_DPHWeight_bases,swig_Xapian_DPHWeight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_LMWeight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LMWeight__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   Xapian::Weight::type_smoothing arg2 ;
   double arg3 ;
@@ -26119,7 +26145,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LMWeight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LMWeight__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   Xapian::Weight::type_smoothing arg2 ;
   double arg3 ;
@@ -26164,7 +26190,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LMWeight__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LMWeight__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   Xapian::Weight::type_smoothing arg2 ;
   double val1 ;
@@ -26201,7 +26227,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LMWeight__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LMWeight__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
@@ -26230,7 +26256,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LMWeight__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LMWeight__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LMWeight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_LMWeight ") == TCL_ERROR) SWIG_fail;
@@ -26251,8 +26277,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LMWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_LMWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_LMWeight__SWIG_4(clientData, interp, objc, argv - 1);
@@ -26346,7 +26372,7 @@ _wrap_new_LMWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int obj
 
 
 SWIGINTERN int
-_wrap_LMWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LMWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LMWeight *arg1 = (Xapian::LMWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26375,7 +26401,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LMWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LMWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LMWeight *arg1 = (Xapian::LMWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -26428,7 +26454,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LMWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LMWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LMWeight *arg1 = (Xapian::LMWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26457,7 +26483,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LMWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LMWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LMWeight *arg1 = (Xapian::LMWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -26502,7 +26528,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LMWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LMWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LMWeight *arg1 = (Xapian::LMWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26531,7 +26557,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_LMWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_LMWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LMWeight *arg1 = (Xapian::LMWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26577,7 +26603,7 @@ static swig_class *swig_Xapian_LMWeight_bases[] = {0,0};
 static const char * swig_Xapian_LMWeight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_LMWeight = { "LMWeight", &SWIGTYPE_p_Xapian__LMWeight,_wrap_new_LMWeight, swig_delete_LMWeight, swig_Xapian_LMWeight_methods, swig_Xapian_LMWeight_attributes, swig_Xapian_LMWeight_bases,swig_Xapian_LMWeight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_CoordWeight_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_CoordWeight_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::CoordWeight *arg1 = (Xapian::CoordWeight *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -26613,7 +26639,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_CoordWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_CoordWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::CoordWeight *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_CoordWeight ") == TCL_ERROR) SWIG_fail;
@@ -26634,7 +26660,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_CoordWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_CoordWeight_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::CoordWeight *arg1 = (Xapian::CoordWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26663,7 +26689,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_CoordWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_CoordWeight_get_sumpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::CoordWeight *arg1 = (Xapian::CoordWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -26716,7 +26742,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_CoordWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_CoordWeight_get_maxpart(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::CoordWeight *arg1 = (Xapian::CoordWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26745,7 +26771,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_CoordWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_CoordWeight_get_sumextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::CoordWeight *arg1 = (Xapian::CoordWeight *) 0 ;
   Xapian::termcount arg2 ;
   Xapian::termcount arg3 ;
@@ -26790,7 +26816,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_CoordWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_CoordWeight_get_maxextra(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::CoordWeight *arg1 = (Xapian::CoordWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26819,7 +26845,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_CoordWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_CoordWeight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::CoordWeight *arg1 = (Xapian::CoordWeight *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26866,7 +26892,7 @@ static swig_class *swig_Xapian_CoordWeight_bases[] = {0,0};
 static const char * swig_Xapian_CoordWeight_base_names[] = {"Xapian::Weight *",0};
 static swig_class _wrap_class_Xapian_CoordWeight = { "CoordWeight", &SWIGTYPE_p_Xapian__CoordWeight,_wrap_new_CoordWeight, swig_delete_CoordWeight, swig_Xapian_CoordWeight_methods, swig_Xapian_CoordWeight_attributes, swig_Xapian_CoordWeight_bases,swig_Xapian_CoordWeight_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_Compactor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Compactor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Compactor *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_Compactor ") == TCL_ERROR) SWIG_fail;
@@ -26887,7 +26913,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_Compactor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_Compactor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26915,7 +26941,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Compactor_set_block_size(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Compactor_set_block_size(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   size_t arg2 ;
   void *argp1 = 0 ;
@@ -26951,7 +26977,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Compactor_set_renumber(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Compactor_set_renumber(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   bool arg2 ;
   void *argp1 = 0 ;
@@ -26987,7 +27013,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Compactor_set_multipass(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Compactor_set_multipass(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   bool arg2 ;
   void *argp1 = 0 ;
@@ -27023,7 +27049,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Compactor_set_compaction_level(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Compactor_set_compaction_level(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   Xapian::Compactor::compaction_level arg2 ;
   void *argp1 = 0 ;
@@ -27059,7 +27085,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Compactor_set_destdir(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Compactor_set_destdir(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -27102,7 +27128,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Compactor_add_source(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Compactor_add_source(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -27145,7 +27171,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Compactor_compact(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Compactor_compact(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27173,7 +27199,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Compactor_set_status(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Compactor_set_status(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -27231,11 +27257,11 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Compactor_resolve_duplicate_metadata(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Compactor_resolve_duplicate_metadata(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Compactor *arg1 = (Xapian::Compactor *) 0 ;
   std::string *arg2 = 0 ;
   size_t arg3 ;
-  std::string *arg4 ;
+  std::string *arg4 = (std::string *) (std::string *)0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 = SWIG_OLDOBJ ;
@@ -27313,7 +27339,7 @@ static swig_class *swig_Xapian_Compactor_bases[] = {0};
 static const char * swig_Xapian_Compactor_base_names[] = {0};
 static swig_class _wrap_class_Xapian_Compactor = { "Compactor", &SWIGTYPE_p_Xapian__Compactor,_wrap_new_Compactor, swig_delete_Compactor, swig_Xapian_Compactor_methods, swig_Xapian_Compactor_attributes, swig_Xapian_Compactor_bases,swig_Xapian_Compactor_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_delete_PostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_PostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27341,7 +27367,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_get_termfreq_min(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_get_termfreq_min(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27370,7 +27396,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_get_termfreq_est(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_get_termfreq_est(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27399,7 +27425,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_get_termfreq_max(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_get_termfreq_max(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27428,7 +27454,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_set_maxweight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_set_maxweight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -27464,7 +27490,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_get_maxweight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_get_maxweight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27493,7 +27519,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27522,7 +27548,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27551,7 +27577,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -27587,7 +27613,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   Xapian::docid arg2 ;
   double arg3 ;
@@ -27631,7 +27657,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   Xapian::docid arg2 ;
   double arg3 ;
@@ -27676,7 +27702,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_at_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_at_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27705,7 +27731,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27734,7 +27760,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   Xapian::Database *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -27773,7 +27799,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27802,7 +27828,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_PostingSource_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_PostingSource_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::PostingSource *arg1 = (Xapian::PostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27859,7 +27885,7 @@ static swig_class *swig_Xapian_PostingSource_bases[] = {0};
 static const char * swig_Xapian_PostingSource_base_names[] = {0};
 static swig_class _wrap_class_Xapian_PostingSource = { "PostingSource", &SWIGTYPE_p_Xapian__PostingSource,0, swig_delete_PostingSource, swig_Xapian_PostingSource_methods, swig_Xapian_PostingSource_attributes, swig_Xapian_PostingSource_bases,swig_Xapian_PostingSource_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_ValuePostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_ValuePostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   unsigned int val1 ;
   int ecode1 = 0 ;
@@ -27888,7 +27914,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_get_termfreq_min(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_get_termfreq_min(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27917,7 +27943,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_get_termfreq_est(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_get_termfreq_est(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27946,7 +27972,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_get_termfreq_max(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_get_termfreq_max(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27975,7 +28001,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -28011,7 +28037,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   Xapian::docid arg2 ;
   double arg3 ;
@@ -28055,7 +28081,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   Xapian::docid arg2 ;
   double arg3 ;
@@ -28100,7 +28126,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_at_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_at_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28129,7 +28155,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28158,7 +28184,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   Xapian::Database *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -28197,7 +28223,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_get_database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_get_database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28226,7 +28252,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_get_slot(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_get_slot(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28255,7 +28281,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_get_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_get_value(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28284,7 +28310,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_done(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_done(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28312,7 +28338,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_get_started(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_get_started(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28341,7 +28367,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_set_termfreq_min(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_set_termfreq_min(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   Xapian::doccount arg2 ;
   void *argp1 = 0 ;
@@ -28377,7 +28403,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_set_termfreq_est(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_set_termfreq_est(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   Xapian::doccount arg2 ;
   void *argp1 = 0 ;
@@ -28413,7 +28439,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValuePostingSource_set_termfreq_max(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValuePostingSource_set_termfreq_max(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   Xapian::doccount arg2 ;
   void *argp1 = 0 ;
@@ -28449,7 +28475,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_ValuePostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_ValuePostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValuePostingSource *arg1 = (Xapian::ValuePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28507,7 +28533,7 @@ static swig_class *swig_Xapian_ValuePostingSource_bases[] = {0,0};
 static const char * swig_Xapian_ValuePostingSource_base_names[] = {"Xapian::PostingSource *",0};
 static swig_class _wrap_class_Xapian_ValuePostingSource = { "ValuePostingSource", &SWIGTYPE_p_Xapian__ValuePostingSource,_wrap_new_ValuePostingSource, swig_delete_ValuePostingSource, swig_Xapian_ValuePostingSource_methods, swig_Xapian_ValuePostingSource_attributes, swig_Xapian_ValuePostingSource_bases,swig_Xapian_ValuePostingSource_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_ValueWeightPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_ValueWeightPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   unsigned int val1 ;
   int ecode1 = 0 ;
@@ -28536,7 +28562,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueWeightPostingSource_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueWeightPostingSource_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueWeightPostingSource *arg1 = (Xapian::ValueWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28565,7 +28591,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueWeightPostingSource_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueWeightPostingSource_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueWeightPostingSource *arg1 = (Xapian::ValueWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28594,7 +28620,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueWeightPostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueWeightPostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueWeightPostingSource *arg1 = (Xapian::ValueWeightPostingSource *) 0 ;
   Xapian::Database *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -28633,7 +28659,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueWeightPostingSource_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueWeightPostingSource_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueWeightPostingSource *arg1 = (Xapian::ValueWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28662,7 +28688,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_ValueWeightPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_ValueWeightPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueWeightPostingSource *arg1 = (Xapian::ValueWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28707,7 +28733,7 @@ static swig_class *swig_Xapian_ValueWeightPostingSource_bases[] = {0,0};
 static const char * swig_Xapian_ValueWeightPostingSource_base_names[] = {"Xapian::ValuePostingSource *",0};
 static swig_class _wrap_class_Xapian_ValueWeightPostingSource = { "ValueWeightPostingSource", &SWIGTYPE_p_Xapian__ValueWeightPostingSource,_wrap_new_ValueWeightPostingSource, swig_delete_ValueWeightPostingSource, swig_Xapian_ValueWeightPostingSource_methods, swig_Xapian_ValueWeightPostingSource_attributes, swig_Xapian_ValueWeightPostingSource_bases,swig_Xapian_ValueWeightPostingSource_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_DecreasingValueWeightPostingSource__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DecreasingValueWeightPostingSource__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::docid arg2 ;
   Xapian::docid arg3 ;
@@ -28752,7 +28778,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DecreasingValueWeightPostingSource__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DecreasingValueWeightPostingSource__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::docid arg2 ;
   unsigned int val1 ;
@@ -28789,7 +28815,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DecreasingValueWeightPostingSource__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_DecreasingValueWeightPostingSource__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   unsigned int val1 ;
   int ecode1 = 0 ;
@@ -28818,8 +28844,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_DecreasingValueWeightPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_DecreasingValueWeightPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -28880,7 +28906,7 @@ _wrap_new_DecreasingValueWeightPostingSource(ClientData clientData SWIGUNUSED, T
 
 
 SWIGINTERN int
-_wrap_DecreasingValueWeightPostingSource_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DecreasingValueWeightPostingSource_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DecreasingValueWeightPostingSource *arg1 = (Xapian::DecreasingValueWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28909,7 +28935,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DecreasingValueWeightPostingSource_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DecreasingValueWeightPostingSource_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DecreasingValueWeightPostingSource *arg1 = (Xapian::DecreasingValueWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28938,7 +28964,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DecreasingValueWeightPostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DecreasingValueWeightPostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DecreasingValueWeightPostingSource *arg1 = (Xapian::DecreasingValueWeightPostingSource *) 0 ;
   Xapian::Database *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -28977,7 +29003,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DecreasingValueWeightPostingSource_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DecreasingValueWeightPostingSource_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DecreasingValueWeightPostingSource *arg1 = (Xapian::DecreasingValueWeightPostingSource *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -29013,7 +29039,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DecreasingValueWeightPostingSource_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DecreasingValueWeightPostingSource_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DecreasingValueWeightPostingSource *arg1 = (Xapian::DecreasingValueWeightPostingSource *) 0 ;
   Xapian::docid arg2 ;
   double arg3 ;
@@ -29057,7 +29083,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DecreasingValueWeightPostingSource_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DecreasingValueWeightPostingSource_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DecreasingValueWeightPostingSource *arg1 = (Xapian::DecreasingValueWeightPostingSource *) 0 ;
   Xapian::docid arg2 ;
   double arg3 ;
@@ -29102,7 +29128,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_DecreasingValueWeightPostingSource_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_DecreasingValueWeightPostingSource_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DecreasingValueWeightPostingSource *arg1 = (Xapian::DecreasingValueWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29131,7 +29157,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_DecreasingValueWeightPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_DecreasingValueWeightPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::DecreasingValueWeightPostingSource *arg1 = (Xapian::DecreasingValueWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29179,7 +29205,7 @@ static swig_class *swig_Xapian_DecreasingValueWeightPostingSource_bases[] = {0,0
 static const char * swig_Xapian_DecreasingValueWeightPostingSource_base_names[] = {"Xapian::ValueWeightPostingSource *",0};
 static swig_class _wrap_class_Xapian_DecreasingValueWeightPostingSource = { "DecreasingValueWeightPostingSource", &SWIGTYPE_p_Xapian__DecreasingValueWeightPostingSource,_wrap_new_DecreasingValueWeightPostingSource, swig_delete_DecreasingValueWeightPostingSource, swig_Xapian_DecreasingValueWeightPostingSource_methods, swig_Xapian_DecreasingValueWeightPostingSource_attributes, swig_Xapian_DecreasingValueWeightPostingSource_bases,swig_Xapian_DecreasingValueWeightPostingSource_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_ValueMapPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_ValueMapPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   unsigned int val1 ;
   int ecode1 = 0 ;
@@ -29208,7 +29234,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueMapPostingSource_add_mapping(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueMapPostingSource_add_mapping(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueMapPostingSource *arg1 = (Xapian::ValueMapPostingSource *) 0 ;
   std::string *arg2 = 0 ;
   double arg3 ;
@@ -29259,7 +29285,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueMapPostingSource_clear_mappings(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueMapPostingSource_clear_mappings(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueMapPostingSource *arg1 = (Xapian::ValueMapPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29287,7 +29313,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueMapPostingSource_set_default_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueMapPostingSource_set_default_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueMapPostingSource *arg1 = (Xapian::ValueMapPostingSource *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -29323,7 +29349,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueMapPostingSource_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueMapPostingSource_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueMapPostingSource *arg1 = (Xapian::ValueMapPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29352,7 +29378,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueMapPostingSource_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueMapPostingSource_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueMapPostingSource *arg1 = (Xapian::ValueMapPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29381,7 +29407,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueMapPostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueMapPostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueMapPostingSource *arg1 = (Xapian::ValueMapPostingSource *) 0 ;
   Xapian::Database *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -29420,7 +29446,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueMapPostingSource_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueMapPostingSource_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueMapPostingSource *arg1 = (Xapian::ValueMapPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29449,7 +29475,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_ValueMapPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_ValueMapPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueMapPostingSource *arg1 = (Xapian::ValueMapPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29497,7 +29523,7 @@ static swig_class *swig_Xapian_ValueMapPostingSource_bases[] = {0,0};
 static const char * swig_Xapian_ValueMapPostingSource_base_names[] = {"Xapian::ValuePostingSource *",0};
 static swig_class _wrap_class_Xapian_ValueMapPostingSource = { "ValueMapPostingSource", &SWIGTYPE_p_Xapian__ValueMapPostingSource,_wrap_new_ValueMapPostingSource, swig_delete_ValueMapPostingSource, swig_Xapian_ValueMapPostingSource_methods, swig_Xapian_ValueMapPostingSource_attributes, swig_Xapian_ValueMapPostingSource_bases,swig_Xapian_ValueMapPostingSource_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_FixedWeightPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_FixedWeightPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
@@ -29526,7 +29552,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FixedWeightPostingSource_get_termfreq_min(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FixedWeightPostingSource_get_termfreq_min(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FixedWeightPostingSource *arg1 = (Xapian::FixedWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29555,7 +29581,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FixedWeightPostingSource_get_termfreq_est(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FixedWeightPostingSource_get_termfreq_est(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FixedWeightPostingSource *arg1 = (Xapian::FixedWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29584,7 +29610,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FixedWeightPostingSource_get_termfreq_max(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FixedWeightPostingSource_get_termfreq_max(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FixedWeightPostingSource *arg1 = (Xapian::FixedWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29613,7 +29639,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FixedWeightPostingSource_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FixedWeightPostingSource_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FixedWeightPostingSource *arg1 = (Xapian::FixedWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29642,7 +29668,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FixedWeightPostingSource_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FixedWeightPostingSource_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FixedWeightPostingSource *arg1 = (Xapian::FixedWeightPostingSource *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -29678,7 +29704,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FixedWeightPostingSource_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FixedWeightPostingSource_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FixedWeightPostingSource *arg1 = (Xapian::FixedWeightPostingSource *) 0 ;
   Xapian::docid arg2 ;
   double arg3 ;
@@ -29722,7 +29748,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FixedWeightPostingSource_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FixedWeightPostingSource_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FixedWeightPostingSource *arg1 = (Xapian::FixedWeightPostingSource *) 0 ;
   Xapian::docid arg2 ;
   double arg3 ;
@@ -29767,7 +29793,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FixedWeightPostingSource_at_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FixedWeightPostingSource_at_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FixedWeightPostingSource *arg1 = (Xapian::FixedWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29796,7 +29822,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FixedWeightPostingSource_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FixedWeightPostingSource_get_docid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FixedWeightPostingSource *arg1 = (Xapian::FixedWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29825,7 +29851,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FixedWeightPostingSource_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FixedWeightPostingSource_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FixedWeightPostingSource *arg1 = (Xapian::FixedWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29854,7 +29880,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FixedWeightPostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FixedWeightPostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FixedWeightPostingSource *arg1 = (Xapian::FixedWeightPostingSource *) 0 ;
   Xapian::Database *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -29893,7 +29919,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_FixedWeightPostingSource_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_FixedWeightPostingSource_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FixedWeightPostingSource *arg1 = (Xapian::FixedWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29922,7 +29948,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_FixedWeightPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_FixedWeightPostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::FixedWeightPostingSource *arg1 = (Xapian::FixedWeightPostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29975,7 +30001,7 @@ static swig_class *swig_Xapian_FixedWeightPostingSource_bases[] = {0,0};
 static const char * swig_Xapian_FixedWeightPostingSource_base_names[] = {"Xapian::PostingSource *",0};
 static swig_class _wrap_class_Xapian_FixedWeightPostingSource = { "FixedWeightPostingSource", &SWIGTYPE_p_Xapian__FixedWeightPostingSource,_wrap_new_FixedWeightPostingSource, swig_delete_FixedWeightPostingSource, swig_Xapian_FixedWeightPostingSource_methods, swig_Xapian_FixedWeightPostingSource_attributes, swig_Xapian_FixedWeightPostingSource_bases,swig_Xapian_FixedWeightPostingSource_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_delete_MatchSpy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_MatchSpy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MatchSpy *arg1 = (Xapian::MatchSpy *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30003,7 +30029,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MatchSpy_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MatchSpy_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MatchSpy *arg1 = (Xapian::MatchSpy *) 0 ;
   Xapian::Document *arg2 = 0 ;
   double arg3 ;
@@ -30050,7 +30076,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MatchSpy_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MatchSpy_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MatchSpy *arg1 = (Xapian::MatchSpy *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30079,7 +30105,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MatchSpy_merge_results(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MatchSpy_merge_results(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MatchSpy *arg1 = (Xapian::MatchSpy *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -30122,7 +30148,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MatchSpy_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MatchSpy_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MatchSpy *arg1 = (Xapian::MatchSpy *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30151,7 +30177,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_MatchSpy_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_MatchSpy_release(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::MatchSpy *arg1 = (Xapian::MatchSpy *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30198,7 +30224,7 @@ static swig_class *swig_Xapian_MatchSpy_bases[] = {0};
 static const char * swig_Xapian_MatchSpy_base_names[] = {0};
 static swig_class _wrap_class_Xapian_MatchSpy = { "MatchSpy", &SWIGTYPE_p_Xapian__MatchSpy,0, swig_delete_MatchSpy, swig_Xapian_MatchSpy_methods, swig_Xapian_MatchSpy_attributes, swig_Xapian_MatchSpy_bases,swig_Xapian_MatchSpy_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_ValueCountMatchSpy__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_ValueCountMatchSpy__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueCountMatchSpy *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_ValueCountMatchSpy ") == TCL_ERROR) SWIG_fail;
@@ -30219,7 +30245,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_ValueCountMatchSpy__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_ValueCountMatchSpy__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   unsigned int val1 ;
   int ecode1 = 0 ;
@@ -30248,8 +30274,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_ValueCountMatchSpy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_ValueCountMatchSpy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_ValueCountMatchSpy__SWIG_0(clientData, interp, objc, argv - 1);
@@ -30274,7 +30300,7 @@ _wrap_new_ValueCountMatchSpy(ClientData clientData SWIGUNUSED, Tcl_Interp *inter
 
 
 SWIGINTERN int
-_wrap_ValueCountMatchSpy_get_total(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueCountMatchSpy_get_total(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueCountMatchSpy *arg1 = (Xapian::ValueCountMatchSpy *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30303,7 +30329,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueCountMatchSpy_values_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueCountMatchSpy_values_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueCountMatchSpy *arg1 = (Xapian::ValueCountMatchSpy *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30332,7 +30358,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueCountMatchSpy_values_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueCountMatchSpy_values_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueCountMatchSpy *arg1 = (Xapian::ValueCountMatchSpy *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30361,7 +30387,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueCountMatchSpy_top_values_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueCountMatchSpy_top_values_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueCountMatchSpy *arg1 = (Xapian::ValueCountMatchSpy *) 0 ;
   size_t arg2 ;
   void *argp1 = 0 ;
@@ -30398,7 +30424,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueCountMatchSpy_top_values_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueCountMatchSpy_top_values_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueCountMatchSpy *arg1 = (Xapian::ValueCountMatchSpy *) 0 ;
   size_t arg2 ;
   void *argp1 = 0 ;
@@ -30435,7 +30461,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueCountMatchSpy_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueCountMatchSpy_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueCountMatchSpy *arg1 = (Xapian::ValueCountMatchSpy *) 0 ;
   Xapian::Document *arg2 = 0 ;
   double arg3 ;
@@ -30482,7 +30508,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueCountMatchSpy_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueCountMatchSpy_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueCountMatchSpy *arg1 = (Xapian::ValueCountMatchSpy *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30511,7 +30537,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueCountMatchSpy_merge_results(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueCountMatchSpy_merge_results(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueCountMatchSpy *arg1 = (Xapian::ValueCountMatchSpy *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -30554,7 +30580,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_ValueCountMatchSpy_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_ValueCountMatchSpy_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueCountMatchSpy *arg1 = (Xapian::ValueCountMatchSpy *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30583,7 +30609,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_ValueCountMatchSpy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_ValueCountMatchSpy(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::ValueCountMatchSpy *arg1 = (Xapian::ValueCountMatchSpy *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30633,7 +30659,7 @@ static swig_class *swig_Xapian_ValueCountMatchSpy_bases[] = {0,0};
 static const char * swig_Xapian_ValueCountMatchSpy_base_names[] = {"Xapian::MatchSpy *",0};
 static swig_class _wrap_class_Xapian_ValueCountMatchSpy = { "ValueCountMatchSpy", &SWIGTYPE_p_Xapian__ValueCountMatchSpy,_wrap_new_ValueCountMatchSpy, swig_delete_ValueCountMatchSpy, swig_Xapian_ValueCountMatchSpy_methods, swig_Xapian_ValueCountMatchSpy_attributes, swig_Xapian_ValueCountMatchSpy_bases,swig_Xapian_ValueCountMatchSpy_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_miles_to_metres(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_miles_to_metres(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
@@ -30662,7 +30688,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_metres_to_miles(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_metres_to_miles(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
@@ -30691,7 +30717,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoord_latitude_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoord_latitude_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoord *arg1 = (Xapian::LatLongCoord *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -30719,7 +30745,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoord_latitude_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoord_latitude_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoord *arg1 = (Xapian::LatLongCoord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30740,7 +30766,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoord_longitude_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoord_longitude_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoord *arg1 = (Xapian::LatLongCoord *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -30768,7 +30794,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoord_longitude_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoord_longitude_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoord *arg1 = (Xapian::LatLongCoord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30789,7 +30815,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongCoord__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongCoord__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoord *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_LatLongCoord ") == TCL_ERROR) SWIG_fail;
@@ -30810,7 +30836,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongCoord__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongCoord__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double arg2 ;
   double val1 ;
@@ -30847,8 +30873,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongCoord(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_LatLongCoord(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_LatLongCoord__SWIG_0(clientData, interp, objc, argv - 1);
@@ -30879,7 +30905,7 @@ _wrap_new_LatLongCoord(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int
 
 
 SWIGINTERN int
-_wrap_LatLongCoord_unserialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoord_unserialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoord *arg1 = (Xapian::LatLongCoord *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -30922,7 +30948,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoord_serialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoord_serialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoord *arg1 = (Xapian::LatLongCoord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30951,7 +30977,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoord_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoord_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoord *arg1 = (Xapian::LatLongCoord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30980,7 +31006,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_LatLongCoord(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_LatLongCoord(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoord *arg1 = (Xapian::LatLongCoord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31026,7 +31052,7 @@ static swig_class *swig_Xapian_LatLongCoord_bases[] = {0};
 static const char * swig_Xapian_LatLongCoord_base_names[] = {0};
 static swig_class _wrap_class_Xapian_LatLongCoord = { "LatLongCoord", &SWIGTYPE_p_Xapian__LatLongCoord,_wrap_new_LatLongCoord, swig_delete_LatLongCoord, swig_Xapian_LatLongCoord_methods, swig_Xapian_LatLongCoord_attributes, swig_Xapian_LatLongCoord_bases,swig_Xapian_LatLongCoord_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_LatLongCoordsIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongCoordsIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoordsIterator *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_LatLongCoordsIterator ") == TCL_ERROR) SWIG_fail;
@@ -31047,7 +31073,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoordsIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoordsIterator_equals(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoordsIterator *arg1 = (Xapian::LatLongCoordsIterator *) 0 ;
   Xapian::LatLongCoordsIterator *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -31087,7 +31113,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoordsIterator_get_coord(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoordsIterator_get_coord(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoordsIterator *arg1 = (Xapian::LatLongCoordsIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31116,7 +31142,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoordsIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoordsIterator_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoordsIterator *arg1 = (Xapian::LatLongCoordsIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31144,7 +31170,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_LatLongCoordsIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_LatLongCoordsIterator(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoordsIterator *arg1 = (Xapian::LatLongCoordsIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31188,7 +31214,7 @@ static swig_class *swig_Xapian_LatLongCoordsIterator_bases[] = {0};
 static const char * swig_Xapian_LatLongCoordsIterator_base_names[] = {0};
 static swig_class _wrap_class_Xapian_LatLongCoordsIterator = { "LatLongCoordsIterator", &SWIGTYPE_p_Xapian__LatLongCoordsIterator,_wrap_new_LatLongCoordsIterator, swig_delete_LatLongCoordsIterator, swig_Xapian_LatLongCoordsIterator_methods, swig_Xapian_LatLongCoordsIterator_attributes, swig_Xapian_LatLongCoordsIterator_bases,swig_Xapian_LatLongCoordsIterator_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_LatLongCoords_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoords_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoords *arg1 = (Xapian::LatLongCoords *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31217,7 +31243,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoords_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoords_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoords *arg1 = (Xapian::LatLongCoords *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31246,7 +31272,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoords_size(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoords_size(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoords *arg1 = (Xapian::LatLongCoords *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31275,7 +31301,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoords_empty(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoords_empty(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoords *arg1 = (Xapian::LatLongCoords *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31304,7 +31330,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoords_append(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoords_append(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoords *arg1 = (Xapian::LatLongCoords *) 0 ;
   Xapian::LatLongCoord *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -31343,7 +31369,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongCoords__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongCoords__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoords *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_LatLongCoords ") == TCL_ERROR) SWIG_fail;
@@ -31364,7 +31390,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongCoords__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongCoords__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoord *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31396,8 +31422,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongCoords(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_LatLongCoords(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_LatLongCoords__SWIG_0(clientData, interp, objc, argv - 1);
@@ -31421,7 +31447,7 @@ _wrap_new_LatLongCoords(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, in
 
 
 SWIGINTERN int
-_wrap_LatLongCoords_unserialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoords_unserialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoords *arg1 = (Xapian::LatLongCoords *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -31464,7 +31490,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoords_serialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoords_serialise(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoords *arg1 = (Xapian::LatLongCoords *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31493,7 +31519,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongCoords_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongCoords_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoords *arg1 = (Xapian::LatLongCoords *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31522,7 +31548,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_LatLongCoords(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_LatLongCoords(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongCoords *arg1 = (Xapian::LatLongCoords *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31571,7 +31597,7 @@ static swig_class *swig_Xapian_LatLongCoords_bases[] = {0};
 static const char * swig_Xapian_LatLongCoords_base_names[] = {0};
 static swig_class _wrap_class_Xapian_LatLongCoords = { "LatLongCoords", &SWIGTYPE_p_Xapian__LatLongCoords,_wrap_new_LatLongCoords, swig_delete_LatLongCoords, swig_Xapian_LatLongCoords_methods, swig_Xapian_LatLongCoords_attributes, swig_Xapian_LatLongCoords_bases,swig_Xapian_LatLongCoords_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_delete_LatLongMetric(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_LatLongMetric(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongMetric *arg1 = (Xapian::LatLongMetric *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31599,7 +31625,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongMetric_pointwise_distance(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongMetric_pointwise_distance(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongMetric *arg1 = (Xapian::LatLongMetric *) 0 ;
   Xapian::LatLongCoord *arg2 = 0 ;
   Xapian::LatLongCoord *arg3 = 0 ;
@@ -31650,7 +31676,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongMetric_apply__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongMetric_apply__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongMetric *arg1 = (Xapian::LatLongMetric *) 0 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   Xapian::LatLongCoords *arg3 = 0 ;
@@ -31701,7 +31727,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongMetric_apply__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongMetric_apply__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongMetric *arg1 = (Xapian::LatLongMetric *) 0 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -31756,7 +31782,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongMetric_apply__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongMetric_apply__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongMetric *arg1 = (Xapian::LatLongMetric *) 0 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   char *arg3 = (char *) 0 ;
@@ -31815,8 +31841,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongMetric_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_LatLongMetric_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 3) {
     int _v = 0;
@@ -31890,7 +31916,7 @@ _wrap_LatLongMetric_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp,
 
 
 SWIGINTERN int
-_wrap_LatLongMetric_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongMetric_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongMetric *arg1 = (Xapian::LatLongMetric *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31935,7 +31961,7 @@ static swig_class *swig_Xapian_LatLongMetric_bases[] = {0};
 static const char * swig_Xapian_LatLongMetric_base_names[] = {0};
 static swig_class _wrap_class_Xapian_LatLongMetric = { "LatLongMetric", &SWIGTYPE_p_Xapian__LatLongMetric,0, swig_delete_LatLongMetric, swig_Xapian_LatLongMetric_methods, swig_Xapian_LatLongMetric_attributes, swig_Xapian_LatLongMetric_bases,swig_Xapian_LatLongMetric_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_GreatCircleMetric__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_GreatCircleMetric__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::GreatCircleMetric *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_GreatCircleMetric ") == TCL_ERROR) SWIG_fail;
@@ -31956,7 +31982,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_GreatCircleMetric__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_GreatCircleMetric__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   double arg1 ;
   double val1 ;
   int ecode1 = 0 ;
@@ -31985,8 +32011,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_GreatCircleMetric(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_GreatCircleMetric(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_GreatCircleMetric__SWIG_0(clientData, interp, objc, argv - 1);
@@ -32011,7 +32037,7 @@ _wrap_new_GreatCircleMetric(ClientData clientData SWIGUNUSED, Tcl_Interp *interp
 
 
 SWIGINTERN int
-_wrap_GreatCircleMetric_pointwise_distance(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_GreatCircleMetric_pointwise_distance(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::GreatCircleMetric *arg1 = (Xapian::GreatCircleMetric *) 0 ;
   Xapian::LatLongCoord *arg2 = 0 ;
   Xapian::LatLongCoord *arg3 = 0 ;
@@ -32062,7 +32088,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_GreatCircleMetric_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_GreatCircleMetric_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::GreatCircleMetric *arg1 = (Xapian::GreatCircleMetric *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -32091,7 +32117,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_GreatCircleMetric(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_GreatCircleMetric(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::GreatCircleMetric *arg1 = (Xapian::GreatCircleMetric *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -32134,7 +32160,7 @@ static swig_class *swig_Xapian_GreatCircleMetric_bases[] = {0,0};
 static const char * swig_Xapian_GreatCircleMetric_base_names[] = {"Xapian::LatLongMetric *",0};
 static swig_class _wrap_class_Xapian_GreatCircleMetric = { "GreatCircleMetric", &SWIGTYPE_p_Xapian__GreatCircleMetric,_wrap_new_GreatCircleMetric, swig_delete_GreatCircleMetric, swig_Xapian_GreatCircleMetric_methods, swig_Xapian_GreatCircleMetric_attributes, swig_Xapian_GreatCircleMetric_bases,swig_Xapian_GreatCircleMetric_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_LatLongDistancePostingSource__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistancePostingSource__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   Xapian::LatLongMetric *arg3 = 0 ;
@@ -32209,7 +32235,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistancePostingSource__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistancePostingSource__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   Xapian::LatLongMetric *arg3 = 0 ;
@@ -32276,7 +32302,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistancePostingSource__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistancePostingSource__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   Xapian::LatLongMetric *arg3 = 0 ;
@@ -32335,7 +32361,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistancePostingSource__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistancePostingSource__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   Xapian::LatLongMetric *arg3 = 0 ;
@@ -32386,7 +32412,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistancePostingSource__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistancePostingSource__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   double arg3 ;
@@ -32450,7 +32476,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistancePostingSource__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistancePostingSource__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   double arg3 ;
@@ -32506,7 +32532,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistancePostingSource__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistancePostingSource__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   double arg3 ;
@@ -32554,7 +32580,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistancePostingSource__SWIG_7(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistancePostingSource__SWIG_7(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   unsigned int val1 ;
@@ -32594,8 +32620,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistancePostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_LatLongDistancePostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -32825,7 +32851,7 @@ _wrap_new_LatLongDistancePostingSource(ClientData clientData SWIGUNUSED, Tcl_Int
 
 
 SWIGINTERN int
-_wrap_delete_LatLongDistancePostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_LatLongDistancePostingSource(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongDistancePostingSource *arg1 = (Xapian::LatLongDistancePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -32853,7 +32879,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongDistancePostingSource_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongDistancePostingSource_next(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongDistancePostingSource *arg1 = (Xapian::LatLongDistancePostingSource *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -32889,7 +32915,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongDistancePostingSource_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongDistancePostingSource_skip_to(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongDistancePostingSource *arg1 = (Xapian::LatLongDistancePostingSource *) 0 ;
   Xapian::docid arg2 ;
   double arg3 ;
@@ -32933,7 +32959,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongDistancePostingSource_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongDistancePostingSource_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongDistancePostingSource *arg1 = (Xapian::LatLongDistancePostingSource *) 0 ;
   Xapian::docid arg2 ;
   double arg3 ;
@@ -32978,7 +33004,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongDistancePostingSource_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongDistancePostingSource_get_weight(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongDistancePostingSource *arg1 = (Xapian::LatLongDistancePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -33007,7 +33033,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongDistancePostingSource_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongDistancePostingSource_name(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongDistancePostingSource *arg1 = (Xapian::LatLongDistancePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -33036,7 +33062,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongDistancePostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongDistancePostingSource_init(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongDistancePostingSource *arg1 = (Xapian::LatLongDistancePostingSource *) 0 ;
   Xapian::Database *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -33075,7 +33101,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongDistancePostingSource_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongDistancePostingSource_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongDistancePostingSource *arg1 = (Xapian::LatLongDistancePostingSource *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -33124,7 +33150,7 @@ static swig_class *swig_Xapian_LatLongDistancePostingSource_bases[] = {0,0};
 static const char * swig_Xapian_LatLongDistancePostingSource_base_names[] = {"Xapian::ValuePostingSource *",0};
 static swig_class _wrap_class_Xapian_LatLongDistancePostingSource = { "LatLongDistancePostingSource", &SWIGTYPE_p_Xapian__LatLongDistancePostingSource,_wrap_new_LatLongDistancePostingSource, swig_delete_LatLongDistancePostingSource, swig_Xapian_LatLongDistancePostingSource_methods, swig_Xapian_LatLongDistancePostingSource_attributes, swig_Xapian_LatLongDistancePostingSource_bases,swig_Xapian_LatLongDistancePostingSource_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_new_LatLongDistanceKeyMaker__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistanceKeyMaker__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   Xapian::LatLongMetric *arg3 = 0 ;
@@ -33183,7 +33209,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistanceKeyMaker__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistanceKeyMaker__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   Xapian::LatLongMetric *arg3 = 0 ;
@@ -33234,7 +33260,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistanceKeyMaker__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistanceKeyMaker__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoords *arg2 = 0 ;
   unsigned int val1 ;
@@ -33274,7 +33300,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistanceKeyMaker__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistanceKeyMaker__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoord *arg2 = 0 ;
   Xapian::LatLongMetric *arg3 = 0 ;
@@ -33333,7 +33359,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistanceKeyMaker__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistanceKeyMaker__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoord *arg2 = 0 ;
   Xapian::LatLongMetric *arg3 = 0 ;
@@ -33384,7 +33410,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistanceKeyMaker__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_LatLongDistanceKeyMaker__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::valueno arg1 ;
   Xapian::LatLongCoord *arg2 = 0 ;
   unsigned int val1 ;
@@ -33424,8 +33450,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_LatLongDistanceKeyMaker(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_LatLongDistanceKeyMaker(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -33563,7 +33589,7 @@ _wrap_new_LatLongDistanceKeyMaker(ClientData clientData SWIGUNUSED, Tcl_Interp *
 
 
 SWIGINTERN int
-_wrap_delete_LatLongDistanceKeyMaker(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_LatLongDistanceKeyMaker(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongDistanceKeyMaker *arg1 = (Xapian::LatLongDistanceKeyMaker *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -33591,7 +33617,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_LatLongDistanceKeyMaker_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_LatLongDistanceKeyMaker_apply(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::LatLongDistanceKeyMaker *arg1 = (Xapian::LatLongDistanceKeyMaker *) 0 ;
   Xapian::Document *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -33645,7 +33671,7 @@ static swig_class *swig_Xapian_LatLongDistanceKeyMaker_bases[] = {0,0};
 static const char * swig_Xapian_LatLongDistanceKeyMaker_base_names[] = {"Xapian::KeyMaker *",0};
 static swig_class _wrap_class_Xapian_LatLongDistanceKeyMaker = { "LatLongDistanceKeyMaker", &SWIGTYPE_p_Xapian__LatLongDistanceKeyMaker,_wrap_new_LatLongDistanceKeyMaker, swig_delete_LatLongDistanceKeyMaker, swig_Xapian_LatLongDistanceKeyMaker_methods, swig_Xapian_LatLongDistanceKeyMaker_attributes, swig_Xapian_LatLongDistanceKeyMaker_bases,swig_Xapian_LatLongDistanceKeyMaker_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_Database_add_database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_add_database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::Database *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -33684,7 +33710,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_size(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_size(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -33713,7 +33739,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Database__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Database__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_Database ") == TCL_ERROR) SWIG_fail;
@@ -33734,7 +33760,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Database__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Database__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int arg2 ;
   int res1 = SWIG_OLDOBJ ;
@@ -33778,7 +33804,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Database__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Database__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   Xapian::Database *result = 0 ;
@@ -33814,7 +33840,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Database__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Database__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   int arg1 ;
   int arg2 ;
   int val1 ;
@@ -33851,7 +33877,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Database__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Database__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   int arg1 ;
   int val1 ;
   int ecode1 = 0 ;
@@ -33880,7 +33906,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_delete_Database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_Database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -33908,7 +33934,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Database__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_Database__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -33940,8 +33966,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_Database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_Database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_Database__SWIG_0(clientData, interp, objc, argv - 1);
@@ -34017,7 +34043,7 @@ _wrap_new_Database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int obj
 
 
 SWIGINTERN int
-_wrap_Database_reopen(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_reopen(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34046,7 +34072,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_close(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_close(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34074,7 +34100,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34103,7 +34129,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_postlist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_postlist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -34147,7 +34173,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_postlist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_postlist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -34191,7 +34217,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_termlist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_termlist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -34228,7 +34254,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_termlist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_termlist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -34265,7 +34291,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_has_positions(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_has_positions(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34294,7 +34320,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_positionlist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_positionlist_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::docid arg2 ;
   std::string *arg3 = 0 ;
@@ -34346,7 +34372,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_positionlist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_positionlist_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::docid arg2 ;
   std::string *arg3 = 0 ;
@@ -34398,7 +34424,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_allterms_begin__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_allterms_begin__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -34442,7 +34468,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_allterms_begin__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_allterms_begin__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34471,8 +34497,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_allterms_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Database_allterms_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -34506,7 +34532,7 @@ _wrap_Database_allterms_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *inte
 
 
 SWIGINTERN int
-_wrap_Database_allterms_end__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_allterms_end__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -34550,7 +34576,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_allterms_end__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_allterms_end__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34579,8 +34605,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_allterms_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Database_allterms_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -34614,7 +34640,7 @@ _wrap_Database_allterms_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp
 
 
 SWIGINTERN int
-_wrap_Database_get_doccount(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_doccount(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34643,7 +34669,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_lastdocid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_lastdocid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34672,7 +34698,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_avlength(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_avlength(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34701,7 +34727,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_average_length(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_average_length(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34730,7 +34756,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_total_length(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_total_length(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34759,7 +34785,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_termfreq(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_termfreq(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -34803,7 +34829,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_term_exists(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_term_exists(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -34847,7 +34873,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_collection_freq(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_collection_freq(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -34891,7 +34917,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_value_freq(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_value_freq(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::valueno arg2 ;
   void *argp1 = 0 ;
@@ -34928,7 +34954,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_value_lower_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_value_lower_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::valueno arg2 ;
   void *argp1 = 0 ;
@@ -34965,7 +34991,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_value_upper_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_value_upper_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::valueno arg2 ;
   void *argp1 = 0 ;
@@ -35002,7 +35028,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_doclength_lower_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_doclength_lower_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -35031,7 +35057,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_doclength_upper_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_doclength_upper_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -35060,7 +35086,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_wdf_upper_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_wdf_upper_bound(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -35104,7 +35130,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_valuestream_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_valuestream_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::valueno arg2 ;
   void *argp1 = 0 ;
@@ -35141,7 +35167,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_valuestream_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_valuestream_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::valueno arg2 ;
   void *argp1 = 0 ;
@@ -35178,7 +35204,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_doclength(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_doclength(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -35215,7 +35241,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_unique_terms(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_unique_terms(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -35252,7 +35278,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_keep_alive(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_keep_alive(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -35280,7 +35306,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_document__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_document__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -35317,7 +35343,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_document__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_document__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   Xapian::docid arg2 ;
   unsigned int arg3 ;
@@ -35362,8 +35388,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Database_get_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -35411,7 +35437,7 @@ _wrap_Database_get_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp
 
 
 SWIGINTERN int
-_wrap_Database_get_spelling_suggestion__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_spelling_suggestion__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   unsigned int arg3 ;
@@ -35463,7 +35489,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_spelling_suggestion__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_spelling_suggestion__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -35507,8 +35533,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_spelling_suggestion(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Database_get_spelling_suggestion(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -35552,7 +35578,7 @@ _wrap_Database_get_spelling_suggestion(ClientData clientData SWIGUNUSED, Tcl_Int
 
 
 SWIGINTERN int
-_wrap_Database_spellings_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_spellings_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -35581,7 +35607,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_spellings_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_spellings_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -35610,7 +35636,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_synonyms_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_synonyms_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -35654,7 +35680,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_synonyms_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_synonyms_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -35698,7 +35724,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_synonym_keys_begin__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_synonym_keys_begin__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -35742,7 +35768,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_synonym_keys_begin__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_synonym_keys_begin__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -35771,8 +35797,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_synonym_keys_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Database_synonym_keys_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -35806,7 +35832,7 @@ _wrap_Database_synonym_keys_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *
 
 
 SWIGINTERN int
-_wrap_Database_synonym_keys_end__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_synonym_keys_end__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -35850,7 +35876,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_synonym_keys_end__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_synonym_keys_end__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -35879,8 +35905,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_synonym_keys_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Database_synonym_keys_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -35914,7 +35940,7 @@ _wrap_Database_synonym_keys_end(ClientData clientData SWIGUNUSED, Tcl_Interp *in
 
 
 SWIGINTERN int
-_wrap_Database_get_metadata(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_metadata(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -35958,7 +35984,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_metadata_keys_begin__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_metadata_keys_begin__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -36002,7 +36028,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_metadata_keys_begin__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_metadata_keys_begin__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -36031,8 +36057,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_metadata_keys_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Database_metadata_keys_begin(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -36066,7 +36092,7 @@ _wrap_Database_metadata_keys_begin(ClientData clientData SWIGUNUSED, Tcl_Interp
 
 
 SWIGINTERN int
-_wrap_Database_metadata_keys_end__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_metadata_keys_end__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -36110,7 +36136,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_metadata_keys_end__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_metadata_keys_end__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -36139,8 +36165,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_metadata_keys_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Database_metadata_keys_end(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -36174,7 +36200,7 @@ _wrap_Database_metadata_keys_end(ClientData clientData SWIGUNUSED, Tcl_Interp *i
 
 
 SWIGINTERN int
-_wrap_Database_get_uuid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_uuid(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -36203,7 +36229,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_locked(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_locked(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -36232,7 +36258,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_get_revision(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_get_revision(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -36261,7 +36287,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_check__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_check__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int arg2 ;
   int res1 = SWIG_OLDOBJ ;
@@ -36305,7 +36331,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_check__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_check__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   size_t result;
@@ -36341,7 +36367,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_check__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_check__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   int arg1 ;
   int arg2 ;
   int val1 ;
@@ -36378,7 +36404,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_check__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_check__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   int arg1 ;
   int val1 ;
   int ecode1 = 0 ;
@@ -36407,8 +36433,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Database_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -36470,7 +36496,7 @@ _wrap_Database_check(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int o
 
 
 SWIGINTERN int
-_wrap_Database_compact__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_compact__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   unsigned int arg3 ;
@@ -36529,7 +36555,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_compact__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_compact__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   unsigned int arg3 ;
@@ -36580,7 +36606,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_compact__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_compact__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -36623,7 +36649,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_compact__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_compact__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   int arg2 ;
   unsigned int arg3 ;
@@ -36675,7 +36701,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_compact__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_compact__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   int arg2 ;
   unsigned int arg3 ;
@@ -36719,7 +36745,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_compact__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_compact__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
@@ -36755,7 +36781,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_compact__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_compact__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   std::string *arg2 = 0 ;
   unsigned int arg3 ;
@@ -36825,7 +36851,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_compact__SWIG_7(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_Database_compact__SWIG_7(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::Database *arg1 = (Xapian::Database *) 0 ;
   int arg2 ;
   unsigned int arg3 ;
@@ -36888,8 +36914,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_Database_compact(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_Database_compact(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -37150,7 +37176,7 @@ static swig_class *swig_Xapian_Database_bases[] = {0};
 static const char * swig_Xapian_Database_base_names[] = {0};
 static swig_class _wrap_class_Xapian_Database = { "Database", &SWIGTYPE_p_Xapian__Database,_wrap_new_Database, swig_delete_Database, swig_Xapian_Database_methods, swig_Xapian_Database_attributes, swig_Xapian_Database_bases,swig_Xapian_Database_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_delete_WritableDatabase(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_delete_WritableDatabase(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -37178,7 +37204,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_WritableDatabase__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_WritableDatabase__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *result = 0 ;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::new_WritableDatabase ") == TCL_ERROR) SWIG_fail;
@@ -37199,7 +37225,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_WritableDatabase__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_WritableDatabase__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int arg2 ;
   int arg3 ;
@@ -37251,7 +37277,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_WritableDatabase__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_WritableDatabase__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int arg2 ;
   int res1 = SWIG_OLDOBJ ;
@@ -37295,7 +37321,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_WritableDatabase__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_WritableDatabase__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   Xapian::WritableDatabase *result = 0 ;
@@ -37331,7 +37357,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_WritableDatabase__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_new_WritableDatabase__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -37363,8 +37389,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_new_WritableDatabase(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_new_WritableDatabase(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 0) {
     return _wrap_new_WritableDatabase__SWIG_0(clientData, interp, objc, argv - 1);
@@ -37433,7 +37459,7 @@ _wrap_new_WritableDatabase(ClientData clientData SWIGUNUSED, Tcl_Interp *interp,
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_add_database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_add_database(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   Xapian::WritableDatabase *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -37472,7 +37498,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_commit(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_commit(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -37500,7 +37526,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_flush(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_flush(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -37528,7 +37554,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_begin_transaction__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_begin_transaction__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   bool arg2 ;
   void *argp1 = 0 ;
@@ -37564,7 +37590,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_begin_transaction__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_begin_transaction__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -37592,8 +37618,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_begin_transaction(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_WritableDatabase_begin_transaction(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -37629,7 +37655,7 @@ _wrap_WritableDatabase_begin_transaction(ClientData clientData SWIGUNUSED, Tcl_I
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_commit_transaction(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_commit_transaction(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -37657,7 +37683,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_cancel_transaction(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_cancel_transaction(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -37685,7 +37711,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_add_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_add_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   Xapian::Document *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -37725,7 +37751,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_delete_document__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_delete_document__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   Xapian::docid arg2 ;
   void *argp1 = 0 ;
@@ -37761,7 +37787,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_delete_document__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_delete_document__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -37804,8 +37830,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_delete_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_WritableDatabase_delete_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -37845,7 +37871,7 @@ _wrap_WritableDatabase_delete_document(ClientData clientData SWIGUNUSED, Tcl_Int
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_replace_document__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_replace_document__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   Xapian::docid arg2 ;
   Xapian::Document *arg3 = 0 ;
@@ -37892,7 +37918,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_replace_document__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_replace_document__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::Document *arg3 = 0 ;
@@ -37947,8 +37973,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_replace_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_WritableDatabase_replace_document(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 3) {
     int _v = 0;
@@ -37998,7 +38024,7 @@ _wrap_WritableDatabase_replace_document(ClientData clientData SWIGUNUSED, Tcl_In
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_add_spelling__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_add_spelling__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::termcount arg3 ;
@@ -38049,7 +38075,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_add_spelling__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_add_spelling__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -38092,8 +38118,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_add_spelling(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_WritableDatabase_add_spelling(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -38137,7 +38163,7 @@ _wrap_WritableDatabase_add_spelling(ClientData clientData SWIGUNUSED, Tcl_Interp
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_remove_spelling__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_remove_spelling__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   std::string *arg2 = 0 ;
   Xapian::termcount arg3 ;
@@ -38188,7 +38214,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_remove_spelling__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_remove_spelling__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -38231,8 +38257,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_remove_spelling(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_WritableDatabase_remove_spelling(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -38276,7 +38302,7 @@ _wrap_WritableDatabase_remove_spelling(ClientData clientData SWIGUNUSED, Tcl_Int
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_add_synonym(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_add_synonym(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -38334,7 +38360,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_remove_synonym(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_remove_synonym(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -38392,7 +38418,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_clear_synonyms(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_clear_synonyms(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
@@ -38435,7 +38461,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_set_metadata(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_set_metadata(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -38493,7 +38519,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_WritableDatabase_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_WritableDatabase_get_description(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase *arg1 = (Xapian::WritableDatabase *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -38551,7 +38577,7 @@ static swig_class *swig_Xapian_WritableDatabase_bases[] = {0,0};
 static const char * swig_Xapian_WritableDatabase_base_names[] = {"Xapian::Database *",0};
 static swig_class _wrap_class_Xapian_WritableDatabase = { "WritableDatabase", &SWIGTYPE_p_Xapian__WritableDatabase,_wrap_new_WritableDatabase, swig_delete_WritableDatabase, swig_Xapian_WritableDatabase_methods, swig_Xapian_WritableDatabase_attributes, swig_Xapian_WritableDatabase_bases,swig_Xapian_WritableDatabase_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };
 SWIGINTERN int
-_wrap_open_stub__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_open_stub__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   Xapian::Database result;
@@ -38587,7 +38613,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_open_stub__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_open_stub__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int arg2 ;
   int res1 = SWIG_OLDOBJ ;
@@ -38631,8 +38657,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_open_stub(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_open_stub(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 1) {
     int _v = 0;
@@ -38666,7 +38692,7 @@ _wrap_open_stub(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc,
 
 
 SWIGINTERN int
-_wrap_inmemory_open(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_inmemory_open(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   Xapian::WritableDatabase result;
   
   if (SWIG_GetArgs(interp, objc, objv,":xapian::inmemory_open ") == TCL_ERROR) SWIG_fail;
@@ -38687,7 +38713,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_chert_open(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_chert_open(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   Xapian::Database result;
@@ -38723,7 +38749,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_remote_open__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_remote_open__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   unsigned int arg2 ;
   useconds_t arg3 ;
@@ -38783,7 +38809,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_remote_open__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_remote_open__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   unsigned int arg2 ;
   useconds_t arg3 ;
@@ -38835,7 +38861,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_remote_open__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_remote_open__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   unsigned int arg2 ;
   int res1 = SWIG_OLDOBJ ;
@@ -38879,7 +38905,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_remote_open_writable__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_remote_open_writable__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   unsigned int arg2 ;
   useconds_t arg3 ;
@@ -38947,7 +38973,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_remote_open_writable__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_remote_open_writable__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   unsigned int arg2 ;
   useconds_t arg3 ;
@@ -39007,7 +39033,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_remote_open_writable__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_remote_open_writable__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   unsigned int arg2 ;
   useconds_t arg3 ;
@@ -39059,7 +39085,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_remote_open_writable__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_remote_open_writable__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   unsigned int arg2 ;
   int res1 = SWIG_OLDOBJ ;
@@ -39103,7 +39129,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_remote_open__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_remote_open__SWIG_3(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   std::string *arg2 = 0 ;
   useconds_t arg3 ;
@@ -39162,7 +39188,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_remote_open__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_remote_open__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   std::string *arg2 = 0 ;
   int res1 = SWIG_OLDOBJ ;
@@ -39213,8 +39239,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_remote_open(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_remote_open(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -39319,7 +39345,7 @@ _wrap_remote_open(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc
 
 
 SWIGINTERN int
-_wrap_remote_open_writable__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_remote_open_writable__SWIG_4(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   std::string *arg2 = 0 ;
   useconds_t arg3 ;
@@ -39386,7 +39412,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_remote_open_writable__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_remote_open_writable__SWIG_5(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   std::string *arg2 = 0 ;
   useconds_t arg3 ;
@@ -39445,7 +39471,7 @@ fail:
 
 
 SWIGINTERN int
-_wrap_remote_open_writable__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+_wrap_remote_open_writable__SWIG_6(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
   std::string *arg1 = 0 ;
   std::string *arg2 = 0 ;
   int res1 = SWIG_OLDOBJ ;
@@ -39496,8 +39522,8 @@ fail:
 
 
 SWIGINTERN int
-_wrap_remote_open_writable(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  Tcl_Obj *CONST *argv = objv+1;
+_wrap_remote_open_writable(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
+  Tcl_Obj *const *argv = objv+1;
   int argc = objc-1;
   if (argc == 2) {
     int _v = 0;
@@ -41237,6 +41263,7 @@ SWIGEXPORT int SWIG_init(Tcl_Interp *interp) {
   SWIG_Tcl_SetConstantObj(interp, "xapian::Query_WILDCARD_LIMIT_FIRST", SWIG_From_int(static_cast< int >(Xapian::Query::WILDCARD_LIMIT_FIRST)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::Query_WILDCARD_LIMIT_MOST_FREQUENT", SWIG_From_int(static_cast< int >(Xapian::Query::WILDCARD_LIMIT_MOST_FREQUENT)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::TermGenerator_FLAG_SPELLING", SWIG_From_int(static_cast< int >(Xapian::TermGenerator::FLAG_SPELLING)));
+  SWIG_Tcl_SetConstantObj(interp, "xapian::TermGenerator_FLAG_NGRAMS", SWIG_From_int(static_cast< int >(Xapian::TermGenerator::FLAG_NGRAMS)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::TermGenerator_FLAG_CJK_NGRAM", SWIG_From_int(static_cast< int >(Xapian::TermGenerator::FLAG_CJK_NGRAM)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::TermGenerator_STEM_NONE", SWIG_From_int(static_cast< int >(Xapian::TermGenerator::STEM_NONE)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::TermGenerator_STEM_SOME", SWIG_From_int(static_cast< int >(Xapian::TermGenerator::STEM_SOME)));
@@ -41249,6 +41276,7 @@ SWIGEXPORT int SWIG_init(Tcl_Interp *interp) {
   SWIG_Tcl_SetConstantObj(interp, "xapian::MSet_SNIPPET_BACKGROUND_MODEL", SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_BACKGROUND_MODEL)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::MSet_SNIPPET_EXHAUSTIVE", SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_EXHAUSTIVE)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::MSet_SNIPPET_EMPTY_WITHOUT_MATCH", SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_EMPTY_WITHOUT_MATCH)));
+  SWIG_Tcl_SetConstantObj(interp, "xapian::MSet_SNIPPET_NGRAMS", SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_NGRAMS)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::MSet_SNIPPET_CJK_NGRAM", SWIG_From_int(static_cast< int >(Xapian::MSet::SNIPPET_CJK_NGRAM)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::Enquire_ASCENDING", SWIG_From_int(static_cast< int >(Xapian::Enquire::ASCENDING)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::Enquire_DESCENDING", SWIG_From_int(static_cast< int >(Xapian::Enquire::DESCENDING)));
@@ -41269,6 +41297,7 @@ SWIGEXPORT int SWIG_init(Tcl_Interp *interp) {
   SWIG_Tcl_SetConstantObj(interp, "xapian::QueryParser_FLAG_SYNONYM", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_SYNONYM)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::QueryParser_FLAG_AUTO_SYNONYMS", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_AUTO_SYNONYMS)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::QueryParser_FLAG_AUTO_MULTIWORD_SYNONYMS", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_AUTO_MULTIWORD_SYNONYMS)));
+  SWIG_Tcl_SetConstantObj(interp, "xapian::QueryParser_FLAG_NGRAMS", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_NGRAMS)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::QueryParser_FLAG_CJK_NGRAM", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_CJK_NGRAM)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::QueryParser_FLAG_ACCUMULATE", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_ACCUMULATE)));
   SWIG_Tcl_SetConstantObj(interp, "xapian::QueryParser_FLAG_NO_POSITIONS", SWIG_From_int(static_cast< int >(Xapian::QueryParser::FLAG_NO_POSITIONS)));
diff --git a/xapian-bindings.spec b/xapian-bindings.spec
index 1912b8242a39ae396f41dba8b1f251ce5b61bc0b..13be07dd39b69595dc0f7b9511167a7f2c8a9507 100644
--- a/xapian-bindings.spec
+++ b/xapian-bindings.spec
@@ -34,7 +34,7 @@
 
 Summary: Bindings for the Xapian Search Engine Library
 Name: xapian-bindings
-Version: 1.4.22
+Version: 1.4.25
 Release: 1
 License: GPL
 Vendor: xapian.org