From 7ff1fb3278b756e73a71911d1ae9a702af1c221f Mon Sep 17 00:00:00 2001
From: Weixie Cui
Date: Thu, 26 Mar 2026 11:10:58 +0800
Subject: [PATCH 01/11] fix: warn when $LESSCLOSE fails, not when it succeeds
The Drop cleanup for Preprocessed inverted the exit-status check, so bat
emitted a warning when LESSCLOSE exited successfully and stayed silent on
failure. Align the condition with the intended behavior.
---
src/lessopen.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lessopen.rs b/src/lessopen.rs
index 966bc2c0..81ae3cff 100644
--- a/src/lessopen.rs
+++ b/src/lessopen.rs
@@ -261,7 +261,7 @@ impl Drop for Preprocessed {
}
};
- if lessclose_output.status.success() {
+ if !lessclose_output.status.success() {
bat_warning!("$LESSCLOSE exited with nonzero exit code",)
};
}
From 5c3b8040dbcbe6c39b84746ceab944fd97db859d Mon Sep 17 00:00:00 2001
From: Weixie Cui
Date: Thu, 26 Mar 2026 11:11:19 +0800
Subject: [PATCH 02/11] fix: add changelog entry for LESSCLOSE warning fix
---
CHANGELOG.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 251e699d..99831cf4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@
- Map `BUILD` case sensitively to Python (Starlark) for Bazel, see #3576 (@vorburger)
## Bugfixes
+- Fix inverted `$LESSCLOSE` warning so bat warns on nonzero exit, not on success. See #3654 (@cuiweixie)
- Fix i686 `.deb` package using incorrect architecture name (`i686` instead of `i386`), preventing installation on Debian. Closes #3611, see #3650 (@Sim-hu)
- Fix inconsistent `.deb` MUSL package names (aarch64-musl used `arm64` instead of `musl-linux-arm64`, and `musleabihf` target missed `bat-musl` prefix). Closes #3482, see #3642 (@mvanhorn)
- Fix incorrect text width computation when using `--binary=as-text` with non-printable characters in caret notation, see #3640 and #3631 (@eyupcanakman)
From 71c894e843522fd1804283b7bd347cb2c31fad21 Mon Sep 17 00:00:00 2001
From: curious-rabbit
Date: Mon, 20 Apr 2026 14:25:49 +0200
Subject: [PATCH 03/11] santize filenames
---
CHANGELOG.md | 1 +
src/assets.rs | 16 +++++++----
src/bin/bat/main.rs | 4 ++-
src/input.rs | 16 +++++------
src/lib.rs | 1 +
src/preprocessor.rs | 66 +++++++++++++++++++++++++++++++++++++++++++++
src/printer.rs | 12 ++++++---
7 files changed, 98 insertions(+), 18 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4fc4e54e..18a322a7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,7 @@
- Syntax highlighting for Python files using uv as script runner in shebang #3689 (@janlarres)
## Bugfixes
+- Sanitize control characters in filenames before displaying them in the file header, error messages, and the terminal title, preventing ANSI escape injection via crafted filenames. Closes #3054, see #3691 (@curious-rabbit)
- Treat ZIP archives as binary content based on their magic header, see #3686 (@officialasishkumar)
- Fix i686 `.deb` package using incorrect architecture name (`i686` instead of `i386`), preventing installation on Debian. Closes #3611, see #3650 (@Sim-hu)
- Fix inconsistent `.deb` MUSL package names (aarch64-musl used `arm64` instead of `musl-linux-arm64`, and `musleabihf` target missed `bat-musl` prefix). Closes #3482, see #3642 (@mvanhorn)
diff --git a/src/assets.rs b/src/assets.rs
index 29247bd7..9483f032 100644
--- a/src/assets.rs
+++ b/src/assets.rs
@@ -158,7 +158,9 @@ impl HighlightingAssets {
let syntax_match = mapping.get_syntax_for(path);
if let Some(MappingTarget::MapToUnknown) = syntax_match {
- return Err(Error::UndetectedSyntax(path.to_string_lossy().into()));
+ return Err(Error::UndetectedSyntax(
+ crate::preprocessor::sanitize_for_terminal(&path.to_string_lossy()),
+ ));
}
if let Some(MappingTarget::MapTo(syntax_name)) = syntax_match {
@@ -175,13 +177,17 @@ impl HighlightingAssets {
) {
(Some(syntax), _) => Ok(syntax),
- (_, Some(MappingTarget::MapExtensionToUnknown)) => {
- Err(Error::UndetectedSyntax(path.to_string_lossy().into()))
- }
+ (_, Some(MappingTarget::MapExtensionToUnknown)) => Err(Error::UndetectedSyntax(
+ crate::preprocessor::sanitize_for_terminal(&path.to_string_lossy()),
+ )),
_ => self
.get_syntax_for_file_extension(file_name, &mapping.ignored_suffixes)?
- .ok_or_else(|| Error::UndetectedSyntax(path.to_string_lossy().into())),
+ .ok_or_else(|| {
+ Error::UndetectedSyntax(crate::preprocessor::sanitize_for_terminal(
+ &path.to_string_lossy(),
+ ))
+ }),
}
}
diff --git a/src/bin/bat/main.rs b/src/bin/bat/main.rs
index f3fa01f4..71ed8527 100644
--- a/src/bin/bat/main.rs
+++ b/src/bin/bat/main.rs
@@ -259,7 +259,9 @@ pub fn list_themes(
fn set_terminal_title_to(new_terminal_title: String) {
let osc_command_for_setting_terminal_title = "\x1b]0;";
let osc_end_command = "\x07";
- print!("{osc_command_for_setting_terminal_title}{new_terminal_title}{osc_end_command}");
+ // Prevent BEL/ESC/C1 bytes in the title from terminating or nesting the OSC.
+ let safe_title = bat::sanitize_for_terminal(&new_terminal_title);
+ print!("{osc_command_for_setting_terminal_title}{safe_title}{osc_end_command}");
io::stdout().flush().unwrap();
}
diff --git a/src/input.rs b/src/input.rs
index 30f13f98..231e2a34 100644
--- a/src/input.rs
+++ b/src/input.rs
@@ -216,20 +216,20 @@ impl<'a> Input<'a> {
description,
metadata: self.metadata,
reader: {
- let mut file = File::open(&path)
- .map_err(|e| format!("'{}': {e}", path.to_string_lossy()))?;
+ let path_display =
+ crate::preprocessor::sanitize_for_terminal(&path.to_string_lossy());
+ let mut file =
+ File::open(&path).map_err(|e| format!("'{path_display}': {e}"))?;
if file.metadata()?.is_dir() {
- return Err(format!("'{}' is a directory.", path.to_string_lossy()).into());
+ return Err(format!("'{path_display}' is a directory.").into());
}
if let Some(stdout) = stdout_identifier {
- let input_identifier = Identifier::try_from(file).map_err(|e| {
- format!("{}: Error identifying file: {e}", path.to_string_lossy())
- })?;
+ let input_identifier = Identifier::try_from(file)
+ .map_err(|e| format!("{path_display}: Error identifying file: {e}"))?;
if stdout.surely_conflicts_with(&input_identifier) {
return Err(format!(
- "IO circle detected. The input from '{}' is also an output. Aborting to avoid infinite loop.",
- path.to_string_lossy()
+ "IO circle detected. The input from '{path_display}' is also an output. Aborting to avoid infinite loop.",
)
.into());
}
diff --git a/src/lib.rs b/src/lib.rs
index 4c60f10e..685214dc 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -54,6 +54,7 @@ mod vscreen;
pub(crate) mod wrapping;
pub use nonprintable_notation::{BinaryBehavior, NonprintableNotation};
+pub use preprocessor::sanitize_for_terminal;
pub use preprocessor::StripAnsiMode;
pub use pretty_printer::{Input, PrettyPrinter, Syntax};
pub use syntax_mapping::{MappingTarget, SyntaxMapping};
diff --git a/src/preprocessor.rs b/src/preprocessor.rs
index 6b4e2935..a34f9f9e 100644
--- a/src/preprocessor.rs
+++ b/src/preprocessor.rs
@@ -149,6 +149,35 @@ pub fn strip_ansi(line: &str) -> String {
buffer
}
+/// Escape C0, DEL, and C1 control characters so a string from an untrusted
+/// filename or path can be safely written to the terminal.
+pub fn sanitize_for_terminal(input: &str) -> String {
+ if !input
+ .chars()
+ .any(|c| matches!(c, '\x00'..='\x08' | '\x0A'..='\x1F' | '\x7F'..='\u{9F}'))
+ {
+ return input.to_owned();
+ }
+
+ let mut out = String::with_capacity(input.len() + 8);
+ for c in input.chars() {
+ match c {
+ '\t' => out.push('\t'),
+ '\x00'..='\x1F' => {
+ out.push('^');
+ out.push(char::from_u32(0x40 + c as u32).unwrap_or('?'));
+ }
+ '\x7F' => out.push_str("^?"),
+ '\u{80}'..='\u{9F}' => {
+ use std::fmt::Write as _;
+ let _ = write!(out, "\\u{{{:x}}}", c as u32);
+ }
+ other => out.push(other),
+ }
+ }
+ out
+}
+
/// Strips overstrike sequences (backspace formatting) from input.
///
/// Overstrike formatting is used by man pages and some help output:
@@ -261,3 +290,40 @@ fn test_strip_overstrike() {
// Unicode with overstrike
assert_eq!(strip_overstrike("ä\x08äöü", 2), "äöü");
}
+
+#[test]
+fn test_sanitize_for_terminal_passthrough() {
+ assert_eq!(sanitize_for_terminal(""), "");
+ assert_eq!(sanitize_for_terminal("hello.txt"), "hello.txt");
+ assert_eq!(sanitize_for_terminal("résumé.pdf"), "résumé.pdf");
+ assert_eq!(sanitize_for_terminal("日本語.md"), "日本語.md");
+ assert_eq!(
+ sanitize_for_terminal("path/with spaces/file.log"),
+ "path/with spaces/file.log"
+ );
+ assert_eq!(sanitize_for_terminal("a\tb"), "a\tb");
+}
+
+#[test]
+fn test_sanitize_for_terminal_c0_controls() {
+ assert_eq!(
+ sanitize_for_terminal("\x1b[31mINJECTED\x1b[0m.txt"),
+ "^[[31mINJECTED^[[0m.txt"
+ );
+ assert_eq!(sanitize_for_terminal("bad\x07rest"), "bad^Grest");
+ assert_eq!(sanitize_for_terminal("\x00\x08\n\r\x7F"), "^@^H^J^M^?");
+ assert_eq!(sanitize_for_terminal("\u{9b}31m"), "\\u{9b}31m");
+ assert_eq!(
+ sanitize_for_terminal("\u{9d}0;pwned\x07"),
+ "\\u{9d}0;pwned^G"
+ );
+}
+
+#[test]
+fn test_sanitize_for_terminal_idempotent_on_sanitized() {
+ let dirty = "\x1b]0;pwned\x07file.txt";
+ let clean = sanitize_for_terminal(dirty);
+ assert_eq!(sanitize_for_terminal(&clean), clean);
+ assert!(!clean.contains('\x1b'));
+ assert!(!clean.contains('\x07'));
+}
diff --git a/src/printer.rs b/src/printer.rs
index c58c914d..17f7aa30 100644
--- a/src/printer.rs
+++ b/src/printer.rs
@@ -29,7 +29,9 @@ use crate::error::*;
use crate::input::OpenedInput;
use crate::line_range::{MaxBufferedLineNumber, RangeCheckResult};
use crate::output::OutputHandle;
-use crate::preprocessor::{expand_tabs, replace_nonprintable, strip_ansi, strip_overstrike};
+use crate::preprocessor::{
+ expand_tabs, replace_nonprintable, sanitize_for_terminal, strip_ansi, strip_overstrike,
+};
use crate::style::StyleComponent;
use crate::terminal::{as_terminal_escaped, to_ansi_color};
use crate::vscreen::{AnsiStyle, EscapeSequence, EscapeSequenceIterator};
@@ -489,7 +491,7 @@ impl Printer for InteractivePrinter<'_> {
(but will be present if the output of 'bat' is piped). You can use 'bat -A' \
to show the binary file contents.",
Yellow.paint("[bat warning]"),
- input.description.summary(),
+ sanitize_for_terminal(&input.description.summary()),
)?;
} else if self.config.style_components.grid() {
self.print_horizontal_line(handle, '┬')?;
@@ -543,9 +545,11 @@ impl Printer for InteractivePrinter<'_> {
"{}{}{mode}",
description
.kind()
- .map(|kind| format!("{kind}: "))
+ .map(|kind| format!("{}: ", sanitize_for_terminal(kind)))
.unwrap_or_else(|| "".into()),
- self.colors.header_value.paint(description.title()),
+ self.colors
+ .header_value
+ .paint(sanitize_for_terminal(description.title())),
);
self.print_header_multiline_component(handle, &header_filename)
}
From c3df0e6a883f128974e4ccb7d71555cf4166045b Mon Sep 17 00:00:00 2001
From: Ish West
Date: Sat, 25 Apr 2026 17:37:36 +0200
Subject: [PATCH 04/11] Fixed a bug with hardcoded terminal probing when
`--list-themes` is called
---
src/bin/bat/app.rs | 2 +-
src/bin/bat/main.rs | 9 ++++-----
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/src/bin/bat/app.rs b/src/bin/bat/app.rs
index f95bbb91..3124cdcd 100644
--- a/src/bin/bat/app.rs
+++ b/src/bin/bat/app.rs
@@ -645,7 +645,7 @@ impl App {
Ok(styled_components)
}
- fn theme_options(&self) -> ThemeOptions {
+ pub(crate) fn theme_options(&self) -> ThemeOptions {
Self::theme_options_from_matches(&self.matches)
}
diff --git a/src/bin/bat/main.rs b/src/bin/bat/main.rs
index f3fa01f4..5184cf99 100644
--- a/src/bin/bat/main.rs
+++ b/src/bin/bat/main.rs
@@ -17,7 +17,6 @@ use std::path::Path;
use std::process;
use bat::output::{OutputHandle, OutputType};
-use bat::theme::DetectColorScheme;
use nu_ansi_term::Color::Green;
use nu_ansi_term::Style;
@@ -39,7 +38,7 @@ use bat::{
error::*,
input::Input,
style::{StyleComponent, StyleComponents},
- theme::{color_scheme, default_theme, ColorScheme},
+ theme::{default_theme, theme, ColorScheme, ThemeOptions},
MappingTarget, PagingMode,
};
@@ -197,7 +196,7 @@ pub fn list_themes(
cfg: &Config,
config_dir: &Path,
cache_dir: &Path,
- detect_color_scheme: DetectColorScheme,
+ theme_options: ThemeOptions,
) -> Result<()> {
let assets = assets_from_cache_or_binary(cfg.use_custom_assets, cache_dir)?;
let mut config = cfg.clone();
@@ -206,7 +205,7 @@ pub fn list_themes(
config.language = Some("Rust");
config.style_components = StyleComponents(style);
- let default_theme_name = default_theme(color_scheme(detect_color_scheme).unwrap_or_default());
+ let default_theme_name = theme(theme_options).to_string();
let mut buf = String::new();
let mut handle = OutputHandle::FmtWrite(&mut buf);
@@ -426,7 +425,7 @@ fn run() -> Result {
};
run_controller(inputs, &plain_config, cache_dir)
} else if app.matches.get_flag("list-themes") {
- list_themes(&config, config_dir, cache_dir, DetectColorScheme::default())?;
+ list_themes(&config, config_dir, cache_dir, app.theme_options())?;
Ok(true)
} else if app.matches.get_flag("config-file") {
println!("{}", config_file().to_string_lossy());
From 044d445adc5b8136bee14ab21830e43836edffd5 Mon Sep 17 00:00:00 2001
From: Ish West
Date: Sat, 25 Apr 2026 21:17:02 +0200
Subject: [PATCH 05/11] Updated CHANGELOG.md
---
CHANGELOG.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5a37d298..91171c92 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,7 @@
- Syntax highlighting for Python files using uv as script runner in shebang #3689 (@janlarres)
## Bugfixes
+- Fix `--list-themes` unconditionally probing the terminal via OSC 10/11 even when `--theme` was set to an explicit value (regression introduced in bc42149a). (@optimistiCli)
- Treat ZIP archives as binary content based on their magic header, see #3686 (@officialasishkumar)
- Fix i686 `.deb` package using incorrect architecture name (`i686` instead of `i386`), preventing installation on Debian. Closes #3611, see #3650 (@Sim-hu)
- Fix inconsistent `.deb` MUSL package names (aarch64-musl used `arm64` instead of `musl-linux-arm64`, and `musleabihf` target missed `bat-musl` prefix). Closes #3482, see #3642 (@mvanhorn)
From 4144059e7a8c7dcc0fcdd40431f6e05cb4ee40cf Mon Sep 17 00:00:00 2001
From: Ish West
Date: Sat, 25 Apr 2026 21:30:03 +0200
Subject: [PATCH 06/11] Fixed CHANGELOG.md entry format
---
CHANGELOG.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 91171c92..bd76e2e7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,7 +21,7 @@
- Syntax highlighting for Python files using uv as script runner in shebang #3689 (@janlarres)
## Bugfixes
-- Fix `--list-themes` unconditionally probing the terminal via OSC 10/11 even when `--theme` was set to an explicit value (regression introduced in bc42149a). (@optimistiCli)
+- Fix `--list-themes` unconditionally probing the terminal via OSC 10/11 even when `--theme` was set to an explicit value, see #3700 (regression introduced in bc42149a). (@optimistiCli)
- Treat ZIP archives as binary content based on their magic header, see #3686 (@officialasishkumar)
- Fix i686 `.deb` package using incorrect architecture name (`i686` instead of `i386`), preventing installation on Debian. Closes #3611, see #3650 (@Sim-hu)
- Fix inconsistent `.deb` MUSL package names (aarch64-musl used `arm64` instead of `musl-linux-arm64`, and `musleabihf` target missed `bat-musl` prefix). Closes #3482, see #3642 (@mvanhorn)
From ebf469b99af6c3d4eab784b2d6d29255062c0470 Mon Sep 17 00:00:00 2001
From: David Peter
Date: Thu, 30 Apr 2026 10:16:33 +0200
Subject: [PATCH 07/11] Update README
---
README.md | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/README.md b/README.md
index d6ef3381..e360a777 100644
--- a/README.md
+++ b/README.md
@@ -19,20 +19,6 @@
[Русский]
-### Sponsors
-
-A special *thank you* goes to our biggest sponsors:
-
-
-
-
-
- Warp, the intelligent terminal
-
- Available on MacOS, Linux, Windows
-
-
-
### Syntax highlighting
`bat` supports syntax highlighting for a large number of programming and markup
From 10b4f07a87bb6bccd9d962bf9e7bb3f04b338128 Mon Sep 17 00:00:00 2001
From: David Peter
Date: Thu, 30 Apr 2026 10:18:58 +0200
Subject: [PATCH 08/11] Remove sponsors
---
README.md | 6 ------
doc/sponsors.md | 2 --
doc/sponsors/graphite-logo.jpeg | Bin 28195 -> 0 bytes
doc/sponsors/warp-logo.png | Bin 132621 -> 0 bytes
doc/sponsors/warp-pack-header.png | Bin 37674 -> 0 bytes
5 files changed, 8 deletions(-)
delete mode 100644 doc/sponsors/graphite-logo.jpeg
delete mode 100644 doc/sponsors/warp-logo.png
delete mode 100644 doc/sponsors/warp-pack-header.png
diff --git a/README.md b/README.md
index e360a777..375ec6d7 100644
--- a/README.md
+++ b/README.md
@@ -194,12 +194,6 @@ Note that the [Manpage syntax](assets/syntaxes/02_Extra/Manpage.sublime-syntax)
The [`prettybat`](https://github.com/eth-p/bat-extras/blob/master/doc/prettybat.md) script is a wrapper that will format code and print it with `bat`.
-#### `Warp`
-
-
-
-
-
#### Highlighting `--help` messages
You can use `bat` to colorize help text: `$ cp --help | bat -plhelp`
diff --git a/doc/sponsors.md b/doc/sponsors.md
index 24509077..641e5205 100644
--- a/doc/sponsors.md
+++ b/doc/sponsors.md
@@ -10,5 +10,3 @@ No issue will have a different priority based on sponsorship status of the
reporter.
Contributions from anybody are most welcomed, please see our [`CONTRIBUTING.md`](../CONTRIBUTING.md) guide.
-
-If you want to see our biggest sponsors, check the top of [`README.md`](../README.md#sponsors).
diff --git a/doc/sponsors/graphite-logo.jpeg b/doc/sponsors/graphite-logo.jpeg
deleted file mode 100644
index 00443818dd32d97031c57dec5dcd83a9ad8777ab..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 28195
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
DCAoA}
diff --git a/doc/sponsors/warp-logo.png b/doc/sponsors/warp-logo.png
deleted file mode 100644
index f99dd38ceea805656daea5cd80c3525dbd307b71..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 132621
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
z |