X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FLeiExternal.pm;h=b0ebe9479b6254294fada399d746933484a7d6e2;hb=2018db2a23ab1d949c757c264534f39dba338ccb;hp=56d6ef395ea07da5c550e808548374f47aeca80e;hpb=97caa1fe259cd6904573f36e0ac078a269b6ec5f;p=public-inbox.git diff --git a/lib/PublicInbox/LeiExternal.pm b/lib/PublicInbox/LeiExternal.pm index 56d6ef39..b0ebe947 100644 --- a/lib/PublicInbox/LeiExternal.pm +++ b/lib/PublicInbox/LeiExternal.pm @@ -144,8 +144,6 @@ sub add_external_finish { sub lei_add_external { my ($self, $location) = @_; - my $sto = $self->_lei_store(1); - $sto->write_prepare($self); my $opt = $self->{opt}; my $mirror = $opt->{mirror} // do { my @fail; @@ -217,8 +215,8 @@ sub lei_forget_external { } } -sub _complete_url_common ($) { - my ($argv) = @_; +sub complete_url_common { + my $argv = $_[-1]; # Workaround bash word-splitting URLs to ['https', ':', '//' ...] # Maybe there's a better way to go about this in # contrib/completion/lei-completion.bash @@ -230,7 +228,8 @@ sub _complete_url_common ($) { push @x, $cur; $cur = ''; } - while (@x > 2 && $x[0] !~ /\Ahttps?\z/ && $x[1] ne ':') { + while (@x > 2 && $x[0] !~ /\A(?:http|nntp|imap)s?\z/i && + $x[1] ne ':') { shift @x; } if (@x >= 2) { # qw(https : hostname : 443) or qw(http :) @@ -247,7 +246,7 @@ sub _complete_url_common ($) { sub _complete_forget_external { my ($self, @argv) = @_; my $cfg = $self->_lei_cfg; - my ($cur, $re) = _complete_url_common(\@argv); + my ($cur, $re) = complete_url_common(\@argv); # FIXME: bash completion off "http:" or "https:" when the last # character is a colon doesn't work properly even if we're # returning "//$HTTP_HOST/$PATH_INFO/", not sure why, could @@ -263,7 +262,7 @@ sub _complete_forget_external { sub _complete_add_external { # for bash, this relies on "compopt -o nospace" my ($self, @argv) = @_; my $cfg = $self->_lei_cfg; - my ($cur, $re) = _complete_url_common(\@argv); + my ($cur, $re) = complete_url_common(\@argv); require URI; map { my $u = URI->new(substr($_, length('external.')));