aboutsummaryrefslogtreecommitdiff
path: root/src/os_unix.c
Commit message (Collapse)AuthorAge
* removed mch_remove macroStefan Hoffmann2014-04-11
|
* Move exe functions back to os/fs.cJohn Schmidt2014-04-08
|
* Change prefix from `os_*` to `path_*`John Schmidt2014-04-08
|
* Implement job controlThiago de Arruda2014-04-07
| | | | | | - Add a job control module for spawning and controlling co-processes - Add three vimscript functions for interfacing with the module - Use dedicated header files for typedefs/structs in event/job modules
* Use stdbool in os moduleHinidu2014-04-07
|
* 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.
* Add comments and fix `os_microdelay` callThiago de Arruda2014-04-06
|
* Remove `RealWaitForChar` and `mch_new_shellsize`Thiago de Arruda2014-04-06
| | | | | | The last occurrence of `RealWaitForChar` was replaced by the `os_microdelay` function. `mch_new_shellsize` had an empty body, so there seems to be no reason for keeping it around
* 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
|
* Remove the old `mch_call_shell` implementationThiago de Arruda2014-04-05
|
* Remove mzschemeJohn Schmidt2014-04-05
|
* Remove SniFFJohn Schmidt2014-04-05
|
* Extract memory.c from misc2.cJohn Schmidt2014-04-04
|
* Remove `mch_call_shell` GUI printing codeThiago de Arruda2014-04-03
| | | | | This isn't needed right now because spawned shells will inherit stdout by default
* Remove support for running interactive programsThiago de Arruda2014-04-03
| | | | | | | | | This removes `mch_call_shell` code for feeding programs interactively. The removed code was supporting interactive programs in the old GUI, but right now we only have a terminal UI. The code is currently safe to remove because interactive programs will just simply take control of the terminal in cooked mode.
* Test and refactor gettail -> path_tail.Thomas Wienecke2014-04-03
|
* remove HAVE_RENAMEoni-link2014-04-02
| | | | rename is a C99 standard function.
* 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`
* Move mch_expandpath from os_unix.cJohn Schmidt2014-04-01
|
* remove HAVE_SETJMP_HJulian Orth2014-03-31
|
* Rename ga_init2() to ga_init()John Schmidt2014-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
|
* Split code for counting and parsing argumentsThiago de Arruda2014-03-31
|
* Extract path.c from misc1.cJohn Schmidt2014-03-29
|
* Rename mch_* functions to os_* in os module.Thomas Wienecke2014-03-27
|
* 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
* Use memmove instead of mch_memmoveFelipe Oliveira Carvalho2014-03-26
|
* 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.
* adapt to the style guildelinesPetter Wahlman2014-03-19
| | | | | semi-automated harvest of low hanging fruit: change the unorthodox use of whitespace.
* 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
|
* moved mch_get_user_name() and mch_get_uname() into os/users.cStefan Hoffmann2014-03-13
|
* Move mch_can_exe, executable_file to os/fs.c.Thomas Wienecke2014-03-07
| | | | * Rename executable_file to is_executable.
* cleanup environment variable handling + unit testsStefan Hoffmann2014-03-06
| | | | | | | | * removed a putenv() implementation which isn't needed anymore * mch_getenv() and mch_setenv() are now functions in src/os/env.c * removes direct calls to getenv() and setenv() outside of src/os/env.c * refactored the logic of get_env_name into mch_getenvname_at_index * added unittests for the functions in os/env.c
* Fix style issues.Thomas Wienecke2014-03-06
| | | | | | | | * Rename mch_full_name to mch_get_absolute_path. * Rename mch_is_full_name to mch_is_absolute_path. * Add a lot of missing parentheses. * Remove yoda-conditions for consistency. * Remove spaces in function declaration.
* Remove USE_SYSTEM and code only run under USE_SYSTEMSimen Endsjø2014-03-05
|
* Port mch_isdir to libuv.Thomas Wienecke2014-03-05
|
* Remove static declaration of executable_file.Thomas Wienecke2014-03-05
| | | | | Since static functions are only visible in the file in which they are defined, this needs to be done in order to unit test the function.
* Rename and refactor mch_FullName.Thomas Wienecke2014-03-04
| | | | | | | | | * Rename mch_FullName to mch_full_name to match the style guide. * Add mch_full_dir_name, which saves the absolute path of a given directory relative to cwd into a given buffer. * Add function append_path, which glues together two given paths with a slash. * Adapt moonscript coding style to the tests.
* Remove dead stack-checking code.Alexander Bolodurin2014-03-03
| | | | | | | Code under HAVE_STACK_LIMIT is not used. The definition was commented out in rev 180 of the original Mercurial repo, and then completely removed in rev 2520, but the code guarded by it was left in.
* Remove __ARGS macro. Close #205Nicolas Pierron2014-03-02
| | | | | | | | | This is a squash of all commits sent to #81. - Remove unused undef of __ARGS. - Fix mch_rename declaration. - Follow changes related to moved & extracted files. - Properly indent function declarations of getchar.h and quickfix.c.
* Extract garray.c from misc2.cFelipe Oliveira Carvalho2014-02-28
| | | | Start to split misc2.c in many other files (see #209).
* Removes 'proto' dirscott-linder2014-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See #137 for the issue. Every header in the proto directory was: * Given include guards in the form #ifndef NEOVIM_FILENAME_H #define NEOVIM_FILENAME_H ... #endif /* NEOVIM_FILENAM_H */ * Renamed from *.pro -> *.h * Moved from src/proto/ to src/ This would have caused conficts with some existing headers in src/; rather than merge these conflicts now (which is a whole other can of worms involving multiple and conditional inclusion), any header in src/ with a conflicting name was renamed from *.h -> *_defs.h (which may or may not actually describe its purpose, the change is purely a namespacing issue). Once all of these changes were made a script was developed to determine what #includes needed to be added to each source file to describe its dependencies and allow it to compile; because the script is so short and I'll just list it here: #! /bin/bash cd $(dirname $0) # Scrapes `make` output for provided error messages and outputs #includes # needed to resolve them. # $1 : part of the clang error message between filename and identifier list_missing_includes() { for file_missing_pair in $(CC=clang make 2>&1 >/dev/null | sed -n "s/\/\(.*\.[hc]\).*$1.*'\(.*\)'.*/\1:\2/p"); do fields=(${file_missing_pair//:/ }) source_file=${fields[0]} missing_func=${fields[1]} # Try to find the declaration of the missing function. echo $(basename $source_file) \ \#include \"$(grep -r "\b$missing_func __ARGS" | sed -n "s/.*\/\(.*\)\:.*/\1/p")\" # Remove duplicates done | sort | uniq } echo "Finding missing function prototypes..." list_missing_includes "implicit declaration of function" echo "Finding missing identifier declarations..." list_missing_includes "use of undeclared identifier" Each list of required headers was added by hand in the following format: #include "vim.h" #include "*_defs.h" #include "filename.h" /* All other includes in same module here, in alphabetical order. */ /* All includes from other modules (e.g. "os/*.h") here in alphabetical * order. */