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.
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
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.