/*****************************************************************************/
-/* Data */
+/* Data */
/*****************************************************************************/
#define STRINGIZE(arg) _STRINGIZE(arg)
/* A search path is a pointer to the list */
-typedef struct Collection SearchPath;
+typedef struct Collection SearchPaths;
/*****************************************************************************/
-/* Code */
+/* Code */
/*****************************************************************************/
-SearchPath* NewSearchPath (void);
+SearchPaths* NewSearchPath (void);
/* Create a new, empty search path list */
-void AddSearchPath (SearchPath* P, const char* NewPath);
+void AddSearchPath (SearchPaths* P, const char* NewPath);
/* Add a new search path to the end of an existing list */
-void AddSearchPathFromEnv (SearchPath* P, const char* EnvVar);
+void AddSearchPathFromEnv (SearchPaths* P, const char* EnvVar);
/* Add a search path from an environment variable to the end of an existing
- * list.
- */
+** list.
+*/
-void AddSubSearchPathFromEnv (SearchPath* P, const char* EnvVar, const char* SubDir);
+void AddSubSearchPathFromEnv (SearchPaths* P, const char* EnvVar, const char* SubDir);
/* Add a search path from an environment variable, adding a subdirectory to
- * the environment variable value.
- */
+** the environment variable value.
+*/
-void AddSubSearchPathFromWinBin (SearchPath* P, const char* SubDir);
+void AddSubSearchPathFromWinBin (SearchPaths* P, const char* SubDir);
/* Windows only:
- * Add a search path from the running binary, adding a subdirectory to
- * the parent directory of the directory containing the binary.
- */
+** Add a search path from the running binary, adding a subdirectory to
+** the parent directory of the directory containing the binary.
+*/
-int PushSearchPath (SearchPath* P, const char* NewPath);
+int PushSearchPath (SearchPaths* P, const char* NewPath);
/* Add a new search path to the head of an existing search path list, provided
- * that it's not already there. If the path is already at the first position,
- * return zero, otherwise return a non zero value.
- */
+** that it's not already there. If the path is already at the first position,
+** return zero, otherwise return a non zero value.
+*/
-void PopSearchPath (SearchPath* P);
+void PopSearchPath (SearchPaths* P);
/* Remove a search path from the head of an existing search path list */
-char* SearchFile (const SearchPath* P, const char* File);
+char* GetSearchPath (SearchPaths* P, unsigned Index);
+/* Return the search path at the given index, if the index is valid, return an
+** empty string otherwise.
+*/
+
+char* SearchFile (const SearchPaths* P, const char* File);
/* Search for a file in a list of directories. Return a pointer to a malloced
- * area that contains the complete path, if found, return 0 otherwise.
- */
+** area that contains the complete path, if found, return 0 otherwise.
+*/
/* End of searchpath.h */
-#endif
-
-
+#endif