First release of this fork that ships builds for all three Amiga flavours (OS3, OS4, MorphOS) from CI.
New features
- Live filter overlay for listers — View menu → "Filter..." (right-Amiga + F) opens a string gadget over the active lister's path field. Typing updates the show pattern on the fly and re-applies display rejection against already-buffered entries, so filtering is instant and skips a directory re-read. The pattern persists with the lister's format alongside Show. Name-mode listers only. New "Lister - Filter" node in the guide.
- Hover tooltips on lister toolbar buttons — after ~0.8 s of hover a small popup lists the LMB/RMB/MMB function names bound to the button, so you can discover what each icon does without clicking through. Dismissed on click, keystroke, window move/resize, or the mouse leaving the button.
Performance
- Pipelined icon populate —
lister_get_iconspreviously sentLISTER_SHOW_ICONwithREPLY_NO_PORT, which despite the name is synchronous from an IPC task: the handle task blocked inWait()until the lister finished drawing each icon, serialising disk I/O and draw. Switched to an async reply port (same mechanismL_IPC_ListCommandalready uses) and drain replies after the loop. The handle task can now prefetch the next icon from disk while the lister finishes drawing the previous one. Largest win with plainicon.library; smaller on IconLib 46.4 + fast CPU/RTG where render is already cheap. - Tail-first backdrop scan — new icons are
AddTail'd during populate, butlister_show_iconwalked from the head, making the common path O(N) per icon and O(N²) for a drawer open. Reversed the walk (lh_TailPred/ln_Pred); common case is O(1). UAF guard still covers the window between IPC send and receive.
Platform support
- OS4 build fixed — adjusted
InputBase/UtilityBasetypes for the SDK, switched to cybergraphx, wrapped__stdargs exit()for m68k only, added-fcommon, dropped-lamigafor newlib, added SetRexxVar/GetRexxVar wrappers over the Rexx interface, restored newlines inaos4_ppc_libstub.c(LIBSTUB tokens were being eaten by a preceding#include), and madeFormat()arity conditional. - MorphOS build fixed — added MorphOS
exit()stubs (noreturn) in library and modulelibinit.c, declaredMathIeee*Basefor diskinfo, replacedtime()/localtime()inftp_utilwithDateStamp()/Amiga2Date()to avoid libnix libc, stubbedlibnix_mempool/ThisRequiresConstructorHandlingfor the ftp link under-nostartfiles, cast arrow image data toUWORD *, and downgraded GCC 14's new-Werror=incompatible-pointer-types/-Werror=int-conversionback to warnings across allmakefile.mosfiles. - CI now matrix-builds os3/os4/mos in debug and release and attaches all three
.lhaarchives to tagged releases.
Housekeeping
.gitignorecovers the OS4/MOS/AROS bin output dirs.
Version bumped to 5.94 (PROG_REVISION, archive REVISION). LIB/CMD ABI versions unchanged — existing modules are compatible.
Full Changelog: 5.93...5.94