Bug 5049 - Xming fails to use xkb
Summary: Xming fails to use xkb
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/DDX/Xwin (show other bugs)
Version: git
Hardware: x86 (IA32) Windows (All)
: high normal
Assignee: Xorg Project Team
QA Contact:
URL:
Whiteboard:
Keywords: patch
Depends on:
Blocks:
 
Reported: 2005-11-15 04:59 UTC by Colin Harrison
Modified: 2006-12-12 03:30 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Patch to define XkbBinDirectory (412 bytes, patch)
2005-11-15 05:02 UTC, Colin Harrison
no flags Details | Splinter Review
Patch to define XkbBinDirectory (409 bytes, patch)
2005-11-19 18:36 UTC, Colin Harrison
no flags Details | Splinter Review
Work around for Windows 2000 (874 bytes, patch)
2005-11-23 20:27 UTC, Colin Harrison
no flags Details | Splinter Review
Work around for Windows 2000 (875 bytes, text/plain)
2005-11-24 02:07 UTC, Colin Harrison
no flags Details

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.