Development record
fsutil.FoldPath, the canonical fold for names a case-folding filesystem resolves, lower-cases with Go's simple mapping and then applies NFC, but APFS folds with full Unicode case folding over normalised text. It treats straße and strasse, final and medial sigma, the micro sign and mu, and the fi ligature and fi as one name, where FoldPath keeps them apart, and FoldPath equates a dotted capital I with a plain i, where APFS keeps them apart. Every FoldPath caller (the payload destination check, the pack overlap check, embark's claimed key) can therefore read two spellings of one directory as distinct. The loop's branch check now folds fully through its own refFold; the shared helper does not.
fsutil.FoldPath, the canonical fold for names a case-folding filesystem resolves, lower-cases with Go's simple mapping and then applies NFC, but APFS folds with full Unicode case folding over normalised text. It treats straße and strasse, final and medial sigma, the micro sign and mu, and the fi ligature and fi as one name, where FoldPath keeps them apart, and FoldPath equates a dotted capital I with a plain i, where APFS keeps them apart. Every FoldPath caller (the payload destination check, the pack overlap check, embark's claimed key) can therefore read two spellings of one directory as distinct. The loop's branch check now folds fully through its own refFold; the shared helper does not.
Frontmatter
| id | iss-2610121521482863 |
|---|---|
| type | issue |
| lifecycle | open |
| severity | minor |
.abcd/work/issues/open/iss-2610121521482863-fsutil-foldpath-the-canonical-fold-for.md
open on GitHub ↗ · commit history ↗