nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit a8a70f0f290355a52ff0157af2187d5892492233
parent 1d10d79860b574f31daa283e200acef6e138ad2e
Author: Benno Schulenberg <bensberg@justemail.net>
Date:   Sat, 21 Jan 2017 19:55:05 +0100

tweaks: slightly speed up the change detection for multiline matches

Diffstat:
Msrc/color.c | 27++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/src/color.c b/src/color.c @@ -354,19 +354,20 @@ void reset_multis(filestruct *fileptr, bool force) /* Check whether the multidata still matches the current situation. */ nobegin = regexec(ink->start, fileptr->data, 1, &startmatch, 0); noend = regexec(ink->end, fileptr->data, 1, &endmatch, 0); - if ((fileptr->multidata[ink->id] == CWHOLELINE || - fileptr->multidata[ink->id] == CNONE) && - nobegin && noend) - continue; - else if (fileptr->multidata[ink->id] == CSTARTENDHERE && - !nobegin && !noend && startmatch.rm_so < endmatch.rm_so) - continue; - else if (fileptr->multidata[ink->id] == CBEGINBEFORE && - nobegin && !noend) - continue; - else if (fileptr->multidata[ink->id] == CENDAFTER && - !nobegin && noend) - continue; + if (fileptr->multidata[ink->id] == CNONE || + fileptr->multidata[ink->id] == CWHOLELINE) { + if (nobegin && noend) + continue; + } else if (fileptr->multidata[ink->id] == CSTARTENDHERE) { + if (!nobegin && !noend && startmatch.rm_so < endmatch.rm_so) + continue; + } else if (fileptr->multidata[ink->id] == CBEGINBEFORE) { + if (nobegin && !noend) + continue; + } else if (fileptr->multidata[ink->id] == CENDAFTER) { + if (!nobegin && noend) + continue; + } } /* If we got here, things have changed. */