diff --git a/src/calibre/ebooks/chm/input.py b/src/calibre/ebooks/chm/input.py index b5074e8a72..9aa8272ee9 100644 --- a/src/calibre/ebooks/chm/input.py +++ b/src/calibre/ebooks/chm/input.py @@ -22,7 +22,7 @@ class CHMInput(InputFormatPlugin): def _chmtohtml(self, output_dir, chm_path, no_images, log, debug_dump=False): from calibre.ebooks.chm.reader import CHMReader log.debug('Opening CHM file') - rdr = CHMReader(chm_path, log, self.opts) + rdr = CHMReader(chm_path, log, input_encoding=self.opts.input_encoding) log.debug('Extracting CHM to %s' % output_dir) rdr.extract_content(output_dir, debug_dump=debug_dump) self._chm_reader = rdr diff --git a/src/calibre/ebooks/chm/reader.py b/src/calibre/ebooks/chm/reader.py index 5f23ad0241..05ec388a9b 100644 --- a/src/calibre/ebooks/chm/reader.py +++ b/src/calibre/ebooks/chm/reader.py @@ -40,14 +40,14 @@ class CHMError(Exception): pass class CHMReader(CHMFile): - def __init__(self, input, log, opts): + def __init__(self, input, log, input_encoding=None): CHMFile.__init__(self) if isinstance(input, unicode): input = input.encode(filesystem_encoding) if not self.LoadCHM(input): raise CHMError("Unable to open CHM file '%s'"%(input,)) self.log = log - self.opts = opts + self.input_encoding = input_encoding self._sourcechm = input self._contents = None self._playorder = 0 @@ -156,8 +156,8 @@ class CHMReader(CHMFile): break def _reformat(self, data, htmlpath): - if self.opts.input_encoding: - data = data.decode(self.opts.input_encoding) + if self.input_encoding: + data = data.decode(self.input_encoding) try: data = xml_to_unicode(data, strip_encoding_pats=True)[0] soup = BeautifulSoup(data)