Add a CMocka suite around the production shared-object path helper and register it in the existing utility test hierarchy.
Cover directory extraction for a resolvable symbol, invalid symbol and buffer arguments, a zero-sized buffer, and an undersized buffer. These cases protect the path contract used by the library-adjacent mapping lookup.
PR #86 derives the mapping-file directory from dladdr's dli_fname. The initial implementation assumes that the resolved name contains a directory separator. If the loader returns a bare soname, the truncation loop reduces it to its first character and reports success, causing a bogus mapping-file lookup instead of using the executable-directory fallback.
Locate the final separator before copying, preserve the filesystem root, reject names that do not identify a directory, and validate the length of the returned directory rather than requiring room for the complete library filename.
Link the four PIUIO and PIUBTN keyboard and joystick targets directly with libdl so their dladdr dependency remains explicit on the supported older glibc environment.
The configured PIUIO or PIUBTN library path and the mapping-file lookup are separate behaviors. This distinction was unclear, making it difficult to understand what shared installations already supported and what the lookup added by PR #86 changed.
Document the per-game and shared-folder layouts, the keyboard X11 input-handler requirement, and the current search order: load the mapping beside the selected library first, then fall back to the folder containing the game's piu executable.
Since the pumptools.zip package contains already everything
that's supposed to be released on the previous version already,
a separate "public" release isn't required anymore.
Also address this issue in the github workflows to publish
the full package including everything.
This is mostly Din's work.
piuio and piubtn are both included in the piuio/lxio lib
To use in games which contain a button board specify the same
module for both piuio and piubtn configs.
Remove the NXA guide excel sheet as it doesn't add any value.
It simply dumped data from mission.txt into a table.
Add reverse engineered information about barrier unlock conditions
for NXA. Barrier colors could not be figured out at this point,
but should be fairly easy to add once the conditions apply and
the game shows which barriers are unlocked.