From b29b0f8754d79cde10c766a9044fc6e933649ae8 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Wed, 17 Jan 2024 14:45:09 +0100 Subject: [PATCH] Only strip outer braces in listings options trim stripped also multiple subsequent braces --- src/insets/InsetInclude.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/insets/InsetInclude.cpp b/src/insets/InsetInclude.cpp index 870310ef2d..916196211a 100644 --- a/src/insets/InsetInclude.cpp +++ b/src/insets/InsetInclude.cpp @@ -176,6 +176,16 @@ char_type replaceCommaInBraces(docstring & params) return private_char; } +docstring stripOuterBraces(docstring & str) +{ + // trim only first and last occurrence of { and } + if (prefixIs(str, from_ascii("{"))) + str = str.substr(1, docstring::npos); + if (suffixIs(str, from_ascii("}"))) + str = str.substr(0, str.size() - 1); + return str; +} + } // namespace @@ -699,13 +709,15 @@ void InsetInclude::latex(otexstream & os, OutputParams const & runparams) const language = opts[i].substr(9); opts.erase(opts.begin() + i--); } else if (prefixIs(opts[i], from_ascii("caption="))) { - caption = params().prepareCommand(runparams, trim(opts[i].substr(8), "{}"), + caption = opts[i].substr(8); + caption = params().prepareCommand(runparams, stripOuterBraces(caption), ParamInfo::HANDLING_LATEXIFY); opts.erase(opts.begin() + i--); if (!use_minted) latexed_opts.push_back(from_ascii("caption={") + caption + "}"); } else if (prefixIs(opts[i], from_ascii("label="))) { - label = params().prepareCommand(runparams, trim(opts[i].substr(6), "{}"), + label = opts[i].substr(6); + label = params().prepareCommand(runparams, stripOuterBraces(label), ParamInfo::HANDLING_ESCAPE); opts.erase(opts.begin() + i--); if (!use_minted) @@ -713,7 +725,7 @@ void InsetInclude::latex(otexstream & os, OutputParams const & runparams) const } if (use_minted && !label.empty()) { if (isfloat || !caption.empty()) - label = trim(label, "{}"); + label = stripOuterBraces(label); else opts.push_back(from_ascii("label=") + label); } -- 2.39.5