Documents (CBDF)

Documents (CBDF)
Source snapshot: 9b4f8a3 (2026-09-23); retained QMail clone, including M7.
Working = implemented in this snapshot, not a new runtime/test certification.
Partial = an identified implementation/exposure gap; obsolete = retained compatibility only.
Entry points and static functions are selected navigation anchors; full lexical index: function-index.txt.
Used by / Tests list selected source references (including callback registration), not a proven dynamic call graph.
Tests were inspected, not executed; use tools/test.ps1 with isolated scratch data.
Old paths come from docs/path-map.txt; absent mappings denote additions after the move.

CBDF core

Purpose
Encode/decode document metadata, sections, styles, text, resources, annotations and payloads.
Files
src/cbdf/annotations.c src/cbdf/compress.c src/cbdf/display.c src/cbdf/encode.c src/cbdf/hash.c src/cbdf/layout.c src/cbdf/meta.c src/cbdf/payload.c src/cbdf/resources.c src/cbdf/section.c src/cbdf/styles.c src/cbdf/text.c src/cbdf/types.c
Old paths
vendor/cbdf-core/src/annotations.c -> src/cbdf/annotations.c vendor/cbdf-core/src/compress.c -> src/cbdf/compress.c vendor/cbdf-core/src/display.c -> src/cbdf/display.c vendor/cbdf-core/src/encode.c -> src/cbdf/encode.c vendor/cbdf-core/src/hash.c -> src/cbdf/hash.c vendor/cbdf-core/src/layout.c -> src/cbdf/layout.c vendor/cbdf-core/src/meta.c -> src/cbdf/meta.c vendor/cbdf-core/src/payload.c -> src/cbdf/payload.c vendor/cbdf-core/src/resources.c -> src/cbdf/resources.c vendor/cbdf-core/src/section.c -> src/cbdf/section.c vendor/cbdf-core/src/styles.c -> src/cbdf/styles.c vendor/cbdf-core/src/text.c -> src/cbdf/text.c vendor/cbdf-core/src/types.c -> src/cbdf/types.c
Public header
include/cbdf/cbdf_annotations.h include/cbdf/cbdf_compress.h include/cbdf/cbdf_constants.h include/cbdf/cbdf_display.h include/cbdf/cbdf_encode.h include/cbdf/cbdf_hash.h include/cbdf/cbdf_layout.h include/cbdf/cbdf_meta.h include/cbdf/cbdf_payload.h include/cbdf/cbdf_resources.h include/cbdf/cbdf_section.h include/cbdf/cbdf_styles.h include/cbdf/cbdf_text.h include/cbdf/cbdf_types.h
Entry points
src/cbdf/annotations.c:16 :: cbdf_annotations_strip() src/cbdf/compress.c:13 :: cbdf_zlib_inflate_exact() src/cbdf/display.c:12 :: cbdf_disp_kind_str() src/cbdf/encode.c:137 :: cbdf_encode_opts_default() src/cbdf/hash.c:320 :: cbdf_hash_result_str() src/cbdf/layout.c:10 :: cbdf_layout_slug() src/cbdf/meta.c:71 :: cbdf_meta_key_is_repeatable() src/cbdf/payload.c:12 :: cbdf_payload_lookup() src/cbdf/resources.c:49 :: cbdf_resource_type_name() src/cbdf/section.c:14 :: cbdf_shape_str()
Important static functions
src/cbdf/encode.c:407 :: emit_styles_payload() src/cbdf/encode.c:524 :: validate_encode_text_v1() src/cbdf/meta.c:135 :: validate_known_value() src/cbdf/section.c:78 :: read_len_section() src/cbdf/section.c:109 :: read_extensions() src/cbdf/annotations.c:11 :: is_ann() src/cbdf/display.c:60 :: nv_ensure() src/cbdf/display.c:95 :: nv_add()
Owns
CBDF wire model and limits in include/cbdf; generated tables are deliberately excluded from the function index.
Used by
src/mail/qmail_cbdf.c src/mail/qmail_document.c src/mail/qmail_document_edit.c src/gui/render/cbdf_doc.cpp src/cbdf/view/pane_adapter.cpp src/cbdf/view/text_engine.cpp src/cbdf/view/view_offscreen.cpp src/cbdf/view/view_tree.cpp
Side effects
Allocates, parses and encodes caller document buffers; compression/hash helpers transform data.
Tests
tests/unit/body_format_test.c tests/unit/document_test.c tests/unit/cbdf/test_constants_parity.c tests/unit/cbdf/test_display.c tests/unit/cbdf/test_encode.c tests/unit/cbdf/test_layout.c tests/unit/cbdf/test_main.c tests/unit/cbdf/test_resources.c
Platforms
Windows; POSIX branches/dependencies where present. Linux/macOS runtime unverified in M13.
Status
working

Document model and editing

Purpose
Maintain editable mail documents and render source text/Markdown into document content.
Files
src/mail/qmail_document.c src/mail/qmail_document_edit.c src/mail/qmail_source_render.c
Old paths
vendor/core/src/qmail/qmail_document.c -> src/mail/qmail_document.c vendor/core/src/qmail/qmail_document_edit.c -> src/mail/qmail_document_edit.c vendor/core/src/qmail/qmail_source_render.c -> src/mail/qmail_source_render.c
Public header
include/qmail/qmail_document.h
Entry points
src/mail/qmail_document.c:20 :: qmail_compose_init() src/mail/qmail_document_edit.c:9 :: qmail_document_edit() src/mail/qmail_source_render.c:11 :: qmail_document_body_format()
Important static functions
src/mail/qmail_document.c:14 :: document_error() src/mail/qmail_source_render.c:44 :: append_raw() src/mail/qmail_source_render.c:63 :: at_line_start()
Owns
Compose document model and editing operations.
Used by
src/app/desktop_api.c src/mail/qmail_cbdf.c src/mail/qmail_receive.c src/mail/qmail_upload_orchestrator.c src/gui/host/loop.c src/gui/logic/fake_state.c src/gui/logic/reduce.c src/gui/logic/text_field.c
Side effects
Mutates compose document state and generated content buffers.
Tests
tests/unit/body_format_test.c tests/unit/document_test.c
Platforms
Windows; POSIX branches/dependencies where present. Linux/macOS runtime unverified in M13.
Status
working

CBDF viewer

Purpose
Shape/rasterize text with FreeType/HarfBuzz, lay out view trees and render offscreen reading panes.
Files
src/cbdf/view/pane_adapter.cpp src/cbdf/view/render.cpp src/cbdf/view/text_engine.cpp src/cbdf/view/view.cpp src/cbdf/view/view_offscreen.cpp src/cbdf/view/view_tree.cpp
Old paths
vendor/cbdf-tools/src/view/pane_adapter.cpp -> src/cbdf/view/pane_adapter.cpp vendor/cbdf-tools/src/view/render.cpp -> src/cbdf/view/render.cpp vendor/cbdf-tools/src/view/text_engine.cpp -> src/cbdf/view/text_engine.cpp vendor/cbdf-tools/src/view/view.cpp -> src/cbdf/view/view.cpp vendor/cbdf-tools/src/view/view_offscreen.cpp -> src/cbdf/view/view_offscreen.cpp vendor/cbdf-tools/src/view/view_tree.cpp -> src/cbdf/view/view_tree.cpp
Public header
include/cbdfview/cbdf_view.h
Entry points
src/cbdf/view/view.cpp:592 :: cbdf_view_config_default() src/cbdf/view/view_offscreen.cpp:536 :: cbdf_view_offscreen_create()
Important static functions
src/cbdf/view/render.cpp:11 :: set_draw_color() src/cbdf/view/render.cpp:16 :: to_frect() src/cbdf/view/view.cpp:291 :: count_text_commands()
Owns
Document text shaping, glyph atlas and view layout; platform font selection is owned by Platform.
Used by
src/gui/render/cbdf_doc.cpp
Side effects
Allocates document/view state and buffers; viewer uses font files and rendering resources.
Tests
No direct symbol-reference test identified; indirect integration coverage is uncertain.
Platforms
Windows; POSIX branches/dependencies where present. Linux/macOS runtime unverified in M13.
Status
working

Reading pane bridge

Purpose
Bridge decoded mail content and minimal text documents into the GUI reading pane.
Files
src/gui/cbdf/cbdf.c src/gui/render/cbdf_doc.cpp
Old paths
vendor/gui-3/src/cbdf/cbdf.c -> src/gui/cbdf/cbdf.c vendor/gui-3/src/render/cbdf_doc.cpp -> src/gui/render/cbdf_doc.cpp
Public header
include/cbdf/cbdf.h include/qgui/cbdf.h include/qgui/render.h
Entry points
src/gui/cbdf/cbdf.c:40 :: qgui_cbdf_stub_ops() src/gui/render/cbdf_doc.cpp:47 :: qgui_cbdf_open_file()
Important static functions
src/gui/cbdf/cbdf.c:3 :: stub_open() src/gui/cbdf/cbdf.c:13 :: stub_close() src/gui/render/cbdf_doc.cpp:33 :: set_err() src/gui/render/cbdf_doc.cpp:40 :: rgb565()
Owns
GUI CBDF document lifetime and bridge.
Used by
src/gui/host/loop.c src/gui/layout/layout.c
Side effects
Allocates document/view state and buffers; viewer uses font files and rendering resources.
Tests
tests/gui/test_headers.c tests/gui/render/test_cbdf_pane.c tests/gui/render/test_font_fallback.c
Platforms
Windows; POSIX branches/dependencies where present. Linux/macOS runtime unverified in M13.
Status
working