Xapian 2.0 supports extended wildcard queries in the query parser. To
quote the NEWS file:

    WILDCARD_PATTERN_MULTI (which supports `*` wildcards anywhere in
    the term, not just at the end as previously),
    WILDCARD_PATTERN_SINGLE (which supports `?` wildcards matching a
    single character), and WILDCARD_PATTERN_GLOB which enables both of
    these.

This commit does not add any functionality, just detects if this
support is there in Xapian.
---
 configure | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index b5634fba..7a483563 100755
--- a/configure
+++ b/configure
@@ -483,6 +483,17 @@ for xapian_config in ${XAPIAN_CONFIG} xapian-config; do
                        have_xapian=1
                        xapian_cxxflags=$(${xapian_config} --cxxflags)
                        xapian_ldflags=$(${xapian_config} --libs)
+                       printf "Checking Xapian enhanced wildcards..."
+                       printf '#include <xapian.h>\nint main() {  printf 
("%%d\\n", Xapian::QueryParser::FLAG_WILDCARD_GLOB); }' > _xapian_wildcard.cc
+                       if ${CXX} -o _xapian_wildcard _xapian_wildcard.cc > 
/dev/null 2>&1
+                       then
+                           have_xapian_wildcard_glob=1
+                           printf " Yes.\n"
+                       else
+                           printf " No.\n"
+                           have_xapian_wildcard_glob=1
+                       fi
+
                        ;;
                *) printf "Xapian $xapian_version not supported... "
        esac
@@ -1285,7 +1296,8 @@ done
 printf "\n\t%s\n" "${WARN_CFLAGS}"
 
 rm -f minimal minimal.c _time_t.c _libversion.c _libversion _libversion.sh 
_check_session_keys.c _check_session_keys _check_gmime_cert.c 
_check_x509_validity _check_email \
-   _verify_sig_with_session_key.c _verify_sig_with_session_key
+   _verify_sig_with_session_key.c _verify_sig_with_session_key \
+   _xapian_wildcard.cc _xapian_wildcard
 
 # construct the Makefile.config
 cat > Makefile.config <<EOF
@@ -1501,7 +1513,7 @@ LINKER_RESOLVES_LIBRARY_DEPENDENCIES = 
${linker_resolves_library_dependencies}
 # Flags needed to compile and link against Xapian
 XAPIAN_CXXFLAGS = ${xapian_cxxflags}
 XAPIAN_LDFLAGS = ${xapian_ldflags}
-
+HAVE_XAPIAN_WILDCARD_GLOB=${have_xapian_wildcard_glob}
 # Flags needed to compile and link against GMime
 GMIME_CFLAGS = ${gmime_cflags}
 GMIME_LDFLAGS = ${gmime_ldflags}
@@ -1562,6 +1574,7 @@ COMMON_CONFIGURE_CFLAGS = \\
        -DHAVE_D_TYPE=\$(HAVE_D_TYPE)                           \\
        -DSTD_GETPWUID=\$(STD_GETPWUID)                         \\
        -DSTD_ASCTIME=\$(STD_ASCTIME)                           \\
+       -DHAVE_XAPIAN_WILDCARD_GLOB=\$(HAVE_XAPIAN_WILDCARD_GLOB) \\
        -DSILENCE_XAPIAN_DEPRECATION_WARNINGS                   \\
        -DHAVE_XAPIAN_DB_RETRY_LOCK=\$(HAVE_XAPIAN_DB_RETRY_LOCK)
 
@@ -1585,6 +1598,8 @@ NOTMUCH_XAPIAN_LDFLAGS="${xapian_ldflags}"
 
 # Whether to have Xapian retry lock
 NOTMUCH_HAVE_XAPIAN_DB_RETRY_LOCK=${WITH_RETRY_LOCK}
+# Whether Xapian query parser supports extended glob syntax
+NOTMUCH_HAVE_XAPIAN_WILDCARD_GLOB=${have_xapian_wildcard_glob}
 
 # Flags needed to compile and link against GMime
 NOTMUCH_GMIME_CFLAGS="${gmime_cflags}"
-- 
2.51.0

_______________________________________________
notmuch mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to