diff options
author | tamago324 <tamago_pad@yahoo.co.jp> | 2020-11-07 07:59:28 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-06 17:59:28 -0500 |
commit | 40a742725ccd472038685ccb99090ee2a6b2c912 (patch) | |
tree | 5535f53a5c1eec847bad0d956e332b7564e06820 /src/nvim/eval | |
parent | d17e508796be60eefe4a597df62de1fd9e7e1725 (diff) | |
download | rneovim-40a742725ccd472038685ccb99090ee2a6b2c912.tar.gz rneovim-40a742725ccd472038685ccb99090ee2a6b2c912.tar.bz2 rneovim-40a742725ccd472038685ccb99090ee2a6b2c912.zip |
vim-patch:8.1.0268: file type checking has too many #ifdef (#13182)
Problem: File type checking has too many #ifdef.
Solution: Always define the S_IF macros. (Ken Takata, closes vim/vim#3306)
https://github.com/vim/vim/commit/d569bb029983cff947dce704e6f830276204c13f
Diffstat (limited to 'src/nvim/eval')
-rw-r--r-- | src/nvim/eval/funcs.c | 56 |
1 files changed, 8 insertions, 48 deletions
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c index 83ef9c8762..ebcd5b82eb 100644 --- a/src/nvim/eval/funcs.c +++ b/src/nvim/eval/funcs.c @@ -3398,63 +3398,23 @@ static void f_getftype(typval_T *argvars, typval_T *rettv, FunPtr fptr) FileInfo file_info; if (os_fileinfo_link(fname, &file_info)) { uint64_t mode = file_info.stat.st_mode; -#ifdef S_ISREG - if (S_ISREG(mode)) + if (S_ISREG(mode)) { t = "file"; - else if (S_ISDIR(mode)) + } else if (S_ISDIR(mode)) { t = "dir"; -# ifdef S_ISLNK - else if (S_ISLNK(mode)) + } else if (S_ISLNK(mode)) { t = "link"; -# endif -# ifdef S_ISBLK - else if (S_ISBLK(mode)) + } else if (S_ISBLK(mode)) { t = "bdev"; -# endif -# ifdef S_ISCHR - else if (S_ISCHR(mode)) + } else if (S_ISCHR(mode)) { t = "cdev"; -# endif -# ifdef S_ISFIFO - else if (S_ISFIFO(mode)) + } else if (S_ISFIFO(mode)) { t = "fifo"; -# endif -# ifdef S_ISSOCK - else if (S_ISSOCK(mode)) + } else if (S_ISSOCK(mode)) { t = "socket"; -# endif - else - t = "other"; -#else -# ifdef S_IFMT - switch (mode & S_IFMT) { - case S_IFREG: t = "file"; break; - case S_IFDIR: t = "dir"; break; -# ifdef S_IFLNK - case S_IFLNK: t = "link"; break; -# endif -# ifdef S_IFBLK - case S_IFBLK: t = "bdev"; break; -# endif -# ifdef S_IFCHR - case S_IFCHR: t = "cdev"; break; -# endif -# ifdef S_IFIFO - case S_IFIFO: t = "fifo"; break; -# endif -# ifdef S_IFSOCK - case S_IFSOCK: t = "socket"; break; -# endif - default: t = "other"; - } -# else - if (os_isdir((const char_u *)fname)) { - t = "dir"; } else { - t = "file"; + t = "other"; } -# endif -#endif type = vim_strsave((char_u *)t); } rettv->vval.v_string = type; |