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 <[email protected]>


_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to