GNU bug report logs - #8562
Emacs 23.1 and later don't work in windows 98

Previous Next

Packages: w32, emacs;

Reported by: oslsachem <oslsachem <at> gmail.com>

Date: Tue, 26 Apr 2011 21:59:01 UTC

Severity: normal

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: oslsachem <oslsachem <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 8562 <at> debbugs.gnu.org
Subject: bug#8562: Emacs 23.1 and later don't work in windows 98
Date: Fri, 3 Jun 2011 22:10:05 +0200
> It could be that more Unicode functions have similar problems, because
> they reside inside unicows.dll on Windows 9X.  Could you please look
> up all the functions in w32font.c and w32uniscribe.c whose names end
> with a `W', and see which ones of them are in unicows.dll?

C:\emacs-23.3\src>grep -E -o -h "\<\w+[a-z0-9]+W\>" w32font.c w32uniscribe.c | s
ort | uniq

DrawTextW
ExtTextOutW
GetGlyphOutlineW
GetOutlineTextMetricsW
GetTextExtentPoint32W
GetTextMetricsW


And in a wider search:

C:\emacs-23.3\src>grep -E -o -h "\<\w+[a-z0-9]+W\>" *.c | grep -v
"Elf\|MingW" | sort | uniq

AppendMenuW
DrawTextW
ExtTextOutW
GetFileSecurityW
GetGlyphOutlineW
GetOutlineTextMetricsW
GetTextExtentPoint32W
GetTextMetricsW
ImmGetCompositionStringW
LookupAccountSidW
lstrlenW

Note: The words that begin with Elf are macros, not functions.

I was going to report that the rest of these functions are already
implemented in core system libraries:

==================================================
Function Name     : AppendMenuW
Address           : 0xbfc010eb
Relative Address  : 0x000010eb
Ordinal           : 8 (0x8)
Filename          : USER32.DLL
Full Path         : C:\WINDOWS\SYSTEM\USER32.DLL
Type              : Exported Function
==================================================

==================================================
Function Name     : DrawTextW
Address           : 0xbfc010f4
Relative Address  : 0x000010f4
Ordinal           : 176 (0xb0)
Filename          : USER32.DLL
Full Path         : C:\WINDOWS\SYSTEM\USER32.DLL
Type              : Exported Function
==================================================

==================================================
Function Name     : ExtTextOutW
Address           : 0xbff21cb2
Relative Address  : 0x00001cb2
Ordinal           : 207 (0xcf)
Filename          : GDI32.DLL
Full Path         : C:\WINDOWS\SYSTEM\GDI32.DLL
Type              : Exported Function
==================================================

==================================================
Function Name     : GetFileSecurityW
Address           : 0xbfe8216d
Relative Address  : 0x0000216d
Ordinal           : 116 (0x74)
Filename          : ADVAPI32.DLL
Full Path         : C:\WINDOWS\SYSTEM\ADVAPI32.DLL
Type              : Exported Function
==================================================

==================================================
Function Name     : GetGlyphOutlineW
Address           : 0xbff2797f
Relative Address  : 0x0000797f
Ordinal           : 264 (0x108)
Filename          : GDI32.DLL
Full Path         : C:\WINDOWS\SYSTEM\GDI32.DLL
Type              : Exported Function
==================================================

==================================================
Function Name     : GetTextExtentPoint32W
Address           : 0xbff21ed0
Relative Address  : 0x00001ed0
Ordinal           : 309 (0x135)
Filename          : GDI32.DLL
Full Path         : C:\WINDOWS\SYSTEM\GDI32.DLL
Type              : Exported Function
==================================================

==================================================
Function Name     : ImmGetCompositionStringW
Address           : 0xbfe210a7
Relative Address  : 0x000010a7
Ordinal           : 25 (0x19)
Filename          : IMM32.DLL
Full Path         : C:\WINDOWS\SYSTEM\IMM32.DLL
Type              : Exported Function
==================================================

==================================================
Function Name     : LookupAccountSidW
Address           : 0xbfe8217f
Relative Address  : 0x0000217f
Ordinal           : 173 (0xad)
Filename          : ADVAPI32.DLL
Full Path         : C:\WINDOWS\SYSTEM\ADVAPI32.DLL
Type              : Exported Function
==================================================

==================================================
Function Name     : lstrlenW
Address           : 0xbff77454
Relative Address  : 0x00007454
Ordinal           : 865 (0x361)
Filename          : KERNEL32.DLL
Full Path         : C:\WINDOWS\SYSTEM\KERNEL32.DLL
Type              : Exported Function
==================================================


But I have stumbled across this comment:

w32menu.c:1505
	  /* On W9x/ME, unicode menus are not supported, though AppendMenuW
	     apparently does exist at least in some cases and appears to be
	     stubbed out to do nothing.[...] */

And then I have checked that both GetTextMetricsW and
GetOutlineTextMetricsW, which caused the system error #120 ("This
function is not supported on this system."), are actually
"implemented" in a core system library along with other of the
previous functions:

==================================================
Function Name     : GetOutlineTextMetricsW
Address           : 0xbff2795b
Relative Address  : 0x0000795b
Ordinal           : 286 (0x11e)
Filename          : GDI32.DLL
Full Path         : C:\WINDOWS\SYSTEM\GDI32.DLL
Type              : Exported Function
==================================================

==================================================
Function Name     : GetTextMetricsW
Address           : 0xbff27952
Relative Address  : 0x00007952
Ordinal           : 315 (0x13b)
Filename          : GDI32.DLL
Full Path         : C:\WINDOWS\SYSTEM\GDI32.DLL
Type              : Exported Function
==================================================


So, your idea of trying the unicode functions which have been
reimplemented in unicows.dll and seeing if they make a difference
looks very promising.

Greetings,
           Osl

This bug report was last modified 13 years and 201 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.