1
0
mirror of https://github.com/sharkdp/bat.git synced 2026-02-08 00:32:08 +00:00

Fix bat crash with BusyBox less on Windows

- Retrieve less version earlier in src/output.rs.
- Skip -K argument if less is detected as BusyBox version.
- Reuses the version check for the existing --no-init logic.
- Fixes #3518.
This commit is contained in:
ANCHAL
2025-12-16 22:25:27 +05:30
parent 9bf344f760
commit fca5502f21
2 changed files with 8 additions and 2 deletions

View File

@@ -5,6 +5,7 @@
- Improve native man pages and command help syntax highlighting by stripping overstriking, see #3517 (@akirk) - Improve native man pages and command help syntax highlighting by stripping overstriking, see #3517 (@akirk)
## Bugfixes ## Bugfixes
- Fix crash with BusyBox `less` on Windows, see #3518 (@Anchal-T)
- `--help` now correctly honors `--pager=builtin`. See #3516 (@keith-hall) - `--help` now correctly honors `--pager=builtin`. See #3516 (@keith-hall)
- `--help` now correctly honors custom themes. See #3524 (@keith-hall) - `--help` now correctly honors custom themes. See #3524 (@keith-hall)

View File

@@ -131,8 +131,13 @@ impl OutputType {
p.arg("-S"); // Short version of --chop-long-lines for compatibility p.arg("-S"); // Short version of --chop-long-lines for compatibility
} }
let less_version = retrieve_less_version(&pager.bin);
// Ensures that 'less' quits together with 'bat' // Ensures that 'less' quits together with 'bat'
p.arg("-K"); // Short version of '--quit-on-intr' // The BusyBox version of less does not support -K
if less_version != Some(LessVersion::BusyBox) {
p.arg("-K"); // Short version of '--quit-on-intr'
}
// Passing '--no-init' fixes a bug with '--quit-if-one-screen' in older // Passing '--no-init' fixes a bug with '--quit-if-one-screen' in older
// versions of 'less'. Unfortunately, it also breaks mouse-wheel support. // versions of 'less'. Unfortunately, it also breaks mouse-wheel support.
@@ -142,7 +147,7 @@ impl OutputType {
// For newer versions (530 or 558 on Windows), we omit '--no-init' as it // For newer versions (530 or 558 on Windows), we omit '--no-init' as it
// is not needed anymore. // is not needed anymore.
if single_screen_action == SingleScreenAction::Quit { if single_screen_action == SingleScreenAction::Quit {
match retrieve_less_version(&pager.bin) { match less_version {
None => { None => {
p.arg("--no-init"); p.arg("--no-init");
} }