From 9e670738044166cdd0bf566325bf610bfb802821 Mon Sep 17 00:00:00 2001 From: Jaroslav Rohel Date: Mon, 24 Jun 2019 16:34:47 +0200 Subject: [PATCH] [config] ignore trailing blank lines of multiline value (RhBug:1722493) Parser supports multiline values. Example: key = value first line value second line If a line starts with whitespaces and it is not a section name, it is treated as continuation of previous key=value line. This commit ignores trailing blank lines. So newline characters are trimmed out from the end of line. --- libdnf/utils/iniparser/iniparser.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libdnf/utils/iniparser/iniparser.cpp b/libdnf/utils/iniparser/iniparser.cpp index c77c5ca..14fef74 100644 --- a/libdnf/utils/iniparser/iniparser.cpp +++ b/libdnf/utils/iniparser/iniparser.cpp @@ -81,6 +81,9 @@ IniParser::IniParser(std::unique_ptr && inputStream) } void IniParser::trimValue() noexcept { + auto end = value.find_last_not_of(DELIMITER); + if (end != value.npos) + value.resize(end + 1); if (value.length() > 1 && value.front() == value.back() && (value.front() == '\"' || value.front() == '\'')) { -- libgit2 0.28.2