diff --git a/ChangeLog b/ChangeLog index 54af35013cc59b096d9e7e621fa725f1d2c93338..89f0b4e737a5afb35034be281fa5648b7001a93d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,8 @@ an error when the marked region is zero bytes long. The message is not needed -- it gets printed by the caller. This generalizes the fix for Savannah bug #29393. + * src/text.c (do_alt_speller): Do not unset the mark before the + possible bailout because of a zero-sized region. 2015-03-22 Chris Allegretta <chrisa@asty.org> * src/text.c (do_alt_speller): timestamp can just be a __time_t. diff --git a/src/text.c b/src/text.c index 816f7616dc7da0e179cb26d70b6e0db63d378a45..5d07752aecea5b0d0bbe28006131fdb10d033538 100644 --- a/src/text.c +++ b/src/text.c @@ -2683,13 +2683,6 @@ const char *do_alt_speller(char *tempfile_name) size_t totsize_save = openfile->totsize; /* Our saved value of totsize, used when we spell-check a marked * selection. */ - - if (old_mark_set) { - /* If the mark is on, save the number of the line it starts on, - * and then turn the mark off. */ - mb_lineno_save = openfile->mark_begin->lineno; - openfile->mark_set = FALSE; - } #endif /* Get the timestamp and the size of the temporary file. */ @@ -2700,6 +2693,15 @@ const char *do_alt_speller(char *tempfile_name) if (spellfileinfo.st_size == 0) return NULL; +#ifndef NANO_TINY + if (old_mark_set) { + /* If the mark is on, save the number of the line it starts on, + * and then turn the mark off. */ + mb_lineno_save = openfile->mark_begin->lineno; + openfile->mark_set = FALSE; + } +#endif + endwin(); /* Set up an argument list to pass execvp(). */