- /*
- * Grab the current context's OpenGL extensions
- * and create a new GLib lexical analyzer...
- */
- gchar *glExtensions = (gchar *) glGetString( GL_EXTENSIONS );
- GScanner* scanner = g_scanner_new( NULL );
- gint i;
-
- /*
- * 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 );
-
- /*
- * Fail if there is no extension, extensions or scanner available
- */
- freeglut_return_val_if_fail( (scanner != NULL) && (strlen( extension ) > 0)
- && (strlen( glExtensions ) > 0), 0 );
-
- /*
- * Check if the extension itself looks valid
- */
- for( i=0; i<(gint) strlen( extension ); i++ )
- if( extension[ i ] == ' ' )
- return( 0 );
+ const char *extensions;
+ const char *ptr;
+ int len = strlen ( extension ) ;
+
+ /*
+ * 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 );
+
+ /*
+ * Note it is safe to query the extensions
+ */
+ extensions = glGetString(GL_EXTENSIONS);
+
+ freeglut_return_val_if_fail( extensions != NULL, 0 );
+
+ /*
+ * Check if the extension itself looks valid
+ */
+ if ( strchr ( extension, ' ' ) != NULL )
+ return( 0 );