summaryrefslogtreecommitdiff
path: root/tests/term_test.c
AgeCommit message (Collapse)Author
10 daysMerge branch 'wt/abi-version' into api-hardeningBerke Güzel
10 daysAdd soversion, version macros, and reserved term_options wordsBerke Güzel
The shared library now carries its major version in the SONAME (libterm.so.0), so an ABI break gets a new file name. The header gains TERM_VERSION, TERM_VERSION_MAJOR/MINOR/PATCH and TERM_VERSION_CODE, and term_version() returns the code the library was built with. A test checks the macros against meson.build's project version and against the runtime value. term_options ends with uint32_t reserved[8]. term_new() returns NULL if a word is nonzero, so later versions can give those words a meaning without misreading a caller's leftover data. All-zero options stay valid. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
10 daysDocument snapshot pointer lifetimes and make getters NULL-safeBerke Güzel
The snapshot getters crashed on a NULL snapshot, unlike the rest of the API. They now return NULL, an empty span, 0, or write nothing, as the terminal functions do. term_snapshot_cluster writes nothing when cps is NULL or cap is 0. Document that the view and its palette keep their address for the life of the snapshot, and that a row pointer lasts only until the next update or free, since an update can realloc the cell array. Rename the term_input.h include guard to TERM_INPUT_H to match the file. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
10 daysReturn owned text and share cell attribute flags with snapshotsBerke Güzel
Make text queries return allocated strings released with term_text_free, keeping each capture atomic. Align public attributes with the write core, remove snapshot conversion tables, and migrate tests and the Kitty adapter.
11 daysDeduplicate scroll and SIMD paths while preserving performanceBerke Güzel
13 daysterm: move the term core to subprojects/termBerke Güzel
The core now builds, tests, and benchmarks alone, as a Meson subproject with no dependency on the main tree. - include/term/ holds term.h and the header-only unicode/. src/ holds the core and its private headers. The main tree gets only include/term through term_dep, so it cannot reach a private header. - The term tests, the term benchmarks, the Kitty parser suite, and tools/amalgamate.py and tools/generate_unicode.py move with it. The tests run as term:<name>. - The main build passes its -march (arch_flag) and b_ndebug to the subproject. A directory configured before this commit needs meson configure -Dterm:arch_flag=-march=... once. - The term tests compile with -UNDEBUG. They do work inside assert. - The subproject exports term_test_dep with term_api.h, for the main tree's render, thumbnail, color, and selection tests. - The Kitty bridge used struct vector2i and has not compiled since the public API redesign. It builds again. 2 of its 14 tests fail: REP after a tab, and a cursor report after a resize. - dirgraph.py drops the term and unicode layers. Its self-test uses pty. - The symbols test ignores the __odr_asan symbols that ASan adds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>