mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-11 11:08:41 +00:00
Allow Input of local includes from local layout files
When including files, LyX always searches the user and the system
directory, in that order. This means that when using local layout
files broken down into multiple includes, the various includes should
be specified with a path relative to the user layouts directory
(typically ~/.lyx/layouts), making this very impractical.
This commit allows including local files by specifying their path
as explicitly relative to the main layout file position, i.e., by
specifying their path with either "./" or "../". If the main layout
is not loaded from a local file, the usual search order is used,
even if the path are explicitly relative. So, for system layouts,
both "Input ./name.inc" and "Input name.inc" are equivalent.
(cherry picked from commit 17ab47b3e6
)
This commit is contained in:
parent
9f2fcf20a5
commit
2b9965aebb
BIN
po/pt_BR.gmo
BIN
po/pt_BR.gmo
Binary file not shown.
BIN
po/zh_CN.gmo
BIN
po/zh_CN.gmo
Binary file not shown.
@ -44,7 +44,8 @@ LayoutFile::LayoutFile(string const & fn, string const & cln,
|
||||
string const & desc, string const & prereq,
|
||||
string const & category, bool texclassavail)
|
||||
{
|
||||
name_ = fn;
|
||||
name_ = onlyFileName(fn);
|
||||
path_ = fn.rfind('/') == string::npos ? string() : onlyPath(fn);
|
||||
latexname_ = cln;
|
||||
description_ = desc;
|
||||
prerequisites_ = prereq;
|
||||
@ -332,7 +333,8 @@ LayoutFileIndex LayoutFileList::addLocalLayout(
|
||||
return string();
|
||||
|
||||
LayoutFile * tmpl =
|
||||
new LayoutFile(textclass, class_name, textclass, class_prereq, category, true);
|
||||
new LayoutFile(addName(moved ? oldpath : path, textclass),
|
||||
class_name, textclass, class_prereq, category, true);
|
||||
//FIXME: The prerequisites are available from the layout file and
|
||||
// can be extracted from the above regex, but for now this
|
||||
// field is simply set to class_name + ".cls"
|
||||
|
@ -447,8 +447,13 @@ TextClass::ReturnValues TextClass::read(Lexer & lexrc, ReadType rt)
|
||||
|
||||
case TC_INPUT: // Include file
|
||||
if (lexrc.next()) {
|
||||
FileName tmp;
|
||||
string const inc = lexrc.getString();
|
||||
FileName tmp = libFileSearch("layouts", inc,
|
||||
if (!path().empty() && (prefixIs(inc, "./") ||
|
||||
prefixIs(inc, "../")))
|
||||
tmp = fileSearch(path(), inc, "layout");
|
||||
else
|
||||
tmp = libFileSearch("layouts", inc,
|
||||
"layout");
|
||||
|
||||
if (tmp.empty()) {
|
||||
|
@ -192,6 +192,8 @@ public:
|
||||
///
|
||||
std::string const & name() const { return name_; }
|
||||
///
|
||||
std::string const & path() const { return path_; }
|
||||
///
|
||||
std::string const & category() const { return category_; }
|
||||
///
|
||||
std::string const & description() const { return description_; }
|
||||
@ -238,6 +240,8 @@ protected:
|
||||
mutable LayoutList layoutlist_;
|
||||
/// Layout file name
|
||||
std::string name_;
|
||||
/// Layout file path (empty for system layout files)
|
||||
std::string path_;
|
||||
/// Class category
|
||||
std::string category_;
|
||||
/// document class name
|
||||
|
@ -18,6 +18,9 @@ What's new
|
||||
- Allow use of verbatim and quotation environments with IOP articles
|
||||
(bug 10505).
|
||||
|
||||
- Search for input files relative to local layout files, when those
|
||||
are provided and relative paths are used.
|
||||
|
||||
|
||||
* TEX2LYX IMPROVEMENTS
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user