Commit Graph

119 Commits

Author SHA1 Message Date
d454e1a1e0 [FileAccess] Implement support for reading and writing extended file attributes/alternate data streams. 2025-11-24 11:18:25 +02:00
b13a0e1834 Rename String::resize to resize_uninitialized, to better communicate to callers that new characters must be initialized. 2025-06-11 18:13:02 +02:00
563136f859 [Wine] Use _SH_DENY* flags instead of unsupported _SH_SECURE. 2025-05-14 13:50:28 +03:00
01fc9aee6c Core: Modernize C headers with C++ equivalents 2025-05-02 08:23:01 -05:00
889410dcda Add String::replace_char(s) methods for performance and convenience 2025-04-10 13:08:45 +02:00
85d3be8070 [FileAccess] Implement get_size and get_access_time methods. 2025-03-09 16:07:00 +02:00
6597fa24a9 [Windows] Fix get_modified_time on locked files. 2025-03-05 11:40:37 +02:00
f0ac8294cb [Windows] Add missing opened file check. 2025-02-13 11:18:46 +02:00
1732888777 Don't open file in file_exists for Windows. 2025-01-11 21:23:24 +08:00
d97313cd7d [FileAccess] Set last_error on file read/write errors. 2024-12-02 15:05:50 +02:00
c2f19e98bc Merge pull request #98921 from RandomShaper/win_many_files
Raise the number of file handles on Windows
2024-11-29 22:46:54 +01:00
a4b17e7852 [FileAccess] Return error codes from store_* methods. 2024-11-29 23:22:31 +02:00
68f638cf02 Use (r)find_char instead of (r)find for single characters 2024-11-17 10:02:18 +01:00
c09731c413 Warn on filesystem case mismatch
When a file is opened with a wrong case, it can work on the developer system but break on a user system with a case-sensitive filesystem.

This will display a warning when it happens.

CAVEATS: It will also display the warning if a symlink is in the path.

Adapt warning if the file is a symlink. Avoid warning on symlinks.

Fix memory leak and avoid `lstat` usage.

Avoid exposing real_path when not in TOOLS_ENABLED mode.
2024-11-08 14:23:41 -08:00
a5f86ee07e Raise the amount of file handles on Windows 2024-11-07 12:13:08 +01:00
bb5f390fb9 Style: Apply clang-tidy fixes (superficial)
• `modernize-use-bool-literals`, `modernize-use-nullptr`, and `readability-braces-around-statements`
2024-11-04 12:11:14 -06:00
21f7c8a25f Fix slow editor load on large projects (v2) 2024-09-25 17:36:39 -04:00
e9194702a3 Merge pull request #96840 from bruvzg/open_wstat
[Windows] Remove `_wstat` use in `FileAccessWindows::open_internal`
2024-09-11 12:34:28 +02:00
e16f8bae2e [Windows] Remove _wstat use in FileAccessWindows::open_internal 2024-09-11 09:48:09 +03:00
7139f46c9a [Windows] Use GetFileTime for FileAccess
Prevents DST from rearranging file times.
2024-09-06 13:53:46 +02:00
527c716784 Merge pull request #92167 from BlueCube3310/file-access-the-final-season-part3-ep2
Reduce code duplication in FileAccess
2024-09-02 12:12:42 +02:00
6db8e3b6b1 Fix Windows importer issue with new file detection 2024-09-01 10:24:29 -04:00
205a10e0ae Reduce code duplication in FileAccess 2024-09-01 12:39:32 +02:00
ae334e069c [Windows] Always use absolute UNC paths and long path aware APIs, add "long path aware" flag to the application manifest. 2024-08-28 11:15:57 +03:00
3679ea5d26 [Windows] Improve warning for path casing. 2024-04-27 16:49:47 +02:00
88b3e68f93 [FileAccess] Implement resize method. 2024-04-12 19:20:49 +03:00
3a08c646ee Pre-commit: Update to clang-format 17.0.6 and black 24.2.0 2024-02-28 14:25:35 +01:00
c5e1b327c6 Fix invalid file path handling in Windows when there is dot in the file name
This basically re-adds dot-removal removed by the previous commit.
2024-02-13 10:39:03 +01:00
be8f60a78d [Windows] Fix windows is_path_invalid, and apply it to directory creation. 2024-02-09 10:47:07 +02:00
6ed1731746 Use platform-specific methods for FileAccess reading and writing 2023-10-29 17:34:18 +01:00
814ab59c37 Windows: Remove MSVC define redundant with _MSC_VER
Cleanup unused MSVC code in FileAccessUnix.
2023-09-26 11:11:45 +02:00
3565d1bf7e [Drivers,Platform] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-09-12 20:13:32 +02:00
49177b6eeb Make Windows' safe save more resilient 2023-08-25 18:28:35 +02:00
8aa6f29b56 [FileAccess] Add methods to get/set "hidden" and "read-only" attributes on macOS/BSD and Windows. 2023-08-08 21:51:32 +03:00
59f04e16b8 Support long path in file access on windows
Changed windows file access file to check for path length and use the \\?\ long format when needed
2023-05-05 10:04:39 +02:00
ea31842b72 Merge pull request #73156 from gw2cc/safe_save
Create a safe temporary file with is_backup_save_enabled
2023-03-16 12:05:48 +01:00
ACB
345f5757e5 Create a safe temporary file with is_backup_save_enabled 2023-03-15 19:36:07 +01:00
bc95b0b171 Restore FileAccess.close method. 2023-02-16 15:34:20 +02:00
c5390f203d Prevent opening Windows console files
Fixes #20110.
2023-01-11 15:05:29 +01:00
d95794ec8a One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
0103af1ddd Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
9f2dc68279 Replace File/Directory with FileAccess/DirAccess 2022-09-19 11:03:31 +02:00
d2ebac3a30 Remove or make private FileAccess close() methods. 2022-04-12 14:50:14 +03:00
b8b4580448 Style: Cleanup single-line blocks, semicolons, dead code
Remove currently unused implementation of TextureBasisU, could be re-added
later on if needed and ported.
2022-02-16 14:06:29 +01:00
fe52458154 Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
49403cbfa0 Replace String comparisons with "", String() to is_empty()
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
2021-12-09 04:48:38 -06:00
5acb8a253e Only print message for get_modified_time() failure when in verbose mode
This error message was often displayed for no good reason when PCK
files were loaded in the editor.

Since file modification dates are secondary metadata, it's not
very important if it can't be retrieved successfully anyway.
2021-12-01 21:47:09 +01:00
425ed0ffe0 Add missing WIN32_LEAN_AND_MEAN 2021-09-23 10:35:00 +02:00
cb52f2c9c0 FileAccessWindows: Add missing share.h include
Follow-up to #51430.
2021-08-10 13:01:16 +02:00
a5c179e4f8 FileAccessWindows: Cosmetic improvements 2021-08-09 14:43:09 +02:00