]> git.lyx.org Git - lyx.git/blobdiff - src/support/filetools.h
If I ever see another licence blurb again, it'll be too soon...
[lyx.git] / src / support / filetools.h
index 21e09e47d6e2d3314be943189a3557e56a20c005..8203d3aaa7b549cfade443c4de2e680bf6abb262 100644 (file)
@@ -1,8 +1,12 @@
-// -*- C++-*-
+// -*- C++ -*-
 /**
  * \file filetools.h
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjønnes
+ *
+ * Full author contact details are available in file CREDITS.
  */
 
 #ifndef LYX_FILETOOL_H
 #include <vector>
 #include <utility>
 #include "LString.h"
+#include "os.h"
 
 
+namespace lyx {
+namespace support {
+
 /// remove directory and all contents, returns 0 on success
 int destroyDir(string const & tmpdir);
 
@@ -93,10 +101,12 @@ string const
 i18nLibFileSearch(string const & dir, string const & name,
                  string const & ext = string());
 
-/** Takes a command with arguments as input and tries to see whether
-  the command itself can be found in one of the scripts/ directories.
-  If it is found, return the command with fully qualified script name,
-  either return it unchanged */
+/** Takes a command such as "sh $$s/convertDefault.sh file.in file.out"
+ *  and replaces "$$s/" with the path to the "most important" of LyX's
+ *  script directories containing this script. If the script is not found,
+ *  "$$s/" is removed. Executing the command will still fail, but the
+ *  error message will make some sort of sense ;-)
+ */
 string const LibScriptSearch(string const & command);
 
 ///
@@ -168,7 +178,9 @@ MakeRelPath(string const & abspath, string const & basepath);
 /// Strip filename from path name
 string const OnlyPath(string const & fname);
 
-/// Normalize a path. Constracts path/../path
+/** Normalize a path. Constracts path/../path
+ *  Also converts paths like /foo//bar ==> /foo/bar
+ */
 string const NormalizePath(string const & path);
 
 /// Strips path from filename
@@ -198,8 +210,20 @@ void removeAutosaveFile(string const & filename);
 /// read the BoundingBox entry from a ps/eps/pdf-file
 string const readBB_from_PSFile(string const & file);
 
+/** Copy \c file to directory \c path. The file name is manipulated
+    so that eg some/path/to/file becomes some_path_to_file.
+    \param path where to put the file
+    \param file the file that is copied
+    \returns this file name if the file is copied successfully, else
+    \returns an empty string.
+ */
+string const copyFileToDir(string const & path, string const & file);
+
 typedef std::pair<int, string> cmd_ret;
 
 cmd_ret const RunCommand(string const & cmd);
 
+} // namespace support
+} // namespace lyx
+
 #endif