From e67eca948764944ccc1d1d3ae2bf46192bff5954 Mon Sep 17 00:00:00 2001 From: "Marshall T. Vandegrift" Date: Sat, 26 Jul 2008 07:56:39 -0400 Subject: [PATCH] Fix #416 (Error converting .lit file) --- src/calibre/ebooks/lit/reader.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/calibre/ebooks/lit/reader.py b/src/calibre/ebooks/lit/reader.py index a0b170c8fb..683f8d8dad 100644 --- a/src/calibre/ebooks/lit/reader.py +++ b/src/calibre/ebooks/lit/reader.py @@ -576,20 +576,21 @@ class LitReader(object): mime_type, raw = consume_sized_utf8_string(raw, zpad=True) self.manifest[internal] = ManifestItem( original, internal, mime_type, offset, root, state) - # Remove any common path elements mlist = self.manifest.values() - shared = mlist[0].path - for item in mlist[1:]: - path = item.path - while shared and not path.startswith(shared): - try: shared = shared[:shared.rindex("/", 0, -2) + 1] - except ValueError: shared = None - if not shared: - break - if shared: - slen = len(shared) - for item in mlist: - item.path = item.path[slen:] + # Remove any common path elements + if len(mlist) > 1: + shared = mlist[0].path + for item in mlist[1:]: + path = item.path + while shared and not path.startswith(shared): + try: shared = shared[:shared.rindex("/", 0, -2) + 1] + except ValueError: shared = None + if not shared: + break + if shared: + slen = len(shared) + for item in mlist: + item.path = item.path[slen:] # Fix any straggling absolute paths for item in mlist: if item.path[0] == '/':