mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 01:59:02 +00:00
Other than BIBINPUTS, also BSTINPUTS and TEXFONTS are exported. They do not replicate the setting for TEXINPUTS but are set such that the current dir (i.e., the temp dir) and the document dir are also searched for bibtex and fonts related files.
This commit is contained in:
parent
4db3bd4e0a
commit
76dfde36d4
@ -710,8 +710,12 @@ string latexEnvCmdPrefix(string const & path, string const & lpath)
|
||||
string texinputs_prefix = lyxrc.texinputs_prefix.empty() ? string()
|
||||
: os::latex_path_list(
|
||||
replaceCurdirPath(path, lyxrc.texinputs_prefix));
|
||||
string const allother_prefix = os::latex_path_list(path);
|
||||
string const sep = string(1, os::path_separator(os::TEXENGINE));
|
||||
string const texinputs = getEnv("TEXINPUTS");
|
||||
string const bibinputs = getEnv("BIBINPUTS");
|
||||
string const bstinputs = getEnv("BSTINPUTS");
|
||||
string const texfonts = getEnv("TEXFONTS");
|
||||
|
||||
if (use_lpath) {
|
||||
string const abslpath = FileName::isAbsolute(lpath)
|
||||
@ -727,13 +731,28 @@ string latexEnvCmdPrefix(string const & path, string const & lpath)
|
||||
|
||||
if (os::shell() == os::UNIX)
|
||||
return "env TEXINPUTS=\"." + sep + texinputs_prefix
|
||||
+ sep + texinputs + "\" ";
|
||||
+ sep + texinputs + "\" "
|
||||
+ "BIBINPUTS=\"." + sep + allother_prefix
|
||||
+ sep + bibinputs + "\" "
|
||||
+ "BSTINPUTS=\"." + sep + allother_prefix
|
||||
+ sep + bstinputs + "\" "
|
||||
+ "TEXFONTS=\"." + sep + allother_prefix
|
||||
+ sep + texfonts + "\" ";
|
||||
else
|
||||
// NOTE: the dummy blank dir is necessary to force the
|
||||
// NOTE: the dummy blank dirs are necessary to force the
|
||||
// QProcess parser to quote the argument (see bug 9453)
|
||||
return "cmd /d /c set \"TEXINPUTS=." + sep + " "
|
||||
+ sep + texinputs_prefix
|
||||
+ sep + texinputs + "\" & ";
|
||||
+ sep + texinputs_prefix
|
||||
+ sep + texinputs + "\" & "
|
||||
+ "set \"BIBINPUTS=." + sep + " "
|
||||
+ sep + allother_prefix
|
||||
+ sep + bibinputs + "\" & "
|
||||
+ "set \"BSTINPUTS=." + sep + " "
|
||||
+ sep + allother_prefix
|
||||
+ sep + bstinputs + "\" & "
|
||||
+ "set \"TEXFONTS=." + sep + " "
|
||||
+ sep + allother_prefix
|
||||
+ sep + texfonts + "\" & ";
|
||||
}
|
||||
|
||||
|
||||
|
@ -438,11 +438,21 @@ bool autoOpenFile(string const & filename, auto_open_mode const mode,
|
||||
{
|
||||
string const texinputs = os::latex_path_list(
|
||||
replaceCurdirPath(path, lyxrc.texinputs_prefix));
|
||||
string const otherinputs = os::latex_path_list(path);
|
||||
string const sep = windows_style_tex_paths_ ? ";" : ":";
|
||||
string const oldval = getEnv("TEXINPUTS");
|
||||
string const newval = "." + sep + texinputs + sep + oldval;
|
||||
string const oldtexinputs = getEnv("TEXINPUTS");
|
||||
string const newtexinputs = "." + sep + texinputs + sep + oldtexinputs;
|
||||
string const oldbibinputs = getEnv("BIBINPUTS");
|
||||
string const newbibinputs = "." + sep + otherinputs + sep + oldbibinputs;
|
||||
string const oldbstinputs = getEnv("BSTINPUTS");
|
||||
string const newbstinputs = "." + sep + otherinputs + sep + oldbstinputs;
|
||||
string const oldtexfonts = getEnv("TEXFONTS");
|
||||
string const newtexfonts = "." + sep + otherinputs + sep + oldtexfonts;
|
||||
if (!path.empty() && !lyxrc.texinputs_prefix.empty()) {
|
||||
setEnv("TEXINPUTS", newval);
|
||||
setEnv("TEXINPUTS", newtexinputs);
|
||||
setEnv("BIBINPUTS", newbibinputs);
|
||||
setEnv("BSTINPUTS", newbstinputs);
|
||||
setEnv("TEXFONTS", newtexfonts);
|
||||
cygwin_internal(CW_SYNC_WINENV);
|
||||
}
|
||||
|
||||
@ -453,7 +463,10 @@ bool autoOpenFile(string const & filename, auto_open_mode const mode,
|
||||
win_path.c_str(), NULL, NULL, 1)) > 32;
|
||||
|
||||
if (!path.empty() && !lyxrc.texinputs_prefix.empty()) {
|
||||
setEnv("TEXINPUTS", oldval);
|
||||
setEnv("TEXINPUTS", oldtexinputs);
|
||||
setEnv("BIBINPUTS", oldbibinputs);
|
||||
setEnv("BSTINPUTS", oldbstinputs);
|
||||
setEnv("TEXFONTS", oldtexfonts);
|
||||
cygwin_internal(CW_SYNC_WINENV);
|
||||
}
|
||||
return success;
|
||||
|
@ -298,14 +298,29 @@ bool autoOpenFile(string const & filename, auto_open_mode const mode,
|
||||
|
||||
string const texinputs = os::latex_path_list(
|
||||
replaceCurdirPath(path, lyxrc.texinputs_prefix));
|
||||
string const oldval = getEnv("TEXINPUTS");
|
||||
string const newval = ".:" + texinputs + ":" + oldval;
|
||||
if (!path.empty() && !lyxrc.texinputs_prefix.empty())
|
||||
setEnv("TEXINPUTS", newval);
|
||||
string const otherinputs = os::latex_path_list(path);
|
||||
string const oldtexinputs = getEnv("TEXINPUTS");
|
||||
string const newtexinputs = ".:" + texinputs + ":" + oldtexinputs;
|
||||
string const oldbibinputs = getEnv("BIBINPUTS");
|
||||
string const newbibinputs = ".:" + otherinputs + ":" + oldbibinputs;
|
||||
string const oldbstinputs = getEnv("BSTINPUTS");
|
||||
string const newbstinputs = ".:" + otherinputs + ":" + oldbstinputs;
|
||||
string const oldtexfonts = getEnv("TEXFONTS");
|
||||
string const newtexfonts = ".:" + otherinputs + ":" + oldtexfonts;
|
||||
if (!path.empty() && !lyxrc.texinputs_prefix.empty()) {
|
||||
setEnv("TEXINPUTS", newtexinputs);
|
||||
setEnv("BIBINPUTS", newbibinputs);
|
||||
setEnv("BSTINPUTS", newbstinputs);
|
||||
setEnv("TEXFONTS", newtexfonts);
|
||||
}
|
||||
status = LSOpenFromURLSpec (&launchUrlSpec, NULL);
|
||||
CFRelease(launchItems);
|
||||
if (!path.empty() && !lyxrc.texinputs_prefix.empty())
|
||||
setEnv("TEXINPUTS", oldval);
|
||||
if (!path.empty() && !lyxrc.texinputs_prefix.empty()) {
|
||||
setEnv("TEXINPUTS", oldtexinputs);
|
||||
setEnv("BIBINPUTS", oldbibinputs);
|
||||
setEnv("BSTINPUTS", oldbstinputs);
|
||||
setEnv("TEXFONTS", oldtexfonts);
|
||||
}
|
||||
return status == 0;
|
||||
#else
|
||||
// silence compiler warnings
|
||||
|
@ -544,19 +544,34 @@ bool autoOpenFile(string const & filename, auto_open_mode const mode,
|
||||
{
|
||||
string const texinputs = os::latex_path_list(
|
||||
replaceCurdirPath(path, lyxrc.texinputs_prefix));
|
||||
string const otherinputs = os::latex_path_list(path);
|
||||
string const sep = windows_style_tex_paths_ ? ";" : ":";
|
||||
string const oldval = getEnv("TEXINPUTS");
|
||||
string const newval = "." + sep + texinputs + sep + oldval;
|
||||
if (!path.empty() && !lyxrc.texinputs_prefix.empty())
|
||||
setEnv("TEXINPUTS", newval);
|
||||
string const oldtexinputs = getEnv("TEXINPUTS");
|
||||
string const newtexinputs = "." + sep + texinputs + sep + oldtexinputs;
|
||||
string const oldbibinputs = getEnv("BIBINPUTS");
|
||||
string const newbibinputs = "." + sep + otherinputs + sep + oldbibinputs;
|
||||
string const oldbstinputs = getEnv("BSTINPUTS");
|
||||
string const newbstinputs = "." + sep + otherinputs + sep + oldbstinputs;
|
||||
string const oldtexfonts = getEnv("TEXFONTS");
|
||||
string const newtexfonts = "." + sep + otherinputs + sep + oldtexfonts;
|
||||
if (!path.empty() && !lyxrc.texinputs_prefix.empty()) {
|
||||
setEnv("TEXINPUTS", newtexinputs);
|
||||
setEnv("BIBINPUTS", newbibinputs);
|
||||
setEnv("BSTINPUTS", newbstinputs);
|
||||
setEnv("TEXFONTS", newtexfonts);
|
||||
}
|
||||
|
||||
// reference: http://msdn.microsoft.com/en-us/library/bb762153.aspx
|
||||
char const * action = (mode == VIEW) ? "open" : "edit";
|
||||
bool success = reinterpret_cast<int>(ShellExecute(NULL, action,
|
||||
to_local8bit(from_utf8(filename)).c_str(), NULL, NULL, 1)) > 32;
|
||||
|
||||
if (!path.empty() && !lyxrc.texinputs_prefix.empty())
|
||||
setEnv("TEXINPUTS", oldval);
|
||||
if (!path.empty() && !lyxrc.texinputs_prefix.empty()) {
|
||||
setEnv("TEXINPUTS", oldtexinputs);
|
||||
setEnv("BIBINPUTS", oldbibinputs);
|
||||
setEnv("BSTINPUTS", oldbstinputs);
|
||||
setEnv("TEXFONTS", oldtexfonts);
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user