Skip to content

Conversation

TheSchemm
Copy link
Contributor

Fixes #60

This is caused by the way that Rust does case folding. Rust does full case folding where the MS-CFB spec states that simple case folding should be used.
Because of the full case folding:
ßQÑ52Ç4ÅÁÔÂFÛCWCÙÂNË5Q== becomes SSQÑ52Ç4ÅÁÔÂFÛCWCÙÂNË5Q== where the ß should remain unchanged when using simple case folding.

This imports the icu_casemap crate that can do the simple case folding. I also made it so that string compares don't allocate new strings.

@sftse
Copy link
Contributor

sftse commented Jul 1, 2025

Thanks, that clears things up.

@mdsteele
Copy link
Owner

mdsteele commented Jul 1, 2025

Ah, that makes sense. Thanks for figuring this out.

TheSchemm and others added 2 commits July 1, 2025 13:17
@mdsteele
Copy link
Owner

mdsteele commented Jul 2, 2025

Thanks, looks good to me; just need to make clippy happy. (Either by taking its suggestion, or by suppressing the warning for the sake of the TODO; either way seems fine to me.)

Co-authored-by: sftse <c@farsight.net>
@mdsteele mdsteele merged commit 38ff1db into mdsteele:master Jul 4, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Garbage DirEntry
3 participants