diff options
Diffstat (limited to 'src/fileio.c')
-rw-r--r-- | src/fileio.c | 53 |
1 files changed, 30 insertions, 23 deletions
diff --git a/src/fileio.c b/src/fileio.c index 1ceeaa735..130419032 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -41,7 +41,7 @@ static char_u *readfile_charconvert(char_u *fname, char_u *fenc, int *fdp); static void check_marks_read(void); #endif #ifdef FEAT_CRYPT -static char_u *check_for_cryptkey(char_u *cryptkey, char_u *ptr, long *sizep, off_t *filesizep, int newfile, char_u *fname, int *did_ask); +static char_u *check_for_cryptkey(char_u *cryptkey, char_u *ptr, long *sizep, off_T *filesizep, int newfile, char_u *fname, int *did_ask); #endif #ifdef UNIX static void set_file_time(char_u *fname, time_t atime, time_t mtime); @@ -49,7 +49,7 @@ static void set_file_time(char_u *fname, time_t atime, time_t mtime); static int set_rw_fname(char_u *fname, char_u *sfname); static int msg_add_fileformat(int eol_type); static void msg_add_eol(void); -static int check_mtime(buf_T *buf, struct stat *s); +static int check_mtime(buf_T *buf, stat_T *s); static int time_differs(long t1, long t2); #ifdef FEAT_AUTOCMD static int apply_autocmds_exarg(event_T event, char_u *fname, char_u *fname_io, int force, buf_T *buf, exarg_T *eap); @@ -245,7 +245,7 @@ readfile( colnr_T len; long size = 0; char_u *p; - off_t filesize = 0; + off_T filesize = 0; int skip_read = FALSE; #ifdef FEAT_CRYPT char_u *cryptkey = NULL; @@ -269,7 +269,7 @@ readfile( #endif int fileformat = 0; /* end-of-line format */ int keep_fileformat = FALSE; - struct stat st; + stat_T st; int file_readonly; linenr_T skip_count = 0; linenr_T read_count = 0; @@ -885,7 +885,7 @@ readfile( /* Read the first line (and a bit more). Immediately rewind to * the start of the file. If the read() fails "len" is -1. */ len = read_eintr(fd, firstline, 80); - lseek(fd, (off_t)0L, SEEK_SET); + vim_lseek(fd, (off_T)0L, SEEK_SET); for (p = firstline; p < firstline + len; ++p) if (*p >= 0x80) { @@ -949,7 +949,7 @@ retry: read_buf_lnum = 1; read_buf_col = 0; } - else if (read_stdin || lseek(fd, (off_t)0L, SEEK_SET) != 0) + else if (read_stdin || vim_lseek(fd, (off_T)0L, SEEK_SET) != 0) { /* Can't rewind the file, give up. */ error = TRUE; @@ -2253,7 +2253,8 @@ rewind_retry: if ( try_unix && !read_stdin && (read_buffer - || lseek(fd, (off_t)0L, SEEK_SET) == 0)) + || vim_lseek(fd, (off_T)0L, SEEK_SET) + == 0)) { fileformat = EOL_UNIX; if (set_options) @@ -2958,7 +2959,7 @@ check_for_cryptkey( char_u *cryptkey, /* previous encryption key or NULL */ char_u *ptr, /* pointer to read bytes */ long *sizep, /* length of read bytes */ - off_t *filesizep, /* nr of bytes used from file */ + off_T *filesizep, /* nr of bytes used from file */ int newfile, /* editing a new buffer */ char_u *fname, /* file name to display */ int *did_ask) /* flag: whether already asked for key */ @@ -3145,7 +3146,7 @@ buf_write( int overwriting; /* TRUE if writing over original */ int no_eol = FALSE; /* no end-of-line written */ int device = FALSE; /* writing to a device */ - struct stat st_old; + stat_T st_old; int prev_got_int = got_int; int file_readonly = FALSE; /* overwritten file is read-only */ static char *err_readonly = "is read-only (cannot override: \"W\" in 'cpoptions')"; @@ -3674,7 +3675,7 @@ buf_write( if (!(append && *p_pm == NUL) && !filtering && perm >= 0 && dobackup) { #if defined(UNIX) || defined(WIN32) - struct stat st; + stat_T st; #endif if ((bkc & BKC_YES) || append) /* "yes" */ @@ -3813,7 +3814,7 @@ buf_write( int bfd; char_u *copybuf, *wp; int some_error = FALSE; - struct stat st_new; + stat_T st_new; char_u *dirp; char_u *rootname; #if defined(UNIX) @@ -4343,7 +4344,7 @@ buf_write( if (errmsg == NULL) { #ifdef UNIX - struct stat st; + stat_T st; /* Don't delete the file when it's a hard or symbolic link. */ if ((!newfile && st_old.st_nlink > 1) @@ -4376,7 +4377,7 @@ buf_write( restore_backup: { - struct stat st; + stat_T st; /* * If we failed to open the file, we don't need a backup. Throw it @@ -4673,7 +4674,7 @@ restore_backup: if (backup != NULL && !backup_copy) { # ifdef HAVE_FCHOWN - struct stat st; + stat_T st; /* don't change the owner when it's already OK, some systems remove * permission or ACL stuff */ @@ -4929,7 +4930,7 @@ restore_backup: if (backup != NULL) { - struct stat st; + stat_T st; /* * If the original file does not exist yet @@ -5221,7 +5222,7 @@ msg_add_fileformat(int eol_type) msg_add_lines( int insert_space, long lnum, - off_t nchars) + off_T nchars) { char_u *p; @@ -5233,6 +5234,9 @@ msg_add_lines( #ifdef LONG_LONG_OFF_T sprintf((char *)p, "%ldL, %lldC", lnum, (long long)nchars); +#elif defined(WIN3264) + sprintf((char *)p, + "%ldL, %I64dC", lnum, (__int64)nchars); #else sprintf((char *)p, /* Explicit typecast avoids warning on Mac OS X 10.6 */ @@ -5251,6 +5255,9 @@ msg_add_lines( #ifdef LONG_LONG_OFF_T sprintf((char *)p, _("%lld characters"), (long long)nchars); +#elif defined(WIN3264) + sprintf((char *)p, + _("%I64d characters"), (__int64)nchars); #else sprintf((char *)p, /* Explicit typecast avoids warning on Mac OS X 10.6 */ @@ -5274,7 +5281,7 @@ msg_add_eol(void) * using the same timestamp but can't set the size. */ static int -check_mtime(buf_T *buf, struct stat *st) +check_mtime(buf_T *buf, stat_T *st) { if (buf->b_mtime_read != 0 && time_differs((long)st->st_mtime, buf->b_mtime_read)) @@ -6441,7 +6448,7 @@ vim_rename(char_u *from, char_u *to) #ifdef AMIGA BPTR flock; #endif - struct stat st; + stat_T st; long perm; #ifdef HAVE_ACL vim_acl_T acl; /* ACL from original file */ @@ -6469,7 +6476,7 @@ vim_rename(char_u *from, char_u *to) #ifdef UNIX { - struct stat st_to; + stat_T st_to; /* It's possible for the source and destination to be the same file. * This happens when "from" and "to" differ in case and are on a FAT32 @@ -6768,7 +6775,7 @@ buf_check_timestamp( buf_T *buf, int focus UNUSED) /* called for GUI focus event */ { - struct stat st; + stat_T st; int stat_res; int retval = 0; char_u *path; @@ -6780,7 +6787,7 @@ buf_check_timestamp( #if defined(FEAT_CON_DIALOG) || defined(FEAT_GUI_DIALOG) int can_reload = FALSE; #endif - off_t orig_size = buf->b_orig_size; + off_T orig_size = buf->b_orig_size; int orig_mode = buf->b_orig_mode; #ifdef FEAT_GUI int save_mouse_correct = need_mouse_correct; @@ -7209,7 +7216,7 @@ buf_reload(buf_T *buf, int orig_mode) } void -buf_store_time(buf_T *buf, struct stat *st, char_u *fname UNUSED) +buf_store_time(buf_T *buf, stat_T *st, char_u *fname UNUSED) { buf->b_mtime = (long)st->st_mtime; buf->b_orig_size = st->st_size; @@ -7349,7 +7356,7 @@ vim_tempname( static char *(tempdirs[]) = {TEMPDIRNAMES}; int i; # ifndef EEXIST - struct stat st; + stat_T st; # endif /* |