+2015-03-21 Mark Majeres <mark@engine12.com>
+ * src/text.c (do_alt_speller): Restore the positions of the mark
+ and the cursor in a better way: to the columns where they were.
+ This fixes Savannah bug #44542, reported by Benno Schulenberg.
+
2015-03-20 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (finish_stdin_pager, cancel_stdin_pager, stdin_pager):
Normalize the whitespace, remove an old comment, and place another
{
int alt_spell_status;
size_t current_x_save = openfile->current_x;
- size_t pww_save = openfile->placewewant;
ssize_t current_y_save = openfile->current_y;
ssize_t lineno_save = openfile->current->lineno;
struct stat spellfileinfo;
* and the end of the spell-checked text. */
if (openfile->fileage == openfile->filebot)
bot_x += top_x;
- if (right_side_up) {
- openfile->mark_begin_x = top_x;
- current_x_save = bot_x;
- } else {
- current_x_save = top_x;
- openfile->mark_begin_x = bot_x;
- }
/* Unpartition the filestruct so that it contains all the text
* again. Note that we've replaced the marked text originally
openfile->totsize = totsize_save;
/* Assign mark_begin to the line where the mark began before. */
- do_gotopos(mb_lineno_save, openfile->mark_begin_x,
- current_y_save, 0);
+ goto_line_posx(mb_lineno_save, openfile->mark_begin_x);
openfile->mark_begin = openfile->current;
/* Assign mark_begin_x to the location in mark_begin where the
#endif
/* Go back to the old position. */
- do_gotopos(lineno_save, current_x_save, current_y_save, pww_save);
+ goto_line_posx(lineno_save, current_x_save);
+ openfile->current_y = current_y_save;
+ edit_update(NONE);
/* Stat the temporary file again, and mark the buffer as modified only
* if this file was changed since it was written. */