fix(fs): preserve UTF-8 in long-path support #1592
No reviewers
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot!1592
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/long-paths-integration-1497"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The long-path support in #1497 breaks the existing UTF-8 source check and the Windows extraction-boundary fixture. This supplemental PR targets
fix/long-pathsand fixes those integration failures.The filesystem wrappers convert explicitly with
CP_UTF8, consistent with the game's char strings. The extraction fixture compares equivalent plain and extended Windows paths, then passes the original path to the real metadata call. Existing containment, escape, reparse-point and hard-link assertions remain; a new negative control rejects sibling paths in either spelling.Validation:
fs_wideandfs_find_datahelpers with-Wall -Wextra -Werror, without a UTF-8 process manifest. ASCII, Unicode, long drive/UNC paths, and both directory-entry name fields pass on ACP 1252. The exact original helpers from #1497 fail its Unicode check.nx2/test_nup_paths.py: all 24 tests pass on Windows and Linux; Linux fixtures use/tmp.bc_raw_targets,display_startup_failure,fps_overlay_order,fsr3_math,parallel_init_order,parallel_rb_refresh,precompile_compute_guard,present_aspect, andpresent_semaphores. Their code/fixtures are unchanged by this supplemental patch; the SEH fixture additionally cannot launch the MSVC linker in this local setup. The full suite remains failing.Hosted Windows Builder packaging passes. The Windows Vulkan and AppImage builds both fail on the base branch's duplicate
tx_deadzonein unchangedvk_menu.cpp; upstream already removes that duplicate in #1496. The game-free source workflow targets PRs tomain, so it does not run for this feature-branch base. No workflow triggers or checks were changed to hide these results.Gameplay has not been run for this supplemental patch. The path checks still emit the existing
unpack.py:22unclosed-reader ResourceWarning. No game data or Windows long-path setting changes are involved.