]> git.wh0rd.org Git - nano.git/commitdiff
finish tweaking backup_lines() to remove the assumption that the file
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 9 Nov 2005 18:58:04 +0000 (18:58 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 9 Nov 2005 18:58:04 +0000 (18:58 +0000)
always ends in a magicline, and add documentation fixes

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3128 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/text.c

index bf1b2a8344b0a00095428e5870aeba41d6820bcb..57b6efff3e7094a88a1680a9dd7c270d8618a55e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -76,7 +76,7 @@ CVS code -
          nanogetstr() (renamed get_prompt_string()), statusq() (renamed
          do_prompt()), statusq_abort() (renamed do_prompt_abort()), and
          do_yesno() (renamed do_yesno_prompt()). (DLR)
-       - Initialize the static pid_t pid in text.c. (DLR)
+       - Initialize the static pid_t pid in text.c to -1. (DLR)
 - chars.c:
   mbwidth()
        - If wcwidth() returns -1 for the character passed in, treat the
index c9199719f05dc7534d1e62fcb512b40392c19bcc..15715078371a24e6f8eddbfaa5a69d7dd77c4386 100644 (file)
@@ -978,14 +978,15 @@ filestruct *backup_lines(filestruct *first_line, size_t par_len)
     assert(par_len > 0 && openfile->current->lineno + par_len <=
        filebot->lineno + 1);
 
-    /* Move bot down par_len lines to the newline after the last line of
-     * the paragraph. */
-    for (i = par_len; i > 0; i--)
+    /* Move bot down par_len lines to the line after the last line of
+     * the paragraph, if there is one. */
+    for (i = par_len; i > 0 && bot != openfile->filebot; i--)
        bot = bot->next;
 
     /* Move the paragraph from the current buffer's filestruct to the
      * justify buffer. */
-    move_to_filestruct(&jusbuffer, &jusbottom, top, 0, bot, 0);
+    move_to_filestruct(&jusbuffer, &jusbottom, top, 0, bot,
+       strlen(bot->data));
 
     /* Copy the paragraph back to the current buffer's filestruct from
      * the justify buffer. */
@@ -995,7 +996,10 @@ filestruct *backup_lines(filestruct *first_line, size_t par_len)
      * line, putting first_line, edittop, current, and mark_begin at the
      * same lines in the copied paragraph that they had in the original
      * paragraph. */
-    top = openfile->current->prev;
+    if (openfile->current != openfile->filebot)
+       top = openfile->current->prev;
+    else
+       top = openfile->current;
     for (i = par_len; i > 0; i--) {
        if (top->lineno == fl_lineno_save)
            first_line = top;