X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Ffiletools.cpp;h=040272aade620e406bed47dcca8947126c0c763d;hb=dae8555234f0e5c8358b91c307d91b219c664617;hp=d167d6a94cb1a52ddd7b5401c6a2c17a513ee3f8;hpb=f439609304371eb3dd7ac238f39c470743261597;p=lyx.git diff --git a/src/support/filetools.cpp b/src/support/filetools.cpp index d167d6a94c..040272aade 100644 --- a/src/support/filetools.cpp +++ b/src/support/filetools.cpp @@ -46,6 +46,9 @@ #ifdef HAVE_MAGIC_H #include #endif +#ifdef HAVE_UNISTD_H +#include +#endif #include #include @@ -236,6 +239,8 @@ string const quoteName(string const & name, quote_style style) // simple parser in Systemcall.cpp do the substitution. return '"' + subst(name, "\"", "\\\"") + '"'; #endif + case quote_shell_filename: + return quoteName(os::external_path(name), quote_shell); case quote_python: return "\"" + subst(subst(name, "\\", "\\\\"), "\"", "\\\"") + "\""; @@ -300,8 +305,14 @@ FileName const fileSearch(string const & path, string const & name, return mode == may_not_exist ? fullname : FileName(); // Only add the extension if it is not already the extension of // fullname. - if (getExtension(fullname.absFileName()) != ext) + if (getExtension(fullname.absFileName()) != ext) { + if (mode == check_hidpi) { + FileName fullname2x = FileName(addExtension(fullname.absFileName() + "@2x", ext)); + if (fullname2x.isReadableFile()) + return fullname2x; + } fullname = FileName(addExtension(fullname.absFileName(), ext)); + } if (fullname.isReadableFile() || mode == may_not_exist) return fullname; return FileName(); @@ -313,20 +324,21 @@ FileName const fileSearch(string const & path, string const & name, // 2) build_lyxdir (if not empty) // 3) system_lyxdir FileName const libFileSearch(string const & dir, string const & name, - string const & ext) + string const & ext, search_mode mode) { FileName fullname = fileSearch(addPath(package().user_support().absFileName(), dir), - name, ext); + name, ext, mode); if (!fullname.empty()) return fullname; if (!package().build_support().empty()) fullname = fileSearch(addPath(package().build_support().absFileName(), dir), - name, ext); + name, ext, mode); if (!fullname.empty()) return fullname; - return fileSearch(addPath(package().system_support().absFileName(), dir), name, ext); + return fileSearch(addPath(package().system_support().absFileName(), dir), + name, ext, mode); } @@ -381,17 +393,17 @@ FileName const i18nLibFileSearch(string const & dir, string const & name, FileName const imageLibFileSearch(string & dir, string const & name, - string const & ext) + string const & ext, search_mode mode) { if (!lyx::lyxrc.icon_set.empty()) { string const imagedir = addPath(dir, lyx::lyxrc.icon_set); - FileName const fn = libFileSearch(imagedir, name, ext); + FileName const fn = libFileSearch(imagedir, name, ext, mode); if (fn.exists()) { dir = imagedir; return fn; } } - return libFileSearch(dir, name, ext); + return libFileSearch(dir, name, ext, mode); } @@ -694,8 +706,15 @@ string latexEnvCmdPrefix(string const & path) return "env TEXINPUTS=\"." + sep + texinputs_prefix + sep + texinputs + "\" "; else - return "cmd /d /c set TEXINPUTS=." + sep + texinputs_prefix - + sep + texinputs + "&"; +#ifndef USE_QPROCESS + return "cmd /d /c set \"TEXINPUTS=." + + sep + texinputs_prefix + + sep + texinputs + "\"&"; +#else + return "cmd /d /c set \"\"\"TEXINPUTS=." + + sep + texinputs_prefix + + sep + texinputs + "\"\"\"&"; +#endif }