It's me again :-)

This time, I fixed a few calls to Paragraph::insertChar. Depending on the buffer's parameter, the character is inserted as UNCHANGED or INSERTED.

Please let me know if something looks suspicious. There are more similar places, which I will fix in the next couple of days (step by step)

Michael

PS: Only about 470 lines of diff output left!
Index: buffer.C
===================================================================
--- buffer.C	(Revision 13940)
+++ buffer.C	(Arbeitskopie)
@@ -521,23 +521,26 @@
 		} else if (*cit == '\t') {
 			if (!par.isFreeSpacing()) {
 				// tabs are like spaces here
-				par.insertChar(pos, ' ', font, Change(Change::INSERTED));
+				par.insertChar(pos, ' ', font, Change(params().tracking_changes ?
+				               Change::INSERTED : Change::UNCHANGED));
 				++pos;
-				space_inserted = true;
 			} else {
 				const pos_type n = 8 - pos % 8;
 				for (pos_type i = 0; i < n; ++i) {
-					par.insertChar(pos, ' ', font, Change(Change::INSERTED));
+					par.insertChar(pos, ' ', font,
+					      Change(params().tracking_changes ?
+ 					             Change::INSERTED : Change::UNCHANGED));
 					++pos;
 				}
-				space_inserted = true;
 			}
+			space_inserted = true;
 		} else if (!isPrintable(*cit)) {
 			// Ignore unprintables
 			continue;
 		} else {
 			// just insert the character
-			par.insertChar(pos, *cit, font, Change(Change::INSERTED));
+			par.insertChar(pos, *cit, font, Change(params().tracking_changes ?
+			                                 Change::INSERTED : Change::UNCHANGED));
 			++pos;
 			space_inserted = (*cit == ' ');
 		}

Reply via email to