Skip to content

Commit 993e56f

Browse files
committed
Don't try to create text output if other renderers failed (fix regression)
Commit 49d7df6 added error handling, but since that commit Tesseract used the text fallback if the user selected output failed. Signed-off-by: Stefan Weil <sw@weilnetz.de>
1 parent cc997b5 commit 993e56f

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

src/api/tesseractmain.cpp

+17-10
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,7 @@ static void PreloadRenderers(
402402
renderers->push_back(new tesseract::TessOsdRenderer(outputbase));
403403
#endif // ndef DISABLED_LEGACY_ENGINE
404404
} else {
405+
bool error = false;
405406
bool b;
406407
api->GetBoolVariable("tessedit_create_hocr", &b);
407408
if (b) {
@@ -415,20 +416,22 @@ static void PreloadRenderers(
415416
delete renderer;
416417
tprintf("Error, could not create hOCR output file: %s\n",
417418
strerror(errno));
419+
error = true;
418420
}
419421
}
420422

421423
api->GetBoolVariable("tessedit_create_alto", &b);
422424
if (b) {
423-
tesseract::TessAltoRenderer* renderer =
424-
new tesseract::TessAltoRenderer(outputbase);
425-
if (renderer->happy()) {
426-
renderers->push_back(renderer);
427-
} else {
428-
delete renderer;
429-
tprintf("Error, could not create ALTO output file: %s\n",
430-
strerror(errno));
431-
}
425+
tesseract::TessAltoRenderer* renderer =
426+
new tesseract::TessAltoRenderer(outputbase);
427+
if (renderer->happy()) {
428+
renderers->push_back(renderer);
429+
} else {
430+
delete renderer;
431+
tprintf("Error, could not create ALTO output file: %s\n",
432+
strerror(errno));
433+
error = true;
434+
}
432435
}
433436

434437
api->GetBoolVariable("tessedit_create_tsv", &b);
@@ -443,6 +446,7 @@ static void PreloadRenderers(
443446
delete renderer;
444447
tprintf("Error, could not create TSV output file: %s\n",
445448
strerror(errno));
449+
error = true;
446450
}
447451
}
448452

@@ -463,6 +467,7 @@ static void PreloadRenderers(
463467
delete renderer;
464468
tprintf("Error, could not create PDF output file: %s\n",
465469
strerror(errno));
470+
error = true;
466471
}
467472
}
468473

@@ -477,6 +482,7 @@ static void PreloadRenderers(
477482
delete renderer;
478483
tprintf("Error, could not create UNLV output file: %s\n",
479484
strerror(errno));
485+
error = true;
480486
}
481487
}
482488

@@ -490,11 +496,12 @@ static void PreloadRenderers(
490496
delete renderer;
491497
tprintf("Error, could not create BOX output file: %s\n",
492498
strerror(errno));
499+
error = true;
493500
}
494501
}
495502

496503
api->GetBoolVariable("tessedit_create_txt", &b);
497-
if (b || renderers->empty()) {
504+
if (b || !error && renderers->empty()) {
498505
tesseract::TessTextRenderer* renderer =
499506
new tesseract::TessTextRenderer(outputbase);
500507
if (renderer->happy()) {

0 commit comments

Comments
 (0)