Fix bug in OEBWriter that could cause writing out of resources in subdirectories with URL unsafe names to fail

This commit is contained in:
Kovid Goyal 2010-01-16 14:21:54 -07:00
parent 1318348d57
commit fd70e44ecb
3 changed files with 9 additions and 8 deletions

View File

@ -421,16 +421,16 @@ class DirContainer(object):
return f.read() return f.read()
def write(self, path, data): def write(self, path, data):
path = os.path.join(self.rootdir, path) path = os.path.join(self.rootdir, urlunquote(path))
dir = os.path.dirname(path) dir = os.path.dirname(path)
if not os.path.isdir(dir): if not os.path.isdir(dir):
os.makedirs(dir) os.makedirs(dir)
with open(urlunquote(path), 'wb') as f: with open(path, 'wb') as f:
return f.write(data) return f.write(data)
def exists(self, path): def exists(self, path):
path = os.path.join(self.rootdir, path) path = os.path.join(self.rootdir, urlunquote(path))
return os.path.isfile(urlunquote(path)) return os.path.isfile(path)
def namelist(self): def namelist(self):
names = [] names = []

View File

@ -62,6 +62,7 @@ class OEBWriter(object):
output = DirContainer(path, oeb.log) output = DirContainer(path, oeb.log)
for item in oeb.manifest.values(): for item in oeb.manifest.values():
output.write(item.href, str(item)) output.write(item.href, str(item))
if version == 1: if version == 1:
metadata = oeb.to_opf1() metadata = oeb.to_opf1()
elif version == 2: elif version == 2:

View File

@ -2245,7 +2245,7 @@ msgstr ""
"kommando ...\n" "kommando ...\n"
"\n" "\n"
"Kommandot kan vara något av följande:\n" "Kommandot kan vara något av följande:\n"
"[%% kommandon]\n" "[%%commands]\n"
"\n" "\n"
"Använd %prog kommando --help för att få mer information om ett visst " "Använd %prog kommando --help för att få mer information om ett visst "
"kommando\n" "kommando\n"
@ -6213,7 +6213,7 @@ msgstr "<p> För hjälp se: <a href=\"%s\"> Användarhandbok </ a> <br>"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:224 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:224
msgid "<b>%s</b>: %s by <b>Kovid Goyal %%(version)s</b><br>%%(device)s</p>" msgid "<b>%s</b>: %s by <b>Kovid Goyal %%(version)s</b><br>%%(device)s</p>"
msgstr "" msgstr ""
"<b>%s </ b>:%s av <b> Kovid Goyal%% (version) s </ b> <br>%% (enhet) s </ p>" "<b>%s </ b>:%s av <b> Kovid Goyal %%(version)s </ b> <br>%%(device)s </ p>"
#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:247 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:247
msgid "Edit metadata individually" msgid "Edit metadata individually"
@ -7826,9 +7826,9 @@ msgid ""
"\n" "\n"
"For help on an individual command: %%prog command --help\n" "For help on an individual command: %%prog command --help\n"
msgstr "" msgstr ""
"%% prog kommando [alternativ] [argument]\n" "%%prog kommando [alternativ] [argument]\n"
"\n" "\n"
"%% PROG är kommandoradsgränssnitt till calibres bokdatabasen.\n" "%%prog är kommandoradsgränssnitt till calibres bokdatabasen.\n"
"\n" "\n"
"kommando är en av:\n" "kommando är en av:\n"
" %s\n" " %s\n"