Subject: bug#8562: Emacs 23.1 and later don't work in windows 98

From: Eli Zaretskii <[email-masked]>
Date: Sun, 05 Jun 2011 06:07:52 +0300

> Date: Sun, 5 Jun 2011 03:58:25 +0200
> From: oslsachem <[email-masked]>
> Cc: [email-masked]
> 
> I have only observed that:
> - Emacs chooses the ansi versions of the functions LookupAccountSid
> and GetFileSecurity.

That's OK, and has no relation to the problem at hand.  First, file
security is not available on filesystems supported by Windows 9X.  And
second, even if they were, Emacs currently uses only the ANSI versions
of those functions anyway.

> - The next problematic unicode function is GetGlyphOutlineW which,
> like GetOutlineTextMetricsW and GetTextMetricsW, is just a stub.
> 
> The breakpoints I have set for the calls to the other unicode
> functions are never reached before the Emacs window is opened and is
> "operative" and then, after a while, I simply quit.
> 
> http://www.speedyshare.com/files/28808320/Emacs-23.3GDBGetErrors.txt

Thanks, this is great news.

So if you call GetGlyphOutlineW through a function pointer, like you
did with the other 2 functions, and do NOT link against libunicows, do
you then get a working binary?  It would be good to run such a binary
for a while, and see if something else is broken, if you can afford
that.

> IMHO, using function pointers would mean increasing the number of
> lines of explicit code, whereas using the unicows loader would open up
> the possibility of decreasing the number of lines of explicit code by
> unifying w9x/Me and NT/XP branches of code which handle cases of
> unicode support.
> On the other hand, I can imagine that the introduction of the
> libunicows dependency may be an annoyance to users/developers who
> don't actually need to make use of it on their systems.

Right, that's exactly the tradeoff.  If the issue is with only 3
functions, I tend to the function pointer method.

> Perhaps this could be addressed with a new configure option?

If we go the libunicows way, I'd tend simply to silently link without
it if it is not installed.  That would take care of this for most of
the users who build their own Emacs.

But the annoyance is for those who build binaries we upload to the GNU
servers.  They will have to make sure libunicows is installed and
workable.

Anyway, thanks for your great help.  I think we will have a solution
very soon.