]> git.lyx.org Git - lyx.git/blobdiff - src/support/filetools.h
Introducing FileName::dirList() to replace the one in filetools.cpp
[lyx.git] / src / support / filetools.h
index 86abc47b4ad48046c59d327c27077acb77bf22c1..7fb33baea0518a750f8502454be157f3eeea53e2 100644 (file)
@@ -13,7 +13,7 @@
 #define LYX_FILETOOL_H
 
 #include "support/docstring.h"
-#include "support/filename.h"
+#include "support/FileName.h"
 
 #include <vector>
 #include <utility>
 namespace lyx {
 namespace support {
 
-/// remove directory and all contents, returns true on success
-bool destroyDir(FileName const & tmpdir);
-
 /// Creates the per buffer temporary directory
 std::string const createBufferTmpDir();
 
-/// Creates directory. Returns true on success
-bool createDirectory(std::string const & name, int permissions);
-
 /** Creates the global LyX temp dir.
   \p deflt can be an existing directory name. In this case a new directory
   inside \p deflt is created. If \p deflt does not exist yet, \p deflt is
@@ -72,28 +66,15 @@ FileName const fileSearch(std::string const & path,
                             std::string const & ext = std::string(),
                             search_mode mode = standard_mode);
 
-/// Returns a vector of all files in directory dir having extension ext.
-std::vector<FileName> const dirList(FileName const & dir,
-                                      std::string const & ext = std::string());
-
-/** Is directory read only?
-  returns
-    true: dir writeable
-    false: not writeable
-*/
-bool isDirWriteable(std::string const & path);
-
-/** Is a file readable ?
-  Returns true if the file `path' is readable.
- */
-bool isFileReadable(FileName const & path);
-
 ///
 bool isLyXFilename(std::string const & filename);
 
 ///
 bool isSGMLFilename(std::string const & filename);
 
+///
+bool isValidLaTeXFilename(std::string const & filename);
+
 /** Returns the path of a library data file.
     Search the file name.ext in the subdirectory dir of
       -# user_lyxdir
@@ -204,15 +185,6 @@ addExtension(std::string const & name, std::string const & extension);
 /// Return the extension of the file (not including the .)
 std::string const getExtension(std::string const & name);
 
-/** Guess the file format name (as in Format::name()) from contents.
- Normally you don't want to use this directly, but rather
- Formats::getFormatFromFile().
- */
-std::string const getFormatFromContents(FileName const & name);
-
-/// check for zipped file
-bool zippedFile(FileName const & name);
-
 /** \return the name that LyX will give to the unzipped file \p zipped_file
   if the second argument of unzipFile() is empty.
  */
@@ -224,7 +196,7 @@ std::string const unzippedFileName(std::string const & zipped_file);
   Will overwrite an already existing unzipped file without warning.
  */
 FileName const unzipFile(FileName const & zipped_file,
-                         std::string const & unzipped_file = std::string());
+                        std::string const & unzipped_file = std::string());
 
 /// Returns true is path is absolute
 bool absolutePath(std::string const & path);
@@ -236,7 +208,7 @@ std::string const expandPath(std::string const & path);
   If relpath is absolute, just use that.
   If basepath doesn't exist use CWD.
   */
-std::string const makeAbsPath(std::string const & RelPath = std::string(),
+FileName const makeAbsPath(std::string const & RelPath = std::string(),
                              std::string const & BasePath = std::string());
 
 /** Creates a nice compact path for displaying. The parameter
@@ -252,8 +224,8 @@ makeDisplayPath(std::string const & path, unsigned int threshold = 1000);
   different, then the absolute path will be used as relative path
   WARNING: the absolute path and base path must really be absolute paths!!!
   */
-std::string const
-makeRelPath(std::string const & abspath, std::string const & basepath);
+docstring const
+makeRelPath(docstring const & abspath, docstring const & basepath);
 
 /// Strip filename from path name
 std::string const onlyPath(std::string const & fname);
@@ -266,9 +238,6 @@ std::string const normalizePath(std::string const & path);
 /// Strips path from filename
 std::string const onlyFilename(std::string const & fname);
 
-/// Get the contents of a file as a huge std::string
-std::string const getFileContents(FileName const & fname);
-
 /** Check and Replace Environmentvariables ${NAME} in Path.
     Replaces all occurences of these, if they are found in the
     environment.
@@ -276,14 +245,19 @@ std::string const getFileContents(FileName const & fname);
 */
 std::string const replaceEnvironmentPath(std::string const & path);
 
-/* 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 readLink(std::string const & file,
-             std::string & link,
-             bool resolve = false);
+/** Set \c link to the path \c file points to as a symbolic link.
+    \return true if successful.
+ */
+bool readLink(FileName const & file, FileName & link);
 
-/// Uses kpsewhich to find tex files
+/**
+ * Search a TeX file in all locations the latex compiler would search it,
+ * with the help of kpsewhich.
+ * The current working directory must be set correctly, so that relative
+ * names work.
+ * \param fil The filename to search
+ * \param format The file format as used by kpsewhich, e.g. "bib", "bst" etc.
+ */
 FileName const findtexfile(std::string const & fil,
                              std::string const & format);
 
@@ -309,4 +283,14 @@ cmd_ret const runCommand(std::string const & cmd);
 } // namespace support
 } // namespace lyx
 
+/// The following functions are implemented in minizip/zipunzip.cpp, and are not in
+/// the lyx::support namespace
+
+/// zip several files to a zipfile. In-zip filenames are also specified
+bool zipFiles(std::string const & zipfile, std::vector<std::pair<std::string, std::string> > const & files);
+
+/// Unzip a zip file to a directory
+bool unzipToDir(std::string const & zipfile, std::string const & path);
+
+
 #endif