]> git.lyx.org Git - features.git/commitdiff
supposedly fix some getchar problems, and reenable the stronger assert
authorLars Gullik Bjønnes <larsbj@gullik.org>
Tue, 18 Mar 2003 23:23:28 +0000 (23:23 +0000)
committerLars Gullik Bjønnes <larsbj@gullik.org>
Tue, 18 Mar 2003 23:23:28 +0000 (23:23 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6532 a592a061-630c-0410-9148-cb99ea01b6c8

src/paragraph_pimpl.C
src/text.C

index 497b6c3fcb5adb018e63a30dcf47365f4a1c9aaa..ceb99edfec12dbf8975ac4cd5440704d1a3694fd 100644 (file)
@@ -252,29 +252,24 @@ void Paragraph::Pimpl::rejectChange(pos_type start, pos_type end)
 
 Paragraph::value_type Paragraph::Pimpl::getChar(pos_type pos) const
 {
-       lyx::Assert(pos <= size());
-
-       // This is stronger, and I belive that this is the assertion
-       // that we should really use. (Lgb)
-       // Rationale - getChar() is really text[]. getInset(getChar(size()))
-       // makes no sense (crashes). The fact we return '\0' should be
-       // evidence enough - jbl
-       //lyx::Assert(pos < size());
-
-       if (lyxerr.debugging(Debug::LYXVC))
-               lyx::Assert(pos < size());
-#if 1
+#if 0
        // This is in the critical path for loading!
        pos_type const siz = size();
 
+       lyx::Assert(pos <= siz);
+
        if (pos == siz) {
                lyxerr << "getChar() on pos " << pos << " in par id "
-                       << owner_->id() << " of size " << siz
-                       << "  is a bit silly !" << endl;
+                      << owner_->id() << " of size " << siz
+                      << "  is a bit silly !" << endl;
                return '\0';
        }
-#endif
+
+       return text[pos];
+#else
+       lyx::Assert(pos < size());
        return text[pos];
+#endif
 }
 
 
index fdd5fa35b54fcf978aa72bcd4eb8acdc9d3768eb..cc988c28ad45b8fecd6acdb911fc1db700486372 100644 (file)
@@ -78,7 +78,7 @@ int LyXText::top_y() const
                return 0;
 
        int y = 0;
-       for (Row * row = firstrow; 
+       for (Row * row = firstrow;
             row && row != anchor_row_; row = row->next()) {
                y += row->height();
        }
@@ -112,10 +112,10 @@ void LyXText::anchor_row(Row * row)
 {
        int old_y = top_y();
        anchor_row_offset_ = 0;
-       anchor_row_ = row; 
+       anchor_row_ = row;
        anchor_row_offset_ = old_y - top_y();
-       lyxerr[Debug::GUI] << "anchor_row(): changing reference to row: " 
-                          << anchor_row_ << " offset: " << anchor_row_offset_ 
+       lyxerr[Debug::GUI] << "anchor_row(): changing reference to row: "
+                          << anchor_row_ << " offset: " << anchor_row_offset_
                           << endl;
 }
 
@@ -1665,8 +1665,8 @@ void LyXText::insertChar(char c)
        if (row->previous() && row->previous()->par() == row->par()
            && (cursor.par()->isLineSeparator(cursor.pos())
                || cursor.par()->isNewline(cursor.pos())
-               || ((cursor.pos() < cursor.par()->size()) &&
-                   cursor.par()->isInset(cursor.pos()+1))
+               || ((cursor.pos() + 1 < cursor.par()->size()) &&
+                   cursor.par()->isInset(cursor.pos() + 1))
                || cursor.row()->fill() == -1))
        {
                pos_type z = rowBreakPoint(*row->previous());
@@ -2628,6 +2628,7 @@ void LyXText::backspace()
 
                        // delete newlines at the beginning of paragraphs
                        while (!cursor.par()->empty() &&
+                              cursor.pos() < cursor.par()->size() &&
                               cursor.par()->isNewline(cursor.pos()) &&
                               cursor.pos() == cursor.par()->beginningOfBody()) {
                                cursor.par()->erase(cursor.pos());