Allfix 6.1.7-20ec2bd (Development Build)

This build adds Linux and FreeBSD support, fixes the FILES.BBS rename bug, and adds cross-platform path handling.

New Platforms

  • Linux x86_64 and FreeBSD x86_64 builds now included in releases. Native Unix binaries with forward-slash paths, case-preserving filenames, and FILES.BBS support.
  • On Unix, only BBStype 255 (fileecho config / FILES.BBS) is supported. DOS/OS2 BBS file databases are not yet compatible with Unix paths.

Bug Fixes

  • Fixed FILES.BBS rename failure (root cause found): The TextRec.name buffer was being read with str2pas/StrPas which produced garbage due to FPC ShortString/AnsiString type resolution. The rename target was truncated to just H (OS/2) or / (Linux) instead of the full path. Fixed with direct byte-copy from the TextRec name buffer.
  • Fixed savedname corruption: The filename was also being read AFTER terase() which corrupts the TextRec buffer. Now saved before close/erase.
  • Fixed DOS file attach paths on Linux: Incoming netmail with DOS paths (e.g. C:\INBOUND\FILE.ZIP) now has drive letters stripped and separators converted. Falls back to searching inbound directories if the original path doesn’t exist.

Cross-Platform Path Handling

  • All config paths normalized with SetDirSeparators at load time — converts \ to / on Linux, / to \ on Windows.
  • Replaced hardcoded backslashes with DirectorySeparator in dosutil, binkley, execuni2, snetmail, fbbs, fcomp, and all 12 BBS modules.
  • Replaced BuildPath with FPC’s ForceDirectories for recursive directory creation.
  • UprCase(path) replaced with case-preserving NormPath on Unix (30+ callsites).

Testing

  • Added test_fbbs.pas — 32 tests for FILES.BBS create, add, search, multiple sequential adds, and file replacement. Specifically tests the FILES.$$0 rename that was failing in the field.