Commit 4d856502 for tesseract
commit 4d8565029174d6d70385795eebefd876533e9b97
Author: Vishnu Srivatsava <49309611+VishnuSrivatsava@users.noreply.github.com>
Date: Mon Nov 2 18:05:47 2026 +0530
Fix exit code when no renderers could be created (#4669)
When renderer initialization fails for every requested output format
(e.g. the output file cannot be created), PreloadRenderers leaves the
renderer vector empty and main1() falls through with ret_val set to
EXIT_SUCCESS, so tesseract exits 0 after printing an error. Scripts
calling the CLI cannot detect the failure without parsing stderr.
Set EXIT_FAILURE when outputbase was requested but no renderers could
be created. Plain text output and stdout mode are unaffected because
they always produce a renderer; training mode pushes a null renderer.
Fixes #4668
diff --git a/src/tesseract.cpp b/src/tesseract.cpp
index 719f59e1..00218996 100644
--- a/src/tesseract.cpp
+++ b/src/tesseract.cpp
@@ -834,6 +834,11 @@ static int main1(int argc, char **argv) {
renderers.push_back(nullptr);
} else if (outputbase != nullptr) {
PreloadRenderers(api, renderers, pagesegmode, outputbase);
+ if (renderers.empty()) {
+ // PreloadRenderers already reported why; do not report success when
+ // no requested output could be created.
+ ret_val = EXIT_FAILURE;
+ }
}
if (!renderers.empty()) {