mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-07 16:10:46 -08:00
(Fcopy_file) [WINDOWS_NT]: Ensure file is not
read-only when setting modified time.
This commit is contained in:
parent
f67acc8dfb
commit
ad497129ba
2 changed files with 23 additions and 5 deletions
|
|
@ -1,3 +1,8 @@
|
|||
2002-03-09 Jason Rumney <jasonr@gnu.org>
|
||||
|
||||
* fileio.c (Fcopy_file) [WINDOWS_NT]: Ensure file is not
|
||||
read-only when setting modified time.
|
||||
|
||||
2002-03-08 Gerd Moellmann <gerd@gnu.org>
|
||||
|
||||
* xdisp.c (move_it_vertically_backward): At the end of the
|
||||
|
|
|
|||
23
src/fileio.c
23
src/fileio.c
|
|
@ -2409,12 +2409,25 @@ A prefix arg makes KEEP-TIME non-nil. */)
|
|||
else if (NILP (keep_time))
|
||||
{
|
||||
EMACS_TIME now;
|
||||
DWORD attributes;
|
||||
char * filename;
|
||||
|
||||
EMACS_GET_TIME (now);
|
||||
if (set_file_times (XSTRING (encoded_newname)->data,
|
||||
now, now))
|
||||
Fsignal (Qfile_date_error,
|
||||
Fcons (build_string ("Cannot set file date"),
|
||||
Fcons (newname, Qnil)));
|
||||
filename = XSTRING (encoded_newname)->data;
|
||||
|
||||
/* Ensure file is writable while its modified time is set. */
|
||||
attributes = GetFileAttributes (filename);
|
||||
SetFileAttributes (filename, attributes ^ FILE_ATTRIBUTE_READONLY);
|
||||
if (set_file_times (filename, now, now))
|
||||
{
|
||||
/* Restore original attributes. */
|
||||
SetFileAttributes (filename, attributes);
|
||||
Fsignal (Qfile_date_error,
|
||||
Fcons (build_string ("Cannot set file date"),
|
||||
Fcons (newname, Qnil)));
|
||||
}
|
||||
/* Restore original attributes. */
|
||||
SetFileAttributes (filename, attributes);
|
||||
}
|
||||
#else /* not WINDOWSNT */
|
||||
ifd = emacs_open (XSTRING (encoded_file)->data, O_RDONLY, 0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue