LibCore: Port Directory to Windows #2188
Open
+58
−17
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR requires #1918.
This PR is ready for review, but must be rebased before merging. First 3 commits belong to #1918.Update: rebased.NOTE: The only methods of Directory that are used are create (static), is_valid_directory (static), chown and path, also adopt_fd and is_valid_directory are used internally.
The most used method is create, and it is always called with Directory::CreateDirectories::Yes.
Directory::is_valid_directory is called externally only from Web::ResourceLoader::load.
Directory::chown is called only from SessionManagement::create_session_temporary_directory_if_needed.
Directory::path is called only from ConfigFile::open_for_lib and other ConfigFile methods (indirectly through Formatter<Directory>::format).
Among these, only chown uses m_directory_fd. As chown is not implemented on Windows, m_directory_fd is essentially not used. I implemented directory support in System::open only to satisfy internal Directory checks. Without it Directory::create creates the actual directory, but returns an error.