improved comments in removeAutoInsets()

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3351 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Allan Rae 2002-01-13 06:42:58 +00:00
parent 09b61de303
commit fde66f936a
2 changed files with 12 additions and 9 deletions

View File

@ -117,22 +117,24 @@ bool BufferView::removeAutoInsets()
bool found = false;
// Trap the deletion of the paragraph the cursor is in.
// It should be almost impossible for the new cursor par to be
// deleted later on in this function.
// This is the way to segfault this now. Although you may have to do this
// multiple times: Have an InsetERT with an unknown command in it.
// View->DVI, move cursor between Error box and InsetERT and hit <Enter>,
// <down-arrow>, <Enter> again, View->DVI, BANG!
//
// Iterate until we find a paragraph that won't be immediately deleted.
// In reality this should mean we only execute the body of the while
// loop once at most. However for safety we iterate rather than just
// make this an if() conditional.
while ((cur_par_prev || cur_par_next)
&& text->setCursor(this,
cur_par_prev ? cur_par_prev : cur_par_next,
0)) {
// we just removed cur_par so have to fix the "cursor"
// We just removed cur_par so have to fix the "cursor"
if (cur_par_prev) {
// '.' = cur_par
// a -> a.
// .
cur_par = cur_par_prev;
cur_pos = cur_par->size();
} else {
// . -> .a
// a
cur_par = cur_par_next;
cur_pos = 0;
}
@ -155,7 +157,7 @@ bool BufferView::removeAutoInsets()
if (cur_par_prev) {
// '|' = par, '.' = cur_par, 'E' = error box
// First step below may occur before while{}
// a |a a a .a
// a |a a a a.
// E -> .E -> |.E -> . -> |b
// . b b |b
// b

View File

@ -6,6 +6,7 @@
left is that an empty document with an error in the preamble can
be made to report an error but no error box appears. I don't know
where it goes.
(removeAutoInsets): Improved comments.
2002-01-13 John Levon <moz@compsoc.man.ac.uk>