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)
next prev 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.