mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Add ‘nofollow’ flag to set-file-times
This is a companion to the recent set-file-modes patch. It adds support for a ‘nofollow’ flag to set-file-times (Bug#39773). Like the set-file-modes patch, it needs work in the w32 port. * admin/merge-gnulib (GNULIB_MODULES): Add futimens, utimensat. Remove utimens. * doc/lispref/files.texi (Changing Files): * etc/NEWS: Mention the change. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate. * lisp/files.el (copy-directory): * lisp/gnus/gnus-cloud.el (gnus-cloud-replace-file): * lisp/net/tramp-adb.el (tramp-adb-handle-copy-file): * lisp/net/tramp-smb.el (tramp-smb-handle-copy-file): * lisp/tar-mode.el (tar-copy): * test/lisp/filenotify-tests.el (file-notify-test03-events): * test/lisp/files-tests.el: (files-tests-file-name-non-special-set-file-times): * test/lisp/net/tramp-tests.el (tramp-test22-file-times): When setting file times, avoid following symbolic links when the file is not supposed to be a symbolic link. * lib/futimens.c, lib/utimensat.c, m4/futimens.m4, m4/utimensat.m4: New files, copied from Gnulib. * lisp/gnus/gnus-cloud.el (gnus-cloud-replace-file): When creating a file that is not supposed to exist already, use the excl flag to check this. * lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times): * lisp/net/tramp-sh.el (tramp-sh-handle-set-file-times): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-times): Accept an optional FLAG arg that is currently ignored, and add a FIXME comment for it. * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-set-file-times): * src/fileio.c (Fset_file_times): Support an optional FLAG arg. * src/fileio.c (Fcopy_file): Use futimens instead of set_file_times, as it’s simpler and is a POSIX API. * src/sysdep.c (set_file_times): Move from here ... * src/w32.c (set_file_times): ... to here, and make it static, since it is now used only in w32.c. Presumably w32.c should also add support for futimens and utimensat (the POSIX APIs, which Emacs now uses) and it can remove fdutimens (the Gnulib API, which Emacs no longer uses).
This commit is contained in:
parent
9f4b260c2b
commit
5d4cf1fef8
24 changed files with 476 additions and 70 deletions
|
|
@ -771,9 +771,9 @@ delivered."
|
|||
(copy-file file-notify--test-tmpfile file-notify--test-tmpfile1)
|
||||
;; The next two events shall not be visible.
|
||||
(file-notify--test-read-event)
|
||||
(set-file-modes file-notify--test-tmpfile 000)
|
||||
(set-file-modes file-notify--test-tmpfile 000 'nofollow)
|
||||
(file-notify--test-read-event)
|
||||
(set-file-times file-notify--test-tmpfile '(0 0))
|
||||
(set-file-times file-notify--test-tmpfile '(0 0) 'nofollow)
|
||||
(file-notify--test-read-event)
|
||||
(delete-directory file-notify--test-tmpdir 'recursive))
|
||||
(file-notify-rm-watch file-notify--test-desc)
|
||||
|
|
@ -864,9 +864,9 @@ delivered."
|
|||
(write-region
|
||||
"any text" nil file-notify--test-tmpfile nil 'no-message)
|
||||
(file-notify--test-read-event)
|
||||
(set-file-modes file-notify--test-tmpfile 000)
|
||||
(set-file-modes file-notify--test-tmpfile 000 'nofollow)
|
||||
(file-notify--test-read-event)
|
||||
(set-file-times file-notify--test-tmpfile '(0 0))
|
||||
(set-file-times file-notify--test-tmpfile '(0 0) 'nofollow)
|
||||
(file-notify--test-read-event)
|
||||
(delete-file file-notify--test-tmpfile))
|
||||
(file-notify-rm-watch file-notify--test-desc)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue