From 675b21cf89af9ba584989931364feef4a5afa68c Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Thu, 11 May 2023 11:52:30 +0200 Subject: [PATCH 01/30] Add missing initialisation in DENORM copy constructor This fixes a Coverity Scan issue: 1487976 Uninitialized pointer read Signed-off-by: Stefan Weil --- src/ccstruct/normalis.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ccstruct/normalis.cpp b/src/ccstruct/normalis.cpp index eabb2bf73f..8379f6e892 100644 --- a/src/ccstruct/normalis.cpp +++ b/src/ccstruct/normalis.cpp @@ -42,6 +42,8 @@ DENORM::DENORM() { DENORM::DENORM(const DENORM &src) { rotation_ = nullptr; + x_map_ = nullptr; + y_map_ = nullptr; *this = src; } From 8df11a6af3ede14f29c1490878802a8bb4d3fe83 Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Thu, 11 May 2023 13:27:01 +0200 Subject: [PATCH 02/30] Avoid passing objects by value This fixes several Coverity Scan issues. Signed-off-by: Stefan Weil --- src/ccutil/genericvector.h | 12 ++++++------ src/ccutil/unicity_table.h | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ccutil/genericvector.h b/src/ccutil/genericvector.h index c54db69b5f..4a5bbe12d6 100644 --- a/src/ccutil/genericvector.h +++ b/src/ccutil/genericvector.h @@ -123,7 +123,7 @@ class GenericVector { // Add a callback to be called to delete the elements when the array took // their ownership. - void set_clear_callback(std::function cb) { + void set_clear_callback(const std::function &cb) { clear_cb_ = cb; } @@ -148,8 +148,8 @@ class GenericVector { // fread (and swapping)/fwrite. // Returns false on error or if the callback returns false. // DEPRECATED. Use [De]Serialize[Classes] instead. - bool write(FILE *f, std::function cb) const; - bool read(TFile *f, std::function cb); + bool write(FILE *f, const std::function &cb) const; + bool read(TFile *f, const std::function &cb); // Writes a vector of simple types to the given file. Assumes that bitwise // read/write of T will work. Returns false in case of error. // TODO(rays) Change all callers to use TFile and remove deprecated methods. @@ -577,7 +577,7 @@ int GenericVector::push_back(T object) { double_the_size(); } index = size_used_++; - data_[index] = object; + data_[index] = std::move(object); return index; } @@ -627,7 +627,7 @@ void GenericVector::delete_data_pointers() { } template -bool GenericVector::write(FILE *f, std::function cb) const { +bool GenericVector::write(FILE *f, const std::function &cb) const { if (fwrite(&size_reserved_, sizeof(size_reserved_), 1, f) != 1) { return false; } @@ -649,7 +649,7 @@ bool GenericVector::write(FILE *f, std::function cb) } template -bool GenericVector::read(TFile *f, std::function cb) { +bool GenericVector::read(TFile *f, const std::function &cb) { int32_t reserved; if (f->FReadEndian(&reserved, sizeof(reserved), 1) != 1) { return false; diff --git a/src/ccutil/unicity_table.h b/src/ccutil/unicity_table.h index 4108995080..54f740a3b3 100644 --- a/src/ccutil/unicity_table.h +++ b/src/ccutil/unicity_table.h @@ -87,7 +87,7 @@ class UnicityTable { /// Add a callback to be called to delete the elements when the table took /// their ownership. - void set_clear_callback(std::function cb) { + void set_clear_callback(const std::function &cb) { table_.set_clear_callback(cb); } @@ -109,10 +109,10 @@ class UnicityTable { /// The Callback given must be permanent since they will be called more than /// once. The given callback will be deleted at the end. /// Returns false on read/write error. - bool write(FILE *f, std::function cb) const { + bool write(FILE *f, const std::function &cb) const { return table_.write(f, cb); } - bool read(tesseract::TFile *f, std::function cb) { + bool read(tesseract::TFile *f, const std::function &cb) { return table_.read(f, cb); } From d7c071197e771263e923b731af05302a7e68efbd Mon Sep 17 00:00:00 2001 From: hesmar Date: Tue, 11 Jul 2023 14:08:15 +0200 Subject: [PATCH 03/30] Disable -mfpu=neon for aarch64 Disable -mfpu command line argument on aarch64, because it is not available in gcc (aarch64) --- CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 70dfd0e095..1eb3c6a5ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -258,7 +258,11 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm.*") set(HAVE_AVX512F FALSE) set(HAVE_FMA FALSE) set(HAVE_SSE4_1 FALSE) + check_cxx_compiler_flag("-mfpu=neon" HAVE_NEON) + if(HAVE_NEON) + set(NEON_COMPILE_FLAGS "-mfpu=neon") + endif(HAVE_NEON) else() @@ -272,7 +276,6 @@ else() endif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86|x86_64|AMD64|amd64|i386|i686") if(HAVE_NEON) - set(NEON_COMPILE_FLAGS "-mfpu=neon") message(STATUS "LTO build is not supported on arm/RBPi.") set(ENABLE_LTO FALSE) # enable LTO cause fatal error on arm/RBPi endif() From 9bf4b310124a48c4f73c3418496c7412cc2c6592 Mon Sep 17 00:00:00 2001 From: pkubaj Date: Tue, 11 Jul 2023 16:02:23 +0000 Subject: [PATCH 04/30] Fix build without git clone in cloned directory FreeBSD uses git to manage Ports Tree. Tesseract, when building from the Ports Tree, is built from a tarball that doesn't have .git and then git describe is ran on top of the Ports Tree. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 029d37cea1..88c8f1a82d 100644 --- a/configure.ac +++ b/configure.ac @@ -7,7 +7,7 @@ # ---------------------------------------- AC_PREREQ([2.69]) AC_INIT([tesseract], - [m4_esyscmd_s([git describe --abbrev=4 2>/dev/null || cat VERSION])], + [m4_esyscmd_s([test -d .git && git describe --abbrev=4 2>/dev/null || cat VERSION])], [https://github.com/tesseract-ocr/tesseract/issues],, [https://github.com/tesseract-ocr/tesseract/]) From d1abdf353ad11b8fa7073ba7da707109b30995d9 Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Thu, 13 Jul 2023 10:01:59 +0200 Subject: [PATCH 05/30] Remove whitespace at line endings Signed-off-by: Stefan Weil --- .github/ISSUE_TEMPLATE/issue-bug.yml | 2 +- cmake/CheckFunctions.cmake | 2 +- src/training/unicharset/validate_myanmar.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/issue-bug.yml b/.github/ISSUE_TEMPLATE/issue-bug.yml index 2b5b678e11..c0d86debd2 100644 --- a/.github/ISSUE_TEMPLATE/issue-bug.yml +++ b/.github/ISSUE_TEMPLATE/issue-bug.yml @@ -16,7 +16,7 @@ body: * Please provide the input image. * Also provide output files (txt and/or tsv, hocr, pdf). You can make a zip archive that will contain these files, so GitHub will let you upload them. * Don't attach a screenshot of the command line and output. Instead, copy the text and paste it in your bug report. - + Windows versions 7, 8, 8.1 are not supported. - type: textarea attributes: diff --git a/cmake/CheckFunctions.cmake b/cmake/CheckFunctions.cmake index 0c15d8db10..c897db4842 100644 --- a/cmake/CheckFunctions.cmake +++ b/cmake/CheckFunctions.cmake @@ -30,7 +30,7 @@ function(check_leptonica_tiff_support) set(CMAKE_TRY_COMPILE_CONFIGURATION ${CMAKE_BUILD_TYPE}) try_run( LEPT_TIFF_RESULT - LEPT_TIFF_COMPILE + LEPT_TIFF_COMPILE SOURCE_FROM_CONTENT tiff_test.cpp "${TIFF_TEST}" CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${Leptonica_INCLUDE_DIRS}" LINK_LIBRARIES ${Leptonica_LIBRARIES} diff --git a/src/training/unicharset/validate_myanmar.cpp b/src/training/unicharset/validate_myanmar.cpp index 49443d659d..abe082d50e 100644 --- a/src/training/unicharset/validate_myanmar.cpp +++ b/src/training/unicharset/validate_myanmar.cpp @@ -149,7 +149,7 @@ bool ValidateMyanmar::ConsumeOptionalSignsIfPresent() { } // Sgaw tones 0x1062, 0x1063 must be followed by asat. // W Pwo tones 0x1069, 0x106a, and 0x106b may be followed by dot below or visarga (nasal). - ch = codes_[codes_used_].second; + ch = codes_[codes_used_].second; if (ch == 0x103a || ch == 0x1037 || ch == 0x1038) { if (UseMultiCode(1)) { return true; From 54b9fe4de9f0aa3af15f52a6f27ffaf758b43769 Mon Sep 17 00:00:00 2001 From: zdenop Date: Sat, 15 Jul 2023 19:43:50 +0200 Subject: [PATCH 06/30] cmake: check_leptonica_tiff_support() works with cmake>=3.25 --- CMakeLists.txt | 4 +-- cmake/CheckFunctions.cmake | 54 ++++++++++++++++++++------------------ 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1eb3c6a5ce..68da6c532b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -408,10 +408,10 @@ else() include_directories(${Leptonica_INCLUDE_DIRS}) check_leptonica_tiff_support() - if (NOT LEPT_TIFF_RESULT EQUAL 0) + if ((NOT LEPT_TIFF_RESULT EQUAL 0) AND LEPT_TIFF_COMPILE_SUCCESS) message(NOTICE "Leptonica was build without TIFF support! Disabling TIFF support...") set(DISABLE_TIFF ON) - else() + elseif(NOT ${CMAKE_VERSION} VERSION_LESS "3.25") message(STATUS "Leptonica was build with TIFF support.") endif() diff --git a/cmake/CheckFunctions.cmake b/cmake/CheckFunctions.cmake index c897db4842..4618eaeb43 100644 --- a/cmake/CheckFunctions.cmake +++ b/cmake/CheckFunctions.cmake @@ -18,31 +18,35 @@ function(check_leptonica_tiff_support) # check if leptonica was build with tiff support set result to # LEPT_TIFF_RESULT set(TIFF_TEST - "#include \n" - "int main() {\n" - " l_uint8 *data = NULL;\n" - " size_t size = 0;\n" - " PIX* pix = pixCreate(3, 3, 4);\n" - " l_int32 ret_val = pixWriteMemTiff(&data, &size, pix, IFF_TIFF_G3);\n" - " pixDestroy(&pix);\n" - " lept_free(data);\n" - " return ret_val;}\n") - set(CMAKE_TRY_COMPILE_CONFIGURATION ${CMAKE_BUILD_TYPE}) - try_run( - LEPT_TIFF_RESULT - LEPT_TIFF_COMPILE - SOURCE_FROM_CONTENT tiff_test.cpp "${TIFF_TEST}" - CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${Leptonica_INCLUDE_DIRS}" - LINK_LIBRARIES ${Leptonica_LIBRARIES} - COMPILE_OUTPUT_VARIABLE - COMPILE_OUTPUT) - if(NOT LEPT_TIFF_COMPILE) - message(STATUS "COMPILE_OUTPUT: ${COMPILE_OUTPUT}") - message(STATUS "Leptonica_INCLUDE_DIRS: ${Leptonica_INCLUDE_DIRS}") - message(STATUS "Leptonica_LIBRARIES: ${Leptonica_LIBRARIES}") - message(STATUS "LEPT_TIFF_RESULT: ${LEPT_TIFF_RESULT}") - message(STATUS "LEPT_TIFF_COMPILE: ${LEPT_TIFF_COMPILE}") - message(WARNING "Failed to compile test") + "#include \"leptonica/allheaders.h\"\n" + "int main() {\n" + " l_uint8 *data = NULL;\n" + " size_t size = 0;\n" + " PIX* pix = pixCreate(3, 3, 4);\n" + " l_int32 ret_val = pixWriteMemTiff(&data, &size, pix, IFF_TIFF_G3);\n" + " pixDestroy(&pix);\n" + " lept_free(data);\n" + " return ret_val;}\n") + if(${CMAKE_VERSION} VERSION_LESS "3.25") + message(STATUS "Testing TIFF support in Leptonica is available with CMake >= 3.25 (you have ${CMAKE_VERSION}))") + else() + set(CMAKE_TRY_COMPILE_CONFIGURATION ${CMAKE_BUILD_TYPE}) + try_run( + LEPT_TIFF_RESULT + LEPT_TIFF_COMPILE_SUCCESS + SOURCE_FROM_CONTENT tiff_test.cpp "${TIFF_TEST}" + CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${Leptonica_INCLUDE_DIRS}" + LINK_LIBRARIES ${Leptonica_LIBRARIES} + COMPILE_OUTPUT_VARIABLE + COMPILE_OUTPUT) + if(NOT LEPT_TIFF_COMPILE_SUCCESS) + message(STATUS "COMPILE_OUTPUT: ${COMPILE_OUTPUT}") + message(STATUS "Leptonica_INCLUDE_DIRS: ${Leptonica_INCLUDE_DIRS}") + message(STATUS "Leptonica_LIBRARIES: ${Leptonica_LIBRARIES}") + message(STATUS "LEPT_TIFF_RESULT: ${LEPT_TIFF_RESULT}") + message(STATUS "LEPT_TIFF_COMPILE: ${LEPT_TIFF_COMPILE}") + message(WARNING "Failed to compile test") + endif() endif() endfunction(check_leptonica_tiff_support) From a72602093697058e4ce9e82181d1b31353413ee4 Mon Sep 17 00:00:00 2001 From: Parryword <101982505+Parryword@users.noreply.github.com> Date: Wed, 19 Jul 2023 18:18:13 +0000 Subject: [PATCH 07/30] Update ScrollView.java typo fixed --- java/com/google/scrollview/ScrollView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com/google/scrollview/ScrollView.java b/java/com/google/scrollview/ScrollView.java index e98af3dd58..21f42cd009 100644 --- a/java/com/google/scrollview/ScrollView.java +++ b/java/com/google/scrollview/ScrollView.java @@ -191,7 +191,7 @@ private static void parseArguments(String argList, } } // If str is not null here, then we have a string with a comma in it. - // Append , and the next argument at the next iteration, but check + // Append, and the next argument at the next iteration, but check // that str is null after the loop terminates in case it was an // unterminated string. } else if (floatPattern.matcher(argStr).matches()) { From 8fdf20342a7a3890becf600ce5e892062c31d6d9 Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Fri, 28 Jul 2023 07:17:14 +0200 Subject: [PATCH 08/30] Provide more disk space for GitHub action unittest ubuntu-20.04-gcc-unittest failed because it ran out of disk space. Removing some unused directories adds more than 30 GiB free disk space. Signed-off-by: Stefan Weil --- .github/workflows/unittest.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index 179a33e67a..ed9f500788 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -21,6 +21,13 @@ jobs: with: submodules: recursive + - name: Remove Homebrew, Android and .NET to provide more disk space + run: | + # https://github.com/actions/virtual-environments/issues/2606#issuecomment-772683150 + sudo rm -rf /home/linuxbrew # will release Homebrew + sudo rm -rf /usr/local/lib/android # will release about 10 GB if you don't need Android + sudo rm -rf /usr/share/dotnet # will release about 20GB if you don't need .NET + - name: Install dependencies (Linux) run: | sudo apt-get update From 0768e4ff4c21aaf0b9beb297e6bb79ad8cb301b0 Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Sun, 30 Jul 2023 12:32:33 +0200 Subject: [PATCH 09/30] Fix comment Signed-off-by: Stefan Weil --- src/textord/tablefind.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/textord/tablefind.cpp b/src/textord/tablefind.cpp index d67f182495..0b5fa502ff 100644 --- a/src/textord/tablefind.cpp +++ b/src/textord/tablefind.cpp @@ -432,7 +432,7 @@ void TableFinder::InsertImagePartition(ColPartition *part) { // text lines on the page. The assumption is that a table // will have several lines with similar overlapping whitespace // whereas text will not have this type of property. -// Note: The code Assumes that blobs are sorted by the left side x! +// Note: The code assumes that blobs are sorted by the left side x! // This will not work (as well) if the blobs are sorted by center/right. void TableFinder::SplitAndInsertFragmentedTextPartition(ColPartition *part) { ASSERT_HOST(part != nullptr); From 77e4eab5658462ae45aa9b7c7558b11dc600dd4b Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Mon, 7 Aug 2023 17:55:25 +0200 Subject: [PATCH 10/30] Fix comment for function HOcrEscape Signed-off-by: Stefan Weil --- include/tesseract/baseapi.h | 2 +- src/api/baseapi.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/tesseract/baseapi.h b/include/tesseract/baseapi.h index dd9fe4a299..103ca7b1c9 100644 --- a/include/tesseract/baseapi.h +++ b/include/tesseract/baseapi.h @@ -804,7 +804,7 @@ class TESS_API TessBaseAPI { int tessedit_page_number); }; // class TessBaseAPI. -/** Escape a char string - remove &<>"' with HTML codes. */ +/** Escape a char string - replace &<>"' with HTML codes. */ std::string HOcrEscape(const char *text); } // namespace tesseract diff --git a/src/api/baseapi.cpp b/src/api/baseapi.cpp index 11398f5142..2c3f8f6d5c 100644 --- a/src/api/baseapi.cpp +++ b/src/api/baseapi.cpp @@ -2374,7 +2374,7 @@ int TessBaseAPI::NumDawgs() const { return tesseract_ == nullptr ? 0 : tesseract_->getDict().NumDawgs(); } -/** Escape a char string - remove <>&"' with HTML codes. */ +/** Escape a char string - replace <>&"' with HTML codes. */ std::string HOcrEscape(const char *text) { std::string ret; const char *ptr; From 2b375fc3d6a54ae6436c91ba0cfad943ee5f291d Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Mon, 7 Aug 2023 17:59:24 +0200 Subject: [PATCH 11/30] Fix comment for function UNICHARSET::set_black_and_whitelist Signed-off-by: Stefan Weil --- src/ccutil/unicharset.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ccutil/unicharset.cpp b/src/ccutil/unicharset.cpp index 828c5285ee..7ac232a770 100644 --- a/src/ccutil/unicharset.cpp +++ b/src/ccutil/unicharset.cpp @@ -1000,7 +1000,7 @@ bool UNICHARSET::major_right_to_left() const { // Set a whitelist and/or blacklist of characters to recognize. // An empty or nullptr whitelist enables everything (minus any blacklist). // An empty or nullptr blacklist disables nothing. -// An empty or nullptr blacklist has no effect. +// An empty or nullptr unblacklist has no effect. void UNICHARSET::set_black_and_whitelist(const char *blacklist, const char *whitelist, const char *unblacklist) { From 3852f4c8f6dec30211ee4f6c9cc5ae5ef82907cd Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Mon, 7 Aug 2023 19:03:47 +0200 Subject: [PATCH 12/30] Optimize function ImageFind::FindImages Signed-off-by: Stefan Weil --- src/textord/imagefind.cpp | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/textord/imagefind.cpp b/src/textord/imagefind.cpp index 4fdcced96f..acf868f177 100644 --- a/src/textord/imagefind.cpp +++ b/src/textord/imagefind.cpp @@ -250,9 +250,14 @@ static void ConnCompAndRectangularize(Image pix, DebugPixa *pixa_debug, Boxa **b // If not nullptr, it must be PixDestroyed by the caller. // If textord_tabfind_show_images, debug images are appended to pixa_debug. Image ImageFind::FindImages(Image pix, DebugPixa *pixa_debug) { + auto width = pixGetWidth(pix); + auto height = pixGetHeight(pix); // Not worth looking at small images. - if (pixGetWidth(pix) < kMinImageFindSize || pixGetHeight(pix) < kMinImageFindSize) { - return pixCreate(pixGetWidth(pix), pixGetHeight(pix), 1); + // Leptonica will print an error message and return nullptr if we call + // pixGenHalftoneMask(pixr, nullptr, ...) with width or height < 100 + // for the reduced image, so we want to bypass that, too. + if (width / 2 < kMinImageFindSize || height / 2 < kMinImageFindSize) { + return pixCreate(width, height, 1); } // Reduce by factor 2. @@ -262,15 +267,6 @@ Image ImageFind::FindImages(Image pix, DebugPixa *pixa_debug) { } // Get the halftone mask directly from Leptonica. - // - // Leptonica will print an error message and return nullptr if we call - // pixGenHalftoneMask(pixr, nullptr, ...) with too small image, so we - // want to bypass that. - if (pixGetWidth(pixr) < kMinImageFindSize || pixGetHeight(pixr) < kMinImageFindSize) { - pixr.destroy(); - return pixCreate(pixGetWidth(pix), pixGetHeight(pix), 1); - } - // Get the halftone mask. l_int32 ht_found = 0; Pixa *pixadb = (textord_tabfind_show_images && pixa_debug != nullptr) ? pixaCreate(0) : nullptr; Image pixht2 = pixGenerateHalftoneMask(pixr, nullptr, &ht_found, pixadb); @@ -287,7 +283,7 @@ Image ImageFind::FindImages(Image pix, DebugPixa *pixa_debug) { pixht2.destroy(); } if (pixht2 == nullptr) { - return pixCreate(pixGetWidth(pix), pixGetHeight(pix), 1); + return pixCreate(width, height, 1); } // Expand back up again. @@ -334,7 +330,7 @@ Image ImageFind::FindImages(Image pix, DebugPixa *pixa_debug) { pixa_debug->AddPix(pixht, "FinalMask"); } // Make the result image the same size as the input. - Image result = pixCreate(pixGetWidth(pix), pixGetHeight(pix), 1); + Image result = pixCreate(width, height, 1); result |= pixht; pixht.destroy(); return result; From 7c7498c327b02b0dd7c0ba024523a9a37b98d94c Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Fri, 20 Aug 2021 07:31:53 +0200 Subject: [PATCH 13/30] Rename BibTex file to please GitHub Signed-off-by: Stefan Weil --- doc/tesseract.bib => CITATIONS.bib | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename doc/tesseract.bib => CITATIONS.bib (100%) diff --git a/doc/tesseract.bib b/CITATIONS.bib similarity index 100% rename from doc/tesseract.bib rename to CITATIONS.bib From fa50115efcccc1d2e9717fda27959e4bf2c8cc58 Mon Sep 17 00:00:00 2001 From: Kevin Unger Date: Wed, 16 Aug 2023 12:55:28 +0200 Subject: [PATCH 14/30] fix citation links --- CITATIONS.bib | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CITATIONS.bib b/CITATIONS.bib index f13f0ef28f..b13f2bc2df 100644 --- a/CITATIONS.bib +++ b/CITATIONS.bib @@ -20,7 +20,7 @@ @inproceedings{Multilingual publisher = {ACM}, series = {ACM International Conference Proceeding Series}, title = {Adapting the Tesseract Open Source OCR Engine for Multilingual OCR.}, - url = {http://www.google.de/research/pubs/archive/35248.pdf}, + url = {https://storage.googleapis.com/pub-tools-public-publication-data/pdf/35248.pdf}, year = 2009, isbn = {978-1-60558-698-4}, date = {2009-07-25} @@ -33,7 +33,7 @@ @inproceedings{ScriptDetect title = {Combined Orientation and Script Detection using the Tesseract OCR Engine}, booktitle = {MOCR '09: Proceedings of the International Workshop on Multilingual OCR}, editor = {Venu Govindaraju and Premkumar Natarajan and Santanu Chaudhury and Daniel P. Lopresti}, - url = {http://www.google.de/research/pubs/archive/35506.pdf} + url = {https://storage.googleapis.com/pub-tools-public-publication-data/pdf/35506.pdf} year = {2009}, isbn = {978-1-60558-698-4}, pages = {1--7}, @@ -47,7 +47,7 @@ @inproceedings{PageLayout author = {Ray Smith}, title = {Hybrid Page Layout Analysis via Tab-Stop Detection}, booktitle = {ICDAR '09: Proceedings of the 2009 10th International Conference on Document Analysis and Recognition}, - url = {http://www.google.de/research/pubs/archive/35094.pdf} + url = {https://storage.googleapis.com/pub-tools-public-publication-data/pdf/35094.pdf} year = {2009}, isbn = {978-0-7695-3725-2}, pages = {241--245}, @@ -60,7 +60,7 @@ @inproceedings{TessOverview author = {Ray Smith}, title = {An Overview of the Tesseract OCR Engine}, booktitle = {ICDAR '07: Proceedings of the Ninth International Conference on Document Analysis and Recognition}, - url = {http://www.google.de/research/pubs/archive/33418.pdf} + url = {https://storage.googleapis.com/pub-tools-public-publication-data/pdf/33418.pdf} year = {2007}, isbn = {0-7695-2822-8}, pages = {629--633}, From 8b4284d28bc5fb04afd744bbadbe10ffc3c79040 Mon Sep 17 00:00:00 2001 From: Kevin Unger Date: Wed, 16 Aug 2023 13:32:52 +0200 Subject: [PATCH 15/30] add missing commas --- CITATIONS.bib | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/CITATIONS.bib b/CITATIONS.bib index b13f2bc2df..8f9cc79a64 100644 --- a/CITATIONS.bib +++ b/CITATIONS.bib @@ -23,8 +23,8 @@ @inproceedings{Multilingual url = {https://storage.googleapis.com/pub-tools-public-publication-data/pdf/35248.pdf}, year = 2009, isbn = {978-1-60558-698-4}, - date = {2009-07-25} - doi = {http://doi.acm.org/10/1145/1577802.1577804} + date = {2009-07-25}, + doi = {http://doi.acm.org/10/1145/1577802.1577804}, location = {Barcelona, Spain}, } @@ -33,7 +33,7 @@ @inproceedings{ScriptDetect title = {Combined Orientation and Script Detection using the Tesseract OCR Engine}, booktitle = {MOCR '09: Proceedings of the International Workshop on Multilingual OCR}, editor = {Venu Govindaraju and Premkumar Natarajan and Santanu Chaudhury and Daniel P. Lopresti}, - url = {https://storage.googleapis.com/pub-tools-public-publication-data/pdf/35506.pdf} + url = {https://storage.googleapis.com/pub-tools-public-publication-data/pdf/35506.pdf}, year = {2009}, isbn = {978-1-60558-698-4}, pages = {1--7}, @@ -47,7 +47,7 @@ @inproceedings{PageLayout author = {Ray Smith}, title = {Hybrid Page Layout Analysis via Tab-Stop Detection}, booktitle = {ICDAR '09: Proceedings of the 2009 10th International Conference on Document Analysis and Recognition}, - url = {https://storage.googleapis.com/pub-tools-public-publication-data/pdf/35094.pdf} + url = {https://storage.googleapis.com/pub-tools-public-publication-data/pdf/35094.pdf}, year = {2009}, isbn = {978-0-7695-3725-2}, pages = {241--245}, @@ -60,10 +60,11 @@ @inproceedings{TessOverview author = {Ray Smith}, title = {An Overview of the Tesseract OCR Engine}, booktitle = {ICDAR '07: Proceedings of the Ninth International Conference on Document Analysis and Recognition}, - url = {https://storage.googleapis.com/pub-tools-public-publication-data/pdf/33418.pdf} + url = {https://storage.googleapis.com/pub-tools-public-publication-data/pdf/33418.pdf}, year = {2007}, isbn = {0-7695-2822-8}, pages = {629--633}, publisher = {IEEE Computer Society}, address = {Washington, DC, USA}, } + From 544dff4423604abc4f9f1ce129e0231760098c9d Mon Sep 17 00:00:00 2001 From: zdenop Date: Wed, 30 Aug 2023 13:38:52 +0200 Subject: [PATCH 16/30] fix typos --- src/api/baseapi.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/api/baseapi.cpp b/src/api/baseapi.cpp index 2c3f8f6d5c..0823fd3aff 100644 --- a/src/api/baseapi.cpp +++ b/src/api/baseapi.cpp @@ -103,7 +103,7 @@ static STRING_VAR(document_title, "", "Title of output document (used for hOCR a static INT_VAR(curl_timeout, 0, "Timeout for curl in seconds"); #endif -/** Minimum sensible image size to be worth running tesseract. */ +/** Minimum sensible image size to be worth running Tesseract. */ const int kMinRectSize = 10; /** Character returned when Tesseract couldn't recognize as anything. */ const char kTesseractReject = '~'; @@ -613,7 +613,7 @@ void TessBaseAPI::SetImage(Pix *pix) { /** * Restrict recognition to a sub-rectangle of the image. Call after SetImage. - * Each SetRectangle clears the recogntion results so multiple rectangles + * Each SetRectangle clears the recognition results so multiple rectangles * can be recognized with the same image. */ void TessBaseAPI::SetRectangle(int left, int top, int width, int height) { From 74fa1c5bbf9f6771afb93491faa379cb78852452 Mon Sep 17 00:00:00 2001 From: Amit D Date: Tue, 5 Sep 2023 19:27:26 +0300 Subject: [PATCH 17/30] Update cmake.yml --- .github/workflows/cmake.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 1f49b6e091..5e6750e049 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -19,13 +19,9 @@ jobs: - { name: macos-11-clang-13-cmake, os: macos-11, cxx: clang++ } # default - { name: macos-11-gcc-12-cmake, os: macos-11, cxx: g++-12 } #installed - - { name: macos-11-gcc-11-cmake, os: macos-11, cxx: g++-11 } #installed + - { name: ubuntu-22.04-clang-15-cmake, os: ubuntu-22.04, cxx: clang++-15 } #installed - { name: ubuntu-22.04-clang-14-cmake, os: ubuntu-22.04, cxx: clang++-14 } #installed - - { name: ubuntu-22.04-clang-13-cmake, os: ubuntu-22.04, cxx: clang++-13 } #installed - - { name: ubuntu-20.04-clang-12-cmake, os: ubuntu-20.04, cxx: clang++-12 } #installed - - { name: ubuntu-20.04-clang-11-cmake, os: ubuntu-20.04, cxx: clang++-11 } #installed - - { name: ubuntu-20.04-clang-10-cmake, os: ubuntu-20.04, cxx: clang++-10 } #installed - { name: ubuntu-22.04-gcc-12-cmake, os: ubuntu-22.04, cxx: g++-12 } #installed - { name: ubuntu-22.04-gcc-11-cmake, os: ubuntu-22.04, cxx: g++-11 } #installed From 84318ed355d35400b5b79f484f3b146594c3d5d9 Mon Sep 17 00:00:00 2001 From: Amit D Date: Tue, 5 Sep 2023 19:40:33 +0300 Subject: [PATCH 18/30] Update autotools.yml --- .github/workflows/autotools.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/autotools.yml b/.github/workflows/autotools.yml index 846221c0bf..418287e697 100644 --- a/.github/workflows/autotools.yml +++ b/.github/workflows/autotools.yml @@ -13,11 +13,8 @@ jobs: fail-fast: false matrix: config: - - { name: ubuntu-22.04-clang-14-autotools, os: ubuntu-22.04, cxx: clang++-14 } - - { name: ubuntu-22.04-clang-13-autotools, os: ubuntu-22.04, cxx: clang++-13 } #installed - - { name: ubuntu-22.04-clang-12-autotools, os: ubuntu-22.04, cxx: clang++-12 } #installed - - { name: ubuntu-20.04-clang-11-autotools, os: ubuntu-20.04, cxx: clang++-11 } #installed - - { name: ubuntu-20.04-clang-10-autotools, os: ubuntu-20.04, cxx: clang++-10 } #installed + - { name: ubuntu-22.04-clang-15-autotools, os: ubuntu-22.04, cxx: clang++-15 } + - { name: ubuntu-22.04-clang-14-autotools, os: ubuntu-22.04, cxx: clang++-14 } #installed - { name: ubuntu-22.04-gcc-12-autotools, os: ubuntu-22.04, cxx: g++-12 } #installed - { name: ubuntu-22.04-gcc-11-autotools, os: ubuntu-22.04, cxx: g++-11 } #installed From 566f97a29a4afd8a2b81808080fc1402f82e67e8 Mon Sep 17 00:00:00 2001 From: Amit D Date: Mon, 11 Sep 2023 23:08:47 +0300 Subject: [PATCH 19/30] sw.yml: Remove Ubuntu 20.04 SW is broken with the default compiler of Ubuntu 20.04. --- .github/workflows/sw.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sw.yml b/.github/workflows/sw.yml index 1d735d1448..89d410948a 100644 --- a/.github/workflows/sw.yml +++ b/.github/workflows/sw.yml @@ -25,7 +25,7 @@ jobs: strategy: fail-fast: false matrix: - os: [windows-2022, ubuntu-22.04, ubuntu-20.04, macos-12] + os: [windows-2022, ubuntu-22.04, macos-12] steps: - uses: actions/checkout@v3 From 39222a00e9232033c9eccd60a1168ad831ac6d8c Mon Sep 17 00:00:00 2001 From: "R. Savchenko" Date: Wed, 13 Sep 2023 11:01:46 +0200 Subject: [PATCH 20/30] initDSProfile: correct std::vector usage (#4124) Co-authored-by: Roman Savchenko --- src/opencl/openclwrapper.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/opencl/openclwrapper.cpp b/src/opencl/openclwrapper.cpp index 15c477cbc9..8377d402e4 100644 --- a/src/opencl/openclwrapper.cpp +++ b/src/opencl/openclwrapper.cpp @@ -174,8 +174,8 @@ static ds_status initDSProfile(ds_profile **p, const char *version) { clGetPlatformIDs(0, nullptr, &numPlatforms); if (numPlatforms > 0) { - platforms.reserve(numPlatforms); - clGetPlatformIDs(numPlatforms, &platforms[0], nullptr); + platforms.resize(numPlatforms); + clGetPlatformIDs(numPlatforms, platforms.data(), nullptr); } numDevices = 0; @@ -186,12 +186,11 @@ static ds_status initDSProfile(ds_profile **p, const char *version) { } if (numDevices > 0) { - devices.reserve(numDevices); + devices.resize(numDevices); } profile->numDevices = numDevices + 1; // +1 to numDevices to include the native CPU - profile->devices.reserve(profile->numDevices); - memset(&profile->devices[0], 0, profile->numDevices * sizeof(ds_device)); + profile->devices.resize(profile->numDevices); next = 0; for (i = 0; i < numPlatforms; i++) { From 7e0c1d708bfb81d119f9cfff5750a2a278f3f9c0 Mon Sep 17 00:00:00 2001 From: Ikko Eltociear Ashimine Date: Sun, 1 Oct 2023 00:27:07 +0900 Subject: [PATCH 21/30] Fix typo in stepblob.h repostion -> reposition --- src/ccstruct/stepblob.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ccstruct/stepblob.h b/src/ccstruct/stepblob.h index 08aa8a4a0b..31d267104c 100644 --- a/src/ccstruct/stepblob.h +++ b/src/ccstruct/stepblob.h @@ -78,7 +78,7 @@ class TESS_API C_BLOB : public ELIST_LINK { int32_t count_transitions( // count maxima int32_t threshold); // size threshold - void move(const ICOORD vec); // repostion blob by vector + void move(const ICOORD vec); // reposition blob by vector void rotate(const FCOORD &rotation); // Rotate by given vector. // Adds sub-pixel resolution EdgeOffsets for the outlines using greyscale From 063ad31a6018af928816ead25ffbb7584f667d22 Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Wed, 4 Oct 2023 14:57:54 +0200 Subject: [PATCH 22/30] Fix regression in layout detection since 5.0.0 (fixes issue #4014) "auto" resulted in unsigned numbers, but htext_score and vtest_score can be negative. Fixes: 842cca1d49617dd8 ("Fix more signed/unsigned compiler warnings") Signed-off-by: Stefan Weil --- src/textord/colpartitiongrid.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/textord/colpartitiongrid.cpp b/src/textord/colpartitiongrid.cpp index f2a842bb4e..40462d6c20 100644 --- a/src/textord/colpartitiongrid.cpp +++ b/src/textord/colpartitiongrid.cpp @@ -1609,10 +1609,10 @@ BlobRegionType ColPartitionGrid::SmoothInOneDirection( } // See if we have a decision yet. auto image_count = counts[NPT_IMAGE]; - auto htext_score = counts[NPT_HTEXT] + counts[NPT_WEAK_HTEXT] - - (image_count + counts[NPT_WEAK_VTEXT]); - auto vtext_score = counts[NPT_VTEXT] + counts[NPT_WEAK_VTEXT] - - (image_count + counts[NPT_WEAK_HTEXT]); + int htext_score = counts[NPT_HTEXT] + counts[NPT_WEAK_HTEXT] - + (image_count + counts[NPT_WEAK_VTEXT]); + int vtext_score = counts[NPT_VTEXT] + counts[NPT_WEAK_VTEXT] - + (image_count + counts[NPT_WEAK_HTEXT]); if (image_count > 0 && image_bias - htext_score >= kSmoothDecisionMargin && image_bias - vtext_score >= kSmoothDecisionMargin) { *best_distance = dists[NPT_IMAGE][0]; From 195045e602c6856ca03bde2460495fb891df58b3 Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Thu, 5 Oct 2023 12:28:18 +0200 Subject: [PATCH 23/30] Update test submodule Signed-off-by: Stefan Weil --- test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test b/test index 3ea1099664..2761899921 160000 --- a/test +++ b/test @@ -1 +1 @@ -Subproject commit 3ea1099664211958cb5c66c2bc69fb6652254a37 +Subproject commit 2761899921c08014cf9dbf3b63592237fb9e6ecb From d26fbab6ce595ef6d12f0bd233daae66b138a093 Mon Sep 17 00:00:00 2001 From: Parryword <101982505+Parryword@users.noreply.github.com> Date: Wed, 19 Jul 2023 18:23:28 +0000 Subject: [PATCH 24/30] Update ScrollView.java typo fixed --- java/com/google/scrollview/ScrollView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com/google/scrollview/ScrollView.java b/java/com/google/scrollview/ScrollView.java index 21f42cd009..cf22c14c3b 100644 --- a/java/com/google/scrollview/ScrollView.java +++ b/java/com/google/scrollview/ScrollView.java @@ -56,7 +56,7 @@ public class ScrollView { /** Prints all received messages to the console if true. */ static boolean debugViewNetworkTraffic = false; - /** Add a new message to the outgoing queue */ + /** Add a new message to the outgoing queue. */ public static void addMessage(SVEvent e) { if (debugViewNetworkTraffic) { System.out.println("(S->c) " + e.toString()); From faa06cc787d3fa8319142870b9adf88982bede3c Mon Sep 17 00:00:00 2001 From: Parryword <101982505+Parryword@users.noreply.github.com> Date: Wed, 19 Jul 2023 19:05:30 +0000 Subject: [PATCH 25/30] Update ScrollView.java merged very short lines --- java/com/google/scrollview/ScrollView.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/java/com/google/scrollview/ScrollView.java b/java/com/google/scrollview/ScrollView.java index cf22c14c3b..fcd06add1d 100644 --- a/java/com/google/scrollview/ScrollView.java +++ b/java/com/google/scrollview/ScrollView.java @@ -390,8 +390,7 @@ public static void main(String[] args) { "UTF8")); } catch (IOException e) { // Something went wrong and we were unable to set up a connection. This is - // pretty - // much a fatal error. + // pretty much a fatal error. // Note: The server does not get restarted automatically if this happens. e.printStackTrace(); System.exit(1); From 834127c52479dd4a64222a29672eefeb6d2241b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yi=C4=9Fit=20Efe=20=C4=B0?= <101982505+Parryword@users.noreply.github.com> Date: Wed, 19 Jul 2023 19:18:58 +0000 Subject: [PATCH 26/30] Update SVEventHandler.java fixed typo --- java/com/google/scrollview/events/SVEventHandler.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/com/google/scrollview/events/SVEventHandler.java b/java/com/google/scrollview/events/SVEventHandler.java index 26a92bdbca..53c7e68f35 100644 --- a/java/com/google/scrollview/events/SVEventHandler.java +++ b/java/com/google/scrollview/events/SVEventHandler.java @@ -36,7 +36,7 @@ * The ScrollViewEventHandler takes care of any events which might happen on the * canvas and converts them to an according SVEvent, which is (using the * processEvent method) then added to a message queue. All events from the - * message queue get sent gradually + * message queue get sent gradually. * * @author wanke@google.com */ @@ -60,7 +60,7 @@ public class SVEventHandler extends PBasicInputEventHandler implements private int lastXMove = 0; private int lastYMove = 0; - /** For Drawing a rubber-band rectangle for selection */ + /** For Drawing a rubber-band rectangle for selection. */ private int startX = 0; private int startY = 0; private float rubberBandTransparency = 0.5f; @@ -274,7 +274,7 @@ public void windowClosing(WindowEvent e) { } } - /** These are all events we do not care about and throw away */ + /** These are all events we do not care about and throw away. */ public void keyReleased(KeyEvent e) { } From 4e3518a1d73f51791c973260b1e81fd5a6c7b62a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yi=C4=9Fit=20Efe=20=C4=B0?= <101982505+Parryword@users.noreply.github.com> Date: Wed, 19 Jul 2023 20:07:40 +0000 Subject: [PATCH 27/30] Update SVImageHandler.java fixed typo --- java/com/google/scrollview/ui/SVImageHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com/google/scrollview/ui/SVImageHandler.java b/java/com/google/scrollview/ui/SVImageHandler.java index ed6b7c0452..981d75a592 100644 --- a/java/com/google/scrollview/ui/SVImageHandler.java +++ b/java/com/google/scrollview/ui/SVImageHandler.java @@ -27,7 +27,7 @@ * @author wanke@google.com */ public class SVImageHandler { - /* All methods are static, so we forbid to construct SVImageHandler objects */ + /* All methods are static, so we forbid to construct SVImageHandler objects. */ private SVImageHandler() { } From dfcd4857259da53251e65e08c1de5777f3a6b945 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yi=C4=9Fit=20Efe=20=C4=B0?= <101982505+Parryword@users.noreply.github.com> Date: Wed, 19 Jul 2023 20:12:59 +0000 Subject: [PATCH 28/30] Update SVPopupMenu.java fixed typo --- java/com/google/scrollview/ui/SVPopupMenu.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/java/com/google/scrollview/ui/SVPopupMenu.java b/java/com/google/scrollview/ui/SVPopupMenu.java index 14c8b3acd3..6584447e59 100644 --- a/java/com/google/scrollview/ui/SVPopupMenu.java +++ b/java/com/google/scrollview/ui/SVPopupMenu.java @@ -56,7 +56,7 @@ public class SVPopupMenu implements ActionListener { * * @param parent The menu we add our new entry to (should have been defined * before). If the parent is "", we will add the entry to the root - * (top-level) + * (top-level). * @param name The caption of the new entry. * @param id The Id of the new entry. If it is -1, the entry will be treated * as a menu. @@ -64,14 +64,14 @@ public class SVPopupMenu implements ActionListener { public void add(String parent, String name, int id) { // A duplicate entry - we just throw it away, since its already in. if (items.get(name) != null) { return; } - // A new submenu at the top-level + // A new submenu at the top-level. if (parent.equals("")) { JMenu jli = new JMenu(name); SVAbstractMenuItem mli = new SVSubMenuItem(name, jli); items.put(name, mli); root.add(jli); } - // A new sub-submenu + // A new sub-submenu. else if (id == -1) { SVAbstractMenuItem jmi = items.get(parent); JMenu jli = new JMenu(name); @@ -101,7 +101,7 @@ else if (id == -1) { * * @param parent The menu we add our new entry to (should have been defined * before). If the parent is "", we will add the entry to the root - * (top-level) + * (top-level). * @param name The caption of the new entry. * @param id The Id of the new entry. If it is -1, the entry will be treated * as a menu. From d366e1e987e62ab6b3e1d71efb7f860d9ef09757 Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Thu, 5 Oct 2023 16:15:47 +0200 Subject: [PATCH 29/30] Fix loading of sublangs (regression) Model files which where defined with tessedit_load_sublangs in another model file where no longer loaded since Tesseract release 5.0.0-rc2. Fixes: 9091055783ac8f03 ("Fix loading of additional model files") Signed-off-by: Stefan Weil --- src/ccmain/tessedit.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ccmain/tessedit.cpp b/src/ccmain/tessedit.cpp index c97ce83c2d..03997beeab 100644 --- a/src/ccmain/tessedit.cpp +++ b/src/ccmain/tessedit.cpp @@ -306,9 +306,10 @@ int Tesseract::init_tesseract(const std::string &arg0, const std::string &textba // Add any languages that this language requires bool loaded_primary = false; // Load the rest into sub_langs_. - // A range based for loop does not work here because langs_to_load + // WARNING: A range based for loop does not work here because langs_to_load // might be changed in the loop when a new submodel is found. - for (auto &lang_to_load : langs_to_load) { + for (size_t lang_index = 0; lang_index < langs_to_load.size(); ++lang_index) { + auto &lang_to_load = langs_to_load[lang_index]; if (!IsStrInList(lang_to_load, langs_not_to_load)) { const char *lang_str = lang_to_load.c_str(); Tesseract *tess_to_init; From e082522c248d3121e466959a8ba4fd4f7ad1a525 Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Thu, 5 Oct 2023 18:18:46 +0200 Subject: [PATCH 30/30] Create new release 5.3.3 Signed-off-by: Stefan Weil --- ChangeLog | 11 ++++++++++- VERSION | 2 +- configure.ac | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f6874014dc..85b4955d64 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2023-10-05 - V5.3.3 +* Small code fixes and improvements to fix Coverity Scan issues. +* Disable -mfpu=neon for aarch64. +* Fix build without git clone in cloned directory (required for FreeBSD). +* Other build fixes for autotools, cmake and sw. +* Fix regression in layout detection which was introduced in release 5.0.0. +* Fix regression which prevented loading of submodels, introduced in release 5.0.0-rc2. +* Other small improvements for code and documentation. + 2023-07-11 - V5.3.2 * Updates for snap package building. * Support for Sgaw and W Pwo Karen languages in the Myanmar validator (#4065). @@ -264,7 +273,7 @@ * Many other fixes, including the way in which the chopper finds chops and messes with the outline while it does so. 2010-11-29 - V3.01 - * Removed old/dead serialise/deserialze methods on *LISTIZED classes. + * Removed old/dead serialise/deserialize methods on *LISTIZED classes. * Total rewrite of DENORM to better encapsulate operation and make for potential to extract features from images. * Thread-safety! Moved all critical global and static variables to members of the appropriate class. Tesseract is now thread-safe (multiple instances can be used in parallel in multiple threads.) with the minor exception that some control parameters are still global and affect all threads. diff --git a/VERSION b/VERSION index 84197c8946..74664af740 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5.3.2 +5.3.3 diff --git a/configure.ac b/configure.ac index 88c8f1a82d..0b38537229 100644 --- a/configure.ac +++ b/configure.ac @@ -29,7 +29,7 @@ AM_INIT_AUTOMAKE([foreign subdir-objects nostdinc]) # Define date of package, etc. Could be useful in auto-generated # documentation. PACKAGE_YEAR=2023 -PACKAGE_DATE="07/11" +PACKAGE_DATE="10/05" abs_top_srcdir=`AS_DIRNAME([$0])`