zsh-workers
 help / color / mirror / code / Atom feed
From: P.Stephenson@swansea.ac.uk
To: zsh-workers@math.gatech.edu (Zsh hackers list)
Subject: Re: Small display bug
Date: Thu, 06 Jul 95 17:09:45 +0100	[thread overview]
Message-ID: <21445.9507061609@pyro.swan.ac.uk> (raw)
In-Reply-To: "P.Stephenson@swansea.ac.uk"'s message of "Thu, 06 Jul 95 16:11:49 BST." <21468.9507061511@pyro.swan.ac.uk>

I wrote:
> > % bindkey -e_
> > 
> > Then hit <esc>-t to transpose words
> > 
> > % -e bindkey_ -e
> 
> This fixes it...

except I forgot to check lines which wraparound the screen... this
version with a couple of extra tests now works O.K. with that.

I'd much prefer a zle_refresh expert to fix this but that department's
been quiet for a while, perhaps they're having to work or something.

There is still a bug when you insert in the middle of a long line over
the line break, but I don't think I've caused that --- at least, to
the best of my knowledge it's the same both before and after this
patch.

Guess who I replied to before I remembered to change it...

*** Src/zle_refresh.c.ceol	Wed Jul  5 14:27:13 1995
--- Src/zle_refresh.c	Thu Jul  6 17:04:01 1995
***************
*** 486,491 ****
--- 486,493 ----
  	if ((j > i + tclen[TCCLEAREOL]) || /* new buf's spaces early enough */
  	    (nllen == winw && nl[winw - 1] == ' '))
  	    col_cleareol = i;
+ 	else if (nllen < winw)
+ 	    col_cleareol = nllen;
      }
  
  /* 3: set character for first column, in case automargin stuff needs doing */
***************
*** 497,504 ****
      /* skip past all matching characters */
  	for (; *nl && (*nl == *ol); nl++, ol++, ccs++) ;
  
! 	if (!*nl)		/* we've finished writing the new line */
! 	    return;
  
  	moveto(ln, ccs);	/* move to where we do all output from */
  
--- 499,506 ----
      /* skip past all matching characters */
  	for (; *nl && (*nl == *ol); nl++, ol++, ccs++) ;
  
! 	if ((!*nl && !*ol) || ccs >= winw)
! 	    return;		/* we've finished writing the new line */
  
  	moveto(ln, ccs);	/* move to where we do all output from */
  
***************
*** 506,511 ****
--- 508,522 ----
  	if ((col_cleareol != -1) && (ccs >= col_cleareol)) {
  	    tcout(TCCLEAREOL);
  	    SELECT_ADD_COST(tclen[TCCLEAREOL]);
+ 	    return;
+ 	}
+     /* otherwise, if we've finished the new buffer, dump out enough spaces */
+ 	if (!*nl) {
+ 	    j = strlen(ol);
+ 	    for (i = 0; i < j; i++)
+ 		putc(' ', shout);
+ 	    vcs += j;
+ 	    moveto(ln, ccs);
  	    return;
  	}
  

-- 
Peter Stephenson <P.Stephenson@swansea.ac.uk>  Tel: +44 1792 205678 extn. 4461
WWW:  http://python.swan.ac.uk/~pypeters/      Fax: +44 1792 295324
Department of Physics, University of Wales, Swansea,
Singleton Park, Swansea, SA2 8PP, U.K.


      reply	other threads:[~1995-07-06 16:16 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1995-07-04 17:12 Heading, Anthony
1995-07-04 16:42 ` Some other Small display bugs Peter Kutschera
1995-07-06 15:11 ` Small display bug P.Stephenson
1995-07-06 16:09   ` P.Stephenson [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=21445.9507061609@pyro.swan.ac.uk \
    --to=p.stephenson@swansea.ac.uk \
    --cc=zsh-workers@math.gatech.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).