]> git.lyx.org Git - lyx.git/blobdiff - src/support/filetools.h
Add acmart template
[lyx.git] / src / support / filetools.h
index fbc14f86a8d376c3d3539efbfb817fcf778274ea..5177cdddee81ade1ced639a892c1225d36c5a6cb 100644 (file)
@@ -50,7 +50,12 @@ enum search_mode {
        must_exist,
        /// Only do file name expansion, return the complete name even if
        /// the file does not exist
-       may_not_exist
+       may_not_exist,
+       /// The (image) file may be present with hi-dpi resolution -
+       /// the lookup checks for a file named "image" + "@2x" + ".ext" first.
+       /// If found it will return e.g. "image@2x.png" instead of "image.png".
+       /// Otherwise it will work as must_exist.
+       check_hidpi
 };
 
 /** Returns the real name of file name in directory path, with optional
@@ -78,6 +83,9 @@ bool isValidLaTeXFileName(std::string const & filename);
 */
 bool isValidDVIFileName(std::string const & filename);
 
+/// check whether the file has binary contents
+bool isBinaryFile(FileName const & filename);
+
 /** Returns the path of a library data file.
     Search the file name.ext in the subdirectory dir of
       -# user_lyxdir
@@ -87,7 +95,8 @@ bool isValidDVIFileName(std::string const & filename);
 */
 FileName const libFileSearch(std::string const & dir,
                                std::string const & name,
-                               std::string const & ext = std::string());
+                               std::string const & ext = std::string(),
+                               search_mode mode = must_exist);
 
 /** Same as libFileSearch(), but tries first to find an
   internationalized version of the file by prepending $LANG_ to the
@@ -103,13 +112,17 @@ i18nLibFileSearch(std::string const & dir,
   */
 FileName const
 imageLibFileSearch(std::string & dir, std::string const & name,
-                  std::string const & ext = std::string());
+                  std::string const & ext = std::string(),
+                  search_mode mode = must_exist);
 
 /// How to quote a filename
 enum quote_style {
        /** Quote for the (OS dependant) shell. This is needed for command
            line arguments of subprocesses. */
        quote_shell,
+       /** Quote a file name for the (OS dependant) shell. This is needed
+           for file names as command line arguments of subprocesses. */
+       quote_shell_filename,
        /** Quote for python. Use this if you want to store a filename in a
            python script. Example: \code
            os << "infile = " << quoteName(filename) << '\\n';
@@ -207,9 +220,6 @@ std::string const unzippedFileName(std::string const & zipped_file);
 FileName const unzipFile(FileName const & zipped_file,
                         std::string const & unzipped_file = std::string());
 
-/// Create absolute path. If impossible, don't do anything
-std::string const expandPath(std::string const & path);
-
 /** Convert relative path into absolute path based on a basepath.
   If relpath is absolute, just use that.
   If basepath doesn't exist use CWD.
@@ -248,9 +258,9 @@ std::string const replaceEnvironmentPath(std::string const & path);
 
 /**
    Return a string to be used as a prefix to a command for setting the
-   environment of the TeX engine with respect to the path \p path.
+   environment of the TeX engine with respect to the paths \p path and \p lpath.
  */
-std::string latexEnvCmdPrefix(std::string const & path);
+std::string latexEnvCmdPrefix(std::string const &path, std::string const & lpath);
 
 /** Replace all references to a current directory (a lonely '.' or
     the prefix "./") in \c pathlist with \c path. Also prefixes
@@ -287,6 +297,9 @@ int compare_timestamps(FileName const & file1, FileName const & file2);
 bool prefs2prefs(FileName const & filename, FileName const & tempfile,
                  bool lfuns);
 
+/// Does file \p file need to be updated by configure.py?
+bool configFileNeedsUpdate(std::string const & file);
+
 typedef std::pair<int, std::string> cmd_ret;
 
 cmd_ret const runCommand(std::string const & cmd);