about summary refs log tree commit homepage
path: root/lib/PublicInbox/SearchIdx.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2023-04-07 12:40:52 +0000
committerEric Wong <e@80x24.org>2023-04-07 22:17:22 +0000
commitc25c66af0a8ac8b079babce1d127f1070267e8e6 (patch)
tree30bdc114c403d63e7f611a1b584226acaadd68be /lib/PublicInbox/SearchIdx.pm
parent39b99c2514230f419fae8c2b52a7d55eaad1cd44 (diff)
downloadpublic-inbox-c25c66af0a8ac8b079babce1d127f1070267e8e6.tar.gz
Perl has native `vstring' encoding for vector (or version)
strings, make use of it instead of relying on difficult-to-read
hex versions and integer shifts.
Diffstat (limited to 'lib/PublicInbox/SearchIdx.pm')
-rw-r--r--lib/PublicInbox/SearchIdx.pm10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm
index 511dd4d6..496cea05 100644
--- a/lib/PublicInbox/SearchIdx.pm
+++ b/lib/PublicInbox/SearchIdx.pm
@@ -114,15 +114,15 @@ sub load_xapian_writable () {
         *sortable_serialise = $xap.'::sortable_serialise';
         $DB_CREATE_OR_OPEN = eval($xap.'::DB_CREATE_OR_OPEN()');
         $DB_OPEN = eval($xap.'::DB_OPEN()');
-        my $ver = (eval($xap.'::major_version()') << 16) |
-                (eval($xap.'::minor_version()') << 8) |
-                eval($xap.'::revision()');
-        if ($ver >= 0x10400) {
+        my $ver = eval 'v'.join('.', eval($xap.'::major_version()'),
+                                eval($xap.'::minor_version()'),
+                                eval($xap.'::revision()'));
+        if ($ver ge 1.4) { # new flags in Xapian 1.4
                 $DB_NO_SYNC = 0x4;
                 $DB_DANGEROUS = 0x10;
         }
         # Xapian v1.2.21..v1.2.24 were missing close-on-exec on OFD locks
-        $X->{CLOEXEC_UNSET} = 1 if $ver >= 0x010215 && $ver <= 0x010218;
+        $X->{CLOEXEC_UNSET} = 1 if $ver ge v1.2.21 && $ver le v1.2.24;
         1;
 }