]> diplodocus.org Git - xorg-xinput/blobdiff - src/list.c
Update man page.
[xorg-xinput] / src / list.c
index 79c2aa491e5e8e0cfbd326e80c2d4eddca051468..9ef3d6163360cecba905bee90716f903538b3967 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright 1996 by Frederic Lepied, France. <Frederic.Lepied@sugix.frmug.org>
 /*
  * Copyright 1996 by Frederic Lepied, France. <Frederic.Lepied@sugix.frmug.org>
- *                                                                            
+ *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is  hereby granted without fee, provided that
  * the  above copyright   notice appear  in   all  copies and  that both  that
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is  hereby granted without fee, provided that
  * the  above copyright   notice appear  in   all  copies and  that both  that
@@ -9,8 +9,8 @@
  * advertising or publicity pertaining to distribution of the software without
  * specific,  written      prior  permission.     Frederic  Lepied   makes  no
  * representations about the suitability of this software for any purpose.  It
  * advertising or publicity pertaining to distribution of the software without
  * specific,  written      prior  permission.     Frederic  Lepied   makes  no
  * representations about the suitability of this software for any purpose.  It
- * is provided "as is" without express or implied warranty.                   
- *                                                                            
+ * is provided "as is" without express or implied warranty.
+ *
  * FREDERIC  LEPIED DISCLAIMS ALL   WARRANTIES WITH REGARD  TO  THIS SOFTWARE,
  * INCLUDING ALL IMPLIED   WARRANTIES OF MERCHANTABILITY  AND   FITNESS, IN NO
  * EVENT  SHALL FREDERIC  LEPIED BE   LIABLE   FOR ANY  SPECIAL, INDIRECT   OR
  * FREDERIC  LEPIED DISCLAIMS ALL   WARRANTIES WITH REGARD  TO  THIS SOFTWARE,
  * INCLUDING ALL IMPLIED   WARRANTIES OF MERCHANTABILITY  AND   FITNESS, IN NO
  * EVENT  SHALL FREDERIC  LEPIED BE   LIABLE   FOR ANY  SPECIAL, INDIRECT   OR
  */
 
 #include "xinput.h"
  */
 
 #include "xinput.h"
+#include <string.h>
 
 static void
 
 static void
-print_info(XDeviceInfo *info)
+print_info(XDeviceInfo *info, Bool shortformat)
 {
     int                        i,j;
     XAnyClassPtr       any;
 {
     int                        i,j;
     XAnyClassPtr       any;
@@ -57,6 +58,9 @@ print_info(XDeviceInfo        *info)
     }
     printf("]\n");
 
     }
     printf("]\n");
 
+    if (shortformat)
+        return;
+
     if (info->num_classes > 0) {
        any = (XAnyClassPtr) (info->inputclassinfo);
        for (i=0; i<info->num_classes; i++) {
     if (info->num_classes > 0) {
        any = (XAnyClassPtr) (info->inputclassinfo);
        for (i=0; i<info->num_classes; i++) {
@@ -75,7 +79,7 @@ print_info(XDeviceInfo        *info)
 
            case ValuatorClass:
                v = (XValuatorInfoPtr) any;
 
            case ValuatorClass:
                v = (XValuatorInfoPtr) any;
-               a = (XAxisInfoPtr) ((char *) v + 
+               a = (XAxisInfoPtr) ((char *) v +
                                    sizeof (XValuatorInfo));
                printf("\tNum_axes is %d\n", v->num_axes);
                printf("\tMode is %s\n", (v->mode == Absolute) ? "Absolute" : "Relative");
                                    sizeof (XValuatorInfo));
                printf("\tNum_axes is %d\n", v->num_axes);
                printf("\tMode is %s\n", (v->mode == Absolute) ? "Absolute" : "Relative");
@@ -87,7 +91,7 @@ print_info(XDeviceInfo        *info)
                    printf ("\t\tResolution is %d\n", a->resolution);
                }
                break;
                    printf ("\t\tResolution is %d\n", a->resolution);
                }
                break;
-               
+
            default:
                printf ("unknown class\n");
            }
            default:
                printf ("unknown class\n");
            }
@@ -105,26 +109,29 @@ list(Display      *display,
 {
     XDeviceInfo                *info;
     int                        loop;
 {
     XDeviceInfo                *info;
     int                        loop;
+    int                 shortformat = False;
 
 
-    if (argc == 0) {
+    shortformat = (argc == 1 && strcmp(argv[0], "--short") == 0);
+
+    if (argc == 0 || shortformat) {
        int             num_devices;
        int             num_devices;
-    
+
        info = XListInputDevices(display, &num_devices);
        info = XListInputDevices(display, &num_devices);
-       
+
        for(loop=0; loop<num_devices; loop++) {
        for(loop=0; loop<num_devices; loop++) {
-           print_info(info+loop);
+           print_info(info+loop, shortformat);
        }
     } else {
        int     ret = EXIT_SUCCESS;
 
        for(loop=0; loop<argc; loop++) {
            info = find_device_info(display, argv[0], False);
        }
     } else {
        int     ret = EXIT_SUCCESS;
 
        for(loop=0; loop<argc; loop++) {
            info = find_device_info(display, argv[0], False);
-           
+
            if (!info) {
                fprintf(stderr, "unable to find device %s\n", argv[0]);
                ret = EXIT_FAILURE;
            } else {
            if (!info) {
                fprintf(stderr, "unable to find device %s\n", argv[0]);
                ret = EXIT_FAILURE;
            } else {
-               print_info(info);
+               print_info(info, shortformat);
            }
        }
        return ret;
            }
        }
        return ret;