[Mesa-dev] [PATCH] glsl: Correct string.h to strings.h

Alexander von Gluck IV kallisti5 at unixzen.com
Wed Aug 27 11:00:08 PDT 2014


On , Kenneth Graunke wrote:
> On Wednesday, August 27, 2014 11:35:06 AM Alexander von Gluck IV wrote:
>> * IEEE Std 1003.1-2001 placed strcasecmp() in strings.h.
>> * On a lot of platforms, strcasecmp is in strings.h and string.h
>> * Technically strcasecmp should be only in strings.h
>> * Haiku decided to stop providing strcasecmp in string.h as it
>>   is a crutch to code looking in the wrong place.
>> ---
>>  src/glsl/glsl_parser.yy |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>> 
>> diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
>> index 2f30b85..33c2f20 100644
>> --- a/src/glsl/glsl_parser.yy
>> +++ b/src/glsl/glsl_parser.yy
>> @@ -23,7 +23,7 @@
>>   */
>>  #include <stdio.h>
>>  #include <stdlib.h>
>> -#include <string.h>
>> +#include <strings.h>
>>  #include <assert.h>
>> 
>>  #include "ast.h"
>> 
> 
> But it also uses strcmp(), which is definitely defined in string.h.
> It sounds like we should include both.

I agree... however I hear that windows doesn't do strings.h.

Thinking maybe #include <string.h> and ifndef _MSC_VER #include 
<strings.h> ?

I confirmed that ISO C99 doesn't mention strcase* in string.h and IEEE 
std
1003.1-2001 shows strcase* only in strings.h

Any operating systems including strcase* in strings.h is doing it for 
legacy
compatibility for software pre-2001.

Man page for strcasecmp also confirms it's in strings.h:
http://linux.die.net/man/3/strcasecmp

  -- Alex


More information about the mesa-dev mailing list