fileio.c: eliminate set_file_time() #10357

Introduce os_file_settime(), remove cruft.
This commit is contained in:
Justin M. Keyes 2019-06-30 16:00:35 +02:00 committed by GitHub
parent fdd8dcae01
commit 3b504e7c8d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 48 deletions

View File

@ -32,7 +32,6 @@ if(NOT HAVE_SYS_WAIT_H AND UNIX)
endif()
check_include_files(sys/utsname.h HAVE_SYS_UTSNAME_H)
check_include_files(termios.h HAVE_TERMIOS_H)
check_include_files(utime.h HAVE_UTIME_H)
check_include_files(sys/uio.h HAVE_SYS_UIO_H)
# Functions
@ -53,8 +52,6 @@ check_function_exists(setsid HAVE_SETSID)
check_function_exists(sigaction HAVE_SIGACTION)
check_function_exists(strcasecmp HAVE_STRCASECMP)
check_function_exists(strncasecmp HAVE_STRNCASECMP)
check_function_exists(utime HAVE_UTIME)
check_function_exists(utimes HAVE_UTIMES)
# Symbols
check_symbol_exists(FD_CLOEXEC "fcntl.h" HAVE_FD_CLOEXEC)

View File

@ -38,9 +38,6 @@
#cmakedefine HAVE_SYS_UTSNAME_H
#cmakedefine HAVE_SYS_WAIT_H
#cmakedefine HAVE_TERMIOS_H
#cmakedefine HAVE_UTIME
#cmakedefine HAVE_UTIME_H
#cmakedefine HAVE_UTIMES
#cmakedefine HAVE_WORKING_LIBINTL
#cmakedefine HAVE_WSL
#cmakedefine UNIX

View File

@ -58,10 +58,6 @@
#include "nvim/os/time.h"
#include "nvim/os/input.h"
#if defined(HAVE_UTIME) && defined(HAVE_UTIME_H)
# include <utime.h> /* for struct utimbuf */
#endif
#define BUFSIZE 8192 /* size of normal write buffer */
#define SMBUFSIZE 256 /* size of emergency write buffer */
@ -190,10 +186,6 @@ struct bw_info {
# include "fileio.c.generated.h"
#endif
#ifdef UNIX
#endif
static char *e_auchangedbuf = N_(
"E812: Autocommands changed buffer or buffer name");
@ -2198,34 +2190,6 @@ static void check_marks_read(void)
curbuf->b_marks_read = true;
}
#ifdef UNIX
static void
set_file_time (
char_u *fname,
time_t atime, /* access time */
time_t mtime /* modification time */
)
{
# if defined(HAVE_UTIME) && defined(HAVE_UTIME_H)
struct utimbuf buf;
buf.actime = atime;
buf.modtime = mtime;
(void)utime((char *)fname, &buf);
# else
# if defined(HAVE_UTIMES)
struct timeval tvp[2];
tvp[0].tv_sec = atime;
tvp[0].tv_usec = 0;
tvp[1].tv_sec = mtime;
tvp[1].tv_usec = 0;
(void)utimes((char *)fname, (const struct timeval *)&tvp);
# endif
# endif
}
#endif /* UNIX */
/*
* buf_write() - write to file "fname" lines "start" through "end"
*
@ -2887,9 +2851,9 @@ buf_write (
}
#ifdef UNIX
set_file_time(backup,
file_info_old.stat.st_atim.tv_sec,
file_info_old.stat.st_mtim.tv_sec);
os_file_settime((char *)backup,
file_info_old.stat.st_atim.tv_sec,
file_info_old.stat.st_mtim.tv_sec);
#endif
#ifdef HAVE_ACL
mch_set_acl(backup, acl);
@ -3572,9 +3536,9 @@ restore_backup:
vim_rename(backup, (char_u *)org);
XFREE_CLEAR(backup); // don't delete the file
#ifdef UNIX
set_file_time((char_u *)org,
file_info_old.stat.st_atim.tv_sec,
file_info_old.stat.st_mtim.tv_sec);
os_file_settime(org,
file_info_old.stat.st_atim.tv_sec,
file_info_old.stat.st_mtim.tv_sec);
#endif
}
}

View File

@ -746,6 +746,22 @@ bool os_path_exists(const char_u *path)
return os_stat((char *)path, &statbuf) == kLibuvSuccess;
}
/// Sets file access and modification times.
///
/// @see POSIX utime(2)
///
/// @param path File path.
/// @param atime Last access time.
/// @param mtime Last modification time.
///
/// @return 0 on success, or negative error code.
int os_file_settime(const char *path, double atime, double mtime)
{
int r;
RUN_UV_FS_FUNC(r, uv_fs_utime, path, atime, mtime, NULL);
return r;
}
/// Check if a file is readable.
///
/// @return true if `name` is readable, otherwise false.