32 : directories (other.directories)
38 directories = other.directories;
48void FileSearchPath::init (
const String& path)
55 for (
auto& d : directories)
61 return directories.
size();
71 return directories[index];
81 auto dirs = directories;
97 for (
auto& d : directories)
107 directories.
remove (index);
112 for (
int i = 0; i < other.getNumPaths(); ++i)
120 for (
const auto& directory : directories)
146 for (
int i = directories.
size(); --i >= 0;)
163 for (
auto& d : directories)
172 for (
auto& d : directories)
198 void runTest()
override
200 beginTest (
"removeRedundantPaths");
203 const String prefix =
"C:";
205 const String prefix =
"";
209 FileSearchPath fsp { prefix +
"/a/b/c/d;" + prefix +
"/a/b/c/e;" + prefix +
"/a/b/c" };
210 fsp.removeRedundantPaths();
211 expectEquals (fsp.toString(), prefix +
"/a/b/c");
215 FileSearchPath fsp { prefix +
"/a/b/c;" + prefix +
"/a/b/c/d;" + prefix +
"/a/b/c/e" };
216 fsp.removeRedundantPaths();
217 expectEquals (fsp.toString(), prefix +
"/a/b/c");
221 FileSearchPath fsp { prefix +
"/a/b/c/d;" + prefix +
"/a/b/c;" + prefix +
"/a/b/c/e" };
222 fsp.removeRedundantPaths();
223 expectEquals (fsp.toString(), prefix +
"/a/b/c");
227 FileSearchPath fsp {
"%FOO%;" + prefix +
"/a/b/c;%FOO%;" + prefix +
"/a/b/c/d" };
228 fsp.removeRedundantPaths();
229 expectEquals (fsp.toString(),
"%FOO%;" + prefix +
"/a/b/c");
235static FileSearchPathTests fileSearchPathTests;
bool isFileInPath(const File &fileToCheck, bool checkRecursively) const
void add(const File &directoryToAdd, int insertIndex=-1)
void remove(int indexToRemove)
void removeNonExistentPaths()
FileSearchPath & operator=(const FileSearchPath &)
void addPath(const FileSearchPath &)
File operator[](int index) const
void removeRedundantPaths()
bool addIfNotAlreadyThere(const File &directoryToAdd)
String toStringWithSeparator(StringRef separator) const
Array< File > findChildFiles(int whatToLookFor, bool searchRecursively, const String &wildCardPattern="*") const
String getRawString(int index) const
Array< File > findChildFiles(int whatToLookFor, bool searchRecursively, const String &wildCardPattern="*", FollowSymlinks followSymlinks=FollowSymlinks::yes) const
static bool isAbsolutePath(StringRef path)
bool isAChildOf(const File &potentialParentDirectory) const
void removeEmptyStrings(bool removeWhitespaceStrings=true)
void insert(int index, String stringToAdd)
int size() const noexcept
int addTokens(StringRef stringToTokenise, bool preserveQuotedStrings)