diff options
author | Eliseo Martínez <eliseomarmol@gmail.com> | 2014-05-12 02:25:17 +0200 |
---|---|---|
committer | Eliseo Martínez <eliseomarmol@gmail.com> | 2014-05-15 20:46:01 +0200 |
commit | da51dc9cf202772f60bd2da975dbef257bd9237c (patch) | |
tree | 5c16b93238a153f55634e9323077f30c8133970c /src/nvim/os/uv_helpers.c | |
parent | ffe61e5ba1721340ca51d56bae3ddaca415fb5bc (diff) | |
download | rneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.tar.gz rneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.tar.bz2 rneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.zip |
Introduce nvim namespace: Move files.
Move files from src/ to src/nvim/.
- src/nvim/ becomes the new root dir for nvim executable sources.
- src/libnvim/ is planned to become root dir of the neovim library.
Diffstat (limited to 'src/nvim/os/uv_helpers.c')
-rw-r--r-- | src/nvim/os/uv_helpers.c | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/nvim/os/uv_helpers.c b/src/nvim/os/uv_helpers.c new file mode 100644 index 0000000000..62b021de5e --- /dev/null +++ b/src/nvim/os/uv_helpers.c @@ -0,0 +1,70 @@ +#include <uv.h> + +#include "os/uv_helpers.h" +#include "vim.h" +#include "memory.h" + +/// Common structure that will always be assigned to the `data` field of +/// libuv handles. It has fields for many types of pointers, and allow a single +/// handle to contain data from many sources +typedef struct { + WStream *wstream; + RStream *rstream; + Job *job; +} HandleData; + +static HandleData *init(uv_handle_t *handle); + +RStream *handle_get_rstream(uv_handle_t *handle) +{ + RStream *rv = init(handle)->rstream; + assert(rv != NULL); + return rv; +} + +void handle_set_rstream(uv_handle_t *handle, RStream *rstream) +{ + init(handle)->rstream = rstream; +} + +WStream *handle_get_wstream(uv_handle_t *handle) +{ + WStream *rv = init(handle)->wstream; + assert(rv != NULL); + return rv; +} + +void handle_set_wstream(uv_handle_t *handle, WStream *wstream) +{ + HandleData *data = init(handle); + data->wstream = wstream; +} + +Job *handle_get_job(uv_handle_t *handle) +{ + Job *rv = init(handle)->job; + assert(rv != NULL); + return rv; +} + +void handle_set_job(uv_handle_t *handle, Job *job) +{ + init(handle)->job = job; +} + +static HandleData *init(uv_handle_t *handle) +{ + HandleData *rv; + + if (handle->data == NULL) { + rv = xmalloc(sizeof(HandleData)); + rv->rstream = NULL; + rv->wstream = NULL; + rv->job = NULL; + handle->data = rv; + } else { + rv = handle->data; + } + + return rv; +} |