sub new { # new saved search "lei q --save"
my ($cls, $lei) = @_;
my $self = bless { ale => $lei->ale }, $cls;
+ require File::Path;
my $dst = $lei->{ovv}->{dst};
+
+ # canonicalize away relative paths into the config
+ if ($lei->{ovv}->{fmt} eq 'maildir' &&
+ $dst =~ m!(?:/*|\A)\.\.(?:/*|\z)! && !-d $dst) {
+ File::Path::make_path($dst);
+ $lei->{ovv}->{dst} = $dst = $lei->abs_path($dst);
+ }
my $dir = lss_dir_for($lei, \$dst);
- require File::Path;
File::Path::make_path($dir); # raises on error
$self->{-cfg} = {};
my $f = $self->{'-f'} = "$dir/lei.saved-search";
lei_ok([qw(edit-search), $v2s], { VISUAL => 'cat', EDITOR => 'cat' });
like($lei_out, qr/^\[lei/sm, 'edit-search can cat');
+
+ lei_ok('-C', "$home/v2s",
+ qw(q -q --save -o ../s m:testmessage@example.com));
+ lei_ok qw(ls-search);
+ unlike $lei_out, qr{/\.\./s$}sm, 'relative path not in ls-search';
+ like $lei_out, qr{^\Q$home\E/s$}sm,
+ 'absolute path appears in ls-search';
+ lei_ok qw(up ../s -C), "$home/v2s", \'relative lei up';
+ lei_ok qw(up), "$home/s", \'absolute lei up';
});
done_testing;