* Fixed a bug that I introduced in fgWarning()/fgError(): I thought that
authorRichard Rauch <rkr@olib.org>
Wed, 29 Oct 2003 06:40:51 +0000 (06:40 +0000)
committerRichard Rauch <rkr@olib.org>
Wed, 29 Oct 2003 06:40:51 +0000 (06:40 +0000)
   ((a) || (b)) was defined to have value as:
     (a) if (a) != 0
     (b) if (a) == 0

   ...instead, it has value 0/1.  This was causing a bug.  It's probably
   just as well, since what I was trying to do definitely fell into the
   category of "clever code" rather than "clear code".

   Sorry.

 * Made glutSetKeyRepeat() call fgError() if you go out of range.  (The
   old code silently did nothing---not even a warning.)

   If it is really desirable to keep running, we should probably at least
   generate an fgWarning().

 * Deleted some say-nothing-new comments.

 * XXX added: Is glutSetKeyRepeat() deprecated?

git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@256 7f0cb862-5218-0410-a997-914c9d46530a

src/freeglut_cursor.c
src/freeglut_main.c
src/freeglut_misc.c

index 91bf604..9ba6f12 100644 (file)
@@ -74,14 +74,14 @@ void FGAPIENTRY glutSetCursor( int cursorID )
    * (e) Out-of-range cursor-types are ignored.  Should we abort?
    *     Print a warning message?
    */
-       {
-               Cursor cursor;
-#              define MAP_CURSOR(a,b) case a: cursor = XCreateFontCursor( fgDisplay.Display, b ); break;
-         if( GLUT_CURSOR_FULL_CROSSHAIR == cursorID )
-           cursorID = GLUT_CURSOR_CROSSHAIR;
-
-         switch( cursorID )
     {
+       Cursor cursor;
+#define MAP_CURSOR(a,b) case a: cursor = XCreateFontCursor( fgDisplay.Display, b ); break;
+       if( GLUT_CURSOR_FULL_CROSSHAIR == cursorID )
+           cursorID = GLUT_CURSOR_CROSSHAIR;
+       
+       switch( cursorID )
+        {
            MAP_CURSOR( GLUT_CURSOR_RIGHT_ARROW, XC_right_ptr);
            MAP_CURSOR( GLUT_CURSOR_LEFT_ARROW,  XC_left_ptr);
            MAP_CURSOR( GLUT_CURSOR_INFO,        XC_hand1);
@@ -103,17 +103,17 @@ void FGAPIENTRY glutSetCursor( int cursorID )
            MAP_CURSOR( GLUT_CURSOR_BOTTOM_RIGHT_CORNER, XC_bottom_right_corner);
            MAP_CURSOR( GLUT_CURSOR_BOTTOM_LEFT_CORNER, XC_bottom_left_corner);
            MAP_CURSOR( GLUT_CURSOR_NONE,        XC_bogosity);
-    case GLUT_CURSOR_INHERIT:
-      break;
-    default:
-      return;
-    }
+       case GLUT_CURSOR_INHERIT:
+           break;
+       default:
+           return;
+       }
 
-    if( GLUT_CURSOR_INHERIT == cursorID )
-      XUndefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle );
-    else
-      XDefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle, cursor );
-  }
+       if( GLUT_CURSOR_INHERIT == cursorID )
+           XUndefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle );
+       else
+           XDefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle, cursor );
+    }
 
 #elif TARGET_HOST_WIN32
 
@@ -131,21 +131,21 @@ void FGAPIENTRY glutSetCursor( int cursorID )
 
        switch( cursorID )
        {
-               MAP_CURSOR( GLUT_CURSOR_RIGHT_ARROW, IDC_ARROW     );
-               MAP_CURSOR( GLUT_CURSOR_LEFT_ARROW,  IDC_ARROW     );
-               MAP_CURSOR( GLUT_CURSOR_INFO,        IDC_HELP      );
-               MAP_CURSOR( GLUT_CURSOR_DESTROY,     IDC_CROSS     );
-               MAP_CURSOR( GLUT_CURSOR_HELP,        IDC_HELP      );
-               MAP_CURSOR( GLUT_CURSOR_CYCLE,       IDC_SIZEALL   );
-               MAP_CURSOR( GLUT_CURSOR_SPRAY,       IDC_CROSS     );
-               MAP_CURSOR( GLUT_CURSOR_WAIT,            IDC_WAIT      );
-               MAP_CURSOR( GLUT_CURSOR_TEXT,        IDC_UPARROW   );
-               MAP_CURSOR( GLUT_CURSOR_CROSSHAIR,   IDC_CROSS     );
-               /* MAP_CURSOR( GLUT_CURSOR_NONE,        IDC_NO             ); */
-               ZAP_CURSOR( GLUT_CURSOR_NONE,        NULL          );
-
-               default:
-               MAP_CURSOR( GLUT_CURSOR_UP_DOWN,     IDC_ARROW     );
+           MAP_CURSOR( GLUT_CURSOR_RIGHT_ARROW, IDC_ARROW     );
+           MAP_CURSOR( GLUT_CURSOR_LEFT_ARROW,  IDC_ARROW     );
+           MAP_CURSOR( GLUT_CURSOR_INFO,        IDC_HELP      );
+           MAP_CURSOR( GLUT_CURSOR_DESTROY,     IDC_CROSS     );
+           MAP_CURSOR( GLUT_CURSOR_HELP,        IDC_HELP          );
+           MAP_CURSOR( GLUT_CURSOR_CYCLE,       IDC_SIZEALL   );
+           MAP_CURSOR( GLUT_CURSOR_SPRAY,       IDC_CROSS     );
+           MAP_CURSOR( GLUT_CURSOR_WAIT,                IDC_WAIT      );
+           MAP_CURSOR( GLUT_CURSOR_TEXT,        IDC_UPARROW   );
+           MAP_CURSOR( GLUT_CURSOR_CROSSHAIR,   IDC_CROSS     );
+           /* MAP_CURSOR( GLUT_CURSOR_NONE,        IDC_NO                 ); */
+           ZAP_CURSOR( GLUT_CURSOR_NONE,        NULL      );
+           
+       default:
+           MAP_CURSOR( GLUT_CURSOR_UP_DOWN,     IDC_ARROW     );
        }
 #endif
 
index d41ceed..75eda6c 100644 (file)
@@ -289,7 +289,9 @@ void fgError( const char *fmt, ... )
 
     va_start( ap, fmt );
 
-    fprintf( stderr, "freeglut (%s): ", fgState.ProgramName || "");
+    fprintf( stderr, "freeglut ");
+    if( fgState.ProgramName )
+        fprintf (stderr, "(%s): ", fgState.ProgramName);
     vfprintf( stderr, fmt, ap );
     fprintf( stderr, "\n" );
 
@@ -304,7 +306,9 @@ void fgWarning( const char *fmt, ... )
 
     va_start( ap, fmt );
 
-    fprintf( stderr, "freeglut (%s): ", fgState.ProgramName || "");
+    fprintf( stderr, "freeglut ");
+    if( fgState.ProgramName )
+        fprintf( stderr, "(%s): ", fgState.ProgramName );
     vfprintf( stderr, fmt, ap );
     fprintf( stderr, "\n" );
 
index 9d44470..3d1ce5b 100644 (file)
@@ -47,6 +47,8 @@
 
 /*
  * This functions checks if an OpenGL extension is supported or not
+ *
+ * XXX Wouldn't this be simpler and clearer if we used strtok()?
  */
 int FGAPIENTRY glutExtensionSupported( const char* extension )
 {
@@ -54,20 +56,13 @@ int FGAPIENTRY glutExtensionSupported( const char* extension )
   const int len = strlen( extension ) ;
 
   /*
-   * Make sure there is a current window, and thus -- a current context available
+   * Make sure there is a current window, and thus a current context available
    */
   freeglut_assert_ready;
   freeglut_return_val_if_fail( fgStructure.Window != NULL, 0 );
 
-  /*
-   * Check if the extension itself looks valid (contains no spaces)
-   */
   if (strchr(extension, ' '))
     return 0;
-
-  /*
-   * Note it is safe to query the extensions
-   */
   start = extensions = (const char *) glGetString(GL_EXTENSIONS);
 
   /* XXX consider printing a warning to stderr that there's no current
@@ -94,16 +89,8 @@ int FGAPIENTRY glutExtensionSupported( const char* extension )
  */
 void FGAPIENTRY glutReportErrors( void )
 {
-    GLenum error = glGetError();
-
-    /*
-     * Keep reporting errors as long as there are any...
-     */
-    while( error != GL_NO_ERROR )
-    {
-        /*
-         * Print the current error
-         */
+    GLenum error;
+    while( ( error = glGetError() ) != GL_NO_ERROR )
 #       undef  G_LOG_DOMAIN
 #       define G_LOG_DOMAIN ((gchar *) 0)
 
@@ -111,27 +98,23 @@ void FGAPIENTRY glutReportErrors( void )
 
 #       undef   G_LOG_DOMAIN
 #       define  G_LOG_DOMAIN  "freeglut_misc.c"
-
-        /*
-         * Grab the next error value
-         */
-        error = glGetError();
-    };
 }
 
 /*
  * Turns the ignore key auto repeat feature on and off
+ *
+ * DEPRECATED 11/4/02 - Do not use
  */
-void FGAPIENTRY glutIgnoreKeyRepeat( int ignore )  /* DEPRECATED 11/4/02 - Do not use */
+void FGAPIENTRY glutIgnoreKeyRepeat( int ignore )
 {
-    /*
-     * This is simple and not damaging...
-     */
     fgState.IgnoreKeyRepeat = ignore ? TRUE : FALSE;
 }
 
 /*
- * Hints the window system whether to generate key auto repeat, or not. This is evil.
+ * Hints the window system whether to generate key auto repeat, or not.
+ * This is evil.
+ *
+ * XXX Is this also deprecated as of 20021104?
  */
 void FGAPIENTRY glutSetKeyRepeat( int repeatMode )
 {
@@ -139,9 +122,6 @@ void FGAPIENTRY glutSetKeyRepeat( int repeatMode )
 
     freeglut_assert_ready;
 
-    /*
-     * This is really evil, but let's have this done.
-     */
     switch( repeatMode )
     {
     case GLUT_KEY_REPEAT_OFF:   XAutoRepeatOff( fgDisplay.Display ); break;
@@ -150,14 +130,7 @@ void FGAPIENTRY glutSetKeyRepeat( int repeatMode )
         {
             XKeyboardState keyboardState;
 
-            /*
-             * Query the current keyboard state
-             */
             XGetKeyboardControl( fgDisplay.Display, &keyboardState );
-
-            /*
-             * Set the auto key repeat basing on the global settings
-             */
             glutSetKeyRepeat(
                 keyboardState.global_auto_repeat == AutoRepeatModeOn ?
                 GLUT_KEY_REPEAT_ON : GLUT_KEY_REPEAT_OFF
@@ -166,9 +139,7 @@ void FGAPIENTRY glutSetKeyRepeat( int repeatMode )
         break;
 
     default:
-        /*
-         * Whoops, this was not expected at all
-         */
+        fgError ("Invalid glutSetKeyRepeat mode: %d", repeatMode);
         break;
     }