From: Adam Rogoyski Date: Tue, 20 Jun 2000 00:00:53 +0000 (+0000) Subject: - do_wrap() spaces between words fix. X-Git-Tag: v0.9.11~9 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=ee39d57e8c3c87ce268caad24b6390129c4e4242;p=nano.git - do_wrap() spaces between words fix. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@36 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- diff --git a/nano.c b/nano.c index 86a0c383..bee1bbca 100644 --- a/nano.c +++ b/nano.c @@ -703,18 +703,22 @@ assert (strlenpt(inptr->data) >= fill); else { /* Case 2a: cursor before word at wrap point. */ - if (current_x < current_word_start) { - temp->data = nmalloc(strlen(&inptr->data[current_word_start]) + 1); + if (current_x < current_word_start) { + temp->data = nmalloc(strlen(&inptr->data[current_word_start]) + 1); strcpy(temp->data, &inptr->data[current_word_start]); - - /* Do this in either case, else words after current_x - get chopped... */ - i = current_word_start - 1; - while (isspace(inptr->data[i])) { - i--; - assert (i >= 0); - } - + + if (!isspace(input_char)) { + i = current_word_start - 1; + while (isspace(inptr->data[i])) { + i--; + assert (i >= 0); + } + } + else if (current_x <= last_word_end) + i = last_word_end - 1; + else + i = current_x - 1; + inptr->data = nrealloc(inptr->data, i + 2); inptr->data[i + 1] = 0; }