]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from origin/emacs-28
authorPo Lu <luangruo@yahoo.com>
Sat, 29 Jan 2022 12:37:24 +0000 (20:37 +0800)
committerPo Lu <luangruo@yahoo.com>
Sat, 29 Jan 2022 12:37:24 +0000 (20:37 +0800)
611736f3bc Remove debug logging
ddba3c3dba Fix error in filelock.c

# Conflicts:
# src/filelock.c

1  2 
src/filelock.c
src/nsterm.m

diff --cc src/filelock.c
index eb8d9ab5e0141f6b0c27336604c6f482d70cdab3,e1e2cc1b23e7a3bbddf0797ed58d6e63558d5986..7dfdd5ddec7f3dfefd361c129a6bfdfa6067d0a2
@@@ -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;
  }
diff --cc src/nsterm.m
Simple merge