Bug 5049

Summary: Xming fails to use xkb
Product: xorg Reporter: Colin Harrison <colin.harrison>
Component: Server/DDX/XwinAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high Keywords: patch
Version: git   
Hardware: x86 (IA32)   
OS: Windows (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Patch to define XkbBinDirectory
none
Patch to define XkbBinDirectory
none
Work around for Windows 2000
none
Work around for Windows 2000 none

Description Colin Harrison 2005-11-15 04:59:41 UTC
Recent changes in xkb have caused Xming to no longer use the correct keyboard. 
In my case £ becomes # on my gb pc105 on an xterm client. This is due to 
XkbBinDirectory being undefined (Xming installs in a w32 directory structure).
Comment 1 Colin Harrison 2005-11-15 05:02:47 UTC
Created attachment 3801 [details] [review]
Patch to define XkbBinDirectory

This also affects the xwin build, and has only been tested for Xming.
Comment 2 Colin Harrison 2005-11-19 18:36:13 UTC
Created attachment 3849 [details] [review]
Patch to define XkbBinDirectory

Better if the xkbcomp.exe is in the base directory where the dlls are.
Comment 3 Colin Harrison 2005-11-23 20:27:10 UTC
Created attachment 3880 [details] [review]
Work around for Windows 2000

Work-around for xkb failure on Windows 2000.
Xprintf() returns NULL when a local vsnprintf is overridden by a global one in
some Windows variants,
As a result non-US keyboards set correctly on XP and Windows 2003 but not on
Windows 2000.

Reason for work-around
vsnprintf from windows and mingw crt does not work on NULL. That's why
there is a vsnprintf in os/snprintf.c which should be used instead.
Unfortunatly some windows header defines vsnprintf to _vsnprintf so the
windows variant is always used.
Comment 4 Colin Harrison 2005-11-24 02:07:21 UTC
Created attachment 3887 [details]
Work around for Windows 2000

Corrected version
Comment 5 Alan Hourihane 2006-03-03 20:57:59 UTC
Colin - isn't there some header file magic that could be done instead of the
Win2k fix to use the correct vsnprintf ??
Comment 6 Colin Harrison 2006-03-03 21:16:27 UTC
Don't know of one at the moment. Probably best to hold off on applying this 
patch. Useful work-around (i.e. bodge!) that will go away when Windows 2000 
dies off. Xming supports 2000 at the moment, but as soon as Microsoft stop 
support, I'll loose interest in it :). I build this fix into my distributed 
binaries, but I'm not proud of it!
Comment 7 Colin Harrison 2006-03-03 21:32:21 UTC
(In reply to comment #6)
> Don't know of one at the moment. Probably best to hold off on applying this 
> patch. Useful work-around (i.e. bodge!) that will go away when Windows 2000 
> dies off. Xming supports 2000 at the moment, but as soon as Microsoft stop 
> support, I'll loose interest in it :). I build this fix into my distributed 
> binaries, but I'm not proud of it!

P.S. Microsoft mainstream support for Windows 2000 Server 'retired' on 
30/06/2005. So it's on borrowed time now anyway. Anyone running it must pay 
them for extensions! I've still got some users who will go bananas if I drop it 
at the moment.
Comment 8 Colin Harrison 2006-10-26 02:57:58 UTC
Xming no longer supports Windows 2000. So the only patch that is now needed to 
close this Bugzilla bug is the one liner to InitOutput.c.
Comment 9 Alan Hourihane 2006-12-11 06:55:47 UTC
Applied the InitOutput fix. Closing.
Comment 10 Colin Harrison 2006-12-11 07:54:19 UTC
Should have been

XkbBinDirectory = basedir;

as per the patch
Comment 11 Alan Hourihane 2006-12-12 03:30:11 UTC
Fixed.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.