X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FLeiQuery.pm;h=10b8d6fae68339ab81df2ed1e3c268f204ac102e;hb=9c38d7f9a5d2575dc6f7179c4e69fb1cb3d6b871;hp=72a67c24f18dfc89d2a2dee32eb0d86afafece81;hpb=50c074ec9e030f05b53773dafb29d6098f58b56c;p=public-inbox.git diff --git a/lib/PublicInbox/LeiQuery.pm b/lib/PublicInbox/LeiQuery.pm index 72a67c24..10b8d6fa 100644 --- a/lib/PublicInbox/LeiQuery.pm +++ b/lib/PublicInbox/LeiQuery.pm @@ -31,17 +31,21 @@ sub lei_q { } if (@only) { for my $loc (@only) { - $lxs->prepare_external($self->ext_canonicalize($loc)); + my @loc = $self->get_externals($loc) or return; + $lxs->prepare_external($_) for @loc; } } else { for my $loc (@{$opt->{include} // []}) { - $lxs->prepare_external($self->ext_canonicalize($loc)); + my @loc = $self->get_externals($loc) or return; + $lxs->prepare_external($_) for @loc; } # --external is enabled by default, but allow --no-external if ($opt->{external} //= 1) { - my %x = map {; - ($self->ext_canonicalize($_), 1) - } @{$self->{exclude} // []}; + my %x; + for my $loc (@{$opt->{exclude} // []}) { + my @l = $self->get_externals($loc, 1) or return; + $x{$_} = 1 for @l; + } my $ne = $self->externals_each(\&prep_ext, $lxs, \%x); $opt->{remote} //= !($lxs->locals - $opt->{'local'}); if ($opt->{'local'}) {