From: <sk...@us...> - 2010-09-23 11:46:48
|
Revision: 2388 http://linuxconsole.svn.sourceforge.net/linuxconsole/?rev=2388&view=rev Author: skitt Date: 2010-09-23 11:46:42 +0000 (Thu, 23 Sep 2010) Log Message: ----------- Avoid segfaulting with certain USB joysticks. Patch taken from the Ubuntu package. Modified Paths: -------------- trunk/utils/jstest.c Modified: trunk/utils/jstest.c =================================================================== --- trunk/utils/jstest.c 2010-09-23 11:45:44 UTC (rev 2387) +++ trunk/utils/jstest.c 2010-09-23 11:46:42 UTC (rev 2388) @@ -106,15 +106,21 @@ printf("Driver version is %d.%d.%d.\n", version >> 16, (version >> 8) & 0xff, version & 0xff); - printf("Joystick (%s) has %d axes (", name, axes); - for (i = 0; i < axes; i++) - printf("%s%s", i > 0 ? ", " : "", axis_names[axmap[i]]); - puts(")"); + if (buttons > 0 && btnmap[0] < BTN_MISC) { + /* btnmap out of range for names. Don't print any. */ + printf("Joystick (%s) has %d axes ", name, axes); + printf("and %d buttons.\n", buttons); + } else { + printf("Joystick (%s) has %d axes (", name, axes); + for (i = 0; i < axes; i++) + printf("%s%s", i > 0 ? ", " : "", axis_names[axmap[i]]); + puts(")"); - printf("and %d buttons (", buttons); - for (i = 0; i < buttons; i++) - printf("%s%s", i > 0 ? ", " : "", button_names[btnmap[i] - BTN_MISC]); - puts(")."); + printf("and %d buttons (", buttons); + for (i = 0; i < buttons; i++) + printf("%s%s", i > 0 ? ", " : "", button_names[btnmap[i] - BTN_MISC]); + puts(")."); + } printf("Testing ... (interrupt to exit)\n"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |