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.
---
lib/PublicInbox/SearchIdx.pm | 10 +++++-----
1 file 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;
}