mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Add a convenient way to display string diffs
This commit is contained in:
parent
e6380faa01
commit
b9e071e72b
@ -124,6 +124,12 @@ def get_decoded_raw(name):
|
|||||||
pass
|
pass
|
||||||
return raw, syntax
|
return raw, syntax
|
||||||
|
|
||||||
|
def string_diff(left, right, left_syntax=None, right_syntax=None, left_name='left', right_name='right'):
|
||||||
|
left, right = unicode(left), unicode(right)
|
||||||
|
cache = Cache()
|
||||||
|
cache.set_left(left_name, left), cache.set_right(right_name, right)
|
||||||
|
changed_names = {} if left == right else {left_name:right_name}
|
||||||
|
return cache, {left_name:left_syntax, right_name:right_syntax}, changed_names, {}, set(), set()
|
||||||
|
|
||||||
def file_diff(left, right):
|
def file_diff(left, right):
|
||||||
(raw1, syntax1), (raw2, syntax2) = map(get_decoded_raw, (left, right))
|
(raw1, syntax1), (raw2, syntax2) = map(get_decoded_raw, (left, right))
|
||||||
@ -373,6 +379,13 @@ class Diff(Dialog):
|
|||||||
if identical:
|
if identical:
|
||||||
self.reject()
|
self.reject()
|
||||||
|
|
||||||
|
def string_diff(self, left, right, **kw):
|
||||||
|
with self:
|
||||||
|
identical = self.apply_diff(kw.pop('identical_msg', None) or _('The strings are identical'), *string_diff(left, right, **kw))
|
||||||
|
self.view.finalize()
|
||||||
|
if identical:
|
||||||
|
self.reject()
|
||||||
|
|
||||||
def dir_diff(self, left, right, identical_msg=None):
|
def dir_diff(self, left, right, identical_msg=None):
|
||||||
with self:
|
with self:
|
||||||
identical = self.apply_diff(identical_msg or _('The directories are identical'), *dir_diff(left, right))
|
identical = self.apply_diff(identical_msg or _('The directories are identical'), *dir_diff(left, right))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user