Sophie

Sophie

distrib > Mandriva > 2009.1 > i586 > media > main-release-src > by-pkgid > d7011b33dcc9fcc1bfb059d43f491ed2 > files > 1

xkbevd-1.0.2-8mdv2009.1.src.rpm

From 6580ce12e3a7ac1597d84a70f452c5e598f72207 Mon Sep 17 00:00:00 2001
From: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>
Date: Fri, 18 Jan 2008 10:59:54 -0200
Subject: [PATCH] Add -all option to allow using xkbdev almost as xev to debug xkb events.

---
 xkbevd.c   |   16 ++++++++++++----
 xkbevd.man |    3 +++
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/xkbevd.c b/xkbevd.c
index 36fd809..3460a1a 100644
--- a/xkbevd.c
+++ b/xkbevd.c
@@ -41,7 +41,7 @@
 #endif /* DFLT_XKBEVD_CONFIG */
 
 #ifndef DFLT_XKB_CONFIG_ROOT
-#define	DFLT_XKB_CONFIG_ROOT "/usr/X11R6/lib/xkb"
+#define	DFLT_XKB_CONFIG_ROOT "/usr/share/X11/xkb"
 #endif
 
 #ifndef DFLT_SYS_XKBEVD_CONFIG
@@ -95,6 +95,7 @@ Usage(int argc, char *argv[])
     M("-bg                  Run in background\n");
     M("-synch               Force synchronization\n");
     M("-v                   Print verbose messages\n");
+    M("-all                 Print all events\n");
     return;
 }
 
@@ -195,6 +196,10 @@ register int i;
 	    Usage(argc,argv);
 	    exit(0);
 	}
+	else if (strcmp(argv[i], "-all") == 0) {
+	    eventMask = XkbAllEventsMask;
+	    verbose++;
+	}
 	else {
 	    uError("Unknown flag \"%s\" on command line\n",argv[i]);
 	    Usage(argc,argv);
@@ -382,8 +387,11 @@ char		buf[1024],*cmd;
 int		ok;
 
     cfg= FindMatchingConfig(ev);
-    if (!cfg)
+    if (!cfg) {
+	if (verbose)
+	    PrintXkbEvent(stdout,ev);
 	return False;
+    }
     if (cfg->action.type==UnknownAction) {
 	if (cfg->action.text==NULL)
 	    cfg->action.type= NoAction;
@@ -478,7 +486,7 @@ Bool		ok;
 	    }
 	    sprintf(buf,DFLT_SYS_XKBEVD_CONFIG,DFLT_XKB_CONFIG_ROOT);
 	    file= fopen(cfgFileName,"r");
-	    if (file==NULL) {
+	    if (file==NULL && !eventMask) {
 		if (verbose) {
 		    uError("Couldn't find a config file anywhere\n");
 		    uAction("Exiting\n");
@@ -502,7 +510,7 @@ Bool		ok;
     ok= True;
     setScanState(cfgFileName,1);
     CFGParseFile(file);
-    if (!config) {
+    if (!config && !eventMask) {
 	uError("No configuration specified in \"%s\"\n",cfgFileName);
 	goto BAILOUT;
     }
diff --git a/xkbevd.man b/xkbevd.man
index ec235f3..09b6b45 100644
--- a/xkbevd.man
+++ b/xkbevd.man
@@ -89,6 +89,9 @@ Forces synchronization of all X requests.  Slow.
 .B \-v
 Print more information, including debugging messages.   Multiple 
 specifications of \fI-v\fP cause more output, to a point.
+.TP 8
+.B \-all
+Prints information about all known XKB event types. Implies \fB-v\fP option.
 .SH "SEE ALSO"
 X(__miscmansuffix__)
 .SH COPYRIGHT
-- 
1.5.3.5