[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#245065: xbase-clients: add an option to let setxkbmap ignore current server settings



On Wed, Apr 28, 2004 at 02:38:57AM -0500, Branden Robinson wrote:
[...]
> I'd call the option and local variable "ignoreserver" instead of
> "noserver".  ("noserver" could lead to thoughts like as "What?  I don't
> *have* an X server?  What am I doing running an X client, then?")
> 
> Other than that, I don't see any problems.

Great, here is a revised patch.

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	28 Apr 2004 20:39:35 -0000
@@ -83,6 +83,7 @@
 /***====================================================================***/
 Bool			print= False;
 Bool			synch= False;
+Bool			ignoreserver= False;
 int			verbose= 5;
 
 Display *		dpy;
@@ -206,6 +207,7 @@
     MSG("-display <dpy>      Specifies display to use\n");
     MSG("-geometry <name>    Specifies geometry component name\n");
     MSG("-I[<dir>]           Add <dir> to list of directories to be used\n");
+    MSG("-ignoreserver       Ignores current server settings\n");
     MSG("-keycodes <name>    Specifies keycodes component name\n");
     MSG("-keymap <name>      Specifies name of keymap to load\n");
     MSG("-layout <name>      Specifies layout used to choose component names\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],"-ignoreserver"))
+	    ignoreserver= 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]= (ignoreserver?FROM_CMD_LINE:FROM_SERVER);
     VMSG1(7,"locale is %s\n",svValue[LOCALE_NDX]);
-    if (dpy)
+    if (dpy && !ignoreserver)
         getServerValues();
     if (svValue[CONFIG_NDX] && (!applyConfig(svValue[CONFIG_NDX])))
 	exit(-3);
Index: setxkbmap.man
===================================================================
RCS file: /cvs/xc/programs/setxkbmap/setxkbmap.man,v
retrieving revision 3.7
diff -u -r3.7 setxkbmap.man
--- setxkbmap.man	29 May 2003 22:16:23 -0000	3.7
+++ setxkbmap.man	28 Apr 2004 20:39:35 -0000
@@ -44,6 +44,9 @@
 Specifies the name of the geometry component used to construct
 a keyboard layout.
 .TP 8
+.B \-ignoreserver
+Ignores current server settings.  Warning: this is a Debian extension.
+.TP 8
 .B \-keymap \fIname\fP
 Specifies the name of the keymap description used to construct
 a keyboard layout.

Reply to: