[Piglit] [PATCH 3/3] util: Implement basename for MSVC.
Jose Fonseca
jfonseca at vmware.com
Mon Jun 8 06:54:37 PDT 2015
On 08/06/15 14:47, Brian Paul wrote:
> On 06/08/2015 06:17 AM, Jose Fonseca wrote:
>> Not really tested, but it should hopefully work, and at very least it
>> prevents link failures on MSVC due to absence of basename.
>> ---
>> tests/util/piglit-util.c | 29 +++++++++++++++++++++++++++++
>> tests/util/piglit-util.h | 2 ++
>> 2 files changed, 31 insertions(+)
>>
>> diff --git a/tests/util/piglit-util.c b/tests/util/piglit-util.c
>> index 9bd0cd2..f631bde 100644
>> --- a/tests/util/piglit-util.c
>> +++ b/tests/util/piglit-util.c
>> @@ -118,6 +118,35 @@ int asprintf(char **strp, const char *fmt, ...)
>>
>> #endif /* HAVE_ASPRINTF */
>>
>> +#ifdef _MSC_VER
>> +
>> +char *
>> +basename(char *path)
>> +{
>> + char *res;
>> +
>> + // Skip drive letter
>> + if (path[0] != '\0' && path[1] == ':') {
>> + path += 2;
>> + }
>> +
>> + // Return pointer to the char after the last directory separator
>> + res = path;
>> + while (true) {
>> + char c = *path++;
>> + switch (c) {
>> + case '\0':
>> + return res;
>> + case '\\':
>> + case '//':
>
> Shouldn't that be a single '/'?
Indeed. Good catch!
And thanks for all the reviews.
Jose
>
>
>> + res = ++path;
>> + break;
>> + }
>> + }
>> +}
>> +
>> +#endif /* _MSC_VER */
>> +
>> /**
>> * \brief Split \a string into an array of strings.
>> *
>> diff --git a/tests/util/piglit-util.h b/tests/util/piglit-util.h
>> index 98b1340..985ebbd 100644
>> --- a/tests/util/piglit-util.h
>> +++ b/tests/util/piglit-util.h
>> @@ -82,6 +82,8 @@ extern "C" {
>>
>> #define usleep(__usec) Sleep(((__usec) + 999)/1000)
>>
>> +char *basename(char *path);
>> +
>> #endif /* defined(_MSC_VER) */
>>
>> #if (__GNUC__ >= 3)
>>
>
> Looks OK otherwise.
>
> Reviewed-by: Brian Paul <brianp at vmware.com>
>
More information about the Piglit
mailing list