]> git.wh0rd.org Git - nano.git/commitdiff
Rewrapping and reordering a few lines.
authorBenno Schulenberg <bensberg@justemail.net>
Tue, 8 Dec 2015 19:09:14 +0000 (19:09 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Tue, 8 Dec 2015 19:09:14 +0000 (19:09 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5493 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/text.c

index 9c9b04ad84ddee33e3c835647e9fcec1819bbac3..f80eb3689689e63aeebed090cc28b7e46c026e79 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,7 @@
        'filebot', instead of doing it in four different places each.
        * src/search.c (goto_line_posx), src/move (do_down): It should not
        be necessary to doubly check for being at the end of file.
+       * src/text.c (do_justify): Rewrap and reorder a few lines.
 
 2015-12-07  Benno Schulenberg  <bensberg@justemail.net>
        * src/winio.c (edit_draw): Quit the loop when there is no end match.
index da8900c2a8881a6f44c4e75db22f8cb9d5a5d73b..9e4dcb261f8ec2be11626bb0a62a8fc78d17843f 100644 (file)
@@ -137,6 +137,7 @@ void do_deletion(undo_type action)
        openfile->current->data = charealloc(openfile->current->data,
                strlen(openfile->current->data) + strlen(foo->data) + 1);
        strcat(openfile->current->data, foo->data);
+
 #ifndef NANO_TINY
        if (openfile->mark_set &&
                openfile->mark_begin == openfile->current->next) {
@@ -144,7 +145,6 @@ void do_deletion(undo_type action)
            openfile->mark_begin_x += openfile->current_x;
        }
 #endif
-
        unlink_node(foo);
        renumber(openfile->current);
        openfile->totsize--;
@@ -2063,12 +2063,10 @@ void do_justify(bool full_justify)
        for (i = 0; i < par_len - 1; i++) {
            filestruct *next_line = openfile->current->next;
            size_t line_len = strlen(openfile->current->data);
-           size_t next_line_len =
-               strlen(openfile->current->next->data);
+           size_t next_line_len = strlen(openfile->current->next->data);
 
            indent_len = quote_len +
-               indent_length(openfile->current->next->data +
-               quote_len);
+               indent_length(openfile->current->next->data + quote_len);
 
            next_line_len -= indent_len;
            openfile->totsize -= indent_len;
@@ -2076,35 +2074,30 @@ void do_justify(bool full_justify)
            /* We're just about to tack the next line onto this one.  If
             * this line isn't empty, make sure it ends in a space. */
            if (line_len > 0 &&
-               openfile->current->data[line_len - 1] != ' ') {
+                       openfile->current->data[line_len - 1] != ' ') {
                line_len++;
                openfile->current->data =
-                       charealloc(openfile->current->data,
-                       line_len + 1);
+                       charealloc(openfile->current->data, line_len + 1);
                openfile->current->data[line_len - 1] = ' ';
                openfile->current->data[line_len] = '\0';
                openfile->totsize++;
            }
 
-           openfile->current->data =
-               charealloc(openfile->current->data, line_len +
-               next_line_len + 1);
-           strcat(openfile->current->data, next_line->data +
-               indent_len);
-
-           /* Don't destroy edittop! */
-           if (next_line == openfile->edittop)
-               openfile->edittop = openfile->current;
+           openfile->current->data = charealloc(openfile->current->data,
+                       line_len + next_line_len + 1);
+           strcat(openfile->current->data, next_line->data + indent_len);
 
 #ifndef NANO_TINY
-           /* Adjust the mark coordinates to compensate for the change
-            * in the next line. */
-           if (openfile->mark_set && openfile->mark_begin ==
-               next_line) {
+           /* If needed, adjust the coordinates of the mark. */
+           if (openfile->mark_set &&
+                       openfile->mark_begin == next_line) {
                openfile->mark_begin = openfile->current;
                openfile->mark_begin_x += line_len - indent_len;
            }
 #endif
+           /* Don't destroy edittop! */
+           if (next_line == openfile->edittop)
+               openfile->edittop = openfile->current;
 
            unlink_node(next_line);
 
@@ -2122,8 +2115,7 @@ void do_justify(bool full_justify)
        justify_format(openfile->current, quote_len +
                indent_length(openfile->current->data + quote_len));
 
-       while (par_len > 0 && strlenpt(openfile->current->data) >
-               fill) {
+       while (par_len > 0 && strlenpt(openfile->current->data) > fill) {
            size_t line_len = strlen(openfile->current->data);
 
            indent_len = strlen(indent_string);
@@ -2147,9 +2139,6 @@ void do_justify(bool full_justify)
 
            assert(break_pos <= line_len);
 
-           /* Insert a new line after the current one. */
-           splice_node(openfile->current, make_new_node(openfile->current));
-
            /* If this paragraph is non-quoted, and autoindent isn't
             * turned on, set the indentation length to zero so that the
             * indentation is treated as part of the line. */
@@ -2160,6 +2149,9 @@ void do_justify(bool full_justify)
                )
                indent_len = 0;
 
+           /* Insert a new line after the current one. */
+           splice_node(openfile->current, make_new_node(openfile->current));
+
            /* Copy the text after where we're going to break the
             * current line to the next line. */
            openfile->current->next->data = charalloc(indent_len + 1 +
@@ -2175,9 +2167,9 @@ void do_justify(bool full_justify)
 #ifndef NANO_TINY
            /* Adjust the mark coordinates to compensate for the change
             * in the current line. */
-           if (openfile->mark_set && openfile->mark_begin ==
-               openfile->current && openfile->mark_begin_x >
-               break_pos) {
+           if (openfile->mark_set &&
+                       openfile->mark_begin == openfile->current &&
+                       openfile->mark_begin_x > break_pos) {
                openfile->mark_begin = openfile->current->next;
                openfile->mark_begin_x -= break_pos - indent_len;
            }