nano

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

commit fb85c0559486db53b45c9ea47e18e49eddf6fdbe
parent 25b1114e0378dbe7c037c97b5cbb7901d8e49146
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Sun, 10 Dec 2017 12:58:25 +0100

text: keep cursor at left edge when it IS there when indenting/commenting

Suggested-by: Brand Huntsman <alpha@qzx.com>

Diffstat:
Msrc/text.c | 12++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/text.c b/src/text.c @@ -280,9 +280,9 @@ void indent_a_line(filestruct *line, char *indentation) openfile->totsize += indent_len; /* Compensate for the change in the current line. */ - if (line == openfile->mark) + if (line == openfile->mark && openfile->mark_x > 0) openfile->mark_x += indent_len; - if (line == openfile->current) { + if (line == openfile->current && openfile->current_x > 0) { openfile->current_x += indent_len; openfile->placewewant = xplustabs(); } @@ -578,9 +578,9 @@ bool comment_line(undo_type action, filestruct *line, const char *comment_seq) openfile->totsize += pre_len + post_len; /* If needed, adjust the position of the mark and of the cursor. */ - if (line == openfile->mark) + if (line == openfile->mark && openfile->mark_x > 0) openfile->mark_x += pre_len; - if (line == openfile->current) { + if (line == openfile->current && openfile->current_x > 0) { openfile->current_x += pre_len; openfile->placewewant = xplustabs(); } @@ -603,13 +603,13 @@ bool comment_line(undo_type action, filestruct *line, const char *comment_seq) openfile->totsize -= pre_len + post_len; /* If needed, adjust the position of the mark and then the cursor. */ - if (line == openfile->mark) { + if (line == openfile->mark && openfile->mark_x > 0) { if (openfile->mark_x < pre_len) openfile->mark_x = 0; else openfile->mark_x -= pre_len; } - if (line == openfile->current) { + if (line == openfile->current && openfile->current_x > 0) { if (openfile->current_x < pre_len) openfile->current_x = 0; else