tweaks: reshuffle some things to condense the code

master
Benno Schulenberg 2017-06-27 12:34:11 +02:00
parent bb4d0d548a
commit 8766e7bdcb
2 changed files with 13 additions and 23 deletions

View File

@ -413,12 +413,12 @@ void do_end(bool be_clever)
#ifndef NANO_TINY
if (ISSET(SOFTWRAP)) {
bool last_chunk;
bool last_chunk = FALSE;
size_t leftedge = get_chunk_leftedge(openfile->current, was_column);
size_t rightedge = get_softwrap_breakpoint(openfile->current->data,
leftedge,
&last_chunk);
leftedge, &last_chunk);
size_t rightedge_x;
/* If we're on the last chunk, we're already at the end of the line.
* Otherwise, we're one column past the end of the line. Shifting
* backwards one column might put us in the middle of a multi-column

View File

@ -2766,15 +2766,14 @@ int update_softwrapped_line(filestruct *fileptr)
starting_row = row;
while (row < editwinrows) {
bool end_of_line;
bool end_of_line = FALSE;
to_col = get_softwrap_breakpoint(fileptr->data, from_col, &end_of_line);
blank_row(edit, row, 0, COLS);
/* Convert the chunk to its displayable form and draw it. */
converted = display_string(fileptr->data, from_col, to_col - from_col,
TRUE);
converted = display_string(fileptr->data, from_col, to_col - from_col, TRUE);
edit_draw(fileptr, converted, row++, from_col);
free(converted);
@ -2869,11 +2868,10 @@ int go_forward_chunks(int nrows, filestruct **line, size_t *leftedge)
/* Advance through the requested number of chunks. */
for (i = nrows; i > 0; i--) {
if (current_leftedge < last_leftedge) {
bool end_of_line;
bool dummy;
current_leftedge = get_softwrap_breakpoint((*line)->data,
current_leftedge,
&end_of_line);
current_leftedge, &dummy);
continue;
}
@ -3011,8 +3009,6 @@ size_t get_softwrap_breakpoint(const char *text, size_t leftedge,
int char_len = 0;
/* Length of current character, in bytes. */
*end_of_line = FALSE;
while (*text != '\0' && column < leftedge)
text += parse_mbchar(text, NULL, &column);
@ -3092,7 +3088,7 @@ size_t actual_last_column(size_t leftedge, size_t column)
size_t get_chunk(filestruct *line, size_t column, size_t *leftedge)
{
size_t current_chunk = 0, start_col = 0, end_col;
bool end_of_line;
bool end_of_line = FALSE;
while (TRUE) {
end_col = get_softwrap_breakpoint(line->data, start_col, &end_of_line);
@ -3433,6 +3429,8 @@ void spotlight(bool active, size_t from_col, size_t to_col)
char *word;
size_t word_span, room;
place_the_cursor(FALSE);
#ifndef NANO_TINY
if (ISSET(SOFTWRAP)) {
spotlight_softwrapped(active, from_col, to_col);
@ -3440,8 +3438,6 @@ void spotlight(bool active, size_t from_col, size_t to_col)
}
#endif
place_the_cursor(FALSE);
/* This is so we can show zero-length matches. */
if (to_col == from_col) {
word = mallocstrcpy(NULL, " ");
@ -3481,16 +3477,12 @@ void spotlight(bool active, size_t from_col, size_t to_col)
* line breaks, since they're not actually part of the spotlighted text. */
void spotlight_softwrapped(bool active, size_t from_col, size_t to_col)
{
ssize_t row;
ssize_t row = openfile->current_y;
size_t leftedge = get_chunk_leftedge(openfile->current, from_col);
size_t break_col;
bool end_of_line;
bool end_of_line = FALSE;
char *word;
place_the_cursor(FALSE);
row = openfile->current_y;
while (row < editwinrows) {
break_col = get_softwrap_breakpoint(openfile->current->data,
leftedge, &end_of_line);
@ -3523,9 +3515,7 @@ void spotlight_softwrapped(bool active, size_t from_col, size_t to_col)
if (end_of_line)
break;
row++;
wmove(edit, row, 0);
wmove(edit, ++row, 0);
leftedge = break_col;
from_col = break_col;