fix problem where displaying multiline regexes that have their start on
one page of a line and their end on a different page of the same line would paint past the end of the regex by tweaking DB's changes to add multibyte string support to edit_add(); now calculate paintlen the same way the original working code did, but keep accounting for multibyte characters as DB'S new code did git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2253 35c25a1d-7b9e-4130-9fde-d3aeb78583b8master
parent
487d08cad0
commit
c1e3d941a5
10
src/winio.c
10
src/winio.c
|
@ -2994,9 +2994,8 @@ void edit_add(const filestruct *fileptr, const char *converted, int
|
||||||
index = actual_x(converted, x_start);
|
index = actual_x(converted, x_start);
|
||||||
|
|
||||||
paintlen = actual_x(converted + index,
|
paintlen = actual_x(converted + index,
|
||||||
strnlenpt(fileptr->data +
|
strnlenpt(fileptr->data,
|
||||||
startmatch.rm_so, startmatch.rm_eo -
|
startmatch.rm_eo) - start - x_start);
|
||||||
startmatch.rm_so));
|
|
||||||
|
|
||||||
assert(0 <= x_start && 0 <= paintlen);
|
assert(0 <= x_start && 0 <= paintlen);
|
||||||
|
|
||||||
|
@ -3125,9 +3124,8 @@ void edit_add(const filestruct *fileptr, const char *converted, int
|
||||||
if (endmatch.rm_eo > startpos &&
|
if (endmatch.rm_eo > startpos &&
|
||||||
endmatch.rm_eo > startmatch.rm_so) {
|
endmatch.rm_eo > startmatch.rm_so) {
|
||||||
paintlen = actual_x(converted + index,
|
paintlen = actual_x(converted + index,
|
||||||
strnlenpt(fileptr->data +
|
strnlenpt(fileptr->data,
|
||||||
startmatch.rm_so, endmatch.rm_eo -
|
endmatch.rm_eo) - start - x_start);
|
||||||
startmatch.rm_so));
|
|
||||||
|
|
||||||
assert(0 <= x_start && x_start < COLS);
|
assert(0 <= x_start && x_start < COLS);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue