summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Davison <dandavison7@gmail.com>2021-06-08 08:53:03 -0400
committerDan Davison <dandavison7@gmail.com>2021-06-08 08:53:03 -0400
commitbf277caa65bfee3dc51fdcfd3866c5c6afb3a560 (patch)
tree0349548e3330f2d58c311e698e808d040e58f5c5
parenta0904c7dd6d57454804188da4b9905c9404f76fb (diff)
Defer clone of config.pagerpbzweihander-configable-pager-str
-rw-r--r--src/bat_utils/output.rs5
-rw-r--r--src/main.rs2
2 files changed, 4 insertions, 3 deletions
diff --git a/src/bat_utils/output.rs b/src/bat_utils/output.rs
index 1166b4e2..43d3bf8f 100644
--- a/src/bat_utils/output.rs
+++ b/src/bat_utils/output.rs
@@ -29,7 +29,7 @@ pub enum OutputType {
impl OutputType {
pub fn from_mode(
mode: PagingMode,
- pager: Option<String>,
+ pager: Option<&str>,
config: &config::Config,
) -> Result<Self> {
use self::PagingMode::*;
@@ -43,7 +43,7 @@ impl OutputType {
/// Try to launch the pager. Fall back to stdout in case of errors.
fn try_pager(
quit_if_one_screen: bool,
- pager_from_config: Option<String>,
+ pager_from_config: Option<&str>,
config: &config::Config,
) -> Result<Self> {
let mut replace_arguments_to_less = false;
@@ -71,6 +71,7 @@ impl OutputType {
}
let pager = pager_from_config
+ .map(|p| p.to_string())
.or(pager_from_env)
.unwrap_or_else(|| String::from("less"));
diff --git a/src/main.rs b/src/main.rs
index d6ed0aa2..bb032705 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -83,7 +83,7 @@ fn run_app() -> std::io::Result<i32> {
}
let mut output_type =
- OutputType::from_mode(config.paging_mode, config.pager.clone(), &config).unwrap();
+ OutputType::from_mode(config.paging_mode, config.pager.as_deref(), &config).unwrap();
let mut writer = output_type.handle().unwrap();
if atty::is(atty::Stream::Stdin) {