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:
José Matox 2008-08-01 17:57:01 +00:00
parent 04ab3867c4
commit 94b2838bec
3 changed files with 77 additions and 61 deletions

View File

@ -1,6 +1,9 @@
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>
* Format incremented to 339: removal of default modules.

View File

@ -227,7 +227,7 @@ def latex2ert(line):
end = rest
# 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
# 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.
cmd = put_cmd_in_ert(cmd)
retval += "\n" + cmd + "\n"
@ -238,7 +238,7 @@ def latex2ert(line):
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
lines, suitable for insertion into document.body.'''
@ -304,7 +304,7 @@ def lyx2latex(lines):
content = ""
ert_end = 0
reps = read_unicodesymbols()
for curline in range(len(lines)):
line = lines[curline]
if line.startswith("\\begin_inset ERT"):
@ -341,7 +341,7 @@ def lyx2latex(lines):
line.strip() == "status open":
#skip all that stuff
continue
# a lossless reversion is not possible
# try at least to handle some common insets and settings
# do not replace inside ERTs
@ -1315,7 +1315,8 @@ def convert_ams_classes(document):
return
m = r.match(document.body[i])
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
continue
m = m.group(1)
@ -1622,7 +1623,7 @@ def convert_framed_notes(document):
'position "t"',
'hor_pos "c"',
'has_inner_box 0',
'inner_pos "t"',
'inner_pos "t"',
'use_parbox 0',
'width "100col%"',
'special "none"',
@ -1778,7 +1779,7 @@ def revert_nobreakdash(document):
#Returns number of lines added/removed
def revert_nocite_key(body, start, end):
'key "..." -> \nocite{...}'
'key "..." -> \nocite{...}'
r = re.compile(r'^key "(.*)"')
i = start
j = end
@ -1948,17 +1949,17 @@ def revert_rotfloat(document):
subst = ['\\begin_layout Standard',
'\\begin_inset ERT',
'status collapsed', '',
'\\begin_layout Standard', '', '',
'\\begin_layout Standard', '', '',
'\\backslash', '',
'end{sideways' + floattype + '}',
'\\end_layout', '', '\\end_inset']
document.body[j : j+1] = subst
addedLines = len(subst) - 1
del document.body[i+1 : l]
addedLines -= (l-1) - (i+1)
addedLines -= (l-1) - (i+1)
subst = ['\\begin_inset ERT', 'status collapsed', '',
'\\begin_layout Standard', '', '', '\\backslash',
'begin{sideways' + floattype + '}',
'\\begin_layout Standard', '', '', '\\backslash',
'begin{sideways' + floattype + '}',
'\\end_layout', '', '\\end_inset', '',
'\\end_layout', '']
document.body[i : i+1] = subst
@ -2007,10 +2008,10 @@ def revert_widesideways(document):
if l == -1:
document.warning("Malformed LyX document: Missing `\\begin_layout' in Float inset.")
return
subst = ['\\begin_layout Standard', '\\begin_inset ERT',
'status collapsed', '',
subst = ['\\begin_layout Standard', '\\begin_inset ERT',
'status collapsed', '',
'\\begin_layout Standard', '', '', '\\backslash',
'end{sideways' + floattype + '*}',
'end{sideways' + floattype + '*}',
'\\end_layout', '', '\\end_inset']
document.body[j : j+1] = subst
addedLines = len(subst) - 1
@ -2076,10 +2077,10 @@ def convert_subfig(document):
del document.body[l]
del document.body[k]
addedLines = -2
subst = ['\\begin_inset Float figure', 'wide false', 'sideways false',
'status open', '', '\\begin_layout Plain Layout', '\\begin_inset Caption',
subst = ['\\begin_inset Float figure', 'wide false', 'sideways false',
'status open', '', '\\begin_layout Plain Layout', '\\begin_inset Caption',
'', '\\begin_layout Plain Layout'] + latex2lyx(caption) + \
[ '\\end_layout', '', '\\end_inset', '',
[ '\\end_layout', '', '\\end_inset', '',
'\\end_layout', '', '\\begin_layout Plain Layout']
document.body[i : i] = subst
addedLines += len(subst)
@ -2805,7 +2806,7 @@ def remove_fontsCJK(document):
def convert_plain_layout(document):
" Convert 'PlainLayout' to 'Plain Layout'"
" Convert 'PlainLayout' to 'Plain Layout'"
i = 0
while True:
i = find_token(document.body, '\\begin_layout PlainLayout', i)
@ -2817,7 +2818,7 @@ def convert_plain_layout(document):
def revert_plain_layout(document):
" Convert 'PlainLayout' to 'Plain Layout'"
" Convert 'PlainLayout' to 'Plain Layout'"
i = 0
while True:
i = find_token(document.body, '\\begin_layout Plain Layout', i)
@ -2829,7 +2830,7 @@ def revert_plain_layout(document):
def revert_plainlayout(document):
" Convert 'PlainLayout' to 'Plain Layout'"
" Convert 'PlainLayout' to 'Plain Layout'"
i = 0
while True:
i = find_token(document.body, '\\begin_layout PlainLayout', i)
@ -2873,6 +2874,16 @@ def revert_removed_modules(document):
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
#
@ -2941,9 +2952,11 @@ convert = [[277, [fix_wrong_tables]],
[337, [convert_display_enum]],
[338, []],
[339, []],
[340, [add_plain_layout]]
]
revert = [[338, [revert_removed_modules]],
revert = [[339, []],
[338, [revert_removed_modules]],
[337, [revert_polytonicgreek]],
[336, [revert_display_enum]],
[335, [remove_fontsCJK]],

View File

@ -115,7 +115,7 @@ namespace os = support::os;
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<docstring, pair<InsetLabel const *, Buffer::References> > RefCache;
@ -135,7 +135,7 @@ public:
}
delete inset;
}
BufferParams params;
LyXVC lyxvc;
FileName temppath;
@ -177,7 +177,7 @@ public:
/// which maps the macro definition position to the scope and the MacroData.
NamePositionScopeMacroMap macros;
bool macro_lock;
/// positions of child buffers in the buffer
typedef map<Buffer const * const, DocIterator> BufferPositionMap;
typedef pair<DocIterator, Buffer const *> ScopeBuffer;
@ -205,9 +205,9 @@ public:
/// documents), needed for appropriate update of natbib labels.
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
// 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.
/// A cache for bibliography info
mutable BiblioInfo bibinfo_;
@ -245,7 +245,7 @@ static FileName createBufferTmpDir()
Buffer::Impl::Impl(Buffer & parent, FileName const & file, bool readonly_)
: parent_buffer(0), lyx_clean(true), bak_clean(true), unnamed(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)
{
temppath = createBufferTmpDir();
@ -473,7 +473,7 @@ int Buffer::readHeader(Lexer & lex)
params().clearLayoutModules();
params().clearRemovedModules();
params().pdfoptions().clear();
for (int i = 0; i < 4; ++i) {
params().user_defined_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"),
s, -1, 0, 0));
}
params().makeDocumentClass();
return unknown_tokens;
@ -985,7 +985,7 @@ bool Buffer::makeLaTeXFile(FileName const & fname,
"representable in the chosen encoding.\n"
"Changing the document encoding to utf8 could help."),
e.par_id, e.pos, e.pos + 1));
failed_export = true;
failed_export = true;
}
catch (iconv_codecvt_facet_exception & e) {
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"
// flag as they don't see the parent macros which are output before.
updateMacros();
// fold macros if possible, still with parent buffer as the
// macros will be put in the prefix anyway.
updateMacroInstances();
// There are a few differences between nice LaTeX and usual files:
// usual is \batchmode and has a
// special input@path to allow the including of figures
@ -1093,16 +1093,16 @@ void Buffer::writeLaTeXSource(odocstream & os,
// make the body.
os << "\\begin{document}\n";
d->texrow.newline();
// output the parent macros
MacroSet::iterator it = parentMacros.begin();
MacroSet::iterator end = parentMacros.end();
for (; it != end; ++it)
(*it)->write(os, true);
(*it)->write(os, true);
} // output_preamble
d->texrow.start(paragraphs().begin()->id(), 0);
LYXERR(Debug::INFO, "preamble finished, now the body.");
// 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;
}
@ -1382,7 +1382,7 @@ support::FileNameList const & Buffer::getBibfilesCache() const
BiblioInfo const & Buffer::masterBibInfo() const
{
{
// if this is a child document and the parent is already loaded
// use the parent's list instead [ale990412]
Buffer const * const tmp = masterBuffer();
@ -1460,7 +1460,7 @@ bool Buffer::dispatch(FuncRequest const & func, bool * result)
Branch * branch = branchList.find(branchName);
if (!branch)
LYXERR0("Branch " << branchName << " does not exist.");
else
else
branch->setSelected(func.action == LFUN_BRANCH_ACTIVATE);
if (result)
*result = true;
@ -1569,7 +1569,7 @@ bool Buffer::isExternallyModified(CheckMethod method) const
{
LASSERT(d->filename.exists(), /**/);
// if method == timestamp, check timestamp before checksum
return (method == checksum_method
return (method == checksum_method
|| d->timestamp_ != d->filename.lastModified())
&& d->checksum_ != d->filename.checksum();
}
@ -1677,7 +1677,7 @@ Buffer const * Buffer::masterBuffer() const
{
if (!d->parent_buffer)
return this;
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();
it--;
return it;
return it;
}
MacroData const * Buffer::getBufferMacro(docstring const & name,
MacroData const * Buffer::getBufferMacro(docstring const & name,
DocIterator const & pos) const
{
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
DocIterator bestPos = par_iterator_begin();
MacroData const * bestData = 0;
// find macro definitions for name
Impl::NamePositionScopeMacroMap::iterator nameIt
= d->macros.find(name);
@ -1734,7 +1734,7 @@ MacroData const * Buffer::getBufferMacro(docstring const & name,
bestData = &it->second.second;
break;
}
// try previous macro if there is one
if (it == nameIt->second.begin())
break;
@ -1774,7 +1774,7 @@ MacroData const * Buffer::getBufferMacro(docstring const & name,
break;
--it;
}
// return the best macro we have found
return bestData;
}
@ -1784,7 +1784,7 @@ MacroData const * Buffer::getMacro(docstring const & name,
DocIterator const & pos, bool global) const
{
if (d->macro_lock)
return 0;
return 0;
// query buffer macros
MacroData const * data = getBufferMacro(name, pos);
@ -1848,15 +1848,15 @@ void Buffer::updateMacros(DocIterator & it, DocIterator & scope) const
InsetList::const_iterator end = insets.end();
for (; iit != end; ++iit) {
it.pos() = iit->pos;
// is it a nested text inset?
if (iit->inset->asInsetText()) {
// Inset needs its own scope?
InsetText const * itext
InsetText const * itext
= iit->inset->asInsetText();
bool newScope = itext->isMacroScope();
// scope which ends just behind the inset
// scope which ends just behind the inset
DocIterator insetScope = it;
++insetScope.pos();
@ -1866,25 +1866,25 @@ void Buffer::updateMacros(DocIterator & it, DocIterator & scope) const
it.pop_back();
continue;
}
// is it an external file?
if (iit->inset->lyxCode() == INCLUDE_CODE) {
// get buffer of external file
InsetCommand const & inset
InsetCommand const & inset
= static_cast<InsetCommand const &>(*iit->inset);
InsetCommandParams const & ip = inset.params();
d->macro_lock = true;
Buffer * child = loadIfNeeded(*this, ip);
d->macro_lock = false;
if (!child)
continue;
continue;
// register its position, but only when it is
// included first in the buffer
if (d->children_positions.find(child)
== d->children_positions.end())
d->children_positions[child] = it;
// register child with its scope
d->position_to_children[it] = Impl::ScopeBuffer(scope, child);
continue;
@ -1892,7 +1892,7 @@ void Buffer::updateMacros(DocIterator & it, DocIterator & scope) const
if (iit->inset->lyxCode() != MATHMACRO_CODE)
continue;
// get macro data
MathMacroTemplate & macroTemplate
= static_cast<MathMacroTemplate &>(*iit->inset);
@ -1975,7 +1975,7 @@ void Buffer::listMacroNames(MacroNameSet & macros) const
return;
d->macro_lock = true;
// loop over macro names
Impl::NamePositionScopeMacroMap::iterator nameIt = d->macros.begin();
Impl::NamePositionScopeMacroMap::iterator nameEnd = d->macros.end();
@ -1992,7 +1992,7 @@ void Buffer::listMacroNames(MacroNameSet & macros) const
if (d->parent_buffer)
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)
return;
MacroNameSet names;
d->parent_buffer->listMacroNames(names);
// resolve macros
MacroNameSet::iterator it = names.begin();
MacroNameSet::iterator end = names.end();
for (; it != end; ++it) {
// defined?
MacroData const * data =
MacroData const * data =
d->parent_buffer->getMacro(*it, *this, false);
if (data) {
macros.insert(data);
// we cannot access the original MathMacroTemplate anymore
// here to calls validate method. So we do its work here manually.
// FIXME: somehow make the template accessible here.
@ -2224,7 +2224,7 @@ public:
///
int start()
{
command_ = to_utf8(bformat(_("Auto-saving %1$s"),
command_ = to_utf8(bformat(_("Auto-saving %1$s"),
from_utf8(fname_.absFilename())));
return run(DontWait);
}