Package: xbase-clients Version: 4.3.0-7 Severity: wishlist Tags: patch Hi Branden,
I wrote: One problem with latest XKB bugreports (changes in X 4.3) is that we do not know if xlibs has to be blamed, or if other apps are modifying XKB settings. In order to reproduce the reported bugs, I slightly hacked setxkbmap.c to ignore current server settings. If a -noserver command-line flag is added (patch attached), we could ask submitters to run a setxkbmap command and determine if this bug belongs to xlibs. and you requested a bugreport in http://lists.debian.org/debian-x-0404/msg00796.html I would like to read your comments before patching documentation ;) Denis
Index: setxkbmap.c =================================================================== RCS file: /cvs/xc/programs/setxkbmap/setxkbmap.c,v retrieving revision 3.8 diff -u -r3.8 setxkbmap.c --- setxkbmap.c 17 Nov 2003 22:20:50 -0000 3.8 +++ setxkbmap.c 18 Apr 2004 19:59:22 -0000 @@ -83,6 +83,7 @@ /***====================================================================***/ Bool print= False; Bool synch= False; +Bool noserver= False; int verbose= 5; Display * dpy; @@ -210,6 +211,7 @@ MSG("-keymap <name> Specifies name of keymap to load\n"); MSG("-layout <name> Specifies layout used to choose component names\n"); MSG("-model <name> Specifies model used to choose component names\n"); + MSG("-noserver Ignores current server settings\n"); MSG("-option <name> Adds an option used to choose component names\n"); MSG("-print Print a complete xkb_keymap description and exit\n"); MSG("-rules <name> Name of rules file to use\n"); @@ -370,6 +372,8 @@ ok= setOptString(&i,argc,argv,SYMBOLS_NDX,FROM_CMD_LINE); else if (streq(argv[i],"-synch")) synch= True; + else if (streq(argv[i],"-noserver")) + noserver= True; else if (streq(argv[i],"-types")) ok= setOptString(&i,argc,argv,TYPES_NDX,FROM_CMD_LINE); else if (streq(argv[i],"-verbose")||(streq(argv[i],"-v"))) { @@ -835,9 +839,9 @@ if ((!parseArgs(argc,argv))||(!getDisplay(argc,argv))) exit(-1); svValue[LOCALE_NDX]= setlocale(LC_ALL,svValue[LOCALE_NDX]); - svSrc[LOCALE_NDX]= FROM_SERVER; + svSrc[LOCALE_NDX]= (noserver?FROM_CMD_LINE:FROM_SERVER); VMSG1(7,"locale is %s\n",svValue[LOCALE_NDX]); - if (dpy) + if (dpy && !noserver) getServerValues(); if (svValue[CONFIG_NDX] && (!applyConfig(svValue[CONFIG_NDX]))) exit(-3);