aboutsummaryrefslogtreecommitdiff
path: root/src/os
Commit message (Collapse)AuthorAge
...
* Use stdbool in os moduleHinidu2014-04-07
|
* Turn Event into a tagged unionFelipe Oliveira Carvalho2014-04-07
| | | | | If we ever need arbitrary data or more than very few bytes on `Events` we just have to add a `void *` field in the `data` union.
* Reimplement the event queue in event.c using klist.hFelipe Oliveira Carvalho2014-04-07
| | | | | | | | | | | | | | | | | | | | - Add a new macro to klist.h: kl_empty() The whole point of abstract data structures is to avoid reimplementing common actions. The emptiness test seems to be such an action. - Add a new function attribute to func_attr.h: FUNC_ATTR_UNUSED Some of the many functions created by the macros in klist.h may end up not being used. Unused functions cause compilation errors as we compile with -Werror. To mark those functions as possibly unused we can use the FUNC_ATTR_UNUSED now. - Pass `Event` by value `Event` is such a small struct that I don't think we should allocate heap space and pass it by reference. Let's use the stack and memory cache in our favor passing it by value.
* Remove simpler cases of OOM error handling (after *alloc calls)Felipe Oliveira Carvalho2014-04-06
| | | | | | | | | | | | | | | | | | By simpler cases I mean cases where the OOM error is not expected to be handled by the caller of the function that calls `alloc`, `lalloc`, `xrealloc`, `xmalloc`, `alloc_clear`, and `lalloc_clear`. These are the functions that: - Do not return an allocated buffer - Have OOM as the only error condition I took note of the functions that expect the caller to handle the OOM error and will go through them to check all the callers that may be handling OOM error in future commits. I'm ignoring eval.c and ex_.c in this series of commits. eval.c will soon be obsolete and I will deal with ex_.c in later PRs.
* Remove unneeded variable `in_os_delay`Thiago de Arruda2014-04-06
| | | | | This variable only existed for the old SIGQUIT handler. Now it's no longer necessary, especially when Neovim stops being a terminal program.
* Add comments and fix `os_microdelay` callThiago de Arruda2014-04-06
|
* Implement os_microdelay and os_delay on top of itThiago de Arruda2014-04-06
|
* Replace `strdup` calls by `xstrdup`Thiago de Arruda2014-04-06
|
* Use early return for rejecting_deadly in signal_cbThiago de Arruda2014-04-06
|
* Moved mch_get_host_name and renamed it to os_get_hostanmeStefan Hoffmann2014-04-05
|
* Moved mch_get_pid and renamed it to os_get_pidStefan Hoffmann2014-04-05
|
* Rewrite `mch_call_shell` on top of libuvThiago de Arruda2014-04-05
| | | | | | - Rename to `os_call_shell` - Use another entry point for libuv default event loop - Fix the `call_shell` reference in misc2.c
* Stop queueing events when signals are rejectedThiago de Arruda2014-04-05
| | | | | The only exception is SIGINT, which will set `got_int` directly. This will be necessary for the new implementation of `mch_call_shell`
* Extract memory.c from misc2.cJohn Schmidt2014-04-04
|
* Replace mch_rename and vim_rename with libuvHinidu2014-04-04
|
* Add os_stat to os/fs module.Thomas Wienecke2014-04-03
|
* added doxygen documentation for os_file_is_{readonly, writable}Stefan Hoffmann2014-04-03
|
* remove mch_access macro as it is only used in fs.cStefan Hoffmann2014-04-03
|
* move filewritable() into /src/os/fs.c and rename itStefan Hoffmann2014-04-03
|
* move check_file_readonly() into /src/os/fs.c and rename itStefan Hoffmann2014-04-03
|
* Use check_symbol_exists() instead of check_function_exists().John Szakmeister2014-04-03
| | | | | | | | This is mostly a revert of 477031c03b2c525b117fae8a9b61c98245a06908. Now that we are not setting `CMAKE_C_FLAGS`, the check can work correctly and it helps `pcc` (portable c compiler) make it further along--though it still doesn't produce usable results (see #427 for the details).
* Move signal handling to libuv event loopThiago de Arruda2014-04-01
| | | | | | | | | | | | | | | | | This removes all signal handling code from os_unix.c to os/signal.c. Now signal handling is done like this: - Watchers for signals are registered with libuv default event loop - `event_poll` continuously calls `poll_uv_loop` to produce events until it receives user input, SIGINT or a timeout - Any signals received in `poll_uv_loop` will push events to a queue that is drained and processed by `event_poll` Signals aren't handled directly in the libuv callback to avoid recursion in the event loop(which isn't supported by libuv). The same principle will apply to other events in the future: Push to a queue from a libuv callback and drain it from `event_poll`
* Rename ga_init2() to ga_init()John Schmidt2014-03-31
|
* Fix shell.{c,h} comments to match the style guideThiago de Arruda2014-03-31
|
* Add doxygen comments to the functions in shell.cThiago de Arruda2014-03-31
|
* Rewrite `show_shell_mess` as a `ShellOpts` flagThiago de Arruda2014-03-31
|
* Refactor SHELL_* defines into enum typedefThiago de Arruda2014-03-31
| | | | | | The SHELL_* defines are the bitflags that can be passed to `mch_call_shell`. The enum is defined in 'os/shell.h', where all shell-related functions will eventually be defined.
* Refactor/cleanup argument parsing functionsThiago de Arruda2014-03-31
|
* Extract `shell_build_argv` from `mch_call_shell`Thiago de Arruda2014-03-31
|
* Make `extra_shell_arg` a `mch_call_shell` parameterThiago de Arruda2014-03-31
|
* Extract `shell_count_argc` from `mch_call_shell`Thiago de Arruda2014-03-31
|
* Extract `shell_skip_word` from `mch_call_shell`Thiago de Arruda2014-03-31
|
* Add doxygen-style comments to functions from os/fs.c.Thomas Wienecke2014-03-31
|
* Address clint warnings and other style issues.Thomas Wienecke2014-03-27
| | | | | | | * Add const. * Fix conditions (move && from end to start of line). * Use int32_t instead of long. * Use //-style comments.
* Rename mch_* functions to os_* in os module.Thomas Wienecke2014-03-27
|
* Fix prepare watcher teardown in the event loopThiago de Arruda2014-03-27
|
* Re-integrate FEAT_FILTERPIPE codeThiago de Arruda2014-03-27
| | | | | | | | | | | | | This feature was accidentally removed when doing the initial import from vim. It makes vim use pipes instead of temporary files for filtering buffers through shell commands. I found that this was missing when looking for references of SHELL_READ/SHELL_WRITE outside mch_call_shell`. When `mch_call_shell` is reimplemented on top of libuv process management facilities, pipes will always be used for communication with child processes so it makes sense to enable the feature permanently.
* Make `EventType` enum private to input.cThiago de Arruda2014-03-27
| | | | | This enum doesn't need to be public since `event_poll` is only interested in user input(but other events may be handled by libuv callbacks).
* Reimplement input functions on top of libuvThiago de Arruda2014-03-26
| | | | | | | | | | | | | | | | The functions `mch_inchar`, `mch_breakcheck`, `mch_char_avail` were reimplemented on top of libuv. Here's how it works: - When Neovim needs to wait for characters, it will transfer control to libuv event loop. - When the libuv event loop gets user input, it will transfer control back to Neovim - Neovim uses the `input_read` function to get the actual data read by libuv. With this scheme its possible to keep Neovim single-threaded while enjoying the benefits provided by libuv. This commit leaves SIGWINCH broken for now
* Implement `mch_delay` on top of libuvThiago de Arruda2014-03-24
| | | | | Needed to temporarily move two static variables from os_unix.c to 'globals.h' as those are shared by other functions still in os_unix.
* Update to the newest libuv versionThiago de Arruda2014-03-22
|
* Revive vim_fname (-> os_file_exists); fix misuse of mch_getperm.Thomas Wienecke2014-03-15
| | | | | | * Move vim_fname from misc1 to os/fs:os_file_exists. * Add unit tests for os_file_exists. * Replace misuse of mch_getperm with os_file_exists.
* Move and refactor mch_[gs]etperm to os/fs module.Thomas Wienecke2014-03-15
|
* Use include paths relative to src/James McCoy2014-03-14
| | | | | | | | | | As described in Google's style guide, the basis for Neovim's > All of a project's header files should be listed as descendants of the > project's source directory without use of UNIX directory shortcuts . > (the current directory) or .. (the parent directory). Add src as an include directory to facilitate this.
* Adapt include guards to the style guideJames McCoy2014-03-14
|
* Fix: Use an assert to make sure, an error message can be copied into buffer ↵oni-link2014-03-13
| | | | | | buf in mch_dirname(). The copied error message is NUL-terminated.
* refactored part of expand_env_esc() into mch_get_user_directory()Stefan Hoffmann2014-03-13
|
* moved mch_get_user_name() and mch_get_uname() into os/users.cStefan Hoffmann2014-03-13
|
* refactored logic from init_users() into mch_get_usernames()Stefan Hoffmann2014-03-13
|
* Fix bugs, clean code, add tests.Thomas Wienecke2014-03-07
| | | | | | | | * Add const specifiers, update comments, add assert. * Move os_unix.moon tests to os/fs.moon + clean tests. * Add uv_fs_req_cleanup call. * Add tests with absolute paths to mch_isdir. * Add to_cstr to test/unit/helpers.moon and fix respective unit tests.