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

1.7 KiB

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.