[meld] Use BufferLines shims in merging to avoid Unicode linebreak issues
- From: Kai Willadsen <kaiw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [meld] Use BufferLines shims in merging to avoid Unicode linebreak issues
- Date: Tue, 25 Sep 2012 20:44:56 +0000 (UTC)
commit 3c9529c2e39af90ea3f5e4fea58ea13f5ac942bc
Author: Kai Willadsen <kai willadsen gmail com>
Date: Tue Sep 25 05:50:45 2012 +1000
Use BufferLines shims in merging to avoid Unicode linebreak issues
meld/filemerge.py | 14 +++-----------
meld/merge.py | 4 ++++
2 files changed, 7 insertions(+), 11 deletions(-)
---
diff --git a/meld/filemerge.py b/meld/filemerge.py
index 4f2a3aa..c83888c 100644
--- a/meld/filemerge.py
+++ b/meld/filemerge.py
@@ -45,23 +45,15 @@ class FileMerge(filediff.FileDiff):
def _merge_files(self):
yield _("[%s] Computing differences") % self.label_text
- panetext = []
- for b in self.textbuffer[:self.num_panes]:
- start, end = b.get_bounds()
- text = unicode(b.get_text(start, end, False), 'utf8')
- panetext.append(text)
- lines = [x.split("\n") for x in panetext]
- filteredpanetext = [self._filter_text(p) for p in panetext]
- filteredlines = [x.split("\n") for x in filteredpanetext]
merger = merge.Merger()
- step = merger.initialize(filteredlines, lines)
+ step = merger.initialize(self.buffer_filtered, self.buffer_texts)
while step.next() is None:
yield 1
yield _("[%s] Merging files") % self.label_text
- for panetext[1] in merger.merge_3_files():
+ for merged_text in merger.merge_3_files():
yield 1
self.linediffer.unresolved = merger.unresolved
- self.textbuffer[1].set_text(panetext[1])
+ self.textbuffer[1].set_text(merged_text)
self.textbuffer[1].data.modified = True
self.recompute_label()
yield 1
diff --git a/meld/merge.py b/meld/merge.py
index 9e47f10..d68bb97 100644
--- a/meld/merge.py
+++ b/meld/merge.py
@@ -231,6 +231,8 @@ class Merger(diffutil.Differ):
for i in range(lastline, baselen, 1):
mergedtext.append(self.texts[1][i])
+ # FIXME: We need to obtain the original line endings from the lines
+ # that were merged and use those here instead of assuming '\n'.
yield "\n".join(mergedtext)
def merge_2_files(self, fromindex, toindex):
@@ -253,4 +255,6 @@ class Merger(diffutil.Differ):
for i in range(lastline, baselen):
mergedtext.append(self.texts[toindex][i])
+ # FIXME: We need to obtain the original line endings from the lines
+ # that were merged and use those here instead of assuming '\n'.
yield "\n".join(mergedtext)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]