From: Po Lu Date: Sat, 29 Jan 2022 12:37:24 +0000 (+0800) Subject: Merge from origin/emacs-28 X-Git-Tag: emacs-29.0.90~2669 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=04bba4a28f959cb202e7fb993b619c7358084ec3;p=emacs.git Merge from origin/emacs-28 611736f3bc Remove debug logging ddba3c3dba Fix error in filelock.c # Conflicts: # src/filelock.c --- 04bba4a28f959cb202e7fb993b619c7358084ec3 diff --cc src/filelock.c index eb8d9ab5e01,e1e2cc1b23e..7dfdd5ddec7 --- a/src/filelock.c +++ b/src/filelock.c @@@ -686,27 -670,31 +682,31 @@@ lock_file (Lisp_Object fn if (!NILP (subject_buf) && NILP (Fverify_visited_file_modtime (subject_buf)) && !NILP (Ffile_exists_p (fn)) - && current_lock_owner (NULL, lfname) != I_OWN_IT) - && !(lfname && current_lock_owner (NULL, lfname) == -2)) ++ && !(lfname && (current_lock_owner (NULL, lfname) != I_OWN_IT))) call1 (intern ("userlock--ask-user-about-supersession-threat"), fn); - /* Try to lock the lock. FIXME: This ignores errors when - lock_if_free returns an errno value. */ - if (lock_if_free (&lock_info, lfname) == ANOTHER_OWNS_IT) + /* Don't do locking if the user has opted out. */ + if (lfname) { - /* Someone else has the lock. Consider breaking it. */ - Lisp_Object attack; - char *dot = lock_info.dot; - ptrdiff_t pidlen = lock_info.colon - (dot + 1); - static char const replacement[] = " (pid "; - int replacementlen = sizeof replacement - 1; - memmove (dot + replacementlen, dot + 1, pidlen); - strcpy (dot + replacementlen + pidlen, ")"); - memcpy (dot, replacement, replacementlen); - attack = call2 (intern ("ask-user-about-lock"), fn, - build_string (lock_info.user)); - /* Take the lock if the user said so. */ - if (!NILP (attack)) - lock_file_1 (lfname, 1); + /* 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) ++ if (lock_if_free (&lock_info, lfname) == ANOTHER_OWNS_IT) + { + /* Someone else has the lock. Consider breaking it. */ + Lisp_Object attack; + char *dot = lock_info.dot; + ptrdiff_t pidlen = lock_info.colon - (dot + 1); + static char const replacement[] = " (pid "; + int replacementlen = sizeof replacement - 1; + memmove (dot + replacementlen, dot + 1, pidlen); + strcpy (dot + replacementlen + pidlen, ")"); + memcpy (dot, replacement, replacementlen); + attack = call2 (intern ("ask-user-about-lock"), fn, + build_string (lock_info.user)); + /* Take the lock if the user said so. */ + if (!NILP (attack)) + lock_file_1 (lfname, 1); + } } return Qnil; }