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
|
||||
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):
|
||||
(raw1, syntax1), (raw2, syntax2) = map(get_decoded_raw, (left, right))
|
||||
@ -373,6 +379,13 @@ class Diff(Dialog):
|
||||
if identical:
|
||||
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):
|
||||
with self:
|
||||
identical = self.apply_diff(identical_msg or _('The directories are identical'), *dir_diff(left, right))
|
||||
|
Loading…
x
Reference in New Issue
Block a user