# values for searching, changing the numeric value breaks
# compatibility with old indices (so don't change them it)
use constant {
- TS => 0, # Received: header in Unix time (IMAP INTERNALDATE)
+ TS => 0, # Received: in Unix time (IMAP INTERNALDATE, JMAP receivedAt)
YYYYMMDD => 1, # Date: header for searching in the WWW UI
- DT => 2, # Date: YYYYMMDDHHMMSS
+ DT => 2, # Date: YYYYMMDDHHMMSS (IMAP SENT*, JMAP sentAt)
# added for public-inbox 1.6.0+
BYTES => 3, # IMAP RFC822.SIZE
my $DQ = qq<"\x{201c}\x{201d}>; # Xapian can use curly quotes
$_[2] =~ tr/\x00/ /; # Xapian doesn't do NUL, we use it as a placeholder
my ($terms, $phrase, $to_parse);
- $_[2] =~ s{([^$DQ]*)([${DQ}][^\"]*[$DQ])?}{
+ $_[2] =~ s{([^$DQ]*)([$DQ][^$DQ]*[$DQ])?}{
($terms, $phrase) = ($1, $2);
$terms =~ s!\b(d|rt|dt):(\S+)!
date_parse_prepare($to_parse //= [], $1, $2)!sge;
$cb->($qp, $NVRP->new(DT, 'dt:'));
# for IMAP, undocumented for WWW and may be split off go away
- $cb->($qp, $NVRP->new(BYTES, 'bytes:'));
+ $cb->($qp, $NVRP->new(BYTES, 'z:'));
$cb->($qp, $NVRP->new(TS, 'rt:'));
$cb->($qp, $NVRP->new(UID, 'uid:'));