The code did not correctly handle super-string handling. For example, if we were searching for "WGL_ARB_pixel_format" but we found "WGL_ARB_pixel_format_float" we'd stop searching and return 0. Now we search past that initial, incorrect match. --- src/xdemos/glinfo_common.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/src/xdemos/glinfo_common.c b/src/xdemos/glinfo_common.c index e6517d7..e7ef508 100644 --- a/src/xdemos/glinfo_common.c +++ b/src/xdemos/glinfo_common.c @@ -306,12 +306,22 @@ build_core_profile_extension_list(const struct ext_functions *extfuncs) GLboolean extension_supported(const char *ext, const char *extensionsList) { - const char *p = strstr(extensionsList, ext); - if (p) { - /* check that next char is a space or end of string */ - int extLen = strlen(ext); - if (p[extLen] == 0 || p[extLen] == ' ') - return 1; + while (1) { + const char *p = strstr(extensionsList, ext); + if (p) { + /* check that next char is a space or end of string */ + int extLen = strlen(ext); + if (p[extLen] == 0 || p[extLen] == ' ') { + return 1; + } + else { + /* We found a superset string, keep looking */ + extensionsList += extLen; + } + } + else { + break; + } } return 0; } -- 1.7.10.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev