From 006229c32e692a5aacbef1f6237b6b076ce1816f Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Mon, 30 Oct 2006 14:13:36 +0000 Subject: 22924: a couple more metafy_line()/unmetafy_line() problems --- Src/Zle/zle_utils.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'Src/Zle/zle_utils.c') diff --git a/Src/Zle/zle_utils.c b/Src/Zle/zle_utils.c index 67c7379f5..9b769b5a0 100644 --- a/Src/Zle/zle_utils.c +++ b/Src/Zle/zle_utils.c @@ -943,25 +943,25 @@ handleundo(void) remetafy = 0; mkundoent(); - if(!nextchanges) - return; - setlastline(); - if(curchange->next) { - freechanges(curchange->next); - curchange->next = NULL; - free(curchange->del); - free(curchange->ins); - curchange->del = curchange->ins = NULL; - curchange->dell = curchange->insl = 0; + if(nextchanges) { + setlastline(); + if(curchange->next) { + freechanges(curchange->next); + curchange->next = NULL; + free(curchange->del); + free(curchange->ins); + curchange->del = curchange->ins = NULL; + curchange->dell = curchange->insl = 0; + } + nextchanges->prev = curchange->prev; + if(curchange->prev) + curchange->prev->next = nextchanges; + else + changes = nextchanges; + curchange->prev = endnextchanges; + endnextchanges->next = curchange; + nextchanges = endnextchanges = NULL; } - nextchanges->prev = curchange->prev; - if(curchange->prev) - curchange->prev->next = nextchanges; - else - changes = nextchanges; - curchange->prev = endnextchanges; - endnextchanges->next = curchange; - nextchanges = endnextchanges = NULL; if (remetafy) metafy_line(); -- cgit 1.4.1