icasefile - Wrapper to emulate case-insensitive filesystem

As of 08 October 2019, this page and related content is no longer maintained. Content is preserved as-is for reference, archival, and historical reasons. Use at your own peril.

icasefile does not function properly on modern GNU/Linux systems.

icasefile is LD_PRELOADable wrapper for several libc functions such as open(), stat() and chown(). It allows user to access files regardless of filename case, just like it would be possible with case-insensitive filesystem. This can be helpful with games ported from DOS/Windows to GNU/Linux with datafiles extracted from original source. This can be true for mods as well; Cave Story mods come with files that may or may not have matching references in other parts of the mod.

Each (supported) system function will first check if the requested file can be found as-is. If the filename contains one or more directories, file (and subdirectories) are searched from each directory. In short, this allows music.dat to match MUSIC.DAT and ../Data/INTERFACE/ui.DLG to match ../data/interface/ui.dlg.

Usage: LD_PRELOAD=/path/to/icasefile.so APPLICATION

If you don’t know how to compile or use it, either you don’t need or want this.

Sources here.