From 8c74ae8414d23a4d81a16f7da602c004455789c7 Mon Sep 17 00:00:00 2001 From: TangoCash Date: Mon, 7 Oct 2024 20:24:49 +0200 Subject: [PATCH] fix faulty epg, e.g. ATV Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/7faf515f1e4ce22591412e678bde827ac3fb0efa Author: TangoCash Date: 2024-10-07 (Mon, 07 Oct 2024) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/eitd/SIevents.cpp | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/eitd/SIevents.cpp b/src/eitd/SIevents.cpp index e57e96ee9..d4f994c32 100644 --- a/src/eitd/SIevents.cpp +++ b/src/eitd/SIevents.cpp @@ -518,6 +518,7 @@ void SIevent::setName(unsigned int lang, const std::string &name) { std::string tmp = name; std::replace(tmp.begin(), tmp.end(), '\n', ' '); + std::replace(tmp.begin(), tmp.end(), '\t', ' '); if (CSectionsdClient::LANGUAGE_MODE_OFF == SIlanguage::getMode()) lang = 0; @@ -553,18 +554,26 @@ void SIevent::setText(const std::string &lang, const std::string &text) void SIevent::setText(unsigned int lang, const std::string &text) { + std::string tmp = text; + + std::string::size_type index = 0; + while ((index = tmp.find("\\n", index)) != std::string::npos) { + tmp.replace(index, 2, "\n"); + ++index; + } + if (CSectionsdClient::LANGUAGE_MODE_OFF == SIlanguage::getMode()) lang = 0; for (std::list::iterator it = langData.begin(); it != langData.end(); ++it) if (it->lang == lang) { - it->text[SILangData::langText] = text; + it->text[SILangData::langText] = tmp; return; } SILangData ld; ld.lang = lang; - ld.text[SILangData::langText] = text; + ld.text[SILangData::langText] = tmp; langData.push_back(ld); } @@ -587,26 +596,34 @@ void SIevent::appendExtendedText(const std::string &lang, const std::string &tex void SIevent::appendExtendedText(unsigned int lang, const std::string &text, bool append, bool endappend) { + std::string tmp = text; + + std::string::size_type index = 0; + while ((index = tmp.find("\\n", index)) != std::string::npos) { + tmp.replace(index, 2, "\n"); + ++index; + } + if (CSectionsdClient::LANGUAGE_MODE_OFF == SIlanguage::getMode()) lang = 0; for (std::list::iterator it = langData.begin(); it != langData.end(); ++it) if (it->lang == lang) { if (append){ - it->text[SILangData::langExtendedText] += text; + it->text[SILangData::langExtendedText] += tmp; if(endappend && it->text[SILangData::langExtendedText].capacity() > it->text[SILangData::langExtendedText].size()){ it->text[SILangData::langExtendedText].reserve(); } } else{ - it->text[SILangData::langExtendedText] = text; + it->text[SILangData::langExtendedText] = tmp; } return; } SILangData ld; ld.lang = lang; - ld.text[SILangData::langExtendedText] = text; + ld.text[SILangData::langExtendedText] = tmp; langData.push_back(ld); }