Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37903232
en ru br
ALT Linux repos
S:23.04.3-alt1

Group :: Office
RPM: kde5-okular

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: alt-chm-encoding.patch
Download


diff --git a/generators/chm/generator_chm.cpp b/generators/chm/generator_chm.cpp
index 4913f46..ed0ff1e 100644
--- a/generators/chm/generator_chm.cpp
+++ b/generators/chm/generator_chm.cpp
@@ -185,6 +185,13 @@ void CHMGenerator::slotCompleted()
     if (!m_request)
         return;
 
+    if( m_syncGen->encoding() == QStringLiteral("ISO-8859-1") ) {
+        const QTextCodec *txt_codec = m_file->currentTextCodec();
+        if( txt_codec ) {
+            m_syncGen->setEncoding(QLatin1String(txt_codec->name()), true);
+        }
+    }
+
     QImage image(m_request->width(), m_request->height(), QImage::Format_ARGB32);
     image.fill(Qt::white);
 
--- a/generators/chm/lib/ebook.h
+++ b/generators/chm/lib/ebook.h
@@ -211,6 +211,14 @@ public:
     virtual bool setCurrentEncoding(const char *encoding) = 0;
 
     /*!
+     * \brief Gets the current text codec or 0 if absent
+     * \return The current text codec.
+     *
+     * \ingroup encoding
+     */
+    virtual const QTextCodec * currentTextCodec() const = 0;
+
+     /*!
      * \brief Checks if this kind of URL is supported by the ebook format (i.e. could be passed to ebook functions)
      * \param url The url to check
      */
diff --git a/generators/chm/lib/ebook_chm.cpp b/generators/chm/lib/ebook_chm.cpp
index 732d29f..65f438f 100644
--- a/generators/chm/lib/ebook_chm.cpp
+++ b/generators/chm/lib/ebook_chm.cpp
@@ -817,6 +817,11 @@ bool EBook_CHM::setCurrentEncoding( const char * encoding )
 	return changeFileEncoding( encoding );
 }
 
+const QTextCodec * EBook_CHM::currentTextCodec( ) const
+{
+	return m_textCodec;
+}
+
 bool EBook_CHM::isSupportedUrl(const QUrl &url)
 {
 	return url.scheme() == URL_SCHEME_CHM;
--- a/generators/chm/lib/ebook_chm.h
+++ b/generators/chm/lib/ebook_chm.h
@@ -173,6 +173,14 @@ public:
     bool setCurrentEncoding(const char *encoding) override;
 
     /*!
+     * \brief Gets the current CHM archive text codec or 0 if absent
+     * \return The current text codec.
+     *
+     * \ingroup encoding
+     */
+    const QTextCodec * currentTextCodec() const;
+
+     /*!
      * \brief Checks if this kind of URL is supported by the ebook format (i.e. could be passed to ebook functions)
      * \param url The url to check
      */
diff --git a/generators/chm/lib/ebook_epub.cpp b/generators/chm/lib/ebook_epub.cpp
index 83a7773..3a4339a 100644
--- a/generators/chm/lib/ebook_epub.cpp
+++ b/generators/chm/lib/ebook_epub.cpp
@@ -169,6 +169,12 @@ bool EBook_EPUB::setCurrentEncoding(const char *)
 	abort();
 }
 
+const QTextCodec * EBook_EPUB::currentTextCodec( ) const
+{
+	return nullptr;
+}
+
+
 bool EBook_EPUB::isSupportedUrl(const QUrl &url)
 {
 	return url.scheme() == URL_SCHEME_EPUB;
--- a/generators/chm/lib/ebook_epub.h
+++ b/generators/chm/lib/ebook_epub.h
@@ -162,6 +162,14 @@ public:
     bool setCurrentEncoding(const char *encoding) override;
 
     /*!
+     * \brief Gets the current text codec or 0 if absent
+     * \return The current text codec.
+     *
+     * \ingroup encoding
+     */
+    virtual const QTextCodec * currentTextCodec() const;
+
+     /*!
      * \brief Checks if this kind of URL is supported by the ebook format (i.e. could be passed to ebook functions)
      * \param url The url to check
      */
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin