QMail components
QMail reference
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