]> diplodocus.org Git - xorg-xinput/blobdiff - src/xinput.c
Update man page.
[xorg-xinput] / src / xinput.c
index c25a4de9a045a448d4f061333fde1f6eec64a509..f74dee5aa1017e12be864779a9e078f76bce127d 100644 (file)
@@ -23,8 +23,7 @@
 
 #include "xinput.h"
 #include <ctype.h>
 
 #include "xinput.h"
 #include <ctype.h>
-
-static const char rcs_id[] = "$Id: xinput.c,v 1.5 1997/06/09 16:06:31 fred Exp $";
+#include <string.h>
 
 typedef int (*prog)(
 #if NeedFunctionPrototypes
 
 typedef int (*prog)(
 #if NeedFunctionPrototypes
@@ -67,7 +66,7 @@ static entry drivers[] =
      set_mode
     },
     {"list",
      set_mode
     },
     {"list",
-     "[<device name>...]",
+     "[--short || <device name>...]",
      list
     },
     {"query-state",
      list
     },
     {"query-state",
@@ -114,7 +113,7 @@ find_device_info(Display    *display,
     int                len = strlen(name);
     Bool       is_id = True;
     XID                id;
     int                len = strlen(name);
     Bool       is_id = True;
     XID                id;
-    
+
     for(loop=0; loop<len; loop++) {
        if (!isdigit(name[loop])) {
            is_id = False;
     for(loop=0; loop<len; loop++) {
        if (!isdigit(name[loop])) {
            is_id = False;
@@ -125,11 +124,11 @@ find_device_info(Display  *display,
     if (is_id) {
        id = atoi(name);
     }
     if (is_id) {
        id = atoi(name);
     }
-    
+
     devices = XListInputDevices(display, &num_devices);
 
     for(loop=0; loop<num_devices; loop++) {
     devices = XListInputDevices(display, &num_devices);
 
     for(loop=0; loop<num_devices; loop++) {
-       if ((!only_extended || (devices[loop].use == IsXExtensionDevice)) &&
+       if ((!only_extended || (devices[loop].use >= IsXExtensionDevice)) &&
            ((!is_id && strcmp(devices[loop].name, name) == 0) ||
             (is_id && devices[loop].id == id))) {
            return &devices[loop];
            ((!is_id && strcmp(devices[loop].name, name) == 0) ||
             (is_id && devices[loop].id == id))) {
            return &devices[loop];
@@ -139,12 +138,12 @@ find_device_info(Display  *display,
 }
 
 static void
 }
 
 static void
-usage() 
+usage()
 {
     entry      *pdriver = drivers;
 {
     entry      *pdriver = drivers;
-    
+
     fprintf(stderr, "usage :\n");
     fprintf(stderr, "usage :\n");
-    
+
     while(pdriver->func_name) {
        fprintf(stderr, "\txinput %s %s\n", pdriver->func_name,
                pdriver->arg_desc);
     while(pdriver->func_name) {
        fprintf(stderr, "\txinput %s %s\n", pdriver->func_name,
                pdriver->arg_desc);
@@ -157,26 +156,30 @@ main(int argc, char * argv[])
 {
     Display    *display;
     entry      *driver = drivers;
 {
     Display    *display;
     entry      *driver = drivers;
-    
+    char        *func;
+
     if (argc < 2) {
        usage();
        return EXIT_FAILURE;
     }
     if (argc < 2) {
        usage();
        return EXIT_FAILURE;
     }
-    
+
     display = XOpenDisplay(NULL);
     display = XOpenDisplay(NULL);
-    
+
     if (display == NULL) {
        fprintf(stderr, "Unable to connect to X server\n");
        return EXIT_FAILURE;
     }
 
     if (display == NULL) {
        fprintf(stderr, "Unable to connect to X server\n");
        return EXIT_FAILURE;
     }
 
+    func = argv[1];
+    while((*func) == '-') func++;
+
     if (!is_xinput_present(display)) {
        fprintf(stderr, "%s extension not available\n", INAME);
        return EXIT_FAILURE;
     }
     if (!is_xinput_present(display)) {
        fprintf(stderr, "%s extension not available\n", INAME);
        return EXIT_FAILURE;
     }
-    
+
     while(driver->func_name) {
     while(driver->func_name) {
-       if (strcmp(driver->func_name, argv[1]) == 0) {
+       if (strcmp(driver->func_name, func) == 0) {
            int r = (*driver->func)(display, argc-2, argv+2,
                                    driver->func_name, driver->arg_desc);
            XFlush(display);
            int r = (*driver->func)(display, argc-2, argv+2,
                                    driver->func_name, driver->arg_desc);
            XFlush(display);
@@ -184,11 +187,10 @@ main(int argc, char * argv[])
        }
        driver++;
     }
        }
        driver++;
     }
-    
+
     usage();
     usage();
-    
+
     return EXIT_FAILURE;
 }
 
     return EXIT_FAILURE;
 }
 
-/* end of xinput.c
- */
+/* end of xinput.c */