[LyX/master] Advaced search: check for toString() before using it. (#12783)

Richard Kimberly Heck rikiheck at gmail.com
Fri May 19 04:09:09 UTC 2023


On 5/18/23 11:02, Kornel Benko wrote:
> commit f13808939b9ae6d8d467538d17157a87e8a1a37c
> Author: Kornel Benko <kornel at lyx.org>
> Date:   Thu May 18 18:07:40 2023 +0200
>
>      Advaced search: check for toString() before using it.
>      (#12783)
>
> diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
> index b8819fd..fed5a74 100644
> --- a/src/Paragraph.cpp
> +++ b/src/Paragraph.cpp
> @@ -4314,7 +4314,7 @@ docstring Paragraph::asString(pos_type beg, pos_type end, int options, const Out
>   		else if (c == META_INSET && (options & AS_STR_INSETS)) {
>   			if (c == META_INSET && (options & AS_STR_PLAINTEXT)) {
>   				LASSERT(runparams != nullptr, return docstring());
> -				if (runparams->find_effective())
> +				if (runparams->find_effective() && getInset(i)->hasToString())
>   					getInset(i)->toString(os);
>   				else
>   					getInset(i)->plaintext(os, *runparams);

I know this will be an annoying suggestion after all that work, but what 
about:

if (runparams->find_effective) {
     string str = getInset(i)->toString(os);
     if (str.empty())
         str = getInset(i)->plaintext(os, *runaparms);
}

? Then no need for the new method.

Riki




More information about the lyx-devel mailing list