mirror of
https://github.com/nextcloud/server.git
synced 2026-10-19 06:19:36 +02:00
Filesystem::normalizePath() converts paths to Unicode NFC, so the filecache and storage always use NFC names. The Node API uses PathHelper::normalizePath() instead, which didn't normalize Unicode. Nodes returned by Folder::newFile(), Folder::newFolder(), Node::copy() and Node::move() therefore kept the name exactly as passed in. Files uploaded from macOS in Chrome or Firefox have NFD names. Apps that return $node->getName() after creating such a file sent back an NFD name for a file that is stored as NFC. Other clients then couldn't match the name against file listings, which broke attachments in Collectives and Text. Normalize to NFC in PathHelper::normalizePath(), like Filesystem::normalizePath() does. Hooks and events emitted by the Node API now get NFC paths as well. Refs: nextcloud/collectives#2327 Refs: nextcloud/text#7873 Signed-off-by: Jonas <jonas@freesources.org> Assisted-by: ClaudeCode:claude-opus-5-5