mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-12 03:23:12 +00:00
Backport Lars's fix for bug removal in GCC 4.7
A long standing bug has been fixed in GCC 4.7, the bug was a non- sactioned extra lookup. This caused some code to work that really shouldn't. The fixes are: add this->, Class::, or move functions about as required to fullfill the rules. In this case some template instantiations were movee to after what they reference. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_2_0_X@40583 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
436ed2cf19
commit
d8b68d84f1
@ -188,62 +188,6 @@ TabularFeature tabularFeature[] =
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
template <class T>
|
|
||||||
string const write_attribute(string const & name, T const & t)
|
|
||||||
{
|
|
||||||
string const s = tostr(t);
|
|
||||||
return s.empty() ? s : " " + name + "=\"" + s + "\"";
|
|
||||||
}
|
|
||||||
|
|
||||||
template <>
|
|
||||||
string const write_attribute(string const & name, string const & t)
|
|
||||||
{
|
|
||||||
return t.empty() ? t : " " + name + "=\"" + t + "\"";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <>
|
|
||||||
string const write_attribute(string const & name, docstring const & t)
|
|
||||||
{
|
|
||||||
return t.empty() ? string() : " " + name + "=\"" + to_utf8(t) + "\"";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <>
|
|
||||||
string const write_attribute(string const & name, bool const & b)
|
|
||||||
{
|
|
||||||
// we write only true attribute values so we remove a bit of the
|
|
||||||
// file format bloat for tabulars.
|
|
||||||
return b ? write_attribute(name, convert<string>(b)) : string();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <>
|
|
||||||
string const write_attribute(string const & name, int const & i)
|
|
||||||
{
|
|
||||||
// we write only true attribute values so we remove a bit of the
|
|
||||||
// file format bloat for tabulars.
|
|
||||||
return i ? write_attribute(name, convert<string>(i)) : string();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <>
|
|
||||||
string const write_attribute(string const & name, Tabular::idx_type const & i)
|
|
||||||
{
|
|
||||||
// we write only true attribute values so we remove a bit of the
|
|
||||||
// file format bloat for tabulars.
|
|
||||||
return i ? write_attribute(name, convert<string>(i)) : string();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <>
|
|
||||||
string const write_attribute(string const & name, Length const & value)
|
|
||||||
{
|
|
||||||
// we write only the value if we really have one same reson as above.
|
|
||||||
return value.zero() ? string() : write_attribute(name, value.asString());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
string const tostr(LyXAlignment const & num)
|
string const tostr(LyXAlignment const & num)
|
||||||
{
|
{
|
||||||
switch (num) {
|
switch (num) {
|
||||||
@ -503,6 +447,61 @@ void l_getline(istream & is, string & str)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
string const write_attribute(string const & name, T const & t)
|
||||||
|
{
|
||||||
|
string const s = tostr(t);
|
||||||
|
return s.empty() ? s : " " + name + "=\"" + s + "\"";
|
||||||
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
string const write_attribute(string const & name, string const & t)
|
||||||
|
{
|
||||||
|
return t.empty() ? t : " " + name + "=\"" + t + "\"";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <>
|
||||||
|
string const write_attribute(string const & name, docstring const & t)
|
||||||
|
{
|
||||||
|
return t.empty() ? string() : " " + name + "=\"" + to_utf8(t) + "\"";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <>
|
||||||
|
string const write_attribute(string const & name, bool const & b)
|
||||||
|
{
|
||||||
|
// we write only true attribute values so we remove a bit of the
|
||||||
|
// file format bloat for tabulars.
|
||||||
|
return b ? write_attribute(name, convert<string>(b)) : string();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <>
|
||||||
|
string const write_attribute(string const & name, int const & i)
|
||||||
|
{
|
||||||
|
// we write only true attribute values so we remove a bit of the
|
||||||
|
// file format bloat for tabulars.
|
||||||
|
return i ? write_attribute(name, convert<string>(i)) : string();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <>
|
||||||
|
string const write_attribute(string const & name, Tabular::idx_type const & i)
|
||||||
|
{
|
||||||
|
// we write only true attribute values so we remove a bit of the
|
||||||
|
// file format bloat for tabulars.
|
||||||
|
return i ? write_attribute(name, convert<string>(i)) : string();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <>
|
||||||
|
string const write_attribute(string const & name, Length const & value)
|
||||||
|
{
|
||||||
|
// we write only the value if we really have one same reson as above.
|
||||||
|
return value.zero() ? string() : write_attribute(name, value.asString());
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
|
||||||
|
@ -91,7 +91,9 @@ What's new
|
|||||||
- Make sure that we detect and use python 2 on systems where python 3
|
- Make sure that we detect and use python 2 on systems where python 3
|
||||||
is the default python interpreter.
|
is the default python interpreter.
|
||||||
|
|
||||||
- cmake, LYX_DEPENDENCIES_DOWNLOAD: look for the right filename on SourceForge
|
- cmake, LYX_DEPENDENCIES_DOWNLOAD: look for the right filename on SourceForge.
|
||||||
|
|
||||||
|
- Make compilation work with GCC 4.7.
|
||||||
|
|
||||||
|
|
||||||
** Bug fixes:
|
** Bug fixes:
|
||||||
|
Loading…
Reference in New Issue
Block a user