// Execute the command in the background
Systemcall call;
- call.startscript(Systemcall::DontWait, command, filePath());
+ call.startscript(Systemcall::DontWait, command);
break;
}
command2 += quoteName(psname);
// First run dvips.
// If successful, then spool command
- res = one.startscript(Systemcall::Wait, command,
- filePath());
+ res = one.startscript(Systemcall::Wait, command);
if (res == 0) {
// If there's no GUI, we have to wait on this command. Otherwise,
// file, before it can be printed!!
Systemcall::Starttype stype = use_gui ?
Systemcall::DontWait : Systemcall::Wait;
- res = one.startscript(stype, command2,
- filePath());
+ res = one.startscript(stype, command2);
}
} else {
// case 2: print directly to a printer
// as above....
Systemcall::Starttype stype = use_gui ?
Systemcall::DontWait : Systemcall::Wait;
- res = one.startscript(stype, command +
- quoteName(dviname), filePath());
+ res = one.startscript(stype, command + quoteName(dviname));
}
} else {
// as above....
Systemcall::Starttype stype = use_gui ?
Systemcall::DontWait : Systemcall::Wait;
- res = one.startscript(stype, command, filePath());
+ res = one.startscript(stype, command);
}
if (res == 0)
LYXERR(Debug::FILES, "No converter defined! "
"I use convertDefault.py:\n\t" << command);
Systemcall one;
- one.startscript(Systemcall::Wait, command, buffer ?
- buffer->filePath() : string());
+ one.startscript(Systemcall::Wait, command);
if (to_file.isReadableFile()) {
if (conversionflags & try_cache)
ConverterCache::get().add(orig_from,
int res;
if (dummy) {
res = one.startscript(Systemcall::DontWait,
- to_filesystem8bit(from_utf8(command)),
- buffer ? buffer->filePath() : string());
+ to_filesystem8bit(from_utf8(command)));
// We're not waiting for the result, so we can't do anything
// else here.
} else {
res = one.startscript(Systemcall::Wait,
- to_filesystem8bit(from_utf8(command)),
- buffer ? buffer->filePath()
- : string());
+ to_filesystem8bit(from_utf8(command)));
if (!real_outfile.empty()) {
Mover const & mover = getMover(conv.to);
if (!mover.rename(outfile, real_outfile))
" < " + quoteName(infile2 + ".out") +
" > " + quoteName(logfile);
one.startscript(Systemcall::Wait,
- to_filesystem8bit(from_utf8(command2)),
- buffer->filePath());
+ to_filesystem8bit(from_utf8(command2)));
if (!scanLog(*buffer, command, makeAbsPath(logfile, path), errorList))
return false;
}
// do the LaTeX run(s)
string const name = buffer.latexName();
- LaTeX latex(command, runparams, FileName(makeAbsPath(name)),
- buffer.filePath());
+ LaTeX latex(command, runparams, FileName(makeAbsPath(name)));
TeXErrors terr;
ShowMessage show(buffer);
latex.message.connect(show);
}
// viewer is 'auto'
if (format->viewer() == "auto") {
- if (os::autoOpenFile(filename.absFileName(), os::VIEW, buffer.filePath()))
+ if (os::autoOpenFile(filename.absFileName(), os::VIEW))
return true;
else {
Alert::error(_("Cannot view file"),
buffer.message(_("Executing command: ") + from_utf8(command));
Systemcall one;
- one.startscript(Systemcall::DontWait, command, buffer.filePath());
+ one.startscript(Systemcall::DontWait, command);
// we can't report any sort of error, since we aren't waiting
return true;
// editor is 'auto'
if (format->editor() == "auto") {
- if (os::autoOpenFile(filename.absFileName(), os::EDIT, buffer.filePath()))
+ if (os::autoOpenFile(filename.absFileName(), os::EDIT))
return true;
else {
Alert::error(_("Cannot edit file"),
buffer.message(_("Executing command: ") + from_utf8(command));
Systemcall one;
- one.startscript(Systemcall::DontWait, command, buffer.filePath());
+ one.startscript(Systemcall::DontWait, command);
// we can't report any sort of error, since we aren't waiting
return true;
*/
LaTeX::LaTeX(string const & latex, OutputParams const & rp,
- FileName const & f, string const & p)
- : cmd(latex), file(f), path(p), runparams(rp)
+ FileName const & f)
+ : cmd(latex), file(f), runparams(rp)
{
num_errors = 0;
if (prefixIs(cmd, "pdf")) { // Do we use pdflatex ?
+ quoteName(onlyFileName(file.toFilesystemEncoding()))
+ " > " + os::nulldev();
Systemcall one;
- return one.startscript(Systemcall::Wait, tmp, path);
+ return one.startscript(Systemcall::Wait, tmp);
}
tmp += quoteName(f);
tmp += params;
Systemcall one;
- one.startscript(Systemcall::Wait, tmp, path);
+ one.startscript(Systemcall::Wait, tmp);
return true;
}
tmp += " -o "
+ onlyFileName(changeExtension(file.toFilesystemEncoding(), nls));
Systemcall one;
- one.startscript(Systemcall::Wait, tmp, path);
+ one.startscript(Systemcall::Wait, tmp);
return true;
}
tmp += quoteName(onlyFileName(removeExtension(
it->aux_file.absFileName())));
Systemcall one;
- one.startscript(Systemcall::Wait, tmp, path);
+ one.startscript(Systemcall::Wait, tmp);
}
// Return whether bibtex was run
return result;
path = name of the files original path.
*/
LaTeX(std::string const & cmd, OutputParams const &,
- support::FileName const & file,
- std::string const & path = empty_string());
+ support::FileName const & file);
/// runs LaTeX several times
int run(TeXErrors &);
///
support::FileName file;
- ///
- std::string path;
-
/// used by scanLogFile
int num_errors;
{ "\\template_path", LyXRC::RC_TEMPLATEPATH },
{ "\\tex_allows_spaces", LyXRC::RC_TEX_ALLOWS_SPACES },
{ "\\tex_expects_windows_paths", LyXRC::RC_TEX_EXPECTS_WINDOWS_PATHS },
- { "\\texinputs_prefix", LyXRC::RC_TEXINPUTS_PREFIX },
{ "\\thesaurusdir_path", LyXRC::RC_THESAURUSDIRPATH },
{ "\\ui_file", LyXRC::RC_UIFILE },
{ "\\use_converter_cache", LyXRC::RC_USE_CONVERTER_CACHE },
bind_file = "cua";
def_file = "default";
ui_file = "default";
- // The current document directory
- texinputs_prefix = ".";
// Get printer from the environment. If fail, use default "",
// assuming that everything is set up correctly.
printer = getEnv("PRINTER");
lexrc >> tex_allows_spaces;
break;
- case RC_TEXINPUTS_PREFIX:
- lexrc >> texinputs_prefix;
- break;
-
case RC_KBMAP:
lexrc >> use_kbmap;
break;
<< "# TEX SECTION #######################################\n"
<< "#\n\n";
- case RC_TEXINPUTS_PREFIX:
- if (ignore_system_lyxrc ||
- texinputs_prefix != system_lyxrc.texinputs_prefix) {
- os << "\\texinputs_prefix \"" << texinputs_prefix << "\"\n";
- }
- if (tag != RC_LAST)
- break;
-
case RC_FONT_ENCODING:
if (ignore_system_lyxrc ||
fontenc != system_lyxrc.fontenc) {
if (lyxrc_orig.windows_style_tex_paths != lyxrc_new.windows_style_tex_paths) {
os::windows_style_tex_paths(lyxrc_new.windows_style_tex_paths);
}
- case LyXRC::RC_TEXINPUTS_PREFIX:
case LyXRC::RC_THESAURUSDIRPATH:
case LyXRC::RC_UIFILE:
case LyXRC::RC_USER_EMAIL:
case RC_PATH_PREFIX:
str = _("Specify those directories which should be "
- "prepended to the PATH environment variable.\n"
+ "prepended to the PATH environment variable. "
"Use the OS native format.");
break;
case RC_TEX_EXPECTS_WINDOWS_PATHS:
break;
- case RC_TEXINPUTS_PREFIX:
- str = _("Specify those directories which should be "
- "prepended to the TEXINPUTS environment variable.\n"
- "A '.' represents the current document directory. "
- "Use the OS native format.");
- break;
-
case RC_UIFILE:
str = _("The UI (user interface) file. Can either specify an absolute path, or LyX will look in its global and local ui/ directories.");
break;
RC_TEMPLATEPATH,
RC_TEX_ALLOWS_SPACES,
RC_TEX_EXPECTS_WINDOWS_PATHS,
- RC_TEXINPUTS_PREFIX,
RC_THESAURUSDIRPATH,
RC_UIFILE,
RC_USELASTFILEPOS,
* The string is input, stored and output in native format.
*/
std::string path_prefix;
- /** Prepend paths to the TEXINPUTS environment variable.
- * The string is input, stored and output in native format.
- * A '.' here stands for the current document directory.
- */
- std::string texinputs_prefix;
/// Use the cache for file converters?
bool use_converter_cache;
/// The maximum age of cache files in seconds
LYXERR(Debug::LYXVC, "doVCCommandCall: " << cmd);
Systemcall one;
support::PathChanger p(path);
- return one.startscript(Systemcall::Wait, cmd, string(), false);
+ return one.startscript(Systemcall::Wait, cmd, false);
}
connect(pathPrefixED, SIGNAL(textChanged(QString)),
this, SIGNAL(changed()));
-
- connect(texinputsPrefixED, SIGNAL(textChanged(QString)),
- this, SIGNAL(changed()));
}
rc.thesaurusdir_path = internal_path(fromqstr(thesaurusDirED->text()));
rc.hunspelldir_path = internal_path(fromqstr(hunspellDirED->text()));
rc.path_prefix = internal_path_list(fromqstr(pathPrefixED->text()));
- rc.texinputs_prefix = internal_path_list(fromqstr(texinputsPrefixED->text()));
// FIXME: should be a checkbox only
rc.lyxpipes = internal_path(fromqstr(lyxserverDirED->text()));
}
thesaurusDirED->setText(toqstr(external_path(rc.thesaurusdir_path)));
hunspellDirED->setText(toqstr(external_path(rc.hunspelldir_path)));
pathPrefixED->setText(toqstr(external_path_list(rc.path_prefix)));
- texinputsPrefixED->setText(toqstr(external_path_list(rc.texinputs_prefix)));
// FIXME: should be a checkbox only
lyxserverDirED->setText(toqstr(external_path(rc.lyxpipes)));
}
<property name="spacing" >
<number>6</number>
</property>
- <item row="12" column="0" colspan="3" >
+ <item row="11" column="0" colspan="3" >
<spacer>
<property name="orientation" >
<enum>Qt::Vertical</enum>
</widget>
</item>
<item row="10" column="1" colspan="2" >
- <widget class="QLineEdit" name="pathPrefixED">
- <property name="toolTip">
- <string>Specify those directories which should be prepended to the PATH environment variable.
Use the OS native format.</string>
- </property>
- </widget>
- </item>
- <item row="11" column="0">
- <widget class="QLabel" name="texinputsPrefixLA">
- <property name="text">
- <string>TEX&INPUTS prefix:</string>
- </property>
- <property name="buddy">
- <cstring>texinputsPrefixED</cstring>
- </property>
- </widget>
- </item>
- <item row="11" column="1" colspan="2">
- <widget class="QLineEdit" name="texinputsPrefixED">
- <property name="toolTip">
- <string>Specify those directories which should be prepended to the TEXINPUTS environment variable.
A '.' represents the current document directory. Use the OS native format.</string>
- </property>
- </widget>
+ <widget class="QLineEdit" name="pathPrefixED" />
</item>
<item row="6" column="2" >
<widget class="QPushButton" name="thesaurusDirPB" >
#include <config.h>
#include "support/debug.h"
-#include "support/environment.h"
-#include "support/filetools.h"
#include "support/lstrings.h"
#include "support/qstring_helpers.h"
#include "support/Systemcall.h"
#include "support/os.h"
#include "support/ProgressInterface.h"
-#include "LyXRC.h"
#include <cstdlib>
#include <iostream>
// Reuse of instance
#ifndef USE_QPROCESS
int Systemcall::startscript(Starttype how, string const & what,
- std::string const & path, bool /*process_events*/)
+ bool /*process_events*/)
{
- string command;
- string const texinputs = os::latex_path_list(
- replaceCurdirPath(path, lyxrc.texinputs_prefix));
- string const sep = string(1, os::path_separator(os::TEXENGINE));
- string const env = getEnv("TEXINPUTS");
-
- switch (os::shell()) {
- case os::UNIX:
- command = path.empty() || lyxrc.texinputs_prefix.empty() ? what
- : "env TEXINPUTS='." + sep + texinputs
- + sep + env + "' " + what;
- break;
- case os::CMD_EXE:
- command = path.empty() || lyxrc.texinputs_prefix.empty() ? what
- : "set TEXINPUTS=." + sep + texinputs
- + sep + env + " & " + what;
- break;
- }
+ string command = what;
if (how == DontWait) {
switch (os::shell()) {
-int Systemcall::startscript(Starttype how, string const & what,
- string const & path, bool process_events)
+int Systemcall::startscript(Starttype how, string const & what, bool process_events)
{
string outfile;
QString cmd = toqstr(parsecmd(what, outfile));
SystemcallPrivate d(outfile);
- d.startProcess(cmd, path);
+ d.startProcess(cmd);
if (!d.waitWhile(SystemcallPrivate::Starting, process_events, -1)) {
LYXERR0("Systemcall: '" << cmd << "' did not start!");
LYXERR0("error " << d.errorMessage());
-void SystemcallPrivate::startProcess(QString const & cmd, string const & path)
+void SystemcallPrivate::startProcess(const QString& cmd)
{
cmd_ = cmd;
if (process_) {
- if (!path.empty() && !lyxrc.texinputs_prefix.empty()) {
- QString const texinputs = toqstr(os::latex_path_list(
- replaceCurdirPath(path, lyxrc.texinputs_prefix)));
- QChar const sep = os::path_separator(os::TEXENGINE);
- QString const prefix = QLatin1String("TEXINPUTS=.")
- + sep + texinputs + sep;
- QStringList env = QProcess::systemEnvironment();
- if (env.filter("TEXINPUTS=").isEmpty())
- env << prefix;
- else
- env.replaceInStrings(QRegExp("^TEXINPUTS=(.*)"),
- prefix + "\\1");
- process_->setEnvironment(env);
- }
state = SystemcallPrivate::Starting;
process_->start(cmd_);
}
/** Start child process.
* The string "what" contains a commandline with arguments separated
- * by spaces. The string "path" contains the path to be prepended to
- * the TEXINPUTS environment variable. Unset "process_events" in
- * case UI should be blocked while processing the external command.
+ * by spaces. Unset "process_events" in case UI should be blocked while
+ * processing the external command.
*/
- int startscript(Starttype how, std::string const & what,
- std::string const & path = empty_string(),
- bool process_events = false);
+ int startscript(Starttype how, std::string const & what, bool process_events = false);
};
} // namespace support
State state;
bool waitWhile(State, bool processEvents, int timeout = -1);
- void startProcess(QString const & cmd, std::string const & path);
+ void startProcess(const QString& cmd);
int exitCode();
}
-// Replace current directory in all elements of a path list with a given path.
-string const replaceCurdirPath(string const & path, string const & pathlist)
-{
- string const oldpathlist = replaceEnvironmentPath(pathlist);
- char const sep = os::path_separator();
- string newpathlist;
-
- for (size_t i = 0, k = 0; i != string::npos; k = i) {
- i = oldpathlist.find(sep, i);
- string p = oldpathlist.substr(k, i - k);
- if (FileName::isAbsolute(p)) {
- newpathlist += p;
- } else if (i > k) {
- size_t offset = 0;
- if (p == ".") {
- offset = 1;
- } else if (prefixIs(p, "./")) {
- offset = 2;
- while (p[offset] == '/')
- ++offset;
- }
- newpathlist += addPath(path, p.substr(offset));
- if (suffixIs(p, "//"))
- newpathlist += '/';
- }
- if (i != string::npos) {
- newpathlist += sep;
- // Stop here if the last element is empty
- if (++i == oldpathlist.length())
- break;
- }
- }
- return newpathlist;
-}
-
-
// Make relative path out of two absolute paths
docstring const makeRelPath(docstring const & abspath, docstring const & basepath)
// Makes relative path out of absolute path. If it is deeper than basepath,
*/
std::string const replaceEnvironmentPath(std::string const & path);
-/** Replace all references to a current directory (a lonely '.' or
- the prefix "./") in \c pathlist with \c path. Also prefixes
- all non-absolute paths with \c path.
-*/
-std::string const replaceCurdirPath(std::string const & path, std::string const & pathlist);
-
/** Set \c link to the path \c file points to as a symbolic link.
\return true if successful.
*/
*/
std::string latex_path(std::string const & p);
-/**
- * Converts a platform style path list into a form suitable for the TeX engine.
- * \p p is encoded in utf8.
- */
-std::string latex_path_list(std::string const & p);
-
/// Checks if the format string is suitable on the OS
bool is_valid_strftime(std::string const & p);
*/
char const * popen_read_mode();
-enum path_type {
- PLATFORM,
- TEXENGINE
-};
-
-/** The character used to separate paths for platform environment variables
- * (such as PATH) or for the TeX engine.
+/** The character used to separate paths returned by the
+ * PATH environment variable.
*/
-char path_separator(path_type type = PLATFORM);
+char path_separator();
/** If @c use_windows_paths is true, LyX will output Windows-style paths to
* latex files rather than posix ones. Obviously, this option is used only
* \param mode can be opened in VIEW or EDIT mode
* \returns whether or not the format can be opened according to \p mode
*/
-bool canAutoOpenFile(std::string const & ext, auto_open_mode const mode);
+bool canAutoOpenFile(std::string const & ext, auto_open_mode const mode = VIEW);
/** View or edit a file with the default viewer or editor.
* \param filename file to open (encoded in utf8)
* \param mode open in VIEW or EDIT mode
* \returns whether or not the file is viewed (or edited) successfully.
*/
-bool autoOpenFile(std::string const & filename, auto_open_mode const mode,
- std::string const & path = empty_string());
+bool autoOpenFile(std::string const & filename, auto_open_mode const mode = VIEW);
/** Resolves a path such that it does not contain '.', '..', or symbolic links.
* \p path and the return value are encoded in utf8.
#include <config.h>
-#include "LyXRC.h"
-
#include "support/os.h"
-#include "support/debug.h"
-#include "support/environment.h"
#include "support/FileName.h"
-#include "support/filetools.h"
#include "support/lassert.h"
#include "support/lstrings.h"
+#include "support/debug.h"
#include <windows.h>
#include <io.h>
}
-string latex_path_list(string const & p)
-{
- // We may need a posix style path or a windows style path (depending
- // on windows_style_tex_paths_), but we use always forward slashes,
- // since this is standard for all tex engines.
-
- if (windows_style_tex_paths_)
- return convert_path_list(p, PathStyle(windows));
-
- return convert_path_list(p, PathStyle(posix));
-}
-
-
bool is_valid_strftime(string const & p)
{
string::size_type pos = p.find_first_of('%');
}
-char path_separator(path_type type)
+char path_separator()
{
- if (type == TEXENGINE)
- return windows_style_tex_paths_ ? ';' : ':';
-
return ':';
}
}
-bool autoOpenFile(string const & filename, auto_open_mode const mode,
- string const & path)
+bool autoOpenFile(string const & filename, auto_open_mode const mode)
{
- string const texinputs = os::latex_path_list(
- replaceCurdirPath(path, lyxrc.texinputs_prefix));
- 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);
- cygwin_internal(CW_SYNC_WINENV);
- }
-
// reference: http://msdn.microsoft.com/en-us/library/bb762153.aspx
string const win_path = to_local8bit(from_utf8(convert_path(filename, PathStyle(windows))));
char const * action = (mode == VIEW) ? "open" : "edit";
- bool success = reinterpret_cast<int>(ShellExecute(NULL, action,
- win_path.c_str(), NULL, NULL, 1)) > 32;
-
- if (!path.empty() && !lyxrc.texinputs_prefix.empty()) {
- setEnv("TEXINPUTS", oldval);
- cygwin_internal(CW_SYNC_WINENV);
- }
- return success;
+ return reinterpret_cast<int>(ShellExecute(NULL, action,
+ win_path.c_str(), NULL, NULL, 1)) > 32;
}
#include <config.h>
-#include "LyXRC.h"
-
#include "support/os.h"
#include "support/docstring.h"
-#include "support/environment.h"
#include "support/FileName.h"
-#include "support/filetools.h"
#include "support/lstrings.h"
#include "support/lassert.h"
}
-string latex_path_list(string const & p)
-{
- return p;
-}
-
-
bool is_valid_strftime(string const & p)
{
string::size_type pos = p.find_first_of('%');
}
-char path_separator(path_type)
+char path_separator()
{
return ':';
}
}
-bool autoOpenFile(string const & filename, auto_open_mode const mode,
- string const & path)
+bool autoOpenFile(string const & filename, auto_open_mode const mode)
{
#ifdef __APPLE__
// Reference: http://developer.apple.com/documentation/Carbon/Reference/LaunchServicesReference/
if (status == kLSApplicationNotFoundErr)
return false;
- 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);
-
LSLaunchFSRefSpec inLaunchSpec;
inLaunchSpec.appRef = &outAppRef;
inLaunchSpec.numDocs = 1;
inLaunchSpec.asyncRefCon = NULL;
status = LSOpenFromRefSpec(&inLaunchSpec, NULL);
- if (!path.empty() && !lyxrc.texinputs_prefix.empty())
- setEnv("TEXINPUTS", oldval);
-
return status != kLSApplicationNotFoundErr;
#else
// silence compiler warnings
(void)filename;
(void)mode;
- (void)path;
// currently, no default viewer is tried for non-windows system
// support for KDE/Gnome/Macintosh may be added later
#include <config.h>
-#include "LyXRC.h"
-
#include "support/os.h"
#include "support/os_win32.h"
#include "support/debug.h"
-#include "support/environment.h"
#include "support/FileName.h"
#include "support/gettext.h"
#include "support/filetools.h"
}
-string latex_path_list(string const & p)
-{
- if (p.empty())
- return p;
-
- // We may need a posix style path or a windows style path (depending
- // on windows_style_tex_paths_), but we use always forward slashes,
- // since this is standard for all tex engines.
-
- if (!windows_style_tex_paths_) {
- string pathlist;
- for (size_t i = 0, k = 0; i != string::npos; k = i) {
- i = p.find(';', i);
- string path = subst(p.substr(k, i - k), '\\', '/');
- if (FileName::isAbsolute(path)) {
- string const drive = path.substr(0, 2);
- string const cygprefix = cygdrive + "/"
- + drive.substr(0, 1);
- path = subst(path, drive, cygprefix);
- }
- pathlist += path;
- if (i != string::npos) {
- pathlist += ':';
- ++i;
- }
- }
- return pathlist;
- }
- return subst(p, '\\', '/');
-}
-
-
bool is_valid_strftime(string const & p)
{
string::size_type pos = p.find_first_of('%');
}
-char path_separator(path_type type)
+char path_separator()
{
- if (type == TEXENGINE)
- return windows_style_tex_paths_ ? ';' : ':';
-
return ';';
}
}
-bool autoOpenFile(string const & filename, auto_open_mode const mode,
- string const & path)
+bool autoOpenFile(string const & filename, auto_open_mode const mode)
{
- string const texinputs = os::latex_path_list(
- replaceCurdirPath(path, lyxrc.texinputs_prefix));
- 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);
-
// 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,
+ return 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);
- return success;
}
- Improved XHTML output of various fractions.
-- A prefix for the TEXINPUTS environment variable can be specified in the
- preferences. The directory of a LyX document is represented by a single
- dot '.' or by the prefix "./". Also, any non-absolute path will be
- prepended with the LyX document directory.
-
- Updated templates to current LyX format, so no conversion will be needed.