Properly escape special characters (!, @, |) in nomenclature output

This commit is contained in:
Juergen Spitzmueller 2024-08-12 18:22:57 +02:00
parent b0fd84ea96
commit b6cd31e99a
2 changed files with 7 additions and 3 deletions

View File

@ -550,9 +550,11 @@ docstring InsetCommandParams::prepareCommand(OutputParams const & runparams,
// INDEX_ESCAPE is independent of the others
if (handling & ParamInfo::HANDLING_INDEX_ESCAPE) {
// Now escape special commands
static docstring const quote = from_ascii("\"");
// We only use this for nomencl, which has the
// escape char '%'
static docstring const esc_char = from_ascii("%");
int const nchars_escape = 4;
static char_type const chars_escape[nchars_escape] = { '"', '@', '|', '!' };
static char_type const chars_escape[nchars_escape] = { '@', '|', '!' };
if (!result.empty()) {
// The characters in chars_name[] need to be changed to a command when
@ -561,7 +563,7 @@ docstring InsetCommandParams::prepareCommand(OutputParams const & runparams,
for (size_t i = 0, pos;
(pos = result.find(chars_escape[k], i)) != string::npos;
i = pos + 2)
result.replace(pos, 1, quote + chars_escape[k]);
result.replace(pos, 1, esc_char + chars_escape[k]);
}
}

View File

@ -61,6 +61,8 @@ What's new
- When exporting to MathML, the argument of the \boxed{} macro is now
correctly treated as math.
- Properly escape special characters (!, @, |) in nomenclature output.
* USER INTERFACE