mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-06 00:10:59 +00:00
* fix crash due to a missing test whether thisSlice is -1 or a valid slice number
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21556 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
adaad6e2e5
commit
963470c60e
@ -565,6 +565,8 @@ void MathData::attachMacroParameters(Cursor & cur,
|
||||
// remove them from the MathData
|
||||
erase(begin() + macroPos + 1, begin() + p);
|
||||
|
||||
// fix up cursor
|
||||
if (thisSlice != -1) {
|
||||
// fix cursor if right of p
|
||||
if (thisPos >= int(p))
|
||||
cur[thisSlice].pos() -= p - (macroPos + 1);
|
||||
@ -580,6 +582,7 @@ void MathData::attachMacroParameters(Cursor & cur,
|
||||
macroInset->idxFirst(cur);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void MathData::collectOptionalParameters(Cursor & cur,
|
||||
@ -618,7 +621,8 @@ void MathData::collectOptionalParameters(Cursor & cur,
|
||||
params.push_back(optarg);
|
||||
|
||||
// place cursor in optional argument of macro
|
||||
if (thisPos >= int(pos) && thisPos <= int(right)) {
|
||||
if (thisSlice != -1
|
||||
&& thisPos >= int(pos) && thisPos <= int(right)) {
|
||||
int paramPos = std::max(0, thisPos - int(pos) - 1);
|
||||
std::vector<CursorSlice> x;
|
||||
cur.cutOff(thisSlice, x);
|
||||
@ -652,7 +656,7 @@ void MathData::collectParameters(Cursor & cur,
|
||||
// fix cursor
|
||||
std::vector<CursorSlice> argSlices;
|
||||
int argPos = 0;
|
||||
if (thisPos == int(pos)) {
|
||||
if (thisSlice != -1 && thisPos == int(pos)) {
|
||||
cur.cutOff(thisSlice, argSlices);
|
||||
}
|
||||
|
||||
@ -693,7 +697,7 @@ void MathData::collectParameters(Cursor & cur,
|
||||
}
|
||||
|
||||
// put cursor in argument again
|
||||
if (thisPos == int(pos)) {
|
||||
if (thisSlice != - 1 && thisPos == int(pos)) {
|
||||
cur.append(params.size() - 1, argPos);
|
||||
cur.append(argSlices);
|
||||
cur[thisSlice].pos() = macroPos;
|
||||
|
Loading…
Reference in New Issue
Block a user