From ea6f97440ba83d75ab74de4b0977e18917f34b4b Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Tue, 5 Apr 2005 07:35:09 +0000 Subject: [PATCH] fix some bugs in joystick initialization --- ChangeLog | 5 +++++ arch/linux/joystick.c | 10 +++++----- arch/sdl/joy.c | 4 +++- main/kconfig.c | 24 ++++++++++++++++++------ 4 files changed, 31 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 197ba5a7..8fd814ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-04-05 Bradley Bell + + * arch/linux/joystick.c, arch/sdl/joy.c, main/kconfig.c: fix some + bugs in joystick initialization + 2005-04-04 Bradley Bell * main/kconfig.c: cosmetic fixes to joystick config screen diff --git a/arch/linux/joystick.c b/arch/linux/joystick.c index e16ba96b..e76077ce 100644 --- a/arch/linux/joystick.c +++ b/arch/linux/joystick.c @@ -1,4 +1,4 @@ -/* $Id: joystick.c,v 1.7 2005-04-04 09:18:08 btb Exp $ */ +/* $Id: joystick.c,v 1.8 2005-04-05 07:35:09 btb Exp $ */ /* * * Linux joystick support @@ -213,10 +213,10 @@ int joy_init () { j_joystick[1].buffer = open ("/dev/js1", O_NONBLOCK); j_joystick[2].buffer = open ("/dev/js2", O_NONBLOCK); j_joystick[3].buffer = open ("/dev/js3", O_NONBLOCK); - j_joystick[0].buffer = open("/dev/input/js0", O_NONBLOCK); - j_joystick[1].buffer = open("/dev/input/js1", O_NONBLOCK); - j_joystick[2].buffer = open("/dev/input/js2", O_NONBLOCK); - j_joystick[3].buffer = open("/dev/input/js3", O_NONBLOCK); + j_joystick[4].buffer = open("/dev/input/js0", O_NONBLOCK); + j_joystick[5].buffer = open("/dev/input/js1", O_NONBLOCK); + j_joystick[6].buffer = open("/dev/input/js2", O_NONBLOCK); + j_joystick[7].buffer = open("/dev/input/js3", O_NONBLOCK); // Determine whether any sticks were found joystick_found = 0; diff --git a/arch/sdl/joy.c b/arch/sdl/joy.c index 7d3fbba8..760c1a77 100644 --- a/arch/sdl/joy.c +++ b/arch/sdl/joy.c @@ -1,4 +1,4 @@ -/* $Id: joy.c,v 1.17 2005-04-04 09:18:08 btb Exp $ */ +/* $Id: joy.c,v 1.18 2005-04-05 07:35:09 btb Exp $ */ /* * * SDL joystick support @@ -151,6 +151,8 @@ int joy_init() } memset(&Joystick,0,sizeof(Joystick)); + memset(joyaxis_text, 0, JOY_MAX_AXES * sizeof(char *)); + memset(joybutton_text, 0, JOY_MAX_BUTTONS * sizeof(char *)); n = SDL_NumJoysticks(); diff --git a/main/kconfig.c b/main/kconfig.c index f9c5fb68..b02ab777 100644 --- a/main/kconfig.c +++ b/main/kconfig.c @@ -1,4 +1,4 @@ -/* $Id: kconfig.c,v 1.37 2005-04-04 09:48:50 btb Exp $ */ +/* $Id: kconfig.c,v 1.38 2005-04-05 07:35:09 btb Exp $ */ /* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO @@ -23,7 +23,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #endif #ifdef RCS -static char rcsid[] = "$Id: kconfig.c,v 1.37 2005-04-04 09:48:50 btb Exp $"; +static char rcsid[] = "$Id: kconfig.c,v 1.38 2005-04-05 07:35:09 btb Exp $"; #endif #ifdef WINDOWS @@ -854,7 +854,10 @@ int get_item_height(kc_item *item) #ifdef USE_LINUX_JOY sprintf(btext, "J%d B%d", j_button[item->value].joydev, j_Get_joydev_button_number(item->value)); #elif defined(SDL_INPUT) - strncpy(btext, joybutton_text[item->value], 10); + if (joybutton_text[item->value]) + strncpy(btext, joybutton_text[item->value], 10); + else + sprintf(btext, "BTN%2d", item->value + 1); #else if ( joybutton_text[item->value] !=-1 ) strncpy( btext, Text_string[ joybutton_text[item->value] ], 10 ); @@ -866,7 +869,10 @@ int get_item_height(kc_item *item) #ifdef USE_LINUX_JOY sprintf( btext, "J%d A%d", j_axis[item->value].joydev, j_Get_joydev_axis_number (item->value) ); #elif defined(SDL_INPUT) - strncpy(btext, joyaxis_text[item->value], 10); + if (joyaxis_text[item->value]) + strncpy(btext, joyaxis_text[item->value], 10); + else + sprintf(btext, "AXIS%2d", item->value + 1); #else strncpy(btext, Text_string[joyaxis_text[item->value]], 10); #endif @@ -1385,7 +1391,10 @@ WIN(DDGRUNLOCK(dd_grd_curcanv)); #ifdef USE_LINUX_JOY sprintf(btext, "J%d B%d", j_button[item->value].joydev, j_Get_joydev_button_number(item->value)); #elif defined(SDL_INPUT) - strncpy(btext, joybutton_text[item->value], 10); + if (joybutton_text[item->value]) + strncpy(btext, joybutton_text[item->value], 10); + else + sprintf(btext, "BTN%2d", item->value + 1); #else # ifndef MACINTOSH # ifdef WINDOWS @@ -1410,7 +1419,10 @@ WIN(DDGRUNLOCK(dd_grd_curcanv)); #ifdef USE_LINUX_JOY sprintf(btext, "J%d A%d", j_axis[item->value].joydev, j_Get_joydev_axis_number(item->value)); #elif defined(SDL_INPUT) - strncpy(btext, joyaxis_text[item->value], 10); + if (joyaxis_text[item->value]) + strncpy(btext, joyaxis_text[item->value], 10); + else + sprintf(btext, "AXIS%2d", item->value + 1); #else strncpy(btext, Text_string[joyaxis_text[item->value]], 10); #endif -- 2.39.2