diff --git a/src/librssguard-standard/src/parsers/atomparser.cpp b/src/librssguard-standard/src/parsers/atomparser.cpp index 9e5428f82..9c558bc47 100644 --- a/src/librssguard-standard/src/parsers/atomparser.cpp +++ b/src/librssguard-standard/src/parsers/atomparser.cpp @@ -238,6 +238,9 @@ QPair> AtomParser::guessFeed(const QByteArray xml_contents_encoded = QString::fromUtf8(content); } + // NOTE: Some XMLs have whitespace before XML declaration, erase it. + xml_contents_encoded = xml_contents_encoded.trimmed(); + // Feed XML was obtained, guess it now. QDomDocument xml_document; QString error_msg; diff --git a/src/librssguard-standard/src/parsers/feedparser.cpp b/src/librssguard-standard/src/parsers/feedparser.cpp index 1a646edcc..736bd0c12 100644 --- a/src/librssguard-standard/src/parsers/feedparser.cpp +++ b/src/librssguard-standard/src/parsers/feedparser.cpp @@ -22,6 +22,9 @@ FeedParser::FeedParser(QString data, DataType is_xml) } if (m_dataType == DataType::Xml) { + // NOTE: Some XMLs have whitespace before XML declaration, erase it. + m_data = m_data.trimmed(); + // XML. QString error; diff --git a/src/librssguard-standard/src/parsers/rdfparser.cpp b/src/librssguard-standard/src/parsers/rdfparser.cpp index f3e0bb857..c9273f3fe 100644 --- a/src/librssguard-standard/src/parsers/rdfparser.cpp +++ b/src/librssguard-standard/src/parsers/rdfparser.cpp @@ -188,6 +188,9 @@ QPair> RdfParser::guessFeed(const QByteArray& xml_contents_encoded = QString::fromUtf8(content); } + // NOTE: Some XMLs have whitespace before XML declaration, erase it. + xml_contents_encoded = xml_contents_encoded.trimmed(); + // Feed XML was obtained, guess it now. QDomDocument xml_document; QString error_msg; diff --git a/src/librssguard-standard/src/parsers/rssparser.cpp b/src/librssguard-standard/src/parsers/rssparser.cpp index 1b90f1002..5a1e8b849 100644 --- a/src/librssguard-standard/src/parsers/rssparser.cpp +++ b/src/librssguard-standard/src/parsers/rssparser.cpp @@ -188,6 +188,9 @@ QPair> RssParser::guessFeed(const QByteArray& xml_contents_encoded = QString::fromUtf8(content); } + // NOTE: Some XMLs have whitespace before XML declaration, erase it. + xml_contents_encoded = xml_contents_encoded.trimmed(); + // Feed XML was obtained, guess it now. QDomDocument xml_document; QString error_msg; diff --git a/src/librssguard/miscellaneous/application.cpp b/src/librssguard/miscellaneous/application.cpp index 600beadd9..df9347630 100644 --- a/src/librssguard/miscellaneous/application.cpp +++ b/src/librssguard/miscellaneous/application.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #if defined(NO_LITE) && defined(MEDIAPLAYER_LIBMPV_OPENGL) #include @@ -558,9 +559,11 @@ QString Application::configFolder() const { } QString Application::userDataAppFolder() const { + static int major_version = QVersionNumber::fromString(QSL(APP_VERSION)).majorVersion(); + // In "app" folder, we would like to separate all user data into own subfolder, // therefore stick to "data" folder in this mode. - return QDir::toNativeSeparators(applicationDirPath() + QDir::separator() + QSL("data4")); + return QDir::toNativeSeparators(applicationDirPath() + QDir::separator() + QSL("data%1").arg(major_version)); } QString Application::userDataFolder() { @@ -597,12 +600,13 @@ QStringList Application::replaceUserDataFolderPlaceholder(QStringList texts) con QString Application::userDataHomeFolder() const { QString pth; + static int major_version = QVersionNumber::fromString(QSL(APP_VERSION)).majorVersion(); #if defined(Q_OS_ANDROID) return pth = IOFactory::getSystemFolder(QStandardPaths::GenericDataLocation) + QDir::separator() + QSL(APP_NAME) + - QSL(" 4"); + QSL(" %1").arg(major_version); #else - return pth = configFolder() + QDir::separator() + QSL(APP_NAME) + QSL(" 4"); + return pth = configFolder() + QDir::separator() + QSL(APP_NAME) + QSL(" %1").arg(major_version); #endif return QDir::toNativeSeparators(pth);