mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-12 22:14:35 +00:00
Workaround for gcc 2.95 pointer compare bug
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8402 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
281047c2bf
commit
302a00b035
@ -1,4 +1,8 @@
|
|||||||
|
|
||||||
|
2004-02-04 Martin Vermeer <martin.vermeer@hut.fi>
|
||||||
|
|
||||||
|
* cursor.[Ch]: workaround gcc 2.95 pointer comparison bug
|
||||||
|
|
||||||
2004-02-04 André Pönitz <poenitz@gmx.net>
|
2004-02-04 André Pönitz <poenitz@gmx.net>
|
||||||
|
|
||||||
* BufferView.[Ch] (insertInset):
|
* BufferView.[Ch] (insertInset):
|
||||||
|
@ -860,7 +860,7 @@ bool LCursor::openable(MathAtom const & t)
|
|||||||
// we can't move into anything new during selection
|
// we can't move into anything new during selection
|
||||||
if (depth() == anchor_.size())
|
if (depth() == anchor_.size())
|
||||||
return false;
|
return false;
|
||||||
if (t.nucleus() != anchor_[depth()].inset())
|
if (!ptr_cmp(t.nucleus(), anchor_[depth()].inset()))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
11
src/cursor.h
11
src/cursor.h
@ -33,6 +33,17 @@ class PainterInfo;
|
|||||||
class MathUnknownInset;
|
class MathUnknownInset;
|
||||||
class MathGridInset;
|
class MathGridInset;
|
||||||
|
|
||||||
|
|
||||||
|
// only needed for gcc 2.95, remove when support terminated
|
||||||
|
|
||||||
|
|
||||||
|
template <typename A, typename B>
|
||||||
|
bool ptr_cmp(A const * a, B const * b)
|
||||||
|
{
|
||||||
|
return a == b;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// this is used for traversing math insets
|
// this is used for traversing math insets
|
||||||
typedef std::vector<CursorSlice> CursorBase;
|
typedef std::vector<CursorSlice> CursorBase;
|
||||||
/// move on one step
|
/// move on one step
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2004-02-04 Martin Vermeer <martin.vermeer@hut.fi>
|
||||||
|
|
||||||
|
* math_nestinset.C: workaround gcc 2.95 pointer comparison bug,
|
||||||
|
reverse below
|
||||||
|
|
||||||
2004-02-03 Martin Vermeer <martin.vermeer@hut.fi>
|
2004-02-03 Martin Vermeer <martin.vermeer@hut.fi>
|
||||||
|
|
||||||
* math_nestinset.C: use const_cast to get to compile for stlport
|
* math_nestinset.C: use const_cast to get to compile for stlport
|
||||||
|
@ -72,7 +72,7 @@ MathArray const & MathNestInset::cell(idx_type i) const
|
|||||||
void MathNestInset::getCursorPos(CursorSlice const & cur,
|
void MathNestInset::getCursorPos(CursorSlice const & cur,
|
||||||
int & x, int & y) const
|
int & x, int & y) const
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(cur.inset() == const_cast<MathNestInset *>(this));
|
BOOST_ASSERT(ptr_cmp(cur.inset(), this));
|
||||||
MathArray const & ar = cur.cell();
|
MathArray const & ar = cur.cell();
|
||||||
x = ar.xo() + ar.pos2x(cur.pos());
|
x = ar.xo() + ar.pos2x(cur.pos());
|
||||||
y = ar.yo();
|
y = ar.yo();
|
||||||
@ -99,7 +99,7 @@ void MathNestInset::metrics(MetricsInfo const & mi) const
|
|||||||
|
|
||||||
bool MathNestInset::idxNext(LCursor & cur) const
|
bool MathNestInset::idxNext(LCursor & cur) const
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(cur.inset() == const_cast<MathNestInset *>(this));
|
BOOST_ASSERT(ptr_cmp(cur.inset(), this));
|
||||||
if (cur.idx() == cur.lastidx())
|
if (cur.idx() == cur.lastidx())
|
||||||
return false;
|
return false;
|
||||||
++cur.idx();
|
++cur.idx();
|
||||||
@ -116,7 +116,7 @@ bool MathNestInset::idxRight(LCursor & cur) const
|
|||||||
|
|
||||||
bool MathNestInset::idxPrev(LCursor & cur) const
|
bool MathNestInset::idxPrev(LCursor & cur) const
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(cur.inset() == const_cast<MathNestInset *>(this));
|
BOOST_ASSERT(ptr_cmp(cur.inset(), this));
|
||||||
if (cur.idx() == 0)
|
if (cur.idx() == 0)
|
||||||
return false;
|
return false;
|
||||||
--cur.idx();
|
--cur.idx();
|
||||||
@ -133,7 +133,7 @@ bool MathNestInset::idxLeft(LCursor & cur) const
|
|||||||
|
|
||||||
bool MathNestInset::idxFirst(LCursor & cur) const
|
bool MathNestInset::idxFirst(LCursor & cur) const
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(cur.inset() == const_cast<MathNestInset *>(this));
|
BOOST_ASSERT(ptr_cmp(cur.inset(), this));
|
||||||
if (nargs() == 0)
|
if (nargs() == 0)
|
||||||
return false;
|
return false;
|
||||||
cur.idx() = 0;
|
cur.idx() = 0;
|
||||||
@ -144,7 +144,7 @@ bool MathNestInset::idxFirst(LCursor & cur) const
|
|||||||
|
|
||||||
bool MathNestInset::idxLast(LCursor & cur) const
|
bool MathNestInset::idxLast(LCursor & cur) const
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(cur.inset() == const_cast<MathNestInset *>(this));
|
BOOST_ASSERT(ptr_cmp(cur.inset(), this));
|
||||||
if (nargs() == 0)
|
if (nargs() == 0)
|
||||||
return false;
|
return false;
|
||||||
cur.idx() = cur.lastidx();
|
cur.idx() = cur.lastidx();
|
||||||
@ -155,7 +155,7 @@ bool MathNestInset::idxLast(LCursor & cur) const
|
|||||||
|
|
||||||
bool MathNestInset::idxHome(LCursor & cur) const
|
bool MathNestInset::idxHome(LCursor & cur) const
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(cur.inset() == const_cast<MathNestInset *>(this));
|
BOOST_ASSERT(ptr_cmp(cur.inset(), this));
|
||||||
if (cur.pos() == 0)
|
if (cur.pos() == 0)
|
||||||
return false;
|
return false;
|
||||||
cur.pos() = 0;
|
cur.pos() = 0;
|
||||||
@ -165,7 +165,7 @@ bool MathNestInset::idxHome(LCursor & cur) const
|
|||||||
|
|
||||||
bool MathNestInset::idxEnd(LCursor & cur) const
|
bool MathNestInset::idxEnd(LCursor & cur) const
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(cur.inset() == const_cast<MathNestInset *>(this));
|
BOOST_ASSERT(ptr_cmp(cur.inset(), this));
|
||||||
if (cur.lastpos() == cur.lastpos())
|
if (cur.lastpos() == cur.lastpos())
|
||||||
return false;
|
return false;
|
||||||
cur.pos() = cur.lastpos();
|
cur.pos() = cur.lastpos();
|
||||||
@ -202,7 +202,7 @@ void MathNestInset::drawSelection(PainterInfo & pi, int x, int y) const
|
|||||||
LCursor & cur = pi.base.bv->cursor();
|
LCursor & cur = pi.base.bv->cursor();
|
||||||
if (!cur.selection())
|
if (!cur.selection())
|
||||||
return;
|
return;
|
||||||
if (cur.inset() != const_cast<MathNestInset *>(this))
|
if (!ptr_cmp(cur.inset(), this))
|
||||||
return;
|
return;
|
||||||
CursorSlice & s1 = cur.selBegin();
|
CursorSlice & s1 = cur.selBegin();
|
||||||
CursorSlice & s2 = cur.selEnd();
|
CursorSlice & s2 = cur.selEnd();
|
||||||
|
Loading…
Reference in New Issue
Block a user