]> git.lyx.org Git - lyx.git/blobdiff - src/support/filetools.h
Move #includes out of header files.
[lyx.git] / src / support / filetools.h
index 5b89d84eb9f0e1a5eb1d3c4a21c32d6bc47fbcbe..ff2a3de2e0ebf58b67e986704664ef62aee9045f 100644 (file)
@@ -1,35 +1,37 @@
-// -*- C++-*-
-/* lyx-filetool.h : tools functions for file/path handling
-   this file is part of LyX, the High Level Word Processor
-   Copyright 1995-2001, Matthias Ettrich and the LyX Team
-*/
+// -*- 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
 #define LYX_FILETOOL_H
 
-#ifdef __GNUG__
-#pragma interface
-#endif
-
 #include <vector>
+#include <utility>
 #include "LString.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.
@@ -98,10 +100,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);
 
 ///
@@ -110,12 +114,6 @@ string const GetEnv(string const & envname);
 /// 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);
 
@@ -144,6 +142,9 @@ string const getExtFromContents(string const & name);
 /// check for zipped file
 bool zippedFile(string const & name);
 
+/// \return the name that LyX will give to the unzipped file.
+string const unzippedFileName(string const & zipped_file);
+
 /// unzip a file
 string const unzipFile(string const & zipped_file);
 
@@ -179,7 +180,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
@@ -195,9 +198,10 @@ string const GetFileContents(string const & fname);
 */
 string const ReplaceEnvironmentPath(string const & path);
 
-/* Set Link to the path file points to as a symbolic link.
+/* Set \c link to the path \c file points to as a symbolic link.
+   If \c resolve is true, then \c link is an absolute path
    Returns true if successful */
-bool LyXReadLink(string const & file, string & Link);
+bool LyXReadLink(string const & file, string & link, bool resolve = false);
 
 /// Uses kpsewhich to find tex files
 string const findtexfile(string const & fil, string const & format);
@@ -208,5 +212,20 @@ void removeAutosaveFile(string const & filename);
 /// read the BoundingBox entry from a ps/eps/pdf-file
 string const readBB_from_PSFile(string const & file);
 
+/** \param file1, file2 the two files to be compared. Must have absolute paths.
+ *  \returns 1 if \c file1 has a more recent timestamp than \c file2,
+ *           0 if their timestamps are the same,
+ *          -1 if \c file2 has a more recent timestamp than \c file1.
+ *  If one of the files does not exist, the return value indicates the file
+ *  which does exist. Eg, if \c file1 exists but \c file2 does not, return 1.
+ */
+int compare_timestamps(string const & file1, string const & file2);
+
+typedef std::pair<int, string> cmd_ret;
+
+cmd_ret const RunCommand(string const & cmd);
+
+} // namespace support
+} // namespace lyx
 
 #endif