Commit Graph

58 Commits

Author SHA1 Message Date
ZyX
cf4e1fb0f4 *: Fix new linter errors
Originally there were 128 new errors, so I thought this is a good idea to fix 
all of them. Of course, this commit also fixes many suppressed errors.
2016-05-01 20:35:51 +03:00
Rui Abreu Ferreira
d0a3f8b73f Add missing include fcntl.h
In Windows, open() flags like O_RDONLY need fcntl.h.
2016-04-29 08:24:07 +01:00
Justin M. Keyes
7db4a15e95 os_nodetype: impl with libuv 2016-04-29 00:22:43 -04:00
Jurica Bradaric
88a735166b vim-patch:7.4.1114
Problem:    delete() does not work well with symbolic links.
Solution:   Recognize symbolik links.

43a34f9f74
2016-04-20 08:25:51 +02:00
Charles Joachim
06b40d31c1 path.c: enable -Wconversion 2016-03-27 23:42:39 -04:00
Rui Abreu Ferreira
da4bf813da Windows: use $PATHEXT to find executables in path.
is_executable_in_path() searches for executables in $PATH, but on
Windows executable files have extensions available in the environment
var $PATHEXT. This commit changes is_executable_in_path() to append
those extensions to the filename.

This patch diverges from standard Vim, in that Vim only checked for
the given filename if it already has an extensions. This one always
checks for the given filename.
2016-01-30 15:09:18 -05:00
Rui Abreu Ferreira
7c0f6d2380 Windows: use ';' as env $PATH separator.
In Windows the separator character in the PATH environment is ';' instead
of ':'. Add a new define ENV_SEPCHAR to be used instead of hardcoding
the character literal.
2016-01-11 16:36:13 -05:00
Seth Jackson
648aebb8b6 Port fsync() to libuv. 2016-01-01 00:12:28 -05:00
Rui Abreu Ferreira
d54338f1e0 Return libuv error code from os_getperm()
Previously os_getperms() returned -1 for any error condition, it
now returns the libuv error code (as returned by os_stat()). This
allows checking for error conditions without relying on errno
(which not available in Windows).

The only case where the errno value from os_getperms() was being used
was in readfile() to set the new-file flag - replaced the errno check
with UV_ENOENT.
2015-11-25 23:15:38 +00:00
Rui Abreu Ferreira
091b6e216c Return libuv return code from os_stat()
Instead of returning bool from os_stat return the actual libuv return code.
This function is static and used internally in nvim/os/fs.c it should not
impact the rest of the API. This is a first step to change other fs functions.
2015-11-25 23:15:37 +00:00
Rui Abreu Ferreira
8dea8a036f Fix comments for os_* functions return value
In windows libuv does not return -errno, instead it uses negative
error codes e.g. UV_ENOENT. This commit changes the comments in os_*
functions to reflect this.
2015-11-25 23:15:37 +00:00
Michael Reed
3f8a2faff4 os/fs.c: Convert stray getenv() to os_getenv()
This is the last direct getenv() call in the tree (besides the one in
os_getenv()); most of the work was already done in [1].

[1]: 412d246be7
2015-10-31 02:05:58 -04:00
ZyX
fefcc01cc1 os/fs: Allow os_mkdir_recurse directory name to end with /// 2015-10-23 14:54:11 +03:00
Felipe Morales
77e416b711 do_path_expand: Avoid non-readable directories. #3273
Closes https://github.com/neovim/neovim/issues/3164
Closes https://github.com/neovim/neovim/issues/3194
Closes https://github.com/neovim/neovim/issues/3221

Helped-by: @splinterofchaos
Helped-by: @oni-link
Helped-by: @justinmk
2015-09-04 19:56:37 -04:00
Rui Abreu Ferreira
e7b58b4e53 Windows: is_executable(): do not check exec bit.
In Windows there is no equivalent to the filesystem executable bit; the
documentation states that for Windows :executable() returns
1 for all files. But this behaviour was broken because is_executable()
checked for the UNIX bit.

When WIN32 is defined we now skip the S_IXUSR check.
2015-08-23 23:53:24 -04:00
Justin M. Keyes
8f09fa1a49 os/fs.c: remove os_file_is_readonly()
os_file_is_readonly() in its current form is equivalent to
!os_file_is_writable(). This does not appear to be a bug, because Vim's
use of check_file_readonly() (which we changed to os_file_is_readonly())
is equivalent to !os_file_is_writable() in every case.

os_file_is_readonly() also fails this test:

    returns false if the file is non-read, non-write

A more useful form would define behavior under these cases:

  - path is executable (but not writable)
  - path is non-existent
  - path is directory

But there is no reason for os_file_is_readonly() to exist, so remove it.
2015-08-17 01:15:04 -04:00
Justin M. Keyes
86c38ef126 os_file_is_*: libuv impl
- uv_fs_access() is far more robust than access(). In particular, it
  handles utf16 paths (Windows).
- Still need R_OK, W_OK in win_defs.h
2015-08-17 01:07:48 -04:00
Justin M. Keyes
3ce1b4015f fs.c: implement os_file_is_readable()
Use access() because:

- We already use it for os_file_is_writable()
- Vim's old check_file_readonly() ends up using access() after all.
2015-08-17 01:06:00 -04:00
ZyX
1206ac953f os/fs: Move mkdir_recurse from eval.c to os/fs.c 2015-07-26 02:34:32 +03:00
Thiago de Arruda
d6ed2b3a39 os/fs: Use module-local uv_loop_t instance
This event loop is just a stub instance used in synchronous libuv function
calls, it needs to be decoupled from the main event loop in order to run it from
another thread.
2015-07-01 05:40:53 -03:00
Michael Reed
3c5864772f Remove char_u: message:smsg() 2015-05-13 15:29:50 -04:00
Thiago de Arruda
34c48aaf12 memory: Add free wrapper and refactor project to use it
We already use wrappers for allocation, the new `xfree` function is the
equivalent for deallocation and provides a way to fully replace the malloc
implementation used by Neovim.
2015-04-13 08:22:44 -03:00
Scott Prager
99869989c8 os_scandir(), scandir_next(), and os_closedir() 2015-03-31 11:20:23 -03:00
oni-link
fe4920f138 Remove unnecessary assert() in os_dirname().
Compiler warns about buf always being nonnull.

buf is per function attribute always nonnull, so buf can be removed from
the assert(). But a buffer length of zero is also no problem, because it
makes uv_cwd() return a failure without writing into buf. So the
remaining length check can also be removed.
2015-03-08 13:01:16 +01:00
Florian Walch
0f258e4453 Linting: Fix strcpy warning. 2014-12-24 00:32:26 -05:00
Justin M. Keyes
6b47e13ee0 fs.c: add FUNC_ATTR_NONNULL_ALL to all functions 2014-10-30 05:17:12 +00:00
Scott Prager
eff839b26d memory: xstrchrnul and xmemscan. 2014-09-30 19:33:48 -04:00
Scott Prager
9445eaa297 vim-patch:7.4.235
Problem:    It is not easy to get the full path of a command.
Solution:   Add the exepath() function.

https://code.google.com/p/vim/source/detail?r=5ab2946f7ce560985830fbc3c453bb0f7a01f385
2014-09-17 01:00:24 -04:00
Stefan Hoffmann
7ac191ab10 fileinfo: change returntype of os_fileinfo_size
off_t -> uint64_t
2014-08-31 15:47:44 +02:00
Stefan Hoffmann
10813ce38c fileid: rename os_file_id_equal_file_info 2014-08-31 15:47:43 +02:00
Stefan Hoffmann
3cf7a17a44 fileid: rename os_file_id_equal 2014-08-31 15:47:36 +02:00
Stefan Hoffmann
4e43095ab2 fileid: rename os_get_file_id 2014-08-31 15:43:40 +02:00
Stefan Hoffmann
8a66f4f245 fileinfo: rename os_file_info_get_inode 2014-08-31 15:42:19 +02:00
Stefan Hoffmann
6e3dce144a fileinfo: rename os_file_info_get_id 2014-08-31 15:41:03 +02:00
Stefan Hoffmann
edcc1a9732 fileinfo: rename os_file_info_id_equal 2014-08-31 15:39:33 +02:00
Stefan Hoffmann
5d074a0aa6 fileinfo: rename os_get_file_info{,_link,_fd} 2014-08-31 15:37:55 +02:00
Stefan Hoffmann
9ee1c3604c fileinfo: implement os_fileinfo_blocksize 2014-08-31 15:33:23 +02:00
Stefan Hoffmann
e85fe0957d fileinfo: implement os_fileinfo_hardlinks 2014-08-31 15:22:38 +02:00
Stefan Hoffmann
aa378acdf5 fileinfo: implement os_fileinfo_size
this replaces os_get_file_size and file_info.stat.st_size
2014-08-31 15:15:02 +02:00
Pavel Platto
94f3d30306 os_fchown: impl and remove HAVE_FCHOWN 2014-08-13 09:13:58 +03:00
Pavel Platto
5e42b406a5 Implement os_mkdtemp on top of uv_fs_mkdtemp 2014-08-09 11:28:43 -03:00
Pavel Platto
8b91ba929b Temporary os_mkdtemp implementation. Use it instead of mkdtemp. 2014-07-14 21:14:39 +02:00
Justin M. Keyes
0ceebc2c91 os_open: add unit tests 2014-07-14 09:05:52 -04:00
Justin M. Keyes
180c84ed37 os_open: impl mch_open with libuv. ref #133
- use return value instead of open_req.result
- libuv uv_fs_open() returns `-errno` instead of always -1
- libuv always sets open_req.result to the return value, _except_ for OOM
  where it only sets the return value. So always use the return value.
- replace calls to mch_open macro.
- update call sites expecting -1 error
2014-07-14 09:04:54 -04:00
Fredrik Fornwall
308953ecbf Fix two android compile errors in fs.c #924
Replace usage of deprecated S_IEXEC with S_IXUSR.
Rename a variable named "errno" to avoid clashing with define.
2014-07-09 09:17:38 +02:00
Brandon Coleman
e69cfa6c15 move assert.h include out of vim.h 2014-07-09 00:18:19 +02:00
Brandon Coleman
82b71a3056 move ascii.h include out of vim.h 2014-07-09 00:18:18 +02:00
Brandon Coleman
a4f441e547 remove stdbool.h include from vim.h and globals.h 2014-07-09 00:18:17 +02:00
Stefan Hoffmann
a0394f5e77 FileID: make os_stat() static 2014-06-27 13:59:29 +02:00
Stefan Hoffmann
4a22fb06b9 FileID: implement FileID struct
`FileID` should encapsulate `st_dev` and `st_ino`. It is a new abstraction
used to check if two files are the same. `FileID`s will be embeded inside
other struts like `buf_t` or `ff_visited_T`, where a full `FileInfo` would be
to big.
2014-06-27 13:59:28 +02:00