From 07e806e7f2edacb5b78142699973d13f65c92a23 Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Tue, 1 Dec 2015 13:33:45 +0000 Subject: [PATCH] Unindenting the part that was the 'else'. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5463 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 1 + src/winio.c | 206 +++++++++++++++++++++++++--------------------------- 2 files changed, 100 insertions(+), 107 deletions(-) diff --git a/ChangeLog b/ChangeLog index f72fb4fe..ddf0021e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,7 @@ * src/text.c (redo_cut): Delete two redundant assignments. * src/winio.c (edit_draw): Move a check to a better place. * src/winio.c (edit_draw): Rename a label and elide an 'else'. + * src/winio.c (edit_draw): Unindent after previous change. 2015-11-30 Benno Schulenberg * src/text.c (redo_cut, update_undo): When cutting reaches the EOF, diff --git a/src/winio.c b/src/winio.c index 50cab891..8d7477ad 100644 --- a/src/winio.c +++ b/src/winio.c @@ -2611,153 +2611,145 @@ void edit_draw(filestruct *fileptr, const char *converted, int if (startmatch.rm_so == startmatch.rm_eo) goto tail_of_loop; - { - /* Now start_line is the first line before fileptr - * containing a start match. Is there a start on - * this line not followed by an end on this line? */ - start_col = 0; - while (TRUE) { - start_col += startmatch.rm_so; - startmatch.rm_eo -= startmatch.rm_so; - if (regexec(tmpcolor->end, start_line->data + + /* Now start_line is the first line before fileptr containing + * a start match. Is there a start on that line not followed + * by an end on that line? */ + start_col = 0; + while (TRUE) { + start_col += startmatch.rm_so; + startmatch.rm_eo -= startmatch.rm_so; + if (regexec(tmpcolor->end, start_line->data + start_col + startmatch.rm_eo, 0, NULL, (start_col + startmatch.rm_eo == 0) ? 0 : REG_NOTBOL) == REG_NOMATCH) - /* No end found after this start. */ - break; - start_col++; - if (regexec(tmpcolor->start, start_line->data + + /* No end found after this start. */ + break; + start_col++; + if (regexec(tmpcolor->start, start_line->data + start_col, 1, &startmatch, REG_NOTBOL) == REG_NOMATCH) - /* No later start on this line. */ - goto step_two; - } - /* Indeed, there is a start not followed on this - * line by an end. */ - - /* We have already checked that there is no end - * before fileptr and after the start. Is there an - * end after the start at all? We don't paint - * unterminated starts. */ - end_line = fileptr; - while (end_line != NULL && regexec(tmpcolor->end, + /* No later start on this line. */ + goto step_two; + } + /* Indeed, there is a start without an end on that line. */ + + /* We've already checked that there is no end before fileptr + * and after the start. But is there an end after the start + * at all? We don't paint unterminated starts. */ + end_line = fileptr; + while (end_line != NULL && regexec(tmpcolor->end, end_line->data, 1, &endmatch, 0) == REG_NOMATCH) - end_line = end_line->next; + end_line = end_line->next; - /* If no end was found, or it is too early, next step. */ - if (end_line == NULL) - goto step_two; - if (end_line == fileptr && endmatch.rm_eo <= startpos) { - fileptr->multidata[tmpcolor->id] = CBEGINBEFORE; - goto step_two; - } + /* If no end was found, or it is too early, next step. */ + if (end_line == NULL) + goto step_two; + if (end_line == fileptr && endmatch.rm_eo <= startpos) { + fileptr->multidata[tmpcolor->id] = CBEGINBEFORE; + goto step_two; + } - /* Now paint the start of fileptr. If the start of - * fileptr is on a different line from the end, - * paintlen is -1, meaning that everything on the - * line gets painted. Otherwise, paintlen is the - * expanded location of the end of the match minus - * the expanded location of the beginning of the - * page. */ - if (end_line != fileptr) { - paintlen = -1; - fileptr->multidata[tmpcolor->id] = CWHOLELINE; + /* Now paint the start of fileptr. If the start of fileptr + * is on a different line from the end, paintlen is -1, which + * means that everything on the line gets painted. Otherwise, + * paintlen is the expanded location of the end of the match + * minus the expanded location of the beginning of the page. */ + if (end_line != fileptr) { + paintlen = -1; + fileptr->multidata[tmpcolor->id] = CWHOLELINE; #ifdef DEBUG fprintf(stderr, " Marking for id %i line %i as CWHOLELINE\n", tmpcolor->id, line); #endif - } else { - paintlen = actual_x(converted, - strnlenpt(fileptr->data, - endmatch.rm_eo) - start); - fileptr->multidata[tmpcolor->id] = CBEGINBEFORE; + } else { + paintlen = actual_x(converted, strnlenpt(fileptr->data, + endmatch.rm_eo) - start); + fileptr->multidata[tmpcolor->id] = CBEGINBEFORE; #ifdef DEBUG fprintf(stderr, " Marking for id %i line %i as CBEGINBEFORE\n", tmpcolor->id, line); #endif - } - mvwaddnstr(edit, line, 0, converted, paintlen); - /* If the whole line has been painted, don't bother - * looking for any more starts. */ - if (paintlen < 0) - goto tail_of_loop; + } + mvwaddnstr(edit, line, 0, converted, paintlen); + /* If the whole line has been painted, don't bother looking + * for any more starts. */ + if (paintlen < 0) + goto tail_of_loop; step_two: - /* Second step: look for starts on this line, but start - * looking only after an end match, if there is one. */ - start_col = (paintlen == 0) ? 0 : endmatch.rm_eo; - - while (start_col < endpos) { - if (regexec(tmpcolor->start, fileptr->data + - start_col, 1, &startmatch, (start_col == - 0) ? 0 : REG_NOTBOL) == REG_NOMATCH || + /* Second step: look for starts on this line, but start + * looking only after an end match, if there is one. */ + start_col = (paintlen == 0) ? 0 : endmatch.rm_eo; + + while (start_col < endpos) { + if (regexec(tmpcolor->start, fileptr->data + start_col, + 1, &startmatch, (start_col == 0) ? + 0 : REG_NOTBOL) == REG_NOMATCH || start_col + startmatch.rm_so >= endpos) - /* No more starts on this line. */ - break; - /* Translate the match to be relative to the - * beginning of the line. */ - startmatch.rm_so += start_col; - startmatch.rm_eo += start_col; + /* No more starts on this line. */ + break; - x_start = (startmatch.rm_so <= startpos) ? 0 : - strnlenpt(fileptr->data, + /* Translate the match to be relative to the + * beginning of the line. */ + startmatch.rm_so += start_col; + startmatch.rm_eo += start_col; + + x_start = (startmatch.rm_so <= startpos) ? + 0 : strnlenpt(fileptr->data, startmatch.rm_so) - start; - index = actual_x(converted, x_start); + index = actual_x(converted, x_start); - if (regexec(tmpcolor->end, fileptr->data + + if (regexec(tmpcolor->end, fileptr->data + startmatch.rm_eo, 1, &endmatch, - (startmatch.rm_eo == 0) ? 0 : - REG_NOTBOL) == 0) { - /* Translate the end match to be relative to - * the beginning of the line. */ - endmatch.rm_so += startmatch.rm_eo; - endmatch.rm_eo += startmatch.rm_eo; - /* There is an end on this line. But does - * it appear on this page, and is the match - * more than zero characters long? */ - if (endmatch.rm_eo > startpos && + (startmatch.rm_eo == 0) ? + 0 : REG_NOTBOL) == 0) { + /* Translate the end match to be relative to + * the beginning of the line. */ + endmatch.rm_so += startmatch.rm_eo; + endmatch.rm_eo += startmatch.rm_eo; + /* There is an end on this line. But does + * it appear on this page, and is the match + * more than zero characters long? */ + if (endmatch.rm_eo > startpos && endmatch.rm_eo > startmatch.rm_so) { - paintlen = actual_x(converted + index, + paintlen = actual_x(converted + index, strnlenpt(fileptr->data, - endmatch.rm_eo) - start - - x_start); + endmatch.rm_eo) - start - x_start); - assert(0 <= x_start && x_start < COLS); + assert(0 <= x_start && x_start < COLS); - mvwaddnstr(edit, line, x_start, + mvwaddnstr(edit, line, x_start, converted + index, paintlen); - if (paintlen > 0) { - fileptr->multidata[tmpcolor->id] = CSTARTENDHERE; + if (paintlen > 0) { + fileptr->multidata[tmpcolor->id] = CSTARTENDHERE; #ifdef DEBUG fprintf(stderr, " Marking for id %i line %i as CSTARTENDHERE\n", tmpcolor->id, line); #endif - } } - start_col = endmatch.rm_eo; - } else { - /* There is no end on this line. But we - * haven't yet looked for one on later - * lines. */ - end_line = fileptr->next; + } + start_col = endmatch.rm_eo; + } else { + /* There is no end on this line. But we haven't yet + * looked for one on later lines. */ + end_line = fileptr->next; - while (end_line != NULL && + while (end_line != NULL && regexec(tmpcolor->end, end_line->data, 0, NULL, 0) == REG_NOMATCH) - end_line = end_line->next; + end_line = end_line->next; - if (end_line != NULL) { - assert(0 <= x_start && x_start < COLS); + if (end_line != NULL) { + assert(0 <= x_start && x_start < COLS); - mvwaddnstr(edit, line, x_start, + mvwaddnstr(edit, line, x_start, converted + index, -1); - fileptr->multidata[tmpcolor->id] = CENDAFTER; + fileptr->multidata[tmpcolor->id] = CENDAFTER; #ifdef DEBUG fprintf(stderr, " Marking for id %i line %i as CENDAFTER\n", tmpcolor->id, line); #endif - /* We painted to the end of the line, so - * don't bother checking any more starts. */ - break; - } - start_col = startmatch.rm_so + 1; + /* We painted to the end of the line, so + * don't bother checking any more starts. */ + break; } + start_col = startmatch.rm_so + 1; } } } -- 2.39.5