/*
- path.hh -- declare File_path
+ file-path.hh -- declare File_name and File_path
source file of the Flower Library
- (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
-#ifndef PATH_HH
-#define PATH_HH
-#include "string.hh"
-#include "varray.hh"
+#ifndef FILE_PATH_HH
+#define FILE_PATH_HH
+#include "array.hh"
+#include "string.hh"
/**
search in directories for a file.
Search a number of dirs for a file.
TODO: add a unix style PATH interface
- Should use kpathsea?
-
*/
class File_path : private Array<String>
{
public:
- /// locate a file in the search path
- String find (String nm) const;
-
- /// add to end of path.
- Array<String>::push;
- void add (String str);
+ String find (String name) const;
+ String find (String name, char const *extensions[]);
+ String to_string () const;
+ bool try_append (String str);
+ void append (String str) { Array<String>::push (str); }
void parse_path (String);
+ void prepend (String str) { Array<String>::insert (str, 0); }
};
-/** split a path into its components.
-
- @params path
-
- @return
- String &drive, String &dirs, String &filebase, String &extension
- */
-void split_path (String path, String &drive, String &dirs, String &filebase, String &extension);
-
-#endif
+#endif /* FILE_PATH */