Skip to content

fix(libc): resolve case differences in guest paths and mounts - #1321

Merged
adriadam10 merged 2 commits into
boykopovar:mainfrom
TibixDev:pr/guest-path-case
Oct 8, 2026
Merged

adriadam10 merged 2 commits into
boykopovar:mainfrom
TibixDev:pr/guest-path-case

Conversation

@TibixDev

@TibixDev TibixDev commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

What

Resolve ASCII case differences in guest paths and mount aliases. Prefer exact names, preserve new filenames, and reject ambiguous fallback matches. Do not cache directory results, so renames stay visible.

Supersedes #1079. This version also handles mount aliases, blocked mounts, dangling symlinks, and ambiguous names. Tests use guest file APIs as well as path resolution. #1101 concerns Windows module dependency names, a separate path.

Tested

Fedora 44, Release: path-case, app-content, working-directory, directory, and filesystem tests. Covers open, read, create, stat, rename, removal, aliases, and conflicting names. Contribution checks pass.

The combined fork loaded Skyrim files that differ in case from requested names. This isolated branch was not run in-game. Unicode folding and console behavior for case collisions remain unverified; Windows was not tested.

Checklist

  • Current main; prerequisite and competing implementation checked.
  • One topic.
  • No new code comments.
  • Unsupported paths still throw; UI stubs are documented.
  • No notes, logs, or images in the repository.
  • No new third-party code.
  • General behavior.
  • Depends on: none (fix(appcontent): track temporary storage mounts #1320 is merged).
  • AI-assisted: yes.

@TibixDev

TibixDev commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

Rebased on bc1fbe81. Rebased the path-case change onto the updated #1320 parent. Kept exact-name preference and ambiguous-name rejection.

Fedora 44 Release: guest_path_case_tests, guest_appcontent_tests, guest_working_directory_tests, guest_directory_tests, guest_filesystem_tests build; the targeted tests and contribution checks pass. Windows CI is pending.

@TibixDev
TibixDev force-pushed the pr/guest-path-case branch from 99e4e4c to 7dded01 Compare October 8, 2026 07:03
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 8, 2026
@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 8, 2026
TibixDev and others added 2 commits October 8, 2026 14:33
Resolve ASCII case differences in guest paths and mount aliases while preferring exact names and rejecting ambiguous fallback matches. Preserve new filenames and host roots. Five filesystem tests pass; Skyrim now loads its INI and shader archives, initializes Vulkan and uploads intro textures instead of dereferencing null shader metadata. Written with AI assistance.
Co-Authored-By: Claude <noreply@anthropic.com>
@adriadam10

Copy link
Copy Markdown
Collaborator

Rebased onto current main (#1320 is merged, so its commit is dropped) and added one commit: the new test used a title's file names (Skyrim.*); it now uses generic ones. Also updated the PR body (no longer depends on #1320).

Checked: full build and ctest on the rebase (452/452); guest_path_case fails without the change; exact-name preference, ambiguous-name rejection and alias handling behave as described. Not run: a real title, Windows at runtime, Unicode folding.

#1079 touches the same function and test file; this one supersedes it, so #1079 should be closed once this lands. Merging when CI is green.

@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 8, 2026
@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
#1535 docs/dev/TechnicalDebt.md L329

@github-actions github-actions Bot mentioned this pull request Oct 8, 2026
9 tasks done
@adriadam10
adriadam10 merged commit 79d23eb into boykopovar:main Oct 8, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants