github BlitterStudio/dopus5 5.94

latest releases: v5.102, v5.93.0, 5.101...
5 months ago

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_icons previously sent LISTER_SHOW_ICON with REPLY_NO_PORT, which despite the name is synchronous from an IPC task: the handle task blocked in Wait() until the lister finished drawing each icon, serialising disk I/O and draw. Switched to an async reply port (same mechanism L_IPC_ListCommand already 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 plain icon.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, but lister_show_icon walked 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/UtilityBase types for the SDK, switched to cybergraphx, wrapped __stdargs exit() for m68k only, added -fcommon, dropped -lamiga for newlib, added SetRexxVar/GetRexxVar wrappers over the Rexx interface, restored newlines in aos4_ppc_libstub.c (LIBSTUB tokens were being eaten by a preceding #include), and made Format() arity conditional.
  • MorphOS build fixed — added MorphOS exit() stubs (noreturn) in library and module libinit.c, declared MathIeee*Base for diskinfo, replaced time()/localtime() in ftp_util with DateStamp()/Amiga2Date() to avoid libnix libc, stubbed libnix_mempool/ThisRequiresConstructorHandling for the ftp link under -nostartfiles, cast arrow image data to UWORD *, and downgraded GCC 14's new -Werror=incompatible-pointer-types / -Werror=int-conversion back to warnings across all makefile.mos files.
  • CI now matrix-builds os3/os4/mos in debug and release and attaches all three .lha archives to tagged releases.

Housekeeping

  • .gitignore covers 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

Don't miss a new dopus5 release

NewReleases is sending notifications on new releases.