Index: experimental/skpdiff/skpdiff_util.cpp |
diff --git a/experimental/skpdiff/skpdiff_util.cpp b/experimental/skpdiff/skpdiff_util.cpp |
index 285e04c063c24783763e5e6585bd799fbc7af08f..3a36a12dbf510bb12238dc11af0bad2f401c9234 100644 |
--- a/experimental/skpdiff/skpdiff_util.cpp |
+++ b/experimental/skpdiff/skpdiff_util.cpp |
@@ -7,6 +7,7 @@ |
#include <time.h> |
#include <dirent.h> |
+#include <glob.h> |
#include "SkOSFile.h" |
#include "skpdiff_util.h" |
@@ -90,5 +91,27 @@ bool get_directory(const char path[], SkTArray<SkString>* entries) { |
} |
} |
+ closedir(dir); |
+ |
+ return true; |
+} |
+ |
+bool glob_files(const char globPattern[], SkTArray<SkString>* entries) { |
+ // TODO Make sure this works on windows. This may require use of FindNextFile windows function. |
+ glob_t globBuffer; |
+ if (glob(globPattern, 0, NULL, &globBuffer) != 0) { |
+ return false; |
+ } |
+ |
+ // Note these paths are in sorted order by default according to http://linux.die.net/man/3/glob |
+ // Check under the flag GLOB_NOSORT |
+ char** paths = globBuffer.gl_pathv; |
+ while(NULL != *paths) { |
+ entries->push_back(SkString(*paths)); |
+ paths++; |
+ } |
+ |
+ globfree(&globBuffer); |
+ |
return true; |
} |