mirror of
https://github.com/neovim/neovim.git
synced 2025-09-28 05:58:33 +00:00
os/fs.c: remove os_file_is_readonly()
os_file_is_readonly() in its current form is equivalent to !os_file_is_writable(). This does not appear to be a bug, because Vim's use of check_file_readonly() (which we changed to os_file_is_readonly()) is equivalent to !os_file_is_writable() in every case. os_file_is_readonly() also fails this test: returns false if the file is non-read, non-write A more useful form would define behavior under these cases: - path is executable (but not writable) - path is non-existent - path is directory But there is no reason for os_file_is_readonly() to exist, so remove it.
This commit is contained in:
@@ -2395,7 +2395,7 @@ static int check_readonly(int *forceit, buf_T *buf)
|
||||
* the file exists and permissions are read-only. */
|
||||
if (!*forceit && (buf->b_p_ro
|
||||
|| (os_file_exists(buf->b_ffname)
|
||||
&& os_file_is_readonly((char *)buf->b_ffname)))) {
|
||||
&& !os_file_is_writable((char *)buf->b_ffname)))) {
|
||||
if ((p_confirm || cmdmod.confirm) && buf->b_fname != NULL) {
|
||||
char_u buff[DIALOG_MSG_SIZE];
|
||||
|
||||
|
@@ -2623,7 +2623,7 @@ buf_write (
|
||||
* Check if the file is really writable (when renaming the file to
|
||||
* make a backup we won't discover it later).
|
||||
*/
|
||||
file_readonly = os_file_is_readonly((char *)fname);
|
||||
file_readonly = !os_file_is_writable((char *)fname);
|
||||
|
||||
if (!forceit && file_readonly) {
|
||||
if (vim_strchr(p_cpo, CPO_FWRITE) != NULL) {
|
||||
|
@@ -270,15 +270,6 @@ bool os_file_exists(const char_u *name)
|
||||
return os_stat((char *)name, &statbuf);
|
||||
}
|
||||
|
||||
/// Check if a file is readonly.
|
||||
///
|
||||
/// @return `true` if `name` is readonly.
|
||||
bool os_file_is_readonly(const char *name)
|
||||
FUNC_ATTR_NONNULL_ALL
|
||||
{
|
||||
return access(name, W_OK) != 0;
|
||||
}
|
||||
|
||||
/// Check if a file is readable.
|
||||
///
|
||||
/// @return true if `name` is readable, otherwise false.
|
||||
|
Reference in New Issue
Block a user