From e6ded55f62fb972ef15a22a0dee97ac5f82338d0 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Sun, 16 Oct 2011 14:04:39 +0200 Subject: [PATCH 1/4] Ensure that set_metadata does not attempt to copy a multiple text field to a non-multiple text field. --- src/calibre/library/database2.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index 0da42e06fe..0c27cc6b0e 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -2103,7 +2103,9 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): user_mi = mi.get_all_user_metadata(make_copy=False) for key in user_mi.iterkeys(): if key in self.field_metadata and \ - user_mi[key]['datatype'] == self.field_metadata[key]['datatype']: + user_mi[key]['datatype'] == self.field_metadata[key]['datatype'] and \ + (user_mi[key]['datatype'] != 'text' or + user_mi[key]['is_multiple'] == self.field_metadata[key]['is_multiple']): val = mi.get(key, None) if force_changes or val is not None: doit(self.set_custom, id, val=val, extra=mi.get_extra(key), From 3c91e95a27490b760742de6e0879e9d33707bc02 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 16 Oct 2011 19:13:09 +0530 Subject: [PATCH 2/4] Fix #875384 (Android Device Not detected - Freescale i.MX515 USB device) --- src/calibre/devices/android/driver.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/calibre/devices/android/driver.py b/src/calibre/devices/android/driver.py index f6b70794d4..b0e0fa4008 100644 --- a/src/calibre/devices/android/driver.py +++ b/src/calibre/devices/android/driver.py @@ -49,6 +49,10 @@ class ANDROID(USBMS): 0x7086 : [0x0226], 0x70a8: [0x9999], 0x42c4 : [0x216], 0x70c6 : [0x226] }, + # Freescale + 0x15a2 : { + 0x0c01 : [0x226] + }, # Sony Ericsson 0xfce : { From 52f54d22f4423c0d2298c91a4fe68fd617b58343 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 16 Oct 2011 19:16:47 +0530 Subject: [PATCH 3/4] Fix #875257 (Add T-Mobile Move to Android driver) --- src/calibre/devices/android/driver.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/calibre/devices/android/driver.py b/src/calibre/devices/android/driver.py index b0e0fa4008..c16e3e6f5c 100644 --- a/src/calibre/devices/android/driver.py +++ b/src/calibre/devices/android/driver.py @@ -54,6 +54,11 @@ class ANDROID(USBMS): 0x0c01 : [0x226] }, + # Alcatel + 0x05c6 : { + 0x9018 : [0x0226], + }, + # Sony Ericsson 0xfce : { 0xd12e : [0x0100], @@ -143,7 +148,8 @@ class ANDROID(USBMS): VENDOR_NAME = ['HTC', 'MOTOROLA', 'GOOGLE_', 'ANDROID', 'ACER', 'GT-I5700', 'SAMSUNG', 'DELL', 'LINUX', 'GOOGLE', 'ARCHOS', 'TELECHIP', 'HUAWEI', 'T-MOBILE', 'SEMC', 'LGE', 'NVIDIA', - 'GENERIC-', 'ZTE', 'MID', 'QUALCOMM', 'PANDIGIT', 'HYSTON', 'VIZIO'] + 'GENERIC-', 'ZTE', 'MID', 'QUALCOMM', 'PANDIGIT', 'HYSTON', + 'VIZIO', 'GOOGLE', 'FREESCAL'] WINDOWS_MAIN_MEM = ['ANDROID_PHONE', 'A855', 'A853', 'INC.NEXUS_ONE', '__UMS_COMPOSITE', '_MB200', 'MASS_STORAGE', '_-_CARD', 'SGH-I897', 'GT-I9000', 'FILE-STOR_GADGET', 'SGH-T959', 'SAMSUNG_ANDROID', @@ -154,7 +160,7 @@ class ANDROID(USBMS): 'MB860', 'MULTI-CARD', 'MID7015A', 'INCREDIBLE', 'A7EB', 'STREAK', 'MB525', 'ANDROID2.3', 'SGH-I997', 'GT-I5800_CARD', 'MB612', 'GT-S5830_CARD', 'GT-S5570_CARD', 'MB870', 'MID7015A', - 'ALPANDIGITAL', 'ANDROID_MID', 'VTAB1008'] + 'ALPANDIGITAL', 'ANDROID_MID', 'VTAB1008', 'EMX51_BBG_ANDROI'] WINDOWS_CARD_A_MEM = ['ANDROID_PHONE', 'GT-I9000_CARD', 'SGH-I897', 'FILE-STOR_GADGET', 'SGH-T959', 'SAMSUNG_ANDROID', 'GT-P1000_CARD', 'A70S', 'A101IT', '7', 'INCREDIBLE', 'A7EB', 'SGH-T849_CARD', From 4736f0df8af97fad8d311880a74e68b3d2f071a9 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 16 Oct 2011 19:23:48 +0530 Subject: [PATCH 4/4] Fix #873288 (Python crashes on converting (X)html containing links with "generic" signs) --- src/calibre/ebooks/conversion/plumber.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/calibre/ebooks/conversion/plumber.py b/src/calibre/ebooks/conversion/plumber.py index 3a18b40539..defb2b837d 100644 --- a/src/calibre/ebooks/conversion/plumber.py +++ b/src/calibre/ebooks/conversion/plumber.py @@ -693,6 +693,8 @@ OptionRecommendation(name='sr3_replace', def unarchive(self, path, tdir): extract(path, tdir) files = list(walk(tdir)) + files = [f if isinstance(f, unicode) else f.decode(filesystem_encoding) + for f in files] from calibre.customize.ui import available_input_formats fmts = available_input_formats() for x in ('htm', 'html', 'xhtm', 'xhtml'): fmts.remove(x)