]> git.wh0rd.org Git - nano.git/commitdiff
Warning about a condition that should never occur,
authorBenno Schulenberg <bensberg@justemail.net>
Wed, 25 Nov 2015 09:27:25 +0000 (09:27 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Wed, 25 Nov 2015 09:27:25 +0000 (09:27 +0000)
instead of silently continuing.

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

ChangeLog
src/text.c

index 2bab1d758f47a423bd0dca02ee879cd513c9a2fd..4907cf517619febb80b570c87040c059af570d4f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,8 @@
        of just the current line) is not needed for any kind of syntax, but
        only when there are multiline regexes.  And check for this not on
        every keystroke in a burst, but just once.
+       * src/text.c (do_undo): Warn about a condition that should never
+       occur, instead of silently continuing.
 
 2015-11-24  Benno Schulenberg  <bensberg@justemail.net>
        * doc/syntax/makefile.nanorc: Also recognize the extensions .make and
index c21f6f8baac2db8863001744c9c6a9f3cdf648ef..fe6910ed93c8ff2482d92bbc7ec6151de0352785 100644 (file)
@@ -564,14 +564,17 @@ void do_undo(void)
        break;
     case ENTER:
        undidmsg = _("line break");
-       if (f->next) {
-           filestruct *foo = f->next;
-           f->data = charealloc(f->data, strlen(f->data) + strlen(&f->next->data[u->mark_begin_x]) + 1);
-           strcat(f->data, &f->next->data[u->mark_begin_x]);
-           if (foo == openfile->filebot)
-               openfile->filebot = f;
-           unlink_node(foo);
+       filestruct *snipit = f->next;
+       if (snipit == NULL) {
+           statusbar(_("Internal error: line is missing.  Please save your work."));
+           return;
        }
+       f->data = charealloc(f->data, strlen(f->data) +
+                               strlen(&f->next->data[u->mark_begin_x]) + 1);
+       strcat(f->data, &f->next->data[u->mark_begin_x]);
+       if (openfile->filebot == snipit)
+           openfile->filebot = f;
+       unlink_node(snipit);
        goto_line_posx(u->lineno, u->begin);
        break;
     case INSERT: