diff options
-rwxr-xr-x | gmi.pl | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -33,8 +33,8 @@ use File::Slurper qw(read_dir); # CPAN # sudo cpanm IO::Socket::SSL URL::XS IO::Pager Text::Wraper Term::ReadKey Path::Naive Text::ParseWords Term::ReadLine Smart::Comments URI::Encode IO::Socket::SSL::Utils File::Slurper my $wrapper = Text::Wrapper->new(columns=>70, body_start=>''); -#$ENV{PAGER} = 'most'; -$ENV{PAGER} = 'less -R'; +$ENV{PAGER} = 'most'; +#$ENV{PAGER} = 'less -r'; my $use_pager = 1; my $pager_text_wrap_auto = 1; my $doc_out = 1; # display doc for human consumption? @@ -435,6 +435,9 @@ sub urlrelative { $c_p_url->{path} .= "/"; # normalize path will remove it } substr($c_p_url->{path},0,1,''); + if ($c_p_url->{path} eq '/') { + delete $c_p_url->{path}; # dont want to ask for 'gemini://host.com//' + } url(return_url($c_p_url)); return 0; } @@ -461,6 +464,9 @@ sub urlrelative { $c_p_url->{path} .= "/"; # normalize path will remove it } substr($c_p_url->{path},0,1,''); + if ($c_p_url->{path} eq '/') { + delete $c_p_url->{path}; # dont want to ask for 'gemini://host.com//' + } ### $c_p_url url(return_url($c_p_url)); return 0; @@ -584,8 +590,7 @@ sub nav { $link = $history[$n][0]; } else { - my $m = $n+1; - print $OUT "'$m' isn't available.\n"; + print $OUT "'" . ($n+1) ."' isn't available.\n"; return 1; } access_resource($link); @@ -596,6 +601,8 @@ sub access_resource { # This implies it is valid fqdn if (has_scheme($link)) { url("$link"); + } elsif (substr($link,0,2) eq '//') { # technically valid + url("gemini:$link"); } else { my $c_url = parse_url($current_url); @@ -606,9 +613,9 @@ sub access_resource { if ($begin_with_slash) { delete($c_url->{path}); $c_url->{path} = $link; - if ($end_with_slash){ - $c_url->{path} .= "/"; - } + #if ($end_with_slash){ + # $c_url->{path} .= "/"; + #} substr($c_url->{path},0,1,''); url(return_url($c_url)); return 0; |