all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Po Lu <luangruo@yahoo.com>, Paul Eggert <eggert@cs.ucla.edu>
Cc: 71477@debbugs.gnu.org
Subject: bug#71477: 30.0.50; Lock files are not deleted on Windows 98
Date: Wed, 12 Jun 2024 11:25:44 +0300	[thread overview]
Message-ID: <86h6dy1saf.fsf@gnu.org> (raw)
In-Reply-To: <87jzivamzp.fsf@yahoo.com> (message from Po Lu on Tue, 11 Jun 2024 16:43:06 +0800)

> From: Po Lu <luangruo@yahoo.com>
> Cc: 71477@debbugs.gnu.org
> Date: Tue, 11 Jun 2024 16:43:06 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > What inconsistencies, specifically?
> 
> Any older Emacs binary that encounters a lock file produced under
> Windows 9X will report an "Invalid argument" error until the user
> intervenes to delete this lock file.

I don't see how we can fix such problems retroactively.

> > The only possible issue I see with allowing a negative PID is that the
> > code checks for "pid > 0" or "pid < 0" somewhere; if that is the case,
> > we should replace those with comparisons with -1 instead.
> >
> > Can you test the above on Windows 9X when you have a chance?  Then we
> > could install it.
> 
> If it doesn't produce any adverse effect on modern Windows, and what I
> raised is not important, let's install it now, and I will test it as
> soon as may be, or it might fall by the wayside.

OK.  (It turns out we already knew about this issue, see the comments
in w32proc.c, search for "Hack for Windows 95".)

Paul, do you see any problems with the change below?  It worked for me
in some limited testing.  I intend to install it on the master branch
unless there are objections.

diff --git a/src/filelock.c b/src/filelock.c
index 050cac5..59fb47e 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -393,7 +393,9 @@ current_lock_owner (lock_info_type *owner, Lisp_Object lfname)
     return EINVAL;
 
   /* The PID is everything from the last '.' to the ':' or equivalent.  */
-  if (! c_isdigit (dot[1]))
+  if (! (c_isdigit (dot[1])
+	 /* Windows 9X report negative PID values.  */
+	 || (dot[1] == '-' && c_isdigit (dot[2]))))
     return EINVAL;
   errno = 0;
   pid = strtoimax (dot + 1, &owner->colon, 10);
@@ -451,7 +453,7 @@ current_lock_owner (lock_info_type *owner, Lisp_Object lfname)
     {
       if (pid == getpid ())
         return I_OWN_IT;
-      else if (0 < pid && pid <= TYPE_MAXIMUM (pid_t)
+      else if (pid != -1 && pid <= TYPE_MAXIMUM (pid_t)
                && (kill (pid, 0) >= 0 || errno == EPERM)
 	       && (boot_time == 0
 		   || (boot_time <= TYPE_MAXIMUM (time_t)





  parent reply	other threads:[~2024-06-12  8:25 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87r0d4bzut.fsf.ref@yahoo.com>
2024-06-10 15:07 ` bug#71477: 30.0.50; Lock files are not deleted on Windows 98 Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-06-10 17:44   ` Eli Zaretskii
     [not found]     ` <87ikygb6hp.fsf@yahoo.com>
2024-06-11  6:47       ` Eli Zaretskii
     [not found]         ` <87bk47c4cd.fsf@yahoo.com>
2024-06-11  7:56           ` Eli Zaretskii
     [not found]             ` <871q53c2ur.fsf@yahoo.com>
2024-06-11  8:28               ` Eli Zaretskii
     [not found]                 ` <87jzivamzp.fsf@yahoo.com>
2024-06-11 13:03                   ` Eli Zaretskii
2024-06-11 13:34                     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-06-12  8:25                   ` Eli Zaretskii [this message]
2024-06-12 16:07                     ` Paul Eggert
2024-06-12 17:10                       ` Eli Zaretskii
2024-06-12 17:57                         ` Paul Eggert
2024-06-13  8:06                           ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86h6dy1saf.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=71477@debbugs.gnu.org \
    --cc=eggert@cs.ucla.edu \
    --cc=luangruo@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.