Commit 102d01da authored by David Lawrence Ramsey's avatar David Lawrence Ramsey
Browse files

fix justify code regression: if we're justifying the entire file, and we

haven't found any paragraph(s), we should refresh the screen and get out
instead of breaking out of the loop and acting as though we've justified
something, so as to avoid a segfault


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2384 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
No related merge requests found
Showing with 15 additions and 10 deletions
+15 -10
...@@ -236,9 +236,9 @@ CVS code - ...@@ -236,9 +236,9 @@ CVS code -
- For consistency, preserve placewewant if we didn't unjustify - For consistency, preserve placewewant if we didn't unjustify
instead of setting it to 0. (DLR) instead of setting it to 0. (DLR)
- When justifying the entire file, properly break out of the - When justifying the entire file, properly break out of the
loop if there are no more paragraphs after the current one and loop if we've found at least one paragraph, there are no more
the paragraph search left us on the magicline, so as to avoid paragraphs after the current one, and the paragraph search
a segfault. (DLR) left us on the magicline. This avoids a segfault. (DLR)
do_input() do_input()
- Add finished parameter, used to indicate when we run or try to - Add finished parameter, used to indicate when we run or try to
run a function associated with a shortcut. (DLR) run a function associated with a shortcut. (DLR)
......
...@@ -2958,14 +2958,19 @@ void do_justify(bool full_justify) ...@@ -2958,14 +2958,19 @@ void do_justify(bool full_justify)
* is the start of this paragraph if we're in one, or the start * is the start of this paragraph if we're in one, or the start
* of the next otherwise. Save the quote length and paragraph * of the next otherwise. Save the quote length and paragraph
* length (number of lines). Don't refresh the screen yet, * length (number of lines). Don't refresh the screen yet,
* since we'll do that after we justify. If the search * since we'll do that after we justify.
* failed, we're justifying the whole file, and the search *
* didn't leave us on the last line of the file, set the last * If the search failed, we do one of two things. If we're
* line of the text to be justified to the last line of the file * justifying the whole file, we've found at least one
* and break out of the loop. Otherwise, refresh the screen and * paragraph, and the search didn't leave us on the last line of
* get out. */ * the file, it means that we should justify all the way to the
* last line of the file, so set the last line of the text to be
* justified to the last line of the file and break out of the
* loop. Otherwise, it means that there are no paragraph(s) to
* justify, so refresh the screen and get out. */
if (!find_paragraph(&quote_len, &par_len)) { if (!find_paragraph(&quote_len, &par_len)) {
if (full_justify && first_par_line != filebot) { if (full_justify && first_par_line != NULL &&
first_par_line != filebot) {
last_par_line = filebot; last_par_line = filebot;
break; break;
} else { } else {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment