From e2bf85e749d87459e3fced697af5cd9cc96eeb8c Mon Sep 17 00:00:00 2001 From: J-Kappes <87168492+J-Kappes@users.noreply.github.com> Date: Thu, 14 Sep 2023 03:45:46 +0000 Subject: [PATCH] Make -pp override --paging and vice versa when passed as a later argument. (#2660) --- src/bin/bat/clap_app.rs | 2 ++ tests/integration_tests.rs | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/bin/bat/clap_app.rs b/src/bin/bat/clap_app.rs index 01f9d7549a..8ffeb5b228 100644 --- a/src/bin/bat/clap_app.rs +++ b/src/bin/bat/clap_app.rs @@ -79,6 +79,7 @@ pub fn build_app(interactive_output: bool) -> Command { Arg::new("plain") .overrides_with("plain") .overrides_with("number") + .overrides_with("paging") .short('p') .long("plain") .action(ArgAction::Count) @@ -303,6 +304,7 @@ pub fn build_app(interactive_output: bool) -> Command { .long("paging") .overrides_with("paging") .overrides_with("no-paging") + .overrides_with("plain") .value_name("when") .value_parser(["auto", "never", "always"]) .default_value("auto") diff --git a/tests/integration_tests.rs b/tests/integration_tests.rs index b118c38f9a..aa5ca845ec 100644 --- a/tests/integration_tests.rs +++ b/tests/integration_tests.rs @@ -873,6 +873,42 @@ fn disable_pager_if_disable_paging_flag_comes_after_paging() { .stdout(predicate::eq("hello world\n").normalize()); } +#[test] +fn disable_pager_if_pp_flag_comes_after_paging() { + bat() + .env("PAGER", "echo pager-output") + .arg("--paging=always") + .arg("-pp") + .arg("test.txt") + .assert() + .success() + .stdout(predicate::eq("hello world\n").normalize()); +} + +#[test] +fn enable_pager_if_disable_paging_flag_comes_before_paging() { + bat() + .env("PAGER", "echo pager-output") + .arg("-P") + .arg("--paging=always") + .arg("test.txt") + .assert() + .success() + .stdout(predicate::eq("pager-output\n").normalize()); +} + +#[test] +fn enable_pager_if_pp_flag_comes_before_paging() { + bat() + .env("PAGER", "echo pager-output") + .arg("-pp") + .arg("--paging=always") + .arg("test.txt") + .assert() + .success() + .stdout(predicate::eq("pager-output\n").normalize()); +} + #[test] fn pager_failed_to_parse() { bat()