Commit Graph

353 Commits

Author SHA1 Message Date
Jeroen van Rijn 77f4199af6 Simplify _xdg_user_dirs_lookup 2025-06-08 14:56:41 +02:00
Jeroen van Rijn 6d7f5baaf8 Merge pull request #5295 from elyalon/dirs
Fix user dirs, add docs
2025-06-07 11:13:40 +02:00
Ely Alon deeb9e2d12 remove fmt import 2025-06-07 01:40:43 +03:00
Ely Alon 17746db555 Fix user dirs, add docs 2025-06-07 01:22:30 +03:00
Jeroen van Rijn e870369c97 Merge pull request #5288 from Feoramund/strconv-append-to-write
Clarify `strconv.append_*` to `strconv.write_*`
2025-06-05 23:45:37 +02:00
Feoramund b7de15caa3 Clarify strconv.append_* to strconv.write_* 2025-06-05 16:56:00 -04:00
Jeroen van Rijn 108c8781c7 Factor out into helper. 2025-06-05 22:27:18 +02:00
Jeroen van Rijn 90a1b0ec4b UAF 2025-06-05 21:45:36 +02:00
Jeroen van Rijn 2428fa37a9 tabs 2025-06-05 21:38:59 +02:00
Ely Alon a9cdb4f446 add more user dirs 2025-06-05 21:50:59 +03:00
Jeroen van Rijn a1759aa2fa Fix 2025-06-05 16:54:39 +02:00
Jeroen van Rijn 93e1c6593e Change os2.user_* on Windows to use SHGetKnownFolderPath.
Known folders can be redirected using `SHSetKnownFolderPath`, and it's a bit iffy to rely on environment variables.

This also more easily allows us to add `user_*_dir` procedures for the remaining 139 GUIDs in `known_folders.odin`, provided they have equivalents on other platforms.
2025-06-05 16:37:41 +02:00
Jeroen van Rijn da3b3a4139 Allocate return value on provided allocator 2025-06-05 15:16:35 +02:00
Laytan Laats eab3e2be22 os2: remove libc use on Linux 2025-05-20 19:48:06 +02:00
Jeroen van Rijn d7a83a7a1f Revert "os2: Don't try to translate Windows file attributes to Unix mode flags"
This reverts commit 95923c2059.
It'll be updated later.
2025-05-12 23:34:12 +02:00
Jeroen van Rijn 30388cada3 Fix os2.clean_path on Windows 2025-05-11 15:35:52 +02:00
Laytan Laats cacb9f9f54 os2: better copy_directory, and add native copy_file and copy_directory variants on MacOS 2025-05-08 19:32:30 +02:00
Lucas Perlind f5b947ea73 Fix linux 2025-05-08 17:45:29 +10:00
Lucas Perlind 14c5096b81 Improve assert information 2025-05-08 17:41:03 +10:00
Lucas Perlind 9f2d008a8a Remove TEMP_ALLOCATOR_GUARD wrapper 2025-05-08 17:41:03 +10:00
Lucas Perlind 5292a7f4f3 Fix posix 2025-05-08 17:41:03 +10:00
Lucas Perlind 1bea59ee68 Fix linux 2025-05-08 17:41:03 +10:00
Lucas Perlind 190960e103 fix -vet 2025-05-08 17:41:03 +10:00
Lucas Perlind b9db1dd3e0 os2: Resolve temp allocator collisions 2025-05-08 17:41:01 +10:00
Laytan 7c1a9f1e7a Merge pull request #5127 from laytan/fix-process-windows-handles-handling
Fix process windows handles handling
2025-05-06 22:31:54 +02:00
laytan 9b218a2922 don't need to hang on to the null handle 2025-05-06 19:42:52 +02:00
Laytan bf5206968a close null_handle 2025-05-06 20:57:26 +02:00
Laytan 2bce446d08 ifs wrong way around 2025-05-06 20:47:51 +02:00
Laytan 814a500e83 Windows was defaulting to the std handles of the current process, which is wrong 2025-05-06 20:43:02 +02:00
Brian 27edbc5a76 Fix: Correct value cloning in os2._set_env for POSIX
The _set_env procedure in core/os/os2/env_posix.odin was
incorrectly cloning the 'key' argument for 'cval' instead of
the 'value' argument. This resulted in set_env effectively
setting the environment variable's value to its own key.

This commit corrects the typo to use the 'value' argument.
2025-05-06 17:45:06 +08:00
Jeroen van Rijn 32cef4c11b Fix change_times on Windows and simplify time handling in stat 2025-05-04 22:55:27 +02:00
Jeroen van Rijn 95923c2059 os2: Don't try to translate Windows file attributes to Unix mode flags
Also, fix `chmod`. It passed the wrong struct size to `SetFileInformationByHandle`.
2025-05-04 20:03:07 +02:00
Jeroen van Rijn 0f2a4b80ef Proper fix for executable name on Linux. 2025-05-04 01:05:10 +02:00
Jeroen van Rijn deededfb0a Fix executable_path info on Linux 2025-05-04 00:21:20 +02:00
Rohan Jadav f50698b901 updated file_windows.odin to follow coding conventions 2025-05-01 00:56:31 +05:30
Jamie Dennis ff0eac2a71 os2: Use win32_wstring_to_utf8 over win32_utf16_to_utf8 when converting FIND_DATAW to File_Info 2025-04-30 21:38:17 +12:00
Rohan Jadav 80a6f8928a fix: Pipe size on windows. 2025-04-27 01:58:37 +05:30
gingerBill f3cc734b39 Add copy_directory 2025-04-25 09:01:53 +01:00
Laytan Laats 74a66f7794 os2: fix get_executable_path() on FreeBSD including the nil-terminator 2025-04-12 21:33:44 +02:00
Jeroen van Rijn c13b68f103 Fix os2/process defer error. 2025-04-07 13:33:21 +02:00
gingerBill 2b8c76354d Use copy over intrinsics.mem_copy_non_overlapping 2025-03-24 11:31:05 +00:00
Feoramund 649376fcfe Add require_results to getters in os2 path API 2025-03-21 19:14:15 -04:00
Feoramund cfa3e97968 Make os2 Linux _is_path_separator compare against _Path_Separator 2025-03-21 19:14:15 -04:00
Feoramund 6a6980fda8 Remove if ODIN_OS == .Windows in file that can only be built on Windows 2025-03-21 19:14:15 -04:00
Feoramund 4e7f54c565 Decouple usage of filepath from os2 2025-03-21 19:14:15 -04:00
Feoramund abe0c30837 Add new path API for os2 2025-03-21 19:14:15 -04:00
Feoramund d1d86234aa Add missing documentation to os2/path 2025-03-20 18:36:26 -04:00
Feoramund a495cd581c Assert that _Path_Separator is 7-bit ASCII
There are several places where this is assumed to be true, most visibly
in `is_path_separator`, as it takes a `byte` argument.

Note that the data type of `_Path_Separator` is a rune, which allows any
Unicode value.
2025-03-20 14:43:54 -04:00
Feoramund 2ab1ca29e6 Fix data races in os2/env_linux.odin
Switched to a recursive mutex so that procedures which need to perform
lookups can do so while also maintaining the lock across their entire
body in order to guarantee atomicity for each environment operation.
2025-03-04 19:32:05 -05:00
Feoramund 179e5b9266 Fix typo 2025-03-04 19:12:45 -05:00