on master help sign in
Add arguments from PAGER/BAT_PAGER

Solves #352 Signed-off-by: Morten Linderud <morten@linderud.pw>

commit67fe833bc87d88ebb395be4a2d1c1d9806812c13 authorMorten Linderud <morten@linderud.pw> dateFri 12 Oct 2018, 17:37 (8 years ago) parente956225
1 file changed+14−8
src/output.rs+14−8
src/output.rs+14−8
@@ -1,3 +1,5 @@
1+extern crate shell_words;
2+
13use std::env;
24use std::ffi::OsString;
35use std::io::{self, Write};
@@ -28,23 +30,27 @@ impl OutputType {
2830 .or_else(|_| env::var("PAGER"))
2931 .unwrap_or(String::from("less"));
3032
31− let less_path = PathBuf::from(&pager);
33+ let pagerflags = shell_words::split(&pager).unwrap_or(vec![pager]);
34+
35+ let less_path = PathBuf::from(&pagerflags[0]);
3236 let is_less = less_path.file_stem() == Some(&OsString::from("less"));
3337
3438 let mut process = if is_less {
35− let mut args = vec!["--RAW-CONTROL-CHARS", "--no-init"];
36− if quit_if_one_screen {
37− args.push("--quit-if-one-screen");
38− }
39−
4039 let mut p = Command::new(&less_path);
41− p.args(&args).env("LESSCHARSET", "UTF-8");
40+ if pagerflags.len() == 1 {
41+ p.args(vec!["--RAW-CONTROL-CHARS", "--no-init"]);
42+ if quit_if_one_screen {
43+ p.arg("--quit-if-one-screen");
44+ }
45+ }
46+ p.env("LESSCHARSET", "UTF-8");
4247 p
4348 } else {
44− Command::new(pager)
49+ Command::new(&less_path)
4550 };
4651
4752 process
53+ .args(&pagerflags[1..])
4854 .stdin(Stdio::piped())
4955 .spawn()
5056 .map(OutputType::Pager)