diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-08-11 13:57:20 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-08-11 13:57:20 +0200 |
commit | d569bb029983cff947dce704e6f830276204c13f (patch) | |
tree | 50736305a13af688a8321d0b4688042f61526362 /src/evalfunc.c | |
parent | 90f1e2b7bcf56112e1535b693acf131727179a6e (diff) |
patch 8.1.0268: file type checking has too many #ifdefv8.1.0268
Problem: File type checking has too many #ifdef.
Solution: Always define the S_IF macros. (Ken Takata, closes #3306)
Diffstat (limited to 'src/evalfunc.c')
-rw-r--r-- | src/evalfunc.c | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c index 9673a1ae3d..2bebdd1c62 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -5088,63 +5088,22 @@ f_getftype(typval_T *argvars, typval_T *rettv) rettv->v_type = VAR_STRING; if (mch_lstat((char *)fname, &st) >= 0) { -#ifdef S_ISREG if (S_ISREG(st.st_mode)) t = "file"; else if (S_ISDIR(st.st_mode)) t = "dir"; -# ifdef S_ISLNK else if (S_ISLNK(st.st_mode)) t = "link"; -# endif -# ifdef S_ISBLK else if (S_ISBLK(st.st_mode)) t = "bdev"; -# endif -# ifdef S_ISCHR else if (S_ISCHR(st.st_mode)) t = "cdev"; -# endif -# ifdef S_ISFIFO else if (S_ISFIFO(st.st_mode)) t = "fifo"; -# endif -# ifdef S_ISSOCK else if (S_ISSOCK(st.st_mode)) t = "socket"; -# endif else t = "other"; -#else -# ifdef S_IFMT - switch (st.st_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 (mch_isdir(fname)) - t = "dir"; - else - t = "file"; -# endif -#endif type = vim_strsave((char_u *)t); } rettv->vval.v_string = type; |