2023-05-26  Aleksey Chernov  <valexlin@gmail.com>

	* Version 0.9.10 released.
	==========================

	Tag sources with `0.9.10'.

	Mostly improvements in unit tests.

2023-05-26  Aleksey Chernov  <valexlin@gmail.com>

	Warning fixed: type ‘struct cp_stat_t’ violates the C++ One Definition Rule [-Wodr]

	Don't use "Roboto" font in unit tests.

	CMakeLists.txt: separated public and private dependency libraries.

	thirdparty/cmark-gfm/CMakeLists.txt: removed deprecated macro.

	Update README.md: added description of OFFLINE_BUILD_MODE option.

	Added offline build mode for cmake. This mode only affects build of unit tests. This mode uses the GoogleTest library installed in the system.
	The GNU FreeFont fonts must first be copied to the "${CMAKE_BINARY_DIR}/crengine/tests/fonts" folder.

2023-05-24  Aleksey Chernov  <valexlin@gmail.com>

	CMakeLists.txt: added check for the presence of the hb-ft.h file when using the HarfBuzz library.

	Added a test to check the text formatter. This test was originally in cr3wx/src/cr3.cpp

2023-05-22  Aleksey Chernov  <valexlin@gmail.com>

	Added a test to check the property container. This test was originally in cr3wx/src/cr3.cpp

	crengine/tests/tests_docparse.cpp: fixed description of DOCPARSE_REFERENCE_DIR macro

	crengine/src/textlang.h: cleared include section

2023-05-11  Aleksey Chernov  <valexlin@gmail.com>

	Fixed LVDocView::updateScroll(): correct page numbers in `posText`.

	Fixed SIGSEGV in CRDocViewWindow::draw() -> LVDocView::getPageImage() -> LVDocView::checkPos() -> LVDocView::SetPos() -> LVDocView::GetFullHeight() call chain.
	This can happen when opening another document in scroll view mode.


2023-04-23  Aleksey Chernov  <valexlin@gmail.com>

	* Version 0.9.9 released.
	==========================

	Tag sources with `0.9.9'.

	Fixes large images breaking into two parts.

2023-04-23  Aleksey Chernov  <valexlin@gmail.com>

	Increased FORMATTING_VERSION_ID to force reformatting of books that exists in the cache.

	Partial revert changes in the LVFormatter::allocate() function in commit b72cb8d4f77806d0f1e3dacbdecf29c938b7c894.
	This change ends up underscaling to smaller images that are taller than the page size.
	As a result, the PageSplitState::AddLine() function breaks the image into two parts and move part of the image to the next page.


2023-04-19  Aleksey Chernov  <valexlin@gmail.com>

	* Version 0.9.8 released.
	==========================

	Tag sources with `0.9.8'.

	See below for changes.

2023-04-19  Aleksey Chernov  <valexlin@gmail.com>

	Fixed a memory leak related to non-release of fallback fonts.

2023-04-18  Aleksey Chernov  <valexlin@gmail.com>

	The same as 5928641f7d7b9bb514b7b11a221e0d76f84869b6 FreeType fallback fonts: don't reduce number of possible distinct sizes for fallback font. Similar code has been removed from another function.

	Modified local cmark-gfm (thirdparty/cmark-gfm) to be compatible with the crengine-ng build system.

	Update `thirdparty/cmark-gfm` to 0.29.0.gfm.11

	Removed `thirdparty/cmark` from build system

	Removed thirdparty `thirdparty/cmark/`.

	Tune crengine/data/css/markdown.css

2023-04-11  Aleksey Chernov  <valexlin@gmail.com>

	Bump version to 0.9.8-beta3. The version of the library API has been increased, since the prototypes of some public methods have changed (const added).

2023-04-10  Aleksey Chernov  <valexlin@gmail.com>

	Added unittest 'BookmarkGetTitleTests.GetBMTitleInEPUB' for the LVDocView::getBookmarkPosText() function (for epub documents).

2023-04-09  Aleksey Chernov  <valexlin@gmail.com>

	Added unittest 'BookmarkGetTitleTests.GetBMTitleInFB2' for the LVDocView::getBookmarkPosText() function (for fb2 documents).

	ldomNode: added getPrevSibling(), getNextSibling() functions to get the previous or next neighbor.

2023-04-08  Aleksey Chernov  <valexlin@gmail.com>

	Bump GoogleTest to 1.13.0

	Fixed potential buffer overflow in CRFileHistRecord::getLastTimeString()

2023-04-07  Aleksey Chernov  <valexlin@gmail.com>

	LVDocView::getBookmarkPosText() fixed for non-FictionBook documents.

	Update crengine/Tools/qtc-debugger/personaltypes.py: added ldomNode, ldomXPointer decoders. Renamed: personaltypes.py => crengine-ng-dbg-helper.py

	Constify ldomXPointer methods, tinyNodeCollection::getTinyNode(), ldomNode::getXPathSegment().

2023-02-22  Aleksey Chernov  <valexlin@gmail.com>

	crengine/tests: renames files: '^(.*)_tests\.cpp$' -> 'tests_$1\.cpp'

2023-03-18  Aleksey Chernov  <valexlin@gmail.com>

	Bump version to 0.9.8-beta2

	Fixed a bug in LVDocView that prevented navigation history in the Windows version.

	Fixed bug in lString32::rpos() function: wrong character counter direction.

	Add crengine/Tools/qtc-debugger/.gitignore

2023-02-11  Aleksey Chernov  <valexlin@gmail.com>

	Bump version to 0.9.8-beta1

	Update .gitlab-ci.yml: run 'unittests' from '<builddir>/crengine/tests' not '<builddir>'. This is necessary for correct testing of the relative path to absolute conversion functions.

	Fixed tests related to LVGetAbsolutePath() and LVGetCurrentDirectory() functions.

	Tests DocViewFuncsTests.TestGetFileCRC32, DocViewFuncsTests.TestGetFileHash: extended tests for implicitly opening an internal file in an archive.

	Added tests to check the conversion of a relative path to an absolute.

2023-02-09  Aleksey Chernov  <valexlin@gmail.com>

	LVDocView::LoadDocument(): when opening a file, convert the relative name to absolute,  then the full file name will be written to the history log and this will allow  the file to be opened from the history log the next time the client program is started.


2023-02-04  Aleksey Chernov  <valexlin@gmail.com>

	* Version 0.9.7 released.
	==========================

	Tag sources with `0.9.7'.

	  Main changes:
	Generic font families fixes.

	See below for other changes.

2023-02-04  Aleksey Chernov  <valexlin@gmail.com>

	ImportEpubDocument(): removed redundant LVDocViewCallback::OnLoadFileEnd() function call.

	cmake build system: set shared library version to specify API version.

2023-02-03  Aleksey Chernov  <valexlin@gmail.com>

	LVDocView: default stub document: rename 'CoolReader' to 'coolreader-ng'.

	crengine/Tools/qtc-debugger/personaltypes.py added: Qt Creator debugger helper (decoder for lString8, lString16, lString32).

2023-02-01  Aleksey Chernov  <valexlin@gmail.com>

	Update _clang_format.sh: fix "grep: warning: stray \ before /"

	LVDocView: added setSharedHistory() function. To use one CRFileHist with multiple LVDocView instances.

2023-01-30  Aleksey Chernov  <valexlin@gmail.com>

	crengine/src/lvstsheet.cpp: css parsing changed: when generic font family is found, it is replaced with a real font specified in the settings of generic font families.

	crengine/src/lvdocview.cpp: default css style: specific fonts removed, only generic font families left.

	Update crengine/data/css/*.css: extended the list of monospace fonts for elements that use them ('<pre>', '<code>', etc). Also added a declaration for these elements, which will allow the frontend to override the font used ('$pre.all', etc).


2023-01-22  Aleksey Chernov  <valexlin@gmail.com>

	* Version 0.9.6 released.
	==========================

	Tag sources with `0.9.6'.

	  Main changes:
	When getting a font based on a node style, do not add the generic font family font
	to the style's font list. Instead, first obtain a font instance based on the node's
	style font list only, then only if the required font is not obtained, request the
	font of the generic font family.
	Prior to this, if you try to get a font with an italic style when there is no such
	font variant, instead of using synthetic italic, the generic font family will be
	selected if it has an italic variant.


2023-01-19  Aleksey Chernov  <valexlin@gmail.com>

	* Version 0.9.5 released.
	==========================

	Tag sources with `0.9.5'.

	  Main changes:
	Added new global properties: PROP_GENERIC_*_FONT_FACE to specify generic font family faces:
	PROP_GENERIC_SERIF_FONT_FACE - to specify Serif font
	PROP_GENERIC_SANS_SERIF_FONT_FACE - to specify Sans Serif font
	PROP_GENERIC_CURSIVE_FONT_FACE - to specify Cursive font
	PROP_GENERIC_FANTASY_FONT_FACE - to specify Fantasy font
	PROP_GENERIC_MONOSPACE_FONT_FACE - to specify Monospace font

	This implements generic font family for the 'font-family' CSS attribute.

	See below for other changes.

2023-01-19  Aleksey Chernov  <valexlin@gmail.com>

	Update crengine/src/mdfmt.cpp: compilation warnings fixed.

	LVFreeTypeFontManager::checkFontLangCompat() function fixed: memory leak & optimisation.

	Added unit tests to check the getFaceListFiltered() and checkFontLangCompat() functions of the LVFontManager class.

	LVFontDef: copy-past typo fixed.

	LVFontManager: a new getFaceListFiltered() function has been added to get a list of fonts filtered by font family and optionally by language.

2023-01-17  Aleksey Chernov  <valexlin@gmail.com>

	Added unit test to check rendering using generic font families.

2023-01-16  Aleksey Chernov  <valexlin@gmail.com>

	Added new global properties: PROP_GENERIC_*_FONT_FACE to specify generic font family faces.

2023-01-05  Aleksey Chernov  <valexlin@gmail.com>

	Update README.md: update supported formats

2023-01-01  Aleksey Chernov  <valexlin@gmail.com>

	ImportMarkdownDocument(): set document title & build TOC only after successfull html parsing.

	Compile warnings/errors fixed: `strcasecmp` missing prototype.

2022-12-31  Aleksey Chernov  <valexlin@gmail.com>

	Win32 fixes

2022-12-30  Aleksey Chernov  <valexlin@gmail.com>

	LVDocView::ParseDocument(): asan: use-after-free fixed


2022-12-31  Aleksey Chernov  <valexlin@gmail.com>

	* Version 0.9.4 released.
	==========================

	Tag sources with `0.9.4'.

	  Main changes:
	* Markdown rendering is implemented using the cmark or cmark-gfm library.
	  To select an implementation, use either the USE_CMARK or USE_CMARK_GFM cmake option.
	  USE_CMARK to use the built-in cmark (https://github.com/commonmark/cmark),
	  USE_CMARK_GFM to use the built-in cmark-gfm (https://github.com/github/cmark-gfm).
	* An old memory leak in the implementation of hash tables has been found and fixed.
	* allowed to open '*.fb3', '*.epub', '*.doc', '*.docx', '*.odt' inside zip archives.

	See below for other changes.

2022-12-31  Aleksey Chernov  <valexlin@gmail.com>

	LVHashTable::iterator: memory leak fixed

2022-12-31  Aleksey Chernov  <valexlin@gmail.com>

	Markdown support: use 'markdown.css' instead of 'htm.css', set document title by filename.

2022-12-30  Aleksey Chernov  <valexlin@gmail.com>

	Markdown rendering: allow to use either cmark or cmark-gfm

	Add local cmark-gfm (thirdparty/cmark-gfm) to build system.

	Markdown rendering implemented using cmark library.

	Add local cmark (thirdparty/cmark) to build system.

	Added new thirdparty 'cmark-gfm'. cmark-gfm is an extended version of the C reference implementation of CommonMark, a rationalized version of Markdown syntax with a spec. Origin: https://github.com/github/cmark-gfm Last commit: Thu 27 Oct 2022 13:36:03 AWST

	Added new thirdparty 'cmark'. 'cmark' is the C reference implementation of CommonMark, a rationalized version of Markdown syntax with a spec. Origin: https://github.com/commonmark/cmark.git Last commit: Thu Nov 3 08:57:23 2022 -0700

2022-12-27  Aleksey Chernov  <valexlin@gmail.com>

	Update crengine/src/lvstring.cpp: clang compatibility

2022-12-27  Aleksey Chernov  <valexlin@gmail.com>

	LVDocView::loadDocumentInt(): allow to open '*.fb3', '*.epub', '*.doc', '*.docx', '*.odt' inside zip-archives.


2022-12-25  Aleksey Chernov  <valexlin@gmail.com>

	* Version 0.9.3 released.
	==========================

	Tag sources with `0.9.3'.

	  Main changes:
	* Update epub.css: allows you to display footnotes in epub documents at the bottom of the page.
	* Fixed sizing of float/inline-block image containers.
	* Fixed history navigation: clear history navigation tail when saving new position not at end; incorrect forward posistions count.

	See below for other changes.

2022-12-24  Aleksey Chernov  <valexlin@gmail.com>

	Export bookmarks to file: change "Cool Reader 3" signature to "crengine-ng".

	LVDocView::goBack(): Improving code readability; Fixed comments for some functions.

	Fix lString32Collection::erase(): incorrect index out of bounds check

	Fix ldomNavigationHistory: clear history navigation tail when saving new position not at end; incorrect forward posistions count.

2022-03-12  poire-z  <poire-z@users.noreply.github.com>

	Fix sizing of float/inline-block image containers
	(cherry-picked from https://github.com/koreader/crengine/pull/467)


2022-12-18  Aleksey Chernov  <valexlin@gmail.com>

	* Version 0.9.2 released.
	==========================

	Tag sources with `0.9.2'.

	  Main changes:
	*  Added crengine/data/hyph/hyph-fr.pattern: French hyphenation patterns


2022-12-18  Aleksey Chernov  <valexlin@gmail.com>

	* Version 0.9.1 released.
	==========================

	Tag sources with `0.9.1'.

	  Main changes:
	* Following the change to the wording of the CoolReader license, we are also changing the wording of the license to clearly "GPLv2 or later".
	* Minor fixes: SEGFAULTS, optimizations...
	* Refactoring
	* Updated hyphenation dictionaries for most popular languages & also for some other languages. Now we only have GPL compliant dictionaries.
	* Format of hyphenation dictionaries has been updated: added properties 'title', 'lang', 'lefthyphenmin', 'righthyphenmin' to eliminate hardcoding this data in sources.
	* Added crengine/Tools/HyphConv/mkpattern.pl: convert TeX hyphenation patterns to xml format.
	* Added calculation and assignment of SHA256, just like CRC32 for document contents (optional).
	* LVDocView: added getAvgTextLineHeight() functions to retrieve the average height of a line of text.
	* Other fixes

	See below for other changes.

2022-12-17  Aleksey Chernov  <valexlin@gmail.com>

	ldomDocument default style: use text color and background color from document properties instead of black and white. This fixes incorrect colors for mathml elements with non-standard color settings.

2022-12-16  Aleksey Chernov  <valexlin@gmail.com>

	Revert part of "Allow for increasing unpacked cache size (and warn when reached)" Only 'storage max uncompressed size factor' stuff reverted.

	Revert "Use factor also in the other tinyNodeCollection constructor (#104)"

	FreeType fallback fonts: don't reduce number of possible distinct sizes for fallback font.

	crengine/src/lvtinydom/lvtinydomutils.cpp: removed unused/obsolete/outdated stuff.

	`struct ldomNodeHandle` moved into `struct ldomNode` as inner

	LVGammaCorrection::getIndex(): set default/initial value for `index` to `LVGammaCorrection::NoCorrectionIndex`


	Typo fixed in fb3fmt: geImageTarget() -> getImageTarget()

	Update source file header in crengine/tests/: use the standard GPLv2+ header.

	Update crengine/_clang_format.sh: allow to specify clang-format executable in config file, header added with license information.

	Update AUTHORS: using crengine/Tools/getauthors/collect_authors.pl

	Added script crengine/Tools/getauthors/collect_authors.pl to parse sources files & extract authors.

	The engine has been adapted for the new hyphenation dictionaries.

2022-12-15  Aleksey Chernov  <valexlin@gmail.com>

	Added hyphenation dictionaries for most popular languages & also for some other languages. Added special 'hyph-ru-ru,en-us.pattern' hyphenation dictionary - a union of hyphenation dictionaries for 'ru-RU' and 'en-US' languages. Only dictionaries compliant with GPL was added.

	Update crengine/Tools/HyphConv/mkpattern.pl: fixes, improvements... Added crengine/Tools/HyphConv/mkpattern_dic.pl: text (.dic) hyphenation file converter

	LVFontBoldTransform::getTextWidth(): replace magic const 2048 with MAX_LINE_WIDTH.

	Update crengine/src/lvfont/lvfreetypeface.cpp: 'static lUInt16 char_flags[]' -> 'static const lUInt16 char_flags[]'

	Since `LVCreateFontTransform()` function implementation is lost, declaration of this function also removed.

	Removed unnecessary/obsolete files.

	Update source file header in crengine/Tools/*/: use the standard GPLv2+ header. File authors reconstructed.

	Update source file header in crengine/src/private/: use the standard GPLv2+ header. File authors reconstructed.

	Update source file headers in crengine/src/lvxml/: use the standard GPLv2+ header. File authors reconstructed.

	Update source file headers in crengine/src/lvtinydom/: use the standard GPLv2+ header. File authors reconstructed.

	Update source file headers in crengine/src/lvstream/: use the standard GPLv2+ header. File authors reconstructed.

	Update source file headers in crengine/src/lvimg/: use the standard GPLv2+ header. File authors reconstructed.

	Update source file headers in crengine/src/lvfont/: use the standard GPLv2+ header. File authors reconstructed.

	Update source file headers in crengine/src/lvdrawbuf/: use the standard GPLv2+ header. File authors reconstructed.

	Update crengine/src/locale_data/*/*: Added copyright & license information. crengine/include/fc-lang-data.h: update source URL crengine/src/locale_data/fc-lang-data.c: Update source URL

2022-12-14  Aleksey Chernov  <valexlin@gmail.com>

	Update source file headers in crengine/src/: use the standard GPLv2+ header. File authors reconstructed. mathml_operators.h inherits from its source MPL-2.0.

	Update source file headers in crengine/include/: use the standard GPLv2+ header. File authors reconstructed.

2022-12-13  Aleksey Chernov  <valexlin@gmail.com>

	With the permission of the authors of the CoolReader project, the wording of the license has been changed to a clear "GPLv2 or later" Also updated info about embedded third party components.

2022-09-20  Aleksey Chernov  <valexlin@gmail.com>

	Unit tests updated for new hyphenation dictionaries.

	Updated hardcoded hyphenation dictionaries names in the engine.

2022-09-18  Aleksey Chernov  <valexlin@gmail.com>

	Added a unit test for the HyphMan::getHyphMethodForLang() function.

2022-09-17  Aleksey Chernov  <valexlin@gmail.com>

	Speeded up scanning of a directory with hyphenation dictionaries, as a result, the program starts faster. HyphMethod class refactoring: getSize() method removed, getCount() method renamed to getPatternsCount().

2022-09-17  Aleksey Chernov  <valexlin@gmail.com>

	getHyphMethodForLang() method moved from TextLangMan class to HyphMan class.

2022-08-23  Aleksey Chernov  <valexlin@gmail.com>

	Unittests build error fixed when building shared crengine-ng only.

2022-08-23  Aleksey Chernov  <valexlin@gmail.com>

	* LVDocView:loadDocument(), loadDocumentInt(): start calculating CRC32 and SHA256 only after calling LVDocViewCallback::OnLoadFileStart(), since these operations are not fast. * LVDocView:loadDocument(): removed redundant m_doc_props reassignment.

2022-08-19  Aleksey Chernov  <valexlin@gmail.com>

	cmake project: DEBUG_EXTRA_FLAGS (for clang): add "-fsanitize=undefined", "-fstack-check" bring back

2022-08-17  Aleksey Chernov  <valexlin@gmail.com>

	cmake project: DEBUG_EXTRA_FLAGS (for gcc): "-fstack-check" replaced by "-fstack-clash-protection"

2022-08-17  Aleksey Chernov  <valexlin@gmail.com>

	GitLab CI: added unittests in release build configuration, debug builds compiled with asan.

2022-08-16  Aleksey Chernov  <valexlin@gmail.com>

	src/lvtinydom/lvtinydomutils.cpp: updated comment about keyword separator in extractDocKeywords()

	Because the book's metadata is cached, and the hash sum has been added to that metadata, we must update the cache file format version so that the cache is regenerated.

2022-08-15  Aleksey Chernov  <valexlin@gmail.com>

	unittests: added tests for LVDocView::getFileCRC32() & LVDocView::getFileHash() functions.

	Added calculation and assignment of SHA256, just like CRC32. Also, cached CRC32 and SHA256 are reset when writing to the stream.

2022-08-14  Aleksey Chernov  <valexlin@gmail.com>

	Update CMakeLists.txt in 'Tools' subdirectory to always use crengine-ng library instead of separate source files.

2022-08-14  Aleksey Chernov  <valexlin@gmail.com>

	Add thirdparty/rfc6234-shas/ to build system.

	Added RFC6234 with sources as thirdparty/rfc6234-shas/. All source code is a direct copy of RFC6234 snippets without any modifications. The source code in this RFC is distributed under the terms of the BSD-3-Clause license.

2022-07-31  Aleksey Chernov  <valexlin@gmail.com>

	crhyphman.cpp: HyphDictionaryList::addDefault() fixed: use a different `langTag` for different special algorithms.

2022-07-31  Aleksey Chernov  <valexlin@gmail.com>

	textlang.cpp: removed LANG_STARTS_WITH*** macros for better code readability.

2022-07-30  Aleksey Chernov  <valexlin@gmail.com>

	Added unit tests for TextLangMan::getTextLangCfg() and TextLangMan::setMainLang().

	Removed the `_hyph_dict_table` static variable from textlang.cpp, which actually duplicates the hyphenation data in the 'crengine/data/hyph/' directory. Instead, a directory with hyphenation dictionaries is scanned to obtain this data. As an alternative to this mechanism, language-specific hyphenation dictionary definitions can be manually added using the `HyphMan::addDictionaryItem()` function.

2022-07-24  Aleksey Chernov  <valexlin@gmail.com>

	Page header rendering is tuned for HiDPI screens. Also fixed the overlay of the page text on the page header with a zero top margin.

2022-07-16  Aleksey Chernov  <valexlin@gmail.com>

	LVDocView::propsApply(): copy-past issue fixed: PROP_HIGHLIGHT_BOOKMARK_COLOR_COMMENT -> PROP_HIGHLIGHT_BOOKMARK_COLOR_CORRECTION

2022-07-15  Aleksey Chernov  <valexlin@gmail.com>

	Removed unused/obsolete setting options. Also removed are options that are related/used in the client and not in the engine.

2022-07-10  Aleksey Chernov  <valexlin@gmail.com>

	Added unit test for HyphMan::overrideLeftHyphenMin() & HyphMan::overrideRightHyphenMin() functions.

2022-07-09  Aleksey Chernov  <valexlin@gmail.com>

	Removed left & right hyphenmins arguments from HyphMan::getHyphMethodForDictionary(), HyphMethod::HyphMethod(), TexHyph::TexHyph() since its's not needed anymore. HyphMan class refactored: HyphMan::setLeftHyphenMin() (and `right` too) method renamed to HyphMan::overrideLeftHyphenMin(), HyphMan::getLeftHyphenMin() (and `right` too) to HyphMan::getOverriddenLeftHyphenMin().

	textlang.cpp: removed `left_hyphen_min`, `left_hyphen_min` from `_hyph_dict_table` since now this properties already defined in hyphenation dictionary (*.pattern format).

2022-07-04  Aleksey Chernov  <valexlin@gmail.com>

	HyphMan: Update HyphPatternReader to load new dictionary attributes.

	Update textlang.cpp: correct language names.

	unittests: test hyphenation dictionaries updated: added title, langtag, hyphenmins.

	Hyphenation dictionaries updated: added title, langtag, hyphenmins.

2022-07-03  Aleksey Chernov  <valexlin@gmail.com>

	Update crengine/Tools/HyphConv/mkpattern.pl: add title, langtag, hyphenmin:left, hyphenmin:right to output.

2022-07-02  Aleksey Chernov  <valexlin@gmail.com>

	unittests: add HyphenationTests.GetHyphMethodTest to test HyphMan::getHyphMethodForDictionary() function.

2022-07-01  Aleksey Chernov  <valexlin@gmail.com>

	Tests for hyphenation module added.

	LVGammaCorrection: add modifier `const` for `LVGammaCorrection::NoCorrectionIndex`;                    add static inline my_fabs();

	Update crengine/Tools/HyphConv/mkpattern.pl: skip '%' char in comment section.

2022-06-27  Aleksey Chernov  <valexlin@gmail.com>

	crengine/Tools/HyphConv/mkpattern rewriten in perl.

2022-06-18  Aleksey Chernov  <valexlin@gmail.com>

	Gamma correction tables refactoring

2022-06-10  Aleksey Chernov  <valexlin@gmail.com>

	Allow to use sanitizer for android build

2022-05-22  Aleksey Chernov  <valexlin@gmail.com>

	CRLog: refactoring

2022-05-14  Aleksey Chernov  <valexlin@gmail.com>

	container item info: added packed size info

2022-05-10  Aleksey Chernov  <valexlin@gmail.com>

	Improved unit tests for zip archives: Win32 support added. makeRandomFile() has been rewritten to support the creation of Unicode filenames in Win32.

2022-05-08  Aleksey Chernov  <valexlin@gmail.com>

	LVDocView: log file openning errors.

2022-05-06  Aleksey Chernov  <valexlin@gmail.com>

	Added tests to check locales names detection.

2022-04-22  Aleksey Chernov  <valexlin@gmail.com>

	SIGSEGV fixed in ldomDataStorageManager class. AddressSanitizer: heap-use-after-free

2022-04-21  Aleksey Chernov  <valexlin@gmail.com>

	Added unit test to check LVDocView::getAvgTextLineHeight() function.

	LVDocView: added getAvgTextLineHeight() functions to retrieve the average height of a line of text.

2022-04-03  Aleksey Chernov  <valexlin@gmail.com>

	cmake project: added new option ENABLE_LTO to enable Link Time Optimization (disabled by default).

2022-03-28  Aleksey Chernov  <valexlin@gmail.com>

	Added unit tests to check zip-archives processing.

2022-03-27  Aleksey Chernov  <valexlin@gmail.com>

	Update crengine/src/lvstream/lvstreamutils.cpp: LVPumpStream() function improved: added check result of write operation.

	Update crengine/_clang_format.sh: support more variants of `find' utility.

2022-03-26  Aleksey Chernov  <valexlin@gmail.com>

	Sanitizer error in lvfilestream.cpp fixed:  crengine/src/lvstream/lvfilestream.cpp:391:33: runtime error: load of value 20, which is not a valid value for type 'lvopen_mode_t'

	crengine/Tools/zip-test: build failure fixed.

	Bump version to 0.9.1.alpha1

2022-03-25  Aleksey Chernov  <valexlin@gmail.com>

	crengine/src/lvstream/lvcommoncontaineriteminfo.h: Added missing 'const' modifiers to methods.

	ZIP processing: replaced hardcoded maximum entry name length and maximum extra entry data length with a new macro in ziphdr.h  It is allowed to skip extra entry data if it is too long without stopping the processing of the zip archive.

2022-03-20  Aleksey Chernov  <valexlin@gmail.com>

	Fixed compilation issue for Android.


2022-02-10  Aleksey Chernov  <valexlin@gmail.com>

	* Version 0.9.0 released.
	==========================

	Tag sources with `0.9.0'.

	  Main changes:
	* Refactoring
	* Added unit testing functionality
	* Integrated gitlab CI including unit testing
	* Win32 support improved
	* MacOS support fixed
	* The deprecated BUILD_LITE option has been removed as it is not used or planned to be used
	* By default, a limited set of font sizes is disabled. Font sizes are only limited by minimum and maximum. The USE_LIMITED_FONT_SIZES_SET option has been completely removed
	* Other fixes

	See below for other changes.

2022-02-09  Aleksey Chernov  <valexlin@gmail.com>

	clang-analyzer: potential segfaults fixed.
	mathml.cpp: fixupMathML() fixed that is broken in 659e098dccd26fe3b6456d61b714e9da649fe536

2022-02-06  Aleksey Chernov  <valexlin@gmail.com>

	Added version info to shared library file (Win32 only).

2022-02-05  Aleksey Chernov  <valexlin@gmail.com>

	ZIP64 minor fixes: when finding 'End of central directory record' don't try to lseek outside of file size.

2022-02-04  Aleksey Chernov  <valexlin@gmail.com>

	The deprecated BUILD_LITE option has been removed as it is not used or planned to be used.

2022-01-23  Aleksey Chernov  <valexlin@gmail.com>

	cmake project fixed: compile options for clang tuned, errors fixed.

	Conflict fixed with BSD systems (including macOS) when using function timevalcmp().

	crengine/src/lvstream/ziphdr.h: Warning fixed: anonymous non-C-compatible type given name for linkage purposes by typedef declaration; add a tag name here.

	Sanitizer's fixes: crengine/src/lvstream/lvfilestream.cpp:391:28: runtime error: load of value 20, which is not a valid value for type 'lvopen_mode_t'

	crengine/include/lvtextfm.h: clang warning fixed: anonymous types declared in an anonymous union are an extension.

	Enable cmake testing (ctest) using existing unit tests (using GoogleTest).

2022-01-16  Aleksey Chernov  <valexlin@gmail.com>

	By default, a limited set of font sizes is disabled. Font sizes are only limited by minimum and maximum. The USE_LIMITED_FONT_SIZES_SET option has been completely removed.

	LVDocView::swapToCache(): return operation result.

	Fixed delete directory function on Unix-like platforms.

	InitFontManager(): added a new argument to enable/disable registration of system fonts. This is may be usefull for unit testing.

2022-01-12  Aleksey Chernov  <valexlin@gmail.com>

	lvtinydom: fixed cache cleaning function.

	Removed obsolete testing code.

	SIGSEGV fixed in textlang.cpp

2022-01-11  Aleksey Chernov  <valexlin@gmail.com>

	class lvByteOrderConv is extracted from lvtypes.h into a separate file lvbyteorder.h.

2022-01-05  Aleksey Chernov  <valexlin@gmail.com>

	Added a separate function to free an aligned image buffer in qimagescale. This fixes a crash in Win32.

	Fixed installation procedure for Win32.

	Restored Win32 font functionality, normally used only when FreeType is not available in Win32.

2021-12-30  Aleksey Chernov  <valexlin@gmail.com>

	CMakeLists.txt: tune compile options.

2021-12-29  Aleksey Chernov  <valexlin@gmail.com>

	thirdparty/qimagescale/qimagescale.cpp: fixed compiler warnings.

	thirdparty/chmlib/src/chm_lib.c: fixed compiler warnings.

	crengine/src/lvtextfm.cpp: fixed compiler warnings.

	crengine/src/wordfmt.cpp: fixed compiler warnings.

	crengine/src/lvstring.cpp: fixed compiler warnings.

	crengine/src/lvrend.cpp: fixed compiler warnings.

	crengine/src/epubfmt.cpp: fixed compiler warnings.

	crengine/src/crmathml.cpp: fixed compiler warnings.

	CRFileLogger: date and time format: print date and time in milliseconds (instead of decimilliseconds), fixed compiler warnings.

	crengine/src/textlang.cpp: fixed compiler warnings.

	crengine/src/crhyphman.cpp: fixed compiler warnings.

	crengine/src/crtxtenc.cpp: fixed compiler warnings.

2021-12-28  Aleksey Chernov  <valexlin@gmail.com>

	crengine/src/lvstsheet.cpp: fixed compiler warnings.

	crengine/src/lvtinydom.cpp: fixed compiler warnings.

	crengine/src/lvxml/lvxmlutils.cpp: fixed compiler warnings.

	LVDrawBuf classes: added missing modifier 'const'.

	Compiler warning fixed in src/lvfont/*.*

2021-12-26  Aleksey Chernov  <valexlin@gmail.com>

	Tune compile options in cmake project file.

	Reformat sources using clang-format.

	Fixed compile issue in release build configuration: added missing '#include' statement after header section optimization.

2021-12-25  Aleksey Chernov  <valexlin@gmail.com>

	Reformat header section (tier 2).

	Renaming some header files (adding a prefix) to eliminate potential conflicts with other libraries.

	Copy-paste issue fixed in lvByteOrderConv (typenames in lvtypes.h).

	Reformat header section.

	Unsupported clang options removed.

	Simplifing lstringXX_chunk_t structures.

2021-12-22  Aleksey Chernov  <valexlin@gmail.com>

	More accurate data files installation procedure.

	Restored ability to build under/for MacOS.

2021-12-20  Aleksey Chernov  <valexlin@gmail.com>

	Removed the thirdparty 'unrar' library because it is incompatible with the base license of that library, GPLv2.

2021-12-19  Aleksey Chernov  <valexlin@gmail.com>

	crengine-ng.pc added.

	crengine/Tools: link error fixed when only static libraries used.

	Link error fixed with antiword built-in.

	cmake thirdparty building: replace 'STATIC' with 'OBJECT' to include thirdparty libs into resulting static library.

	Rename 'thirdparty_unman' back to 'thirdparty'.

	Update CMakeLists.txt & Cº to build only engine.

	Hyphenation dictionaries moved from 'cr3gui/data/hyph' to 'crengine/data/hyph'; css from '<coolreader>/cr3qt/data' to 'crengine/data/css'.
