Files
fpc-msgbase/docs/format-notes/dependencies.md

44 lines
1.7 KiB
Markdown

# External dependencies in copied format units
These references were inherited from the Allfix tree and need to be resolved
during the format-by-format refactor pass.
## ma.fmt.pkt.pas
Currently uses: `msgunit`, `netaddrs`, `aftypes`.
Needs from `msgunit`:
- `PktHeader` — 58-byte FTN packet header record
- `PktRecord` — per-message header record inside a packet
- `PacketRecord` — high-level parsed message with kludges, address parts,
flavours, etc.
- `FlavourType`, `FlavourTypeSet`, `DateTimeArray`
Plan:
- Move `PktHeader` + `PktRecord` into `ma.fmt.pkt.pas` itself (packet-only).
- Move `PacketRecord`, `FlavourType`, `FlavourTypeSet`, `DateTimeArray`
into `ma.types.pas` so other backends can use them where needed.
- Drop the `msgunit` / `netaddrs` / `aftypes` `uses` clauses.
## ma.fmt.wildcat.pas + ma.fmt.wcutil.pas
Use the WildCat 4 SDK. The SDK source has been copied verbatim into
`src/wc_sdk/` (formerly `wc_dev/` in Allfix) so this repo can build the
Wildcat backend without external paths.
The SDK pulls in OS/2-era helpers (`Os2Comp`, `DosUtil`, `p_System`,
`btisbase`, `isamtool`, …). Keeping it on its own search-path entry
(`-Fusrc/wc_sdk`) means callers that don't need Wildcat can omit the
backend without forcing the SDK onto the build line.
## include.inc
Allfix sources start with `{$I include.inc}`. Our copied units no longer
have that on the search path (we deliberately want the new lib to be
self-contained). Plan during refactor:
- Replace each `{$I include.inc}` with explicit `{$mode objfpc}{$H+}` plus
any other compiler switches the unit actually needs (most don't need
more than mode + `$H+`).
- Drop `WILDCAT4`, `EXECSWAP`, `UNI` and other Allfix-specific defines.