mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +00:00
Update format to 340.
Move \begin_layout to \begin_layout Plain Layout for consistency. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26020 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
04ab3867c4
commit
94b2838bec
@ -1,6 +1,9 @@
|
|||||||
LyX file-format changes
|
LyX file-format changes
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
2008-08-01 José Matos <jamatos@fc.up.pt>
|
||||||
|
* Format incremented to 340: move empty layouts to "Plain Layout".
|
||||||
|
|
||||||
2008-07-28 Richard Heck <rgheck@brown.edu>
|
2008-07-28 Richard Heck <rgheck@brown.edu>
|
||||||
* Format incremented to 339: removal of default modules.
|
* Format incremented to 339: removal of default modules.
|
||||||
|
|
||||||
|
@ -227,7 +227,7 @@ def latex2ert(line):
|
|||||||
end = rest
|
end = rest
|
||||||
# If we wanted to put labels into an InsetLabel, for example, then we
|
# If we wanted to put labels into an InsetLabel, for example, then we
|
||||||
# would just need to test here for cmd == "label" and then take some
|
# would just need to test here for cmd == "label" and then take some
|
||||||
# appropriate action, i.e., to use arg to get the content and then
|
# appropriate action, i.e., to use arg to get the content and then
|
||||||
# wrap it appropriately.
|
# wrap it appropriately.
|
||||||
cmd = put_cmd_in_ert(cmd)
|
cmd = put_cmd_in_ert(cmd)
|
||||||
retval += "\n" + cmd + "\n"
|
retval += "\n" + cmd + "\n"
|
||||||
@ -238,7 +238,7 @@ def latex2ert(line):
|
|||||||
|
|
||||||
|
|
||||||
def latex2lyx(data):
|
def latex2lyx(data):
|
||||||
'''Takes a string, possibly multi-line, and returns the result of
|
'''Takes a string, possibly multi-line, and returns the result of
|
||||||
converting LaTeX constructs into LyX constructs. Returns a list of
|
converting LaTeX constructs into LyX constructs. Returns a list of
|
||||||
lines, suitable for insertion into document.body.'''
|
lines, suitable for insertion into document.body.'''
|
||||||
|
|
||||||
@ -304,7 +304,7 @@ def lyx2latex(lines):
|
|||||||
content = ""
|
content = ""
|
||||||
ert_end = 0
|
ert_end = 0
|
||||||
reps = read_unicodesymbols()
|
reps = read_unicodesymbols()
|
||||||
|
|
||||||
for curline in range(len(lines)):
|
for curline in range(len(lines)):
|
||||||
line = lines[curline]
|
line = lines[curline]
|
||||||
if line.startswith("\\begin_inset ERT"):
|
if line.startswith("\\begin_inset ERT"):
|
||||||
@ -341,7 +341,7 @@ def lyx2latex(lines):
|
|||||||
line.strip() == "status open":
|
line.strip() == "status open":
|
||||||
#skip all that stuff
|
#skip all that stuff
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# a lossless reversion is not possible
|
# a lossless reversion is not possible
|
||||||
# try at least to handle some common insets and settings
|
# try at least to handle some common insets and settings
|
||||||
# do not replace inside ERTs
|
# do not replace inside ERTs
|
||||||
@ -1315,7 +1315,8 @@ def convert_ams_classes(document):
|
|||||||
return
|
return
|
||||||
m = r.match(document.body[i])
|
m = r.match(document.body[i])
|
||||||
if m == None:
|
if m == None:
|
||||||
document.warning("Weirdly formed \\begin_layout at line %d of body!" % i)
|
# This is an empty layout
|
||||||
|
# document.warning("Weirdly formed \\begin_layout at line %d of body!" % i)
|
||||||
i += 1
|
i += 1
|
||||||
continue
|
continue
|
||||||
m = m.group(1)
|
m = m.group(1)
|
||||||
@ -1622,7 +1623,7 @@ def convert_framed_notes(document):
|
|||||||
'position "t"',
|
'position "t"',
|
||||||
'hor_pos "c"',
|
'hor_pos "c"',
|
||||||
'has_inner_box 0',
|
'has_inner_box 0',
|
||||||
'inner_pos "t"',
|
'inner_pos "t"',
|
||||||
'use_parbox 0',
|
'use_parbox 0',
|
||||||
'width "100col%"',
|
'width "100col%"',
|
||||||
'special "none"',
|
'special "none"',
|
||||||
@ -1778,7 +1779,7 @@ def revert_nobreakdash(document):
|
|||||||
|
|
||||||
#Returns number of lines added/removed
|
#Returns number of lines added/removed
|
||||||
def revert_nocite_key(body, start, end):
|
def revert_nocite_key(body, start, end):
|
||||||
'key "..." -> \nocite{...}'
|
'key "..." -> \nocite{...}'
|
||||||
r = re.compile(r'^key "(.*)"')
|
r = re.compile(r'^key "(.*)"')
|
||||||
i = start
|
i = start
|
||||||
j = end
|
j = end
|
||||||
@ -1948,17 +1949,17 @@ def revert_rotfloat(document):
|
|||||||
subst = ['\\begin_layout Standard',
|
subst = ['\\begin_layout Standard',
|
||||||
'\\begin_inset ERT',
|
'\\begin_inset ERT',
|
||||||
'status collapsed', '',
|
'status collapsed', '',
|
||||||
'\\begin_layout Standard', '', '',
|
'\\begin_layout Standard', '', '',
|
||||||
'\\backslash', '',
|
'\\backslash', '',
|
||||||
'end{sideways' + floattype + '}',
|
'end{sideways' + floattype + '}',
|
||||||
'\\end_layout', '', '\\end_inset']
|
'\\end_layout', '', '\\end_inset']
|
||||||
document.body[j : j+1] = subst
|
document.body[j : j+1] = subst
|
||||||
addedLines = len(subst) - 1
|
addedLines = len(subst) - 1
|
||||||
del document.body[i+1 : l]
|
del document.body[i+1 : l]
|
||||||
addedLines -= (l-1) - (i+1)
|
addedLines -= (l-1) - (i+1)
|
||||||
subst = ['\\begin_inset ERT', 'status collapsed', '',
|
subst = ['\\begin_inset ERT', 'status collapsed', '',
|
||||||
'\\begin_layout Standard', '', '', '\\backslash',
|
'\\begin_layout Standard', '', '', '\\backslash',
|
||||||
'begin{sideways' + floattype + '}',
|
'begin{sideways' + floattype + '}',
|
||||||
'\\end_layout', '', '\\end_inset', '',
|
'\\end_layout', '', '\\end_inset', '',
|
||||||
'\\end_layout', '']
|
'\\end_layout', '']
|
||||||
document.body[i : i+1] = subst
|
document.body[i : i+1] = subst
|
||||||
@ -2007,10 +2008,10 @@ def revert_widesideways(document):
|
|||||||
if l == -1:
|
if l == -1:
|
||||||
document.warning("Malformed LyX document: Missing `\\begin_layout' in Float inset.")
|
document.warning("Malformed LyX document: Missing `\\begin_layout' in Float inset.")
|
||||||
return
|
return
|
||||||
subst = ['\\begin_layout Standard', '\\begin_inset ERT',
|
subst = ['\\begin_layout Standard', '\\begin_inset ERT',
|
||||||
'status collapsed', '',
|
'status collapsed', '',
|
||||||
'\\begin_layout Standard', '', '', '\\backslash',
|
'\\begin_layout Standard', '', '', '\\backslash',
|
||||||
'end{sideways' + floattype + '*}',
|
'end{sideways' + floattype + '*}',
|
||||||
'\\end_layout', '', '\\end_inset']
|
'\\end_layout', '', '\\end_inset']
|
||||||
document.body[j : j+1] = subst
|
document.body[j : j+1] = subst
|
||||||
addedLines = len(subst) - 1
|
addedLines = len(subst) - 1
|
||||||
@ -2076,10 +2077,10 @@ def convert_subfig(document):
|
|||||||
del document.body[l]
|
del document.body[l]
|
||||||
del document.body[k]
|
del document.body[k]
|
||||||
addedLines = -2
|
addedLines = -2
|
||||||
subst = ['\\begin_inset Float figure', 'wide false', 'sideways false',
|
subst = ['\\begin_inset Float figure', 'wide false', 'sideways false',
|
||||||
'status open', '', '\\begin_layout Plain Layout', '\\begin_inset Caption',
|
'status open', '', '\\begin_layout Plain Layout', '\\begin_inset Caption',
|
||||||
'', '\\begin_layout Plain Layout'] + latex2lyx(caption) + \
|
'', '\\begin_layout Plain Layout'] + latex2lyx(caption) + \
|
||||||
[ '\\end_layout', '', '\\end_inset', '',
|
[ '\\end_layout', '', '\\end_inset', '',
|
||||||
'\\end_layout', '', '\\begin_layout Plain Layout']
|
'\\end_layout', '', '\\begin_layout Plain Layout']
|
||||||
document.body[i : i] = subst
|
document.body[i : i] = subst
|
||||||
addedLines += len(subst)
|
addedLines += len(subst)
|
||||||
@ -2805,7 +2806,7 @@ def remove_fontsCJK(document):
|
|||||||
|
|
||||||
|
|
||||||
def convert_plain_layout(document):
|
def convert_plain_layout(document):
|
||||||
" Convert 'PlainLayout' to 'Plain Layout'"
|
" Convert 'PlainLayout' to 'Plain Layout'"
|
||||||
i = 0
|
i = 0
|
||||||
while True:
|
while True:
|
||||||
i = find_token(document.body, '\\begin_layout PlainLayout', i)
|
i = find_token(document.body, '\\begin_layout PlainLayout', i)
|
||||||
@ -2817,7 +2818,7 @@ def convert_plain_layout(document):
|
|||||||
|
|
||||||
|
|
||||||
def revert_plain_layout(document):
|
def revert_plain_layout(document):
|
||||||
" Convert 'PlainLayout' to 'Plain Layout'"
|
" Convert 'PlainLayout' to 'Plain Layout'"
|
||||||
i = 0
|
i = 0
|
||||||
while True:
|
while True:
|
||||||
i = find_token(document.body, '\\begin_layout Plain Layout', i)
|
i = find_token(document.body, '\\begin_layout Plain Layout', i)
|
||||||
@ -2829,7 +2830,7 @@ def revert_plain_layout(document):
|
|||||||
|
|
||||||
|
|
||||||
def revert_plainlayout(document):
|
def revert_plainlayout(document):
|
||||||
" Convert 'PlainLayout' to 'Plain Layout'"
|
" Convert 'PlainLayout' to 'Plain Layout'"
|
||||||
i = 0
|
i = 0
|
||||||
while True:
|
while True:
|
||||||
i = find_token(document.body, '\\begin_layout PlainLayout', i)
|
i = find_token(document.body, '\\begin_layout PlainLayout', i)
|
||||||
@ -2873,6 +2874,16 @@ def revert_removed_modules(document):
|
|||||||
document.header[i : j + 1] = []
|
document.header[i : j + 1] = []
|
||||||
|
|
||||||
|
|
||||||
|
def add_plain_layout(document):
|
||||||
|
i = 0
|
||||||
|
while True:
|
||||||
|
i = find_token(document.body, "\\begin_layout", i)
|
||||||
|
if i == -1:
|
||||||
|
return
|
||||||
|
if len(document.body[i].split()) == 1:
|
||||||
|
document.body[i] = "\\begin_layout Plain Layout"
|
||||||
|
i += 1
|
||||||
|
|
||||||
##
|
##
|
||||||
# Conversion hub
|
# Conversion hub
|
||||||
#
|
#
|
||||||
@ -2941,9 +2952,11 @@ convert = [[277, [fix_wrong_tables]],
|
|||||||
[337, [convert_display_enum]],
|
[337, [convert_display_enum]],
|
||||||
[338, []],
|
[338, []],
|
||||||
[339, []],
|
[339, []],
|
||||||
|
[340, [add_plain_layout]]
|
||||||
]
|
]
|
||||||
|
|
||||||
revert = [[338, [revert_removed_modules]],
|
revert = [[339, []],
|
||||||
|
[338, [revert_removed_modules]],
|
||||||
[337, [revert_polytonicgreek]],
|
[337, [revert_polytonicgreek]],
|
||||||
[336, [revert_display_enum]],
|
[336, [revert_display_enum]],
|
||||||
[335, [remove_fontsCJK]],
|
[335, [remove_fontsCJK]],
|
||||||
|
@ -115,7 +115,7 @@ namespace os = support::os;
|
|||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
int const LYX_FORMAT = 339; //rgh: removed modules
|
int const LYX_FORMAT = 340; //jamatos: add plain layout
|
||||||
|
|
||||||
typedef map<string, bool> DepClean;
|
typedef map<string, bool> DepClean;
|
||||||
typedef map<docstring, pair<InsetLabel const *, Buffer::References> > RefCache;
|
typedef map<docstring, pair<InsetLabel const *, Buffer::References> > RefCache;
|
||||||
@ -135,7 +135,7 @@ public:
|
|||||||
}
|
}
|
||||||
delete inset;
|
delete inset;
|
||||||
}
|
}
|
||||||
|
|
||||||
BufferParams params;
|
BufferParams params;
|
||||||
LyXVC lyxvc;
|
LyXVC lyxvc;
|
||||||
FileName temppath;
|
FileName temppath;
|
||||||
@ -177,7 +177,7 @@ public:
|
|||||||
/// which maps the macro definition position to the scope and the MacroData.
|
/// which maps the macro definition position to the scope and the MacroData.
|
||||||
NamePositionScopeMacroMap macros;
|
NamePositionScopeMacroMap macros;
|
||||||
bool macro_lock;
|
bool macro_lock;
|
||||||
|
|
||||||
/// positions of child buffers in the buffer
|
/// positions of child buffers in the buffer
|
||||||
typedef map<Buffer const * const, DocIterator> BufferPositionMap;
|
typedef map<Buffer const * const, DocIterator> BufferPositionMap;
|
||||||
typedef pair<DocIterator, Buffer const *> ScopeBuffer;
|
typedef pair<DocIterator, Buffer const *> ScopeBuffer;
|
||||||
@ -205,9 +205,9 @@ public:
|
|||||||
/// documents), needed for appropriate update of natbib labels.
|
/// documents), needed for appropriate update of natbib labels.
|
||||||
mutable support::FileNameList bibfilesCache_;
|
mutable support::FileNameList bibfilesCache_;
|
||||||
|
|
||||||
// FIXME The caching mechanism could be improved. At present, we have a
|
// FIXME The caching mechanism could be improved. At present, we have a
|
||||||
// cache for each Buffer, that caches all the bibliography info for that
|
// cache for each Buffer, that caches all the bibliography info for that
|
||||||
// Buffer. A more efficient solution would be to have a global cache per
|
// Buffer. A more efficient solution would be to have a global cache per
|
||||||
// file, and then to construct the Buffer's bibinfo from that.
|
// file, and then to construct the Buffer's bibinfo from that.
|
||||||
/// A cache for bibliography info
|
/// A cache for bibliography info
|
||||||
mutable BiblioInfo bibinfo_;
|
mutable BiblioInfo bibinfo_;
|
||||||
@ -245,7 +245,7 @@ static FileName createBufferTmpDir()
|
|||||||
Buffer::Impl::Impl(Buffer & parent, FileName const & file, bool readonly_)
|
Buffer::Impl::Impl(Buffer & parent, FileName const & file, bool readonly_)
|
||||||
: parent_buffer(0), lyx_clean(true), bak_clean(true), unnamed(false),
|
: parent_buffer(0), lyx_clean(true), bak_clean(true), unnamed(false),
|
||||||
read_only(readonly_), filename(file), file_fully_loaded(false),
|
read_only(readonly_), filename(file), file_fully_loaded(false),
|
||||||
toc_backend(&parent), macro_lock(false), timestamp_(0),
|
toc_backend(&parent), macro_lock(false), timestamp_(0),
|
||||||
checksum_(0), wa_(0), undo_(parent), bibinfoCacheValid_(false)
|
checksum_(0), wa_(0), undo_(parent), bibinfoCacheValid_(false)
|
||||||
{
|
{
|
||||||
temppath = createBufferTmpDir();
|
temppath = createBufferTmpDir();
|
||||||
@ -473,7 +473,7 @@ int Buffer::readHeader(Lexer & lex)
|
|||||||
params().clearLayoutModules();
|
params().clearLayoutModules();
|
||||||
params().clearRemovedModules();
|
params().clearRemovedModules();
|
||||||
params().pdfoptions().clear();
|
params().pdfoptions().clear();
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
params().user_defined_bullet(i) = ITEMIZE_DEFAULTS[i];
|
params().user_defined_bullet(i) = ITEMIZE_DEFAULTS[i];
|
||||||
params().temp_bullet(i) = ITEMIZE_DEFAULTS[i];
|
params().temp_bullet(i) = ITEMIZE_DEFAULTS[i];
|
||||||
@ -522,7 +522,7 @@ int Buffer::readHeader(Lexer & lex)
|
|||||||
errorList.push_back(ErrorItem(_("Document header error"),
|
errorList.push_back(ErrorItem(_("Document header error"),
|
||||||
s, -1, 0, 0));
|
s, -1, 0, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
params().makeDocumentClass();
|
params().makeDocumentClass();
|
||||||
|
|
||||||
return unknown_tokens;
|
return unknown_tokens;
|
||||||
@ -985,7 +985,7 @@ bool Buffer::makeLaTeXFile(FileName const & fname,
|
|||||||
"representable in the chosen encoding.\n"
|
"representable in the chosen encoding.\n"
|
||||||
"Changing the document encoding to utf8 could help."),
|
"Changing the document encoding to utf8 could help."),
|
||||||
e.par_id, e.pos, e.pos + 1));
|
e.par_id, e.pos, e.pos + 1));
|
||||||
failed_export = true;
|
failed_export = true;
|
||||||
}
|
}
|
||||||
catch (iconv_codecvt_facet_exception & e) {
|
catch (iconv_codecvt_facet_exception & e) {
|
||||||
errorList.push_back(ErrorItem(_("iconv conversion failed"),
|
errorList.push_back(ErrorItem(_("iconv conversion failed"),
|
||||||
@ -1044,11 +1044,11 @@ void Buffer::writeLaTeXSource(odocstream & os,
|
|||||||
// because then the macros will not get the right "redefinition"
|
// because then the macros will not get the right "redefinition"
|
||||||
// flag as they don't see the parent macros which are output before.
|
// flag as they don't see the parent macros which are output before.
|
||||||
updateMacros();
|
updateMacros();
|
||||||
|
|
||||||
// fold macros if possible, still with parent buffer as the
|
// fold macros if possible, still with parent buffer as the
|
||||||
// macros will be put in the prefix anyway.
|
// macros will be put in the prefix anyway.
|
||||||
updateMacroInstances();
|
updateMacroInstances();
|
||||||
|
|
||||||
// There are a few differences between nice LaTeX and usual files:
|
// There are a few differences between nice LaTeX and usual files:
|
||||||
// usual is \batchmode and has a
|
// usual is \batchmode and has a
|
||||||
// special input@path to allow the including of figures
|
// special input@path to allow the including of figures
|
||||||
@ -1093,16 +1093,16 @@ void Buffer::writeLaTeXSource(odocstream & os,
|
|||||||
// make the body.
|
// make the body.
|
||||||
os << "\\begin{document}\n";
|
os << "\\begin{document}\n";
|
||||||
d->texrow.newline();
|
d->texrow.newline();
|
||||||
|
|
||||||
// output the parent macros
|
// output the parent macros
|
||||||
MacroSet::iterator it = parentMacros.begin();
|
MacroSet::iterator it = parentMacros.begin();
|
||||||
MacroSet::iterator end = parentMacros.end();
|
MacroSet::iterator end = parentMacros.end();
|
||||||
for (; it != end; ++it)
|
for (; it != end; ++it)
|
||||||
(*it)->write(os, true);
|
(*it)->write(os, true);
|
||||||
} // output_preamble
|
} // output_preamble
|
||||||
|
|
||||||
d->texrow.start(paragraphs().begin()->id(), 0);
|
d->texrow.start(paragraphs().begin()->id(), 0);
|
||||||
|
|
||||||
LYXERR(Debug::INFO, "preamble finished, now the body.");
|
LYXERR(Debug::INFO, "preamble finished, now the body.");
|
||||||
|
|
||||||
// if we are doing a real file with body, even if this is the
|
// if we are doing a real file with body, even if this is the
|
||||||
@ -1361,7 +1361,7 @@ void Buffer::updateBibfilesCache() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Buffer::invalidateBibinfoCache()
|
void Buffer::invalidateBibinfoCache()
|
||||||
{
|
{
|
||||||
d->bibinfoCacheValid_ = false;
|
d->bibinfoCacheValid_ = false;
|
||||||
}
|
}
|
||||||
@ -1382,7 +1382,7 @@ support::FileNameList const & Buffer::getBibfilesCache() const
|
|||||||
|
|
||||||
|
|
||||||
BiblioInfo const & Buffer::masterBibInfo() const
|
BiblioInfo const & Buffer::masterBibInfo() const
|
||||||
{
|
{
|
||||||
// if this is a child document and the parent is already loaded
|
// if this is a child document and the parent is already loaded
|
||||||
// use the parent's list instead [ale990412]
|
// use the parent's list instead [ale990412]
|
||||||
Buffer const * const tmp = masterBuffer();
|
Buffer const * const tmp = masterBuffer();
|
||||||
@ -1460,7 +1460,7 @@ bool Buffer::dispatch(FuncRequest const & func, bool * result)
|
|||||||
Branch * branch = branchList.find(branchName);
|
Branch * branch = branchList.find(branchName);
|
||||||
if (!branch)
|
if (!branch)
|
||||||
LYXERR0("Branch " << branchName << " does not exist.");
|
LYXERR0("Branch " << branchName << " does not exist.");
|
||||||
else
|
else
|
||||||
branch->setSelected(func.action == LFUN_BRANCH_ACTIVATE);
|
branch->setSelected(func.action == LFUN_BRANCH_ACTIVATE);
|
||||||
if (result)
|
if (result)
|
||||||
*result = true;
|
*result = true;
|
||||||
@ -1569,7 +1569,7 @@ bool Buffer::isExternallyModified(CheckMethod method) const
|
|||||||
{
|
{
|
||||||
LASSERT(d->filename.exists(), /**/);
|
LASSERT(d->filename.exists(), /**/);
|
||||||
// if method == timestamp, check timestamp before checksum
|
// if method == timestamp, check timestamp before checksum
|
||||||
return (method == checksum_method
|
return (method == checksum_method
|
||||||
|| d->timestamp_ != d->filename.lastModified())
|
|| d->timestamp_ != d->filename.lastModified())
|
||||||
&& d->checksum_ != d->filename.checksum();
|
&& d->checksum_ != d->filename.checksum();
|
||||||
}
|
}
|
||||||
@ -1677,7 +1677,7 @@ Buffer const * Buffer::masterBuffer() const
|
|||||||
{
|
{
|
||||||
if (!d->parent_buffer)
|
if (!d->parent_buffer)
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
return d->parent_buffer->masterBuffer();
|
return d->parent_buffer->masterBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1699,11 +1699,11 @@ typename M::iterator greatest_below(M & m, typename M::key_type const & x)
|
|||||||
return m.end();
|
return m.end();
|
||||||
|
|
||||||
it--;
|
it--;
|
||||||
return it;
|
return it;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
MacroData const * Buffer::getBufferMacro(docstring const & name,
|
MacroData const * Buffer::getBufferMacro(docstring const & name,
|
||||||
DocIterator const & pos) const
|
DocIterator const & pos) const
|
||||||
{
|
{
|
||||||
LYXERR(Debug::MACROS, "Searching for " << to_ascii(name) << " at " << pos);
|
LYXERR(Debug::MACROS, "Searching for " << to_ascii(name) << " at " << pos);
|
||||||
@ -1715,7 +1715,7 @@ MacroData const * Buffer::getBufferMacro(docstring const & name,
|
|||||||
// we haven't found anything yet
|
// we haven't found anything yet
|
||||||
DocIterator bestPos = par_iterator_begin();
|
DocIterator bestPos = par_iterator_begin();
|
||||||
MacroData const * bestData = 0;
|
MacroData const * bestData = 0;
|
||||||
|
|
||||||
// find macro definitions for name
|
// find macro definitions for name
|
||||||
Impl::NamePositionScopeMacroMap::iterator nameIt
|
Impl::NamePositionScopeMacroMap::iterator nameIt
|
||||||
= d->macros.find(name);
|
= d->macros.find(name);
|
||||||
@ -1734,7 +1734,7 @@ MacroData const * Buffer::getBufferMacro(docstring const & name,
|
|||||||
bestData = &it->second.second;
|
bestData = &it->second.second;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// try previous macro if there is one
|
// try previous macro if there is one
|
||||||
if (it == nameIt->second.begin())
|
if (it == nameIt->second.begin())
|
||||||
break;
|
break;
|
||||||
@ -1774,7 +1774,7 @@ MacroData const * Buffer::getBufferMacro(docstring const & name,
|
|||||||
break;
|
break;
|
||||||
--it;
|
--it;
|
||||||
}
|
}
|
||||||
|
|
||||||
// return the best macro we have found
|
// return the best macro we have found
|
||||||
return bestData;
|
return bestData;
|
||||||
}
|
}
|
||||||
@ -1784,7 +1784,7 @@ MacroData const * Buffer::getMacro(docstring const & name,
|
|||||||
DocIterator const & pos, bool global) const
|
DocIterator const & pos, bool global) const
|
||||||
{
|
{
|
||||||
if (d->macro_lock)
|
if (d->macro_lock)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
// query buffer macros
|
// query buffer macros
|
||||||
MacroData const * data = getBufferMacro(name, pos);
|
MacroData const * data = getBufferMacro(name, pos);
|
||||||
@ -1848,15 +1848,15 @@ void Buffer::updateMacros(DocIterator & it, DocIterator & scope) const
|
|||||||
InsetList::const_iterator end = insets.end();
|
InsetList::const_iterator end = insets.end();
|
||||||
for (; iit != end; ++iit) {
|
for (; iit != end; ++iit) {
|
||||||
it.pos() = iit->pos;
|
it.pos() = iit->pos;
|
||||||
|
|
||||||
// is it a nested text inset?
|
// is it a nested text inset?
|
||||||
if (iit->inset->asInsetText()) {
|
if (iit->inset->asInsetText()) {
|
||||||
// Inset needs its own scope?
|
// Inset needs its own scope?
|
||||||
InsetText const * itext
|
InsetText const * itext
|
||||||
= iit->inset->asInsetText();
|
= iit->inset->asInsetText();
|
||||||
bool newScope = itext->isMacroScope();
|
bool newScope = itext->isMacroScope();
|
||||||
|
|
||||||
// scope which ends just behind the inset
|
// scope which ends just behind the inset
|
||||||
DocIterator insetScope = it;
|
DocIterator insetScope = it;
|
||||||
++insetScope.pos();
|
++insetScope.pos();
|
||||||
|
|
||||||
@ -1866,25 +1866,25 @@ void Buffer::updateMacros(DocIterator & it, DocIterator & scope) const
|
|||||||
it.pop_back();
|
it.pop_back();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// is it an external file?
|
// is it an external file?
|
||||||
if (iit->inset->lyxCode() == INCLUDE_CODE) {
|
if (iit->inset->lyxCode() == INCLUDE_CODE) {
|
||||||
// get buffer of external file
|
// get buffer of external file
|
||||||
InsetCommand const & inset
|
InsetCommand const & inset
|
||||||
= static_cast<InsetCommand const &>(*iit->inset);
|
= static_cast<InsetCommand const &>(*iit->inset);
|
||||||
InsetCommandParams const & ip = inset.params();
|
InsetCommandParams const & ip = inset.params();
|
||||||
d->macro_lock = true;
|
d->macro_lock = true;
|
||||||
Buffer * child = loadIfNeeded(*this, ip);
|
Buffer * child = loadIfNeeded(*this, ip);
|
||||||
d->macro_lock = false;
|
d->macro_lock = false;
|
||||||
if (!child)
|
if (!child)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// register its position, but only when it is
|
// register its position, but only when it is
|
||||||
// included first in the buffer
|
// included first in the buffer
|
||||||
if (d->children_positions.find(child)
|
if (d->children_positions.find(child)
|
||||||
== d->children_positions.end())
|
== d->children_positions.end())
|
||||||
d->children_positions[child] = it;
|
d->children_positions[child] = it;
|
||||||
|
|
||||||
// register child with its scope
|
// register child with its scope
|
||||||
d->position_to_children[it] = Impl::ScopeBuffer(scope, child);
|
d->position_to_children[it] = Impl::ScopeBuffer(scope, child);
|
||||||
continue;
|
continue;
|
||||||
@ -1892,7 +1892,7 @@ void Buffer::updateMacros(DocIterator & it, DocIterator & scope) const
|
|||||||
|
|
||||||
if (iit->inset->lyxCode() != MATHMACRO_CODE)
|
if (iit->inset->lyxCode() != MATHMACRO_CODE)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// get macro data
|
// get macro data
|
||||||
MathMacroTemplate & macroTemplate
|
MathMacroTemplate & macroTemplate
|
||||||
= static_cast<MathMacroTemplate &>(*iit->inset);
|
= static_cast<MathMacroTemplate &>(*iit->inset);
|
||||||
@ -1975,7 +1975,7 @@ void Buffer::listMacroNames(MacroNameSet & macros) const
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
d->macro_lock = true;
|
d->macro_lock = true;
|
||||||
|
|
||||||
// loop over macro names
|
// loop over macro names
|
||||||
Impl::NamePositionScopeMacroMap::iterator nameIt = d->macros.begin();
|
Impl::NamePositionScopeMacroMap::iterator nameIt = d->macros.begin();
|
||||||
Impl::NamePositionScopeMacroMap::iterator nameEnd = d->macros.end();
|
Impl::NamePositionScopeMacroMap::iterator nameEnd = d->macros.end();
|
||||||
@ -1992,7 +1992,7 @@ void Buffer::listMacroNames(MacroNameSet & macros) const
|
|||||||
if (d->parent_buffer)
|
if (d->parent_buffer)
|
||||||
d->parent_buffer->listMacroNames(macros);
|
d->parent_buffer->listMacroNames(macros);
|
||||||
|
|
||||||
d->macro_lock = false;
|
d->macro_lock = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2000,20 +2000,20 @@ void Buffer::listParentMacros(MacroSet & macros, LaTeXFeatures & features) const
|
|||||||
{
|
{
|
||||||
if (!d->parent_buffer)
|
if (!d->parent_buffer)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
MacroNameSet names;
|
MacroNameSet names;
|
||||||
d->parent_buffer->listMacroNames(names);
|
d->parent_buffer->listMacroNames(names);
|
||||||
|
|
||||||
// resolve macros
|
// resolve macros
|
||||||
MacroNameSet::iterator it = names.begin();
|
MacroNameSet::iterator it = names.begin();
|
||||||
MacroNameSet::iterator end = names.end();
|
MacroNameSet::iterator end = names.end();
|
||||||
for (; it != end; ++it) {
|
for (; it != end; ++it) {
|
||||||
// defined?
|
// defined?
|
||||||
MacroData const * data =
|
MacroData const * data =
|
||||||
d->parent_buffer->getMacro(*it, *this, false);
|
d->parent_buffer->getMacro(*it, *this, false);
|
||||||
if (data) {
|
if (data) {
|
||||||
macros.insert(data);
|
macros.insert(data);
|
||||||
|
|
||||||
// we cannot access the original MathMacroTemplate anymore
|
// we cannot access the original MathMacroTemplate anymore
|
||||||
// here to calls validate method. So we do its work here manually.
|
// here to calls validate method. So we do its work here manually.
|
||||||
// FIXME: somehow make the template accessible here.
|
// FIXME: somehow make the template accessible here.
|
||||||
@ -2224,7 +2224,7 @@ public:
|
|||||||
///
|
///
|
||||||
int start()
|
int start()
|
||||||
{
|
{
|
||||||
command_ = to_utf8(bformat(_("Auto-saving %1$s"),
|
command_ = to_utf8(bformat(_("Auto-saving %1$s"),
|
||||||
from_utf8(fname_.absFilename())));
|
from_utf8(fname_.absFilename())));
|
||||||
return run(DontWait);
|
return run(DontWait);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user