X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=freeglut-1.3%2Ffreeglut_misc.c;h=4dcfceae00c720741642b6538de9a261ed8b4d44;hb=a82e219413778d1fd55d270af98e9ad6a97e25a0;hp=7aa85df7fd7feabe483a14f5705c31848f2a4f06;hpb=c41ee8f7e365eabcc5391cb953c9c81af34c6bb6;p=freeglut diff --git a/freeglut-1.3/freeglut_misc.c b/freeglut-1.3/freeglut_misc.c index 7aa85df..4dcfcea 100644 --- a/freeglut-1.3/freeglut_misc.c +++ b/freeglut-1.3/freeglut_misc.c @@ -50,58 +50,59 @@ */ int FGAPIENTRY glutExtensionSupported( const char* extension ) { - const char *extensions; - const char *ptr; - int 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 ); - + 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 ); + + /* + * Look for our extension + */ + for (ptr = extensions; *ptr;) + { /* - * Not it is safe to query the extenstions + * Is it the current extension? */ - extensions = glGetString(GL_EXTENSIONS); - - freeglut_return_val_if_fail( extensions != NULL, 0 ); + if ( strncmp ( extension, extensions, len ) == 0 ) + return 1 ; /* - * Check if the extension itself looks valid + * No, go find the next extension. They are separated from each other by one or more blank spaces. */ - for( i=0; i