[Mesa-dev] [PATCH] glsl: Generalize MSVC fix for strcasecmp().

Kenneth Graunke kenneth at whitecape.org
Sat Oct 26 22:31:53 CEST 2013


On 10/26/2013 10:32 AM, Paul Berry wrote:
> This will let us use strcasecmp() from anywhere inside Mesa without
> having to worry about the fact that it doesn't exist in MSVC.
> ---
>  src/glsl/glsl_parser.yy | 8 +-------
>  src/mesa/main/imports.h | 1 +
>  2 files changed, 2 insertions(+), 7 deletions(-)
> 
> diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
> index 0a0708e..4ed4105 100644
> --- a/src/glsl/glsl_parser.yy
> +++ b/src/glsl/glsl_parser.yy
> @@ -66,14 +66,8 @@ static bool match_layout_qualifier(const char *s1, const char *s2,
>      */
>     if (state->es_shader)
>        return strcmp(s1, s2);
> -   else {
> -#if defined(_MSC_VER)
> -      /* MSVC doesn't have a strcasecmp() function; instead it has _stricmp. */
> -      return _stricmp(s1, s2);
> -#else
> +   else
>        return strcasecmp(s1, s2);
> -#endif
> -   }
>  }
>  %}
>  
> diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h
> index 53e40b4..d79e2a3 100644
> --- a/src/mesa/main/imports.h
> +++ b/src/mesa/main/imports.h
> @@ -141,6 +141,7 @@ static inline float acoshf(float x) { return logf(x + sqrtf(x * x - 1.0f)); }
>  static inline float atanhf(float x) { return (logf(1.0f + x) - logf(1.0f - x)) / 2.0f; }
>  static inline int isblank(int ch) { return ch == ' ' || ch == '\t'; }
>  #define strtoll(p, e, b) _strtoi64(p, e, b)
> +#define strcasecmp(s1, s2) _stricmp(s1, s2)
>  #endif
>  /*@}*/

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>


More information about the mesa-dev mailing list