summaryrefslogtreecommitdiffstats
path: root/drivers/unix
Commit message (Collapse)AuthorAgeFilesLines
* Fix `url_decode` with mixed percent-encoding/Unicode strings. Treat Unix ↵bruvzg2021-04-301-5/+7
| | | | drive names as UTF-8 encoded.
* Core: Drop custom `copymem`/`zeromem` definesRémi Verschelde2021-04-271-5/+5
| | | | | | | | We've been using standard C library functions `memcpy`/`memset` for these since 2016 with 67f65f66391327b2967a20a89c3627e1dd6e84eb. There was still the possibility for third-party platform ports to override the definitions with a custom header, but this doesn't seem useful anymore.
* Merge pull request #47398 from Faless/feature/network-local-port-salvagedRémi Verschelde2021-04-272-17/+53
|\
| * Allow local port control on net_socket connectionsdam2021-04-122-17/+53
| |
* | [Net] Fix socket poll timeout on Windows.Fabio Alessandrelli2021-04-261-1/+1
|/ | | | Now correctly computes the timeout value in milliseconds.
* FileDialog: add Back/Forward buttons, add message for inaccessible folders.bruvzg2021-03-232-0/+24
|
* Allow nullptr with zero length in FileAccess get_bufferAlex Hirsch2021-03-161-1/+1
| | | | fix #47071
* Thread: Re-add pthread_np.h include for FreeBSD/OpenBSDRémi Verschelde2021-03-141-0/+4
| | | | | | Was a regression from #45315. Fixes #46998.
* Add parameter checkes to FileAccess get_buffer functionsAlex Hirsch2021-03-091-0/+2
| | | | fix #46540
* Merge pull request #45315 from RandomShaper/modernize_threadRémi Verschelde2021-01-313-131/+12
|\ | | | | Modernize Thread
| * Modernize ThreadPedro J. Estébanez2021-01-293-131/+12
| | | | | | | | | | | | | | | | | | - Based on C++11's `thread` and `thread_local` - No more need to allocate-deallocate or check for null - No pointer anymore, just a member variable - Platform-specific implementations no longer needed (except for the few cases of non-portable functions) - Simpler for `NO_THREADS` - Thread ids are now the same across platforms (main is 1; others follow)
* | Unify URI encoding/decoding and add to C#Aaron Franke2021-01-281-1/+1
|/ | | | http_escape and percent_encode have been unified into uri_encode, and http_unescape and percent_decode have been unified into uri_decode.
* Modernize RWLockPedro J. Estébanez2021-01-193-158/+0
| | | | | | | | - Based on C++14's `shared_time_mutex` - No more need to allocate-deallocate or check for null - No pointer anymore, just a member variable - Platform-specific implementations no longer needed - Simpler for `NO_THREADS`
* Merge pull request #45157 from madmiraal/fix-44514Rémi Verschelde2021-01-131-2/+4
|\ | | | | Raise SIGKILL instead of CRASH_NOW in child process when fork fails
| * Raise SIGKILL instead of CRASH_NOW in child process when fork failsMarcel Admiraal2021-01-131-2/+4
| |
* | Fix OS::execute() and OS::create_process() command line argument CharStrings ↵bruvzg2021-01-131-6/+16
|/ | | | freed before use.
* Merge pull request #44514 from madmiraal/split-os-executeRémi Verschelde2021-01-122-43/+52
|\ | | | | Split OS::execute into two methods
| * Split OS::execute into two methodsMarcel Admiraal2021-01-092-43/+52
| | | | | | | | | | 1. execute(): Executes a command and returns the results. 2. create_process(): Creates a new process and returns the new process' id.
* | Merge pull request #42740 from lolleko/fix-nanosleep-usageRémi Verschelde2021-01-111-2/+5
|\ \ | |/ |/| Fix nanosleep usage
| * Fix nanosleep usageLorenz Junglas2020-10-121-2/+5
| | | | | | | | | | | | | | | | | | nanosleep returns 0 or -1 not the error code. The error code "EINTR" (if encountered) is placed in errno, in which case nanosleep can be safely recalled with the remaining time. This is required, so that nanosleep continues if the calling thread is interrupted by a signal. See manpage nanosleep(2) for additional details.
* | Update copyright statements to 2021Rémi Verschelde2021-01-0116-32/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
* | Add override keywords to core/os.h derived classes.Marcel Admiraal2020-12-171-25/+25
| |
* | Remove now unused FileAccessBuffered.Fabio Alessandrelli2020-12-061-1/+0
| |
* | Initialize class/struct variables with default values in core/ and drivers/Rafał Mikrut2020-11-231-1/+1
| |
* | doc: Warn about using Node internal processingRémi Verschelde2020-11-201-2/+2
| | | | | | | | | | | | | | | | See #43689. Also 'fixed' some spelling for behavior in publicly visible strings. (Sorry en_GB, en_CA, en_AU, and more... Silicon Valley won the tech spelling war.)
* | Reorganized core/ directory, it was too fatty alreadyreduz2020-11-076-8/+8
| | | | | | | | | | | | -Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
* | Fix wrong exit code being returnedEv1lbl0w2020-10-241-1/+1
|/
* Hides special folders in FileDialog for macOSHaoyu Qiu2020-09-282-1/+6
|
* NetBSD: Implement OS_Unix::get_executable_path()Rémi Verschelde2020-09-181-2/+2
| | | | Same implementation as OpenBSD seems to work fine.
* Linux/BSD: Fix support for NetBSDRémi Verschelde2020-09-181-4/+6
| | | | | | | | | Add __NetBSD__ to `platform_config.h` so that it can find `alloca` and use the proper `pthread_setname_np` format. Rename RANDOM_MAX to avoid conflict with NetBSD stdlib. Fixes #42145.
* Replace calls to gmtime with gmtime_r and localtime with localtime_r.Marcel Admiraal2020-09-041-17/+18
|
* [Complex Test Layouts] Change `String` to use UTF-32 encoding on all platforms.bruvzg2020-09-031-1/+1
|
* [macOS] Fix crash on failed `fork`.bruvzg2020-08-111-1/+1
|
* Add override keywords.Marcel Admiraal2020-07-101-2/+2
|
* Merge pull request #38713 from aaronfranke/string-64bitRémi Verschelde2020-07-011-1/+1
|\ | | | | Make all String integer conversion methods be 64-bit
| * Remove 32-bit String to_int methodAaron Franke2020-06-031-1/+1
| |
* | Remove OS.get_system_time_secs/get_system_time_msecs and change ↵Emmanuel Leblond2020-05-312-16/+4
|/ | | | OS.get_unix_time return type to double
* Style: Enforce braces around if blocks and loopsRémi Verschelde2020-05-147-70/+128
| | | | | Using clang-tidy's `readability-braces-around-statements`. https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
* Style: Enforce separation line between function definitionsRémi Verschelde2020-05-142-0/+3
| | | | | | | | | | | | | | | | | | | | | | | I couldn't find a tool that enforces it, so I went the manual route: ``` find -name "thirdparty" -prune \ -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \ -o -name "*.glsl" > files perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files) misc/scripts/fix_style.sh -c ``` This adds a newline after all `}` on the first column, unless they are followed by `#` (typically `#endif`). This leads to having lots of places with two lines between function/class definitions, but clang-format then fixes it as we enforce max one line of separation. This doesn't fix potential occurrences of function definitions which are indented (e.g. for a helper class defined in a .cpp), but it's better than nothing. Also can't be made to run easily on CI/hooks so we'll have to be careful with new code. Part of #33027.
* Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde2020-05-1413-123/+0
| | | | | | | | | | | | | | Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
* Enforce use of bool literals instead of integersRémi Verschelde2020-05-141-1/+1
| | | | | Using clang-tidy's `modernize-use-bool-literals`. https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-bool-literals.html
* Port member initialization from constructor to declaration (C++11)Rémi Verschelde2020-05-144-16/+7
| | | | | | | | | | Using `clang-tidy`'s `modernize-use-default-member-init` check and manual review of the changes, and some extra manual changes that `clang-tidy` failed to do. Also went manually through all of `core` to find occurrences that `clang-tidy` couldn't handle, especially all initializations done in a constructor without using initializer lists.
* Style: clang-format: Disable AllowShortCaseLabelsOnASingleLineRémi Verschelde2020-05-101-5/+15
| | | | Part of #33027.
* Style: clang-format: Disable AllowShortIfStatementsOnASingleLineRémi Verschelde2020-05-101-1/+2
| | | | | | | Part of #33027, also discussed in #29848. Enforcing the use of brackets even on single line statements would be preferred, but `clang-format` doesn't have this functionality yet.
* Replace NULL with nullptrlupoDharkael2020-04-028-44/+44
|
* SCons: Format buildsystem files with psf/blackRémi Verschelde2020-03-301-2/+2
| | | | | | | | | | | | | | | | | | | | | Configured for a max line length of 120 characters. psf/black is very opinionated and purposely doesn't leave much room for configuration. The output is mostly OK so that should be fine for us, but some things worth noting: - Manually wrapped strings will be reflowed, so by using a line length of 120 for the sake of preserving readability for our long command calls, it also means that some manually wrapped strings are back on the same line and should be manually merged again. - Code generators using string concatenation extensively look awful, since black puts each operand on a single line. We need to refactor these generators to use more pythonic string formatting, for which many options are available (`%`, `format` or f-strings). - CI checks and a pre-commit hook will be added to ensure that future buildsystem changes are well-formatted.
* Renaming of servers for coherency.Juan Linietsky2020-03-271-1/+1
| | | | | | | | | | VisualServer -> RenderingServer PhysicsServer -> PhysicsServer3D Physics2DServer -> PhysicsServer2D NavigationServer -> NavigationServer3D Navigation2DServer -> NavigationServer2D Also renamed corresponding files.
* Make file formatting comply with POSIX and Unix standardsAaron Franke2020-03-211-1/+1
| | | | UTF-8, LF, no BOM, and newlines at the end of files
* Refactor ScriptDebugger.Fabio Alessandrelli2020-03-081-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | EngineDebugger is the new interface to access the debugger. It tries to be as agnostic as possible on the data that various subsystems can expose. It allows 2 types of interactions: - Profilers: A subsystem can register a profiler, assigning it a unique name. That name can be used to activate the profiler or add data to it. The registered profiler can be composed of up to 3 functions: - Toggle: called when the profiler is activated/deactivated. - Add: called whenever data is added to the debugger (via `EngineDebugger::profiler_add_frame_data`) - Tick: called every frame (during idle), receives frame times. - Captures: (Only relevant in remote debugger for now) A subsystem can register a capture, assigning it a unique name. When receiving a message, the remote debugger will check if it starts with `[prefix]:` and call the associated capture with name `prefix`. Port MultiplayerAPI, Servers, Scripts, Visual, Performance to the new profiler system. Port SceneDebugger and RemoteDebugger to the new capture system. The LocalDebugger also uses the new profiler system for scripts profiling.
* Merge pull request #36752 from RandomShaper/rework_semaphoreRémi Verschelde2020-03-053-150/+0
|\ | | | | Drop old semaphore implementation