From 036eb17510ab63ce62aa858c9ff825b2ec5b5c7a Mon Sep 17 00:00:00 2001 From: Noam Postavsky Date: Sat, 21 Mar 2020 21:00:08 -0400 Subject: [PATCH] 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. --- src/filelock.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/filelock.c b/src/filelock.c index b28f16e9b5..5e14731ee8 100644 --- a/src/filelock.c +++ b/src/filelock.c @@ -679,6 +679,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. */ @@ -689,7 +692,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); } @@ -697,10 +701,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) -- 2.11.0