mirror of
https://github.com/sharkdp/bat
synced 2024-11-15 00:12:57 +00:00
Throws an error when bat
is being user as pager.
As mentioned on #1334 `bat` should not be used as a value for `pager`, this change checks both the balue of `bat` provided as a parameter or as an environment variable.
This commit is contained in:
parent
072fb380d8
commit
9837948c3a
@ -20,6 +20,10 @@ error_chain! {
|
||||
description("unknown syntax"),
|
||||
display("unknown syntax: '{}'", name)
|
||||
}
|
||||
InvalidPagerValueBat {
|
||||
description("invalid value `bat` for pager property"),
|
||||
display("Use of bat as a pager is disallowed in order to avoid infinite recursion problems")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -85,10 +85,10 @@ impl OutputType {
|
||||
|
||||
match pagerflags.split_first() {
|
||||
Some((pager_name, args)) => {
|
||||
let mut pager_path = PathBuf::from(pager_name);
|
||||
let pager_path = PathBuf::from(pager_name);
|
||||
|
||||
if pager_path.file_stem() == Some(&OsString::from("bat")) {
|
||||
pager_path = PathBuf::from("less");
|
||||
return Err(ErrorKind::InvalidPagerValueBat.into());
|
||||
}
|
||||
|
||||
let is_less = pager_path.file_stem() == Some(&OsString::from("less"));
|
||||
|
@ -405,6 +405,16 @@ fn pager_disable() {
|
||||
.stdout(predicate::eq("hello world\n").normalize());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pager_value_bat() {
|
||||
bat()
|
||||
.arg("--pager=bat")
|
||||
.arg("--paging=always")
|
||||
.arg("test.txt")
|
||||
.assert()
|
||||
.failure();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn alias_pager_disable() {
|
||||
bat()
|
||||
|
Loading…
Reference in New Issue
Block a user