summaryrefslogtreecommitdiff
path: root/src/filelock.c
diff options
context:
space:
mode:
authorNoam Postavsky <npostavs@gmail.com>2020-03-21 21:00:08 -0400
committerNoam Postavsky <npostavs@gmail.com>2020-03-22 23:06:05 -0400
commit8f694831c04b1fb9db81be72afdc1a1101d619c4 (patch)
treefc279b189896adb57b8c46ca15b832303a67b3fc /src/filelock.c
parent3b7cb5f3ac0fdd5e1a0177cc86b3fc4b420b9e4f (diff)
downloademacs-8f694831c04b1fb9db81be72afdc1a1101d619c4.tar.gz
Avoid extra "changed on disk" prompt in save-buffer (Bug#18336)
* src/filelock.c (lock_file): Don't query the user if the current session already owns the lock.
Diffstat (limited to 'src/filelock.c')
-rw-r--r--src/filelock.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/filelock.c b/src/filelock.c
index 73202f0b2c4..2b734ee00d5 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -680,6 +680,9 @@ lock_file (Lisp_Object fn)
dostounix_filename (SSDATA (fn));
#endif
encoded_fn = ENCODE_FILE (fn);
+ if (create_lockfiles)
+ /* Create the name of the lock-file for file fn */
+ MAKE_LOCK_NAME (lfname, encoded_fn);
/* See if this file is visited and has changed on disk since it was
visited. */
@@ -690,7 +693,8 @@ lock_file (Lisp_Object fn)
if (!NILP (subject_buf)
&& NILP (Fverify_visited_file_modtime (subject_buf))
- && !NILP (Ffile_exists_p (fn)))
+ && !NILP (Ffile_exists_p (fn))
+ && (!create_lockfiles || current_lock_owner (NULL, lfname) != -2))
call1 (intern ("userlock--ask-user-about-supersession-threat"), fn);
}
@@ -698,10 +702,6 @@ lock_file (Lisp_Object fn)
/* Don't do locking if the user has opted out. */
if (create_lockfiles)
{
-
- /* Create the name of the lock-file for file fn */
- MAKE_LOCK_NAME (lfname, encoded_fn);
-
/* Try to lock the lock. FIXME: This ignores errors when
lock_if_free returns a positive errno value. */
if (lock_if_free (&lock_info, lfname) < 0)