* \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
#define LYX_FILETOOL_H
-#ifdef __GNUG__
-#pragma interface
-#endif
-
#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);
///
string const CreateBufferTmpDir(string const & pathfor = string());
-/// Creates directory. Returns true on succes.
+/// Creates directory. Returns true on success
bool createDirectory(string const & name, int permissions);
///
string const CreateLyXTmpDir(string const & deflt);
-///
-int DestroyBufferTmpDir(string const & tmpdir);
-
-///
-int DestroyLyXTmpDir(string const & tmpdir);
-
/** Find file by searching several directories.
Uses a string of paths separated by ";"s to find a file to open.
Can't cope with pathnames with a ';' in them. Returns full path to file.
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);
///
/// A helper function.
string const GetEnvPath(string const & name);
-///
-bool PutEnv(string const & envstr);
-
-///
-bool PutEnvPath(string const & envstr);
-
/// Substitutes active latex characters with underscores in filename
string const MakeLatexName(string const & file);
/// 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
/// 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