From: Enrico Forestieri Date: Mon, 26 Jun 2017 21:10:30 +0000 (+0200) Subject: Fix bug #10705 X-Git-Tag: 2.2.4~106 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=68bc50502996a168874723c65edfecebc81af846;p=features.git Fix bug #10705 Seemingly, std::regex does not account for newlines in the string. --- diff --git a/src/insets/InsetListings.cpp b/src/insets/InsetListings.cpp index 207e98bacd..66dca57fdd 100644 --- a/src/insets/InsetListings.cpp +++ b/src/insets/InsetListings.cpp @@ -420,7 +420,11 @@ docstring InsetListings::getCaption(OutputParams const & runparams) const // NOTE that } is not allowed in blah2. regex const reg("(.*)\\\\label\\{(.*?)\\}(.*)"); string const new_cap("$1$3},label={$2"); - return from_utf8(regex_replace(to_utf8(cap), reg, new_cap)); + // Replace '\n' with an improbable character from Private Use Area-A + // and then return to '\n' after the regex replacement. + string const capstr = to_utf8(subst(cap, char_type('\n'), 0xffffd)); + return subst(from_utf8(regex_replace(capstr, reg, new_cap)), + 0xffffd, char_type('\n')); } diff --git a/status.22x b/status.22x index c48eb529a7..d516bfb334 100644 --- a/status.22x +++ b/status.22x @@ -49,6 +49,9 @@ What's new - Catch "! Incomplete \if[x]" LaTeX error (bug 10666). +- Fix caption handling in listings insets when it is split into multiple + lines in the LaTeX output (bug 10705). + * LYX2LYX