From 6ea3ac71d71d88be64282dbba1dbf5cbfe388a76 Mon Sep 17 00:00:00 2001
From: deboard <john.deboard@gmail.com>
Date: Tue, 2 Jan 2024 17:44:27 -0500
Subject: [PATCH] issue 2561, send all [bat error]s to stderr in
 default_error_handler match default.

---
 CHANGELOG.md |  2 +-
 src/error.rs | 10 +++++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index cfc4c4dd..1d2e41a0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,7 +3,7 @@
 ## Features
 
 ## Bugfixes
-
+- issue 2561, send all [bat error]s to stderr in default_error_handler match default.
 - Fix `NO_COLOR` support, see #2767 (@acuteenvy)
 
 ## Other
diff --git a/src/error.rs b/src/error.rs
index 007737b0..24c1409f 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -67,7 +67,15 @@ pub fn default_error_handler(error: &Error, output: &mut dyn Write) {
             .ok();
         }
         _ => {
-            writeln!(output, "{}: {}", Red.paint("[bat error]"), error).ok();
+            // default - always write [bat error] to stderr
+            let stderr = std::io::stderr();
+            writeln!(
+                &mut stderr.lock(),
+                "{}: {}",
+                Red.paint("[bat error]"),
+                error
+            )
+            .ok();
         }
     };
 }