From 2018db2a23ab1d949c757c264534f39dba338ccb Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 18 Apr 2021 08:40:14 +0000 Subject: lei ls-search: command to list saved searches Going forward, we'll probably support JSON for all the "ls-*" subcommands. This also provides the basis for "lei up" shell completion. --- lib/PublicInbox/LeiExternal.pm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'lib/PublicInbox/LeiExternal.pm') diff --git a/lib/PublicInbox/LeiExternal.pm b/lib/PublicInbox/LeiExternal.pm index 5e8dc71a..b0ebe947 100644 --- a/lib/PublicInbox/LeiExternal.pm +++ b/lib/PublicInbox/LeiExternal.pm @@ -215,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 @@ -228,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 :) @@ -245,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 @@ -261,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.'))); -- cgit v1.2.3-24-ge0c7