X-Git-Url: https://diplodocus.org/git/xorg-xinput/blobdiff_plain/8806f3db5417f1c5946b6589cf2f043e9e7c68d3..06447732750a022a44476f8929568f0b11bfc6e9:/src/list.c diff --git a/src/list.c b/src/list.c index 141bff7..9ef3d61 100644 --- a/src/list.c +++ b/src/list.c @@ -1,6 +1,6 @@ /* * Copyright 1996 by Frederic Lepied, France. - * + * * 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 - * 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 @@ -22,11 +22,10 @@ */ #include "xinput.h" - -static const char rcs_id[] = "$Id: list.c,v 1.1.1.2 1997/06/09 16:00:48 fred Exp $"; +#include static void -print_info(XDeviceInfo *info) +print_info(XDeviceInfo *info, Bool shortformat) { int i,j; XAnyClassPtr any; @@ -35,9 +34,32 @@ print_info(XDeviceInfo *info) XValuatorInfoPtr v; XAxisInfoPtr a; - printf("\"%s\"\tid=%ld\t[%s]\n", info->name, info->id, - (info->use == IsXExtensionDevice) ? "XExtensionDevice" : - ((info->use == IsXPointer) ? "XPointer" : "XKeyboard")); + printf("\"%s\"\tid=%ld\t[", info->name, info->id); + + switch (info->use) { + case IsXPointer: + printf("XPointer"); + break; + case IsXKeyboard: + printf("XKeyboard"); + break; + case IsXExtensionDevice: + printf("XExtensionDevice"); + break; + case IsXExtensionKeyboard: + printf("XExtensionKeyboard"); + break; + case IsXExtensionPointer: + printf("XExtensionPointer"); + break; + default: + printf("Unknown class"); + break; + } + printf("]\n"); + + if (shortformat) + return; if (info->num_classes > 0) { any = (XAnyClassPtr) (info->inputclassinfo); @@ -57,7 +79,7 @@ print_info(XDeviceInfo *info) 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"); @@ -69,7 +91,7 @@ print_info(XDeviceInfo *info) printf ("\t\tResolution is %d\n", a->resolution); } break; - + default: printf ("unknown class\n"); } @@ -87,26 +109,29 @@ list(Display *display, { XDeviceInfo *info; int loop; + int shortformat = False; + + shortformat = (argc == 1 && strcmp(argv[0], "--short") == 0); - if (argc == 0) { + if (argc == 0 || shortformat) { int num_devices; - + info = XListInputDevices(display, &num_devices); - + for(loop=0; loop