diff options
author | Stefan Hoffmann <stefan991@gmail.com> | 2014-05-02 18:25:49 +0200 |
---|---|---|
committer | Stefan Hoffmann <stefan991@gmail.com> | 2014-05-09 15:49:33 +0200 |
commit | a080819c3ef93c41a0bbd14b3c5f76d26bb9d404 (patch) | |
tree | 39dde46f7816129723ae92875db955f7d42d7406 | |
parent | aff96730765a2fc347e30e474bc3049a85758b4d (diff) | |
download | rneovim-a080819c3ef93c41a0bbd14b3c5f76d26bb9d404.tar.gz rneovim-a080819c3ef93c41a0bbd14b3c5f76d26bb9d404.tar.bz2 rneovim-a080819c3ef93c41a0bbd14b3c5f76d26bb9d404.zip |
replaced mch_fstat() with os_file_get_info_fd()
-rw-r--r-- | src/macros.h | 1 | ||||
-rw-r--r-- | src/memfile.c | 35 | ||||
-rw-r--r-- | src/tag.c | 8 |
3 files changed, 9 insertions, 35 deletions
diff --git a/src/macros.h b/src/macros.h index 5f7147be23..f016da484a 100644 --- a/src/macros.h +++ b/src/macros.h @@ -98,7 +98,6 @@ #define vim_isbreak(c) (breakat_flags[(char_u)(c)]) # define mch_fopen(n, p) fopen((n), (p)) -# define mch_fstat(n, p) fstat((n), (p)) # ifdef STAT_IGNORES_SLASH /* On Solaris stat() accepts "file/" as if it was "file". Return -1 if * the name ends in "/" and it's not a directory. */ diff --git a/src/memfile.c b/src/memfile.c index 5330fb7fc5..87ac56b955 100644 --- a/src/memfile.c +++ b/src/memfile.c @@ -46,25 +46,6 @@ #include "ui.h" #include "os/os.h" -/* - * Some systems have the page size in statfs.f_bsize, some in stat.st_blksize - */ -#ifdef HAVE_ST_BLKSIZE -# define STATFS stat -# define F_BSIZE st_blksize -# define fstatfs(fd, buf, len, nul) mch_fstat((fd), (buf)) -#else -# ifdef HAVE_SYS_STATFS_H -# include <sys/statfs.h> -# define STATFS statfs -# define F_BSIZE f_bsize -# endif -#endif - -/* - * for Amiga Dos 2.0x we use Flush - */ - #define MEMFILE_PAGE_SIZE 4096 /* default page size */ static long_u total_mem_used = 0; /* total memory used for memfiles */ @@ -125,10 +106,6 @@ memfile_T *mf_open(char_u *fname, int flags) { memfile_T *mfp; off_t size; -#if defined(STATFS) && defined(UNIX) && !defined(__QNX__) && !defined(__minix) -# define USE_FSTATFS - struct STATFS stf; -#endif if ((mfp = (memfile_T *)alloc((unsigned)sizeof(memfile_T))) == NULL) return NULL; @@ -157,7 +134,6 @@ memfile_T *mf_open(char_u *fname, int flags) mfp->mf_page_size = MEMFILE_PAGE_SIZE; mfp->mf_old_key = NULL; -#ifdef USE_FSTATFS /* * Try to set the page size equal to the block size of the device. * Speeds up I/O a lot. @@ -165,12 +141,13 @@ memfile_T *mf_open(char_u *fname, int flags) * in ml_recover(). The size used here may be wrong, therefore * mf_blocknr_max must be rounded up. */ + FileInfo file_info; if (mfp->mf_fd >= 0 - && fstatfs(mfp->mf_fd, &stf, sizeof(struct statfs), 0) == 0 - && stf.F_BSIZE >= MIN_SWAP_PAGE_SIZE - && stf.F_BSIZE <= MAX_SWAP_PAGE_SIZE) - mfp->mf_page_size = stf.F_BSIZE; -#endif + && os_get_file_info_fd(mfp->mf_fd, &file_info) + && file_info.stat.st_blksize >= MIN_SWAP_PAGE_SIZE + && file_info.stat.st_blksize <= MAX_SWAP_PAGE_SIZE) { + mfp->mf_page_size = file_info.stat.st_blksize; + } if (mfp->mf_fd < 0 || (flags & (O_TRUNC|O_EXCL)) || (size = lseek(mfp->mf_fd, (off_t)0L, SEEK_END)) <= 0) @@ -1511,12 +1511,10 @@ line_read_in: * compute the first offset. */ if (state == TS_BINARY) { - /* Get the tag file size (don't use mch_fstat(), it's not - * portable). */ - if ((filesize = lseek(fileno(fp), - (off_t)0L, SEEK_END)) <= 0) + // Get the tag file size. + if ((filesize = lseek(fileno(fp), (off_t)0L, SEEK_END)) <= 0) { state = TS_LINEAR; - else { + } else { lseek(fileno(fp), (off_t)0L, SEEK_SET); /* Calculate the first read offset in the file. Start |