[LyX/master] Only strip outer braces in listings options
Juergen Spitzmueller
spitz at lyx.org
Wed Jan 17 12:18:18 UTC 2024
commit b29b0f8754d79cde10c766a9044fc6e933649ae8
Author: Juergen Spitzmueller <spitz at lyx.org>
Date: Wed Jan 17 14:45:09 2024 +0100
Only strip outer braces in listings options
trim stripped also multiple subsequent braces
---
src/insets/InsetInclude.cpp | 18 +++++++++++++++---
1 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/src/insets/InsetInclude.cpp b/src/insets/InsetInclude.cpp
index 870310e..9161962 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);
}
More information about the lyx-cvs
mailing list