libloadorder icon indicating copy to clipboard operation
libloadorder copied to clipboard

Plugin filename comparisons do not handle path case insensitivity as Windows does

Open Ortham opened this issue 4 years ago • 0 comments

Plugin filenames are compared case-insensitively using the unicase crate. However, unicase does not implement the same case folding behaviour as Windows (not surprising, the latter's rules are a mystery).

In practice, the only variation that I've come across is that Greek 'Ρ', 'ρ' and 'ϱ' are all considered equal by unicase, but Windows only considers the first two to be equal. Unicase does give the same results for Turkish İ, ı, I and i.

There are also several places where filenames are stored in hashsets and compared case-insensitively by lowercasing them before storage, which is not necessarily the same as case folding them.

Ortham avatar Sep 11 '19 20:09 Ortham