diff --git a/src/calibre/devices/kindle/apnx.py b/src/calibre/devices/kindle/apnx.py index ee519750e0..178c1091f3 100644 --- a/src/calibre/devices/kindle/apnx.py +++ b/src/calibre/devices/kindle/apnx.py @@ -164,7 +164,7 @@ class APNXBuilder(object): if c == '/': closing = True continue - elif c in ('d', 'p'): + elif c == 'p': if closing: in_p = False else: diff --git a/src/calibre/ebooks/metadata/extz.py b/src/calibre/ebooks/metadata/extz.py index 1bda263015..021450fca5 100644 --- a/src/calibre/ebooks/metadata/extz.py +++ b/src/calibre/ebooks/metadata/extz.py @@ -70,7 +70,7 @@ def set_metadata(stream, mi): # Update the metadata. old_mi = opf.to_book_metadata() old_mi.smart_update(mi) - opf.smart_update(metadata_to_opf(old_mi)) + opf.smart_update(metadata_to_opf(old_mi), replace_metadata=True) newopf = StringIO(opf.render()) safe_replace(stream, opf_path, newopf, extra_replacements=replacements, add_missing=True) diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index 26f6788a75..1cfb04921d 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -439,10 +439,16 @@ class BooksView(QTableView): # {{{ if tweaks['sort_columns_at_startup'] is not None: sh = [] - for c,d in tweaks['sort_columns_at_startup']: - if not isinstance(d, bool): - d = True if d == 0 else False - sh.append((c, d)) + try: + for c,d in tweaks['sort_columns_at_startup']: + if not isinstance(d, bool): + d = True if d == 0 else False + sh.append((c, d)) + except: + # Ignore invalid tweak values as users seem to often get them + # wrong + import traceback + traceback.print_exc() old_state['sort_history'] = sh self.apply_state(old_state)