diff src/haptic/linux/SDL_syshaptic.c @ 3080:4094b4f1c3a1

More verbosity and error checking.
author Edgar Simo <bobbens@gmail.com>
date Sat, 21 Feb 2009 18:03:22 +0000
parents 0906692aa6a4
children 81773a1eac83
line wrap: on
line diff
--- a/src/haptic/linux/SDL_syshaptic.c	Sat Feb 21 18:02:55 2009 +0000
+++ b/src/haptic/linux/SDL_syshaptic.c	Sat Feb 21 18:03:22 2009 +0000
@@ -395,17 +395,28 @@
     int fd;
     int ret;
 
+
     /* Find the joystick in the haptic list. */
     for (i = 0; i < MAX_HAPTICS; i++) {
         if (SDL_hapticlist[i].fname != NULL) {
             if (SDL_strcmp(SDL_hapticlist[i].fname, joystick->hwdata->fname)
                 == 0) {
                 haptic->index = i;
+                break;
             }
         }
     }
+    if (i >= MAX_HAPTICS) {
+        SDL_SetError("Haptic: Joystick doesn't have Haptic capabilities");
+        return -1;
+    }
 
     fd = open(joystick->hwdata->fname, O_RDWR, 0);
+    if (fd < 0) {
+        SDL_SetError("Haptic: Unable to open %s: %s",
+                     joystick->hwdata->fname, strerror(errno));
+        return -1;
+    }
     ret = SDL_SYS_HapticOpenFromFD(haptic, fd); /* Already closes on error. */
     if (ret < 0) {
         return -1;