replacing: compensate cursor position only for replacements /before/ it
When a replacement happens right at where the cursor sits, the position of the cursor should not be adjusted, because the real cursor position is between the current character and the preceding one: the place where the cursor is shown is in fact right /after/ the insertion point. This fixes https://savannah.gnu.org/bugs/?50134, and fixes https://savannah.gnu.org/bugs/?50135.
Этот коммит содержится в:
родитель
a8a70f0f29
Коммит
3534d8ff25
@ -710,7 +710,7 @@ ssize_t do_replace_loop(const char *needle, bool whole_word_only,
|
||||
if (!old_mark_set || right_side_up) {
|
||||
#endif
|
||||
if (openfile->current == real_current &&
|
||||
openfile->current_x <= *real_current_x) {
|
||||
openfile->current_x < *real_current_x) {
|
||||
if (*real_current_x < openfile->current_x + match_len)
|
||||
*real_current_x = openfile->current_x + match_len;
|
||||
*real_current_x += length_change;
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user