mirror of
https://github.com/sharkdp/bat.git
synced 2025-01-19 04:21:06 +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"),
|
description("unknown syntax"),
|
||||||
display("unknown syntax: '{}'", name)
|
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() {
|
match pagerflags.split_first() {
|
||||||
Some((pager_name, args)) => {
|
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")) {
|
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"));
|
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());
|
.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]
|
#[test]
|
||||||
fn alias_pager_disable() {
|
fn alias_pager_disable() {
|
||||||
bat()
|
bat()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user