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>
Cc: stefankangas@gmail.com, emacs-devel@gnu.org
Subject: Re: Windows 9X without KernelEx
Date: Sat, 15 Jun 2024 16:52:54 +0300	[thread overview]
Message-ID: <86h6dutirt.fsf@gnu.org> (raw)
In-Reply-To: <874j9u7dla.fsf@yahoo.com> (message from Po Lu on Sat, 15 Jun 2024 17:35:45 +0800)

> From: Po Lu <luangruo@yahoo.com>
> Cc: stefankangas@gmail.com,  emacs-devel@gnu.org
> Date: Sat, 15 Jun 2024 17:35:45 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > If you add usp10.dll (and unicows.dll) to Windows 98, does Emacs start
> > then?  Or do any of the other missing APIs prevent it from starting?
> 
> I cannot test with USP10.DLL at the moment, but that aside, as I said,
> all of the following prevent Emacs from starting on Windows 98:
> 
>   Shell_NotifyIconW
>   ShellExecuteExW
>   SHFileOperationW
>   ReadDirectoryChangesW

This is strange.  Most of those are present in Emacs for a long time,
and I was somehow under the impression that Emacs did start on Windows
9X after their introduction.  Did you start Emacs with UNICOWS.DLL
available?  My references indicate that UNICOWS.DLL has the first 3 of
the above 4 APIs.  So I'd suggest to do for these 3 what we do for
MultiByteToWideChar, see w32.c:maybe_load_unicows_dll, and then see if
the problem is solved.  If that doesn't solve the problem,
i.e. doesn't allow Emacs to start, we can discuss what to do about
each of these 3 APIs.

ReadDirectoryChangesW is indeed absent from UNICOWS.DLL, so I think
globals_of_w32notify should attempt to load it, and if not available,
disable the file notifications by modifying the code we already have
in w32notify-add-watch:

  /* The underlying features are available only since XP.  */
  if (os_subtype == OS_SUBTYPE_9X
      || (w32_major_version == 5 && w32_minor_version < 1))
    {
      errno = ENOSYS;
      report_file_notify_error ("Watching filesystem events is not supported",
				Qnil);
    }

> > We should have discussed this before your writing the code, to prevent
> > the unnecessary efforts.  I'm sorry for your wasted time, but I have
> > said many times before: this kind of issues should be discussed first.
> > I will keep saying that, in the hope that at some point this will
> > sink.
> 
> I re-read the following twice and considerably moderated its tone, but
> it might continue to read as a flame to the sensitive, so, trigger
> warning.  In nowise is it meant as a personal reflection on anyone in
> this thread, though if anyone who passes by recognizes himself in the
> same, he would do well to change his ways.

I don't think what you wrote there is relevant here, sorry.  (We
definitely cannot be responsible for what nasty things people say on
SourceForge or in other forums.)

In general, any non-trivial work on something that is meant to improve
Emacs support for very old systems should be discussed first, even
before any significant research, to avoid waste of time and efforts.
I think we should limit such support to the minimum: what worked there
should continue working, and if some code prevents Emacs from starting
or being a useful editor there, we should fix that as simply and
safely as possible.

I cannot possibly prevent people from investing significant efforts
before starting a discussion, but then I cannot guarantee that we will
accept the resulting code changes, and so the risk of wasting those
efforts will be greater.

FTR, I still have on my system old files and system directories from
Windows 9X and from XP, and can at least explore what they exported
using 'pexports' and the likes.  I alsi have a list of symbols
exported by UNCOWS.DLL and an old Win32 API documentation which
indicates which APIs were available on Windows 9X.  So if you need to
do similar research in the future, you could ask me first.



  reply	other threads:[~2024-06-15 13:52 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <875xub8sn8.fsf.ref@yahoo.com>
2024-06-14 15:12 ` Windows 9X without KernelEx Po Lu via Emacs development discussions.
2024-06-14 15:26   ` Eli Zaretskii
2024-06-14 15:37     ` Po Lu
2024-06-14 16:06       ` Eli Zaretskii
2024-06-15  1:42         ` Po Lu
2024-06-15  2:42         ` Po Lu
2024-06-15  6:58           ` Eli Zaretskii
2024-06-15  7:12             ` Po Lu
2024-06-15  7:37               ` Eli Zaretskii
2024-06-15  7:45                 ` Po Lu
2024-06-15  7:50                   ` Eli Zaretskii
2024-06-15  9:39                     ` Po Lu
2024-06-15 12:38                       ` Eli Zaretskii
2024-06-15 13:10                         ` Po Lu
2024-06-15 13:22                           ` Eli Zaretskii
2024-06-15 13:31                             ` Po Lu
2024-06-15  4:07     ` Stefan Kangas
2024-06-15  4:14       ` Po Lu
2024-06-15  4:45         ` Po Lu
2024-06-15  7:07           ` Eli Zaretskii
2024-06-15  7:22             ` Po Lu
2024-06-15  7:42               ` Eli Zaretskii
2024-06-15  9:35                 ` Po Lu via Emacs development discussions.
2024-06-15 13:52                   ` Eli Zaretskii [this message]
2024-06-15 14:18                     ` Po Lu
2024-06-15 14:55                       ` Eli Zaretskii
2024-06-15 15:15                         ` Po Lu
2024-06-15 16:01                           ` Eli Zaretskii
2024-06-16  2:01                             ` Po Lu
2024-06-16  5:36                               ` Eli Zaretskii
2024-06-16  5:50                                 ` Eli Zaretskii
2024-06-16  6:53                                   ` Po Lu
2024-06-16 11:34                                     ` Po Lu
2024-06-16 12:21                                       ` Eli Zaretskii
2024-06-23  8:35                                       ` Po Lu
2024-06-23  9:16                                         ` Eli Zaretskii
2024-06-23 20:25                                           ` Ken Brown
2024-06-24  2:30                                             ` Eli Zaretskii
2024-06-24  3:53                                               ` Po Lu
2024-06-25 19:20                                               ` Corwin Brust
2024-06-24 17:17                                             ` Ken Brown
2024-06-24 22:11                                               ` Ken Brown
2024-06-25 22:41                                                 ` Ken Brown
2024-06-27  1:59                                                 ` Po Lu
2024-06-27 13:18                                                   ` Ken Brown
2024-06-27 13:42                                                     ` Po Lu
2024-06-27 13:47                                                       ` Po Lu
2024-06-27 14:52                                                         ` Ken Brown
2024-06-30  2:07                                                           ` Po Lu
2024-06-15  7:01       ` 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=86h6dutirt.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=luangruo@yahoo.com \
    --cc=stefankangas@gmail.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.