+/** Find a file.
+
+Check absolute file name, search in the current dir (DUH! FIXME!),
+in the construction-arg (what's that?), and in any other appended
+directory, in this order.
+
+@return
+The file name if found, or empty string if not found. */
+
+string
+File_path::find (const string &name) const
+{
+ if (!name.length () || (name == "-"))
+ return name;
+
+#ifdef __MINGW32__
+ if (name.find ('\\') != NPOS)
+ programming_error ("file name not normalized: " + name);
+#endif /* __MINGW32__ */
+
+ /* Handle absolute file name. */
+ File_name file_name (name);
+ if (file_name.dir_[0] == DIRSEP && is_file (file_name.to_string ()))
+ return file_name.to_string ();
+
+ for (vsize i = 0; i < dirs_.size (); i++)