v6.12.0
-
New
Document::save(std::ostream &)andDocument::save_to_memory(), which
returns the saved document as an in-memoryFile. The path overloads are
unchanged. -
The wasm binding gained
edit(diff),save(),isEditable()and
isSavable(), so a browser can save an edit back. -
Memory saves in the other bindings:
save_to_memory()returnsbytesin
python,saveToMemory()byte[]in java,-saveToMemoryWithError:NSData
in Objective-C. -
Two entries of the same zip document can be read at once; nothing serialises
on a single lock any more. -
The zip backend is
miniz/3.1.1, up from3.0.2. Rendered output is
unchanged. -
New
FileType::hypertext_markup_languageforhtml,htm,xhtml,
text/htmlandapplication/xhtml+xml. Classification only: noopen, no
translate_html, and never detected from its bytes. -
Breaking An ods sheet stores a repeated cell once, at the range it
covers, rather than once per position:SheetCell::position()reports the
anchor of that range instead of the position the cell was looked up at, and
Sheet::cell()hands back the same element everywhere in it. -
An ods
table:number-columns-repeatedbeside atable:number-rows-repeated
no longer inflates — the grid's own1048576 × 1024asked for three billion
elements out of four hundred bytes. -
An xlsx
<mergeCell>whoserefnames more positions than the sheet has
cells opens again;ref="A1:XFD1048576"used to visit all 17 billion. -
Decoding a spreadsheet costs about half the memory it did — pugixml is built
in compact mode and the ods sheet index is sorted vectors rather than maps.
A consumer that includes an internal header now needsPUGIXML_COMPACT, and
the conan package declares it.
Features
- Name html as a file type, without a renderer for it (#769)
- Save to a stream or into memory, and bind edit/save in wasm (#778)
Performance
- Halve what a spreadsheet costs to decode, and stop two repeat bombs (#776)
Refactoring
- Make the archive's read callback re-entrant (#775)
Build
- Bump miniz to 3.1.1 (#774)
Publishing v6.12.0
- ✅ conan — success · conan package (
conan.yml) - ✅ maven — success ·
app.opendocument:odr-core-java— Maven Central + GitHub Packages - ✅ android — success ·
app.opendocument:odr-core-android— Maven Central + GitHub Packages - ✅ python — success ·
pyodrwheels — PyPI - ✅ apple — success ·
OdrCoreObjC.xcframework— the release asset and its manifest - ✅ wasm — success ·
@opendocument/odr-core— npm