Skip to content

Conversation

@zao
Copy link
Contributor

@zao zao commented Jun 28, 2025

This PR makes the three path query functions also expose an ACP encoding of the path if possible. The user path query can now also return a human-readable reason when it can't be obtained from the OS.

This is useful for scripts as they can now tell if paths can be expressed in the user's codepage.

This enables an use case in the update preparation logic where it can form absolute paths if the path is entirely within the ACP. When relative paths were in use there to work around that the path could be unspellable, the wrong directory could be operated on thanks to filesystem virtualisation.

zao added 2 commits June 28, 2025 20:13
The standard encoding for all the top level paths (base, script, user)
in SimpleGraphic is UTF-8. For some purposes it's useful to know if the
path can be expressed in the user's active codepage as well, the updater
can use it to form absolute paths that the OS understands.

As the user path is fallible, we also expose a human-readable reason as
to why it could not be obtained.

All paths are made weakly canonical rather than fully canonical as the
full flavour requires paths to fully exist.
Whenever an invalid code unit was detected, a placeholder should be
emitted. This change fixes a bug where it also wrote out the original
code unit as-is.
@Wires77 Wires77 merged commit 9673b8b into PathOfBuildingCommunity:master Sep 21, 2025
1 check 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.

2 participants