Fix to glutInit() command-line argument compaction - Patch #1027724 from takeshi2
[freeglut] / src / freeglut_joystick.c
index 58c594d..a61a708 100644 (file)
@@ -73,9 +73,7 @@
 #if TARGET_HOST_UNIX_X11
 #    define _JS_MAX_AXES 16
 #    if defined(__FreeBSD__) || defined(__NetBSD__)
-/*
- * XXX The below hack is done until freeglut's autoconf is updated.
- */
+/* XXX The below hack is done until freeglut's autoconf is updated. */
 #        define HAVE_USB_JS    1
 
 #        include <sys/ioctl.h>
 #define JS_TRUE  1
 #define JS_FALSE 0
 
-/*
- * BSD defines from "jsBSD.cxx" around lines 42-270
- */
+/* BSD defines from "jsBSD.cxx" around lines 42-270 */
 
 #if defined(__NetBSD__) || defined(__FreeBSD__)
 
 #    ifdef HAVE_USB_JS
 #        if defined(__NetBSD__)
-/*
- * XXX The below hack is done until freeglut's autoconf is updated.
- */
+/* XXX The below hack is done until freeglut's autoconf is updated. */
 #            define HAVE_USBHID_H 1
 #            ifdef HAVE_USBHID_H
 #                include <usbhid.h>
 #            if __FreeBSD_version < 500000
 #                include <libusbhid.h>
 #            else
-/*
- * XXX The below hack is done until freeglut's autoconf is updated.
- */
+/* XXX The below hack is done until freeglut's autoconf is updated. */
 #                define HAVE_USBHID_H 1
 #                include <usbhid.h>
 #            endif
@@ -249,8 +241,7 @@ static int fghJoystickFindUSBdev(char *name, char *out, int outlen)
         return 1;
     } else if (errno == EACCES) {
       if (!protection_warned) {
-        fprintf(stderr, "Can't open %s for read!\n",
-          buf);
+        fgWarning ( "Can't open %s for read!", buf );
         protection_warned = 1;
       }
     }
@@ -271,7 +262,7 @@ static int fghJoystickInitializeHID(struct os_specific_s *os,
 
     if ( ( rd = hid_get_report_desc( os->fd ) ) == 0 )
     {
-        fprintf( stderr, "error: %s: %s", os->fname, strerror( errno ) );
+        fgWarning ( "error: %s: %s", os->fname, strerror( errno ) );
         return FALSE;
     }
 
@@ -281,8 +272,7 @@ static int fghJoystickInitializeHID(struct os_specific_s *os,
         if( ioctl( os->fd, USB_GET_REPORT_ID, &report_id ) < 0)
         {
             /*** XXX {report_id} may not be the right variable? ***/
-            fprintf( stderr, "error: %s%d: %s",
-                     UHIDDEV, report_id, strerror( errno ) );
+            fgWarning ( "error: %s%d: %s", UHIDDEV, report_id, strerror( errno ) );
             return FALSE;
         }
 
@@ -445,14 +435,14 @@ io_object_t ioDevices[K_NUM_DEVICES];
 static void fghJoystickFindDevices ( SFG_Joystick* joy, mach_port_t );
 static CFDictionaryRef fghJoystickGetCFProperties ( SFG_Joystick* joy, io_object_t );
 
-void fghJoystickEnumerateElements ( SFG_Joystick* joy, CFTypeRef element );
+static void fghJoystickEnumerateElements ( SFG_Joystick* joy, CFTypeRef element );
 /* callback for CFArrayApply */
 static void fghJoystickElementEnumerator ( SFG_Joystick* joy, void *element, void* vjs );
-void fghJoystickParseElement ( SFG_Joystick* joy, CFDictionaryRef element );
+static void fghJoystickParseElement ( SFG_Joystick* joy, CFDictionaryRef element );
 
-void fghJoystickAddAxisElement ( SFG_Joystick* joy, CFDictionaryRef axis );
-void fghJoystickAddButtonElement ( SFG_Joystick* joy, CFDictionaryRef button );
-void fghJoystickAddHatElement ( SFG_Joystick* joy, CFDictionaryRef hat );
+static void fghJoystickAddAxisElement ( SFG_Joystick* joy, CFDictionaryRef axis );
+static void fghJoystickAddButtonElement ( SFG_Joystick* joy, CFDictionaryRef button );
+static void fghJoystickAddHatElement ( SFG_Joystick* joy, CFDictionaryRef hat );
 #endif
 
 
@@ -732,7 +722,7 @@ static void fghJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes )
             break;
 
         default:
-            fgWarning ( "%s", "PLIB_JS: Unrecognised /dev/js return!?!" );
+            fgWarning ( "PLIB_JS: Unrecognised /dev/js return!?!" );
 
             /* use the old values */
 
@@ -859,7 +849,7 @@ static int fghJoystickFindDevices ( SFG_Joystick *joy, mach_port_t masterPort )
 
     rv = IOServiceGetMatchingServices(masterPort, hidMatch, &hidIterator);
     if (rv != kIOReturnSuccess || !hidIterator) {
-      fgWarning( "%s", "no joystick (HID) devices found" );
+      fgWarning( "no joystick (HID) devices found" );
       return;
     }
 
@@ -902,13 +892,13 @@ static CFDictionaryRef fghJoystickGetCFProperties ( SFG_Joystick *joy, io_object
 
     rv = IORegistryEntryGetParentEntry (ioDev, kIOServicePlane, &parent1);
     if (rv != kIOReturnSuccess) {
-        fgWarning ( "%s", "error getting device entry parent");
+        fgWarning ( "error getting device entry parent");
         return NULL;
     }
 
     rv = IORegistryEntryGetParentEntry (parent1, kIOServicePlane, &parent2);
     if (rv != kIOReturnSuccess) {
-        fgWarning ( "%s", "error getting device entry parent 2");
+        fgWarning ( "error getting device entry parent 2");
         return NULL;
     }
 #endif
@@ -916,7 +906,7 @@ static CFDictionaryRef fghJoystickGetCFProperties ( SFG_Joystick *joy, io_object
     rv = IORegistryEntryCreateCFProperties( ioDev /*parent2*/,
         &cfProperties, kCFAllocatorDefault, kNilOptions);
     if (rv != kIOReturnSuccess || !cfProperties) {
-        fgWarning ( "%s", "error getting device properties");
+        fgWarning ( "error getting device properties");
         return NULL;
     }
 
@@ -982,14 +972,14 @@ static void fghJoystickParseElement ( SFG_Joystick *joy, CFDictionaryRef element
                 break;
 
             default:
-                printf("input type element has weird usage (%x)\n", usage);
+                fgWarning ( "input type element has weird usage (%x)", usage);
                 break;
             }
         } else if (page == kHIDPage_Button) {
             printf(" button\n");
             fghJoystickAddButtonElement((CFDictionaryRef) element);
         } else
-            printf("input type element has weird page (%x)\n", page);
+            fgWarning ( "input type element has weird page (%x)", page);
         break;
 
     case kIOHIDElementTypeCollection:
@@ -1145,9 +1135,7 @@ static void fghJoystickOpen( SFG_Joystick* joy )
     joy->name[ 0 ] = '\0';
 
 #if TARGET_HOST_MACINTOSH
-    /*
-     * XXX FIXME: get joystick name in Mac
-     */
+    /* XXX FIXME: get joystick name in Mac */
 
     err = ISpStartup( );
 
@@ -1249,7 +1237,7 @@ static void fghJoystickOpen( SFG_Joystick* joy )
 #if TARGET_HOST_MAC_OSX
     if( joy->id >= numDevices )
     {
-        fgWarning( "%s", "device index out of range in fgJoystickOpen()" );
+        fgWarning( "device index out of range in fgJoystickOpen()" );
         return;
     }
 
@@ -1261,7 +1249,7 @@ static void fghJoystickOpen( SFG_Joystick* joy )
 
     if( rv != kIOReturnSuccess )
     {
-        fgWarning( "%s", "error creating plugin for io device" );
+        fgWarning( "error creating plugin for io device" );
         return;
     }
 
@@ -1272,7 +1260,7 @@ static void fghJoystickOpen( SFG_Joystick* joy )
     );
 
     if( pluginResult != S_OK )
-        fgWarning ( "%s", "QI-ing IO plugin to HID Device interface failed" );
+        fgWarning ( "QI-ing IO plugin to HID Device interface failed" );
 
     ( *plugin )->Release( plugin ); /* don't leak a ref */
     if( joy->hidDev == NULL )
@@ -1349,9 +1337,7 @@ static void fghJoystickOpen( SFG_Joystick* joy )
         joy->max[ 0 ] = ( float )joy->jsCaps.wXmax;
     }
 
-    /*
-     * Guess all the rest judging on the axes extremals
-     */
+    /* Guess all the rest judging on the axes extremals */
     for( i = 0; i < joy->num_axes; i++ )
     {
         joy->center   [ i ] = ( joy->max[ i ] + joy->min[ i ] ) * 0.5f;
@@ -1370,7 +1356,7 @@ static void fghJoystickOpen( SFG_Joystick* joy )
     joy->os->fd = open( joy->os->fname, O_RDONLY | O_NONBLOCK);
 
     if( joy->os->fd < 0 && errno == EACCES )
-        fgWarning ( "%s exists but is not readable by you\n", joy->os->fname );
+        fgWarning ( "%s exists but is not readable by you", joy->os->fname );
 
     joy->error =( joy->os->fd < 0 );
 
@@ -1466,9 +1452,7 @@ static void fghJoystickOpen( SFG_Joystick* joy )
 #endif
 
 #if defined( __linux__ )
-    /*
-     * Default for older Linux systems.
-     */
+    /* Default for older Linux systems. */
     joy->num_axes    =  2;
     joy->num_buttons = 32;
 
@@ -1486,9 +1470,7 @@ static void fghJoystickOpen( SFG_Joystick* joy )
     if( joy->error )
         return;
 
-    /*
-     * Set the correct number of axes for the linux driver
-     */
+    /* Set the correct number of axes for the linux driver */
 #    ifdef JS_NEW
     /* Melchior Franz's fixes for big-endian Linuxes since writing
      *  to the upper byte of an uninitialized word doesn't work.
@@ -1549,10 +1531,10 @@ static void fghJoystickOpen( SFG_Joystick* joy )
 void fgJoystickInit( int ident )
 {
     if( ident >= MAX_NUM_JOYSTICKS )
-      fgError( "Too large a joystick number" );
+      fgError( "Too large a joystick number: %d", ident );
 
     if( fgJoystick[ ident ] )
-        fgError( "illegal attempt to initialize joystick device" );
+        fgError( "illegal attempt to initialize joystick device again" );
 
     fgJoystick[ ident ] =
         ( SFG_Joystick * )calloc( sizeof( SFG_Joystick ), 1 );
@@ -1582,7 +1564,7 @@ void fgJoystickInit( int ident )
         IOReturn rv = IOMasterPort( bootstrap_port, &masterPort );
         if( rv != kIOReturnSuccess )
         {
-            fgWarning( "%s", "error getting master Mach port" );
+            fgWarning( "error getting master Mach port" );
             return;
         }
         fghJoystickFindDevices( masterPort );
@@ -1605,7 +1587,7 @@ void fgJoystickInit( int ident )
         !CFStringGetCString( ( CFStringRef )ref, name, 128,
                              CFStringGetSystemEncoding( ) ) )
     {
-        fgWarning( "%s", "error getting device name" );
+        fgWarning( "error getting device name" );
         name[ 0 ] = '\0';
     }
 #endif
@@ -1741,7 +1723,6 @@ void fgJoystickPollWindow( SFG_Window* window )
 
 /*
  * PWO: These jsJoystick class methods have not been implemented.
- *      We might consider adding such functions to freeglut-2.0.
  */
 int  glutJoystickGetNumAxes( int ident )
 {