[x265] [PATCH] strtok_r: fix detection on Windows
Rafaël Carré
funman at videolan.org
Sat Apr 5 23:33:59 CEST 2014
On 04/05/14 22:27, Steve Borho wrote:
> On Sat, Apr 5, 2014 at 4:26 AM, Rafaël Carré <funman at videolan.org> wrote:
>> Make sure HAVE_STRTOK_R is always defined, to 0 if absent
>> Fix typo in #if
>> mingw-w64's pthread.h #defines strtok_r, make sure to undef it
>> before we use our own definition.
>> ---
>> source/common/CMakeLists.txt | 3 +++
>> source/common/param.cpp | 3 ++-
>> 2 files changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/source/common/CMakeLists.txt b/source/common/CMakeLists.txt
>> index 09029ba..63cdf09 100644
>> --- a/source/common/CMakeLists.txt
>> +++ b/source/common/CMakeLists.txt
>> @@ -130,6 +130,9 @@ if(ENABLE_ASSEMBLY)
>> endif(ENABLE_ASSEMBLY)
>>
>> check_symbol_exists(strtok_r "string.h" HAVE_STRTOK_R)
>> +if(HAVE_STRTOK_R STREQUAL "")
>> + set(HAVE_STRTOK_R "0")
>> +endif()
>
> hmm, I think I would prefer to use:
>
> if(HAVE_STRTOK_R)
> set_source_files_properties(param.cpp PROPERTIES COMPILE_FLAGS
> -DHAVE_STRTOK_R=1)
> endif()
>
> then use #ifndef in the source
Works for me
>> set_source_files_properties(param.cpp PROPERTIES COMPILE_FLAGS -DHAVE_STRTOK_R=${HAVE_STRTOK_R})
>>
>> if(GCC AND GCC_HAS_NO_NARROWING)
>> diff --git a/source/common/param.cpp b/source/common/param.cpp
>> index 57e3388..ac19c7e 100644
>> --- a/source/common/param.cpp
>> +++ b/source/common/param.cpp
>> @@ -37,7 +37,7 @@
>> #define strcasecmp _stricmp
>> #endif
>>
>> -#if !HAVE_STROTOK_R
>> +#if !HAVE_STRTOK_R
>
> this is an obvious fix, thanks
>
>> /*
>> * adapted from public domain strtok_r() by Charlie Gordon
>> *
>> @@ -49,6 +49,7 @@
>> * http://groups.google.com/group/comp.lang.c/msg/7c7b39328fefab9c
>> */
>> +#undef strtok_r
>
> and I understand the need for this
>
>> char* strtok_r(
>> char *str,
>> const char *delim,
>
> Cheers
>
More information about the x265-devel
mailing list