src/cm/views/texts.py
changeset 250 cae2de810f77
parent 240 a00efaf32ea7
child 254 94afd8e00c74
--- a/src/cm/views/texts.py	Wed Apr 14 17:05:14 2010 +0200
+++ b/src/cm/views/texts.py	Thu Apr 15 14:33:56 2010 +0200
@@ -15,6 +15,7 @@
 from cm.utils.comment_positioning import compute_new_comment_positions, \
     insert_comment_markers
 from cm.utils.spannifier import spannify
+from cm.utils.diff import diff_match_patch2
 from cm.views import get_keys_from_dict, get_textversion_by_keys_or_404, get_text_by_keys_or_404, redirect
 from cm.views.export import content_export2, content_export
 from cm.views.user import AnonUserRoleForm, cm_login
@@ -499,8 +500,9 @@
                                             v2.content)
     if mode=='1':
         # alternate diff
-        from cm.utils.diff import text_diff
-        content = text_diff(v1.get_content(), v2.get_content())
+        #from cm.utils.diff import text_diff
+        dif = diff_match_patch2()
+        content = dif.diff_prettyHtml_one_way(dif.diff_main(v1.get_content(), v2.get_content()), mode='ins_del')
 
     template_dict = {
                      'text' : text,
@@ -591,7 +593,14 @@
                     except StopIteration:
                         break
                 minus, plus = diff_decorate(minus, plus)
-                res.append('<tr><td class="diff-marker">-</td><td class="diff-deletedline">%s</td><td class="diff-separator"></td><td class="diff-marker">+</td><td class="diff-addedline">%s</td></tr>' % ('<br />'.join(minus), '<br />'.join(plus)))
+                
+                
+                minus, plus = '<br />'.join(minus), '<br />'.join(plus)                
+                dif = diff_match_patch2()
+                p = dif.diff_prettyHtml_one_way(dif.diff_main(minus, plus), 1)
+                minus = dif.diff_prettyHtml_one_way(dif.diff_main(minus, plus), 2)
+                plus = p
+                res.append('<tr><td class="diff-marker">-</td><td class="diff-deletedline">%s</td><td class="diff-separator"></td><td class="diff-marker">+</td><td class="diff-addedline">%s</td></tr>' % (minus, plus))
              
         index += 1
     res.append('</tbody></table>')