zsh-workers
 help / color / mirror / code / Atom feed
* Screen refresh problem with completion messages
@ 2001-05-04 16:22 Bart Schaefer
  2001-05-07 10:33 ` Sven Wischnowsky
  0 siblings, 1 reply; 4+ messages in thread
From: Bart Schaefer @ 2001-05-04 16:22 UTC (permalink / raw)
  To: zsh-workers

I'm using (surprise) the `bart' prompt theme with an RPS1, which gives me a
two-line prompt like this:

zagzig [zed -f _cvs] /usr/src/local/zsh/zsh-4.0                01-05-04  8:53AM
schaefer[526]                                                       4.0.1-pre-3

When a failed completion produces a message that is exactly 80 columns wide,
as in this example (which you won't be able to reproduce directly because I
was using an edited _cvs, as you can see from history line in the prompt):

zagzig [zed -f _cvs] /usr/src/local/zsh/zsh-4.0                01-05-04  8:53AM
schaefer[526] cvs remove P/Q/R/t                                    4.0.1-pre-3
No matches for ` ', `removed file', `directory', `path prefix', or `corrections

Note that the final close-quote is missing (so only 79 columns of the 80-
column message were displayed).  Worse, however, is that the cursor is now
over the `c' in the word `local', on the line above where it should be.

My guess is that the zle code thinks that all 80 columns were printed and
thus that the line has wrapped, so it needed to move the cursor up two
line; but some other part of the code is suppressing the 80th character
in order to prevent the line from wrapping.  However, I'm not sure how to
track it down.  Geoff or Sven?

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Screen refresh problem with completion messages
  2001-05-04 16:22 Screen refresh problem with completion messages Bart Schaefer
@ 2001-05-07 10:33 ` Sven Wischnowsky
  2001-05-07 14:34   ` Bart Schaefer
  0 siblings, 1 reply; 4+ messages in thread
From: Sven Wischnowsky @ 2001-05-07 10:33 UTC (permalink / raw)
  To: zsh-workers

Bart Schaefer wrote:

> ...
> 
> Note that the final close-quote is missing (so only 79 columns of the 80-
> column message were displayed).  Worse, however, is that the cursor is now
> over the `c' in the word `local', on the line above where it should be.
> 
> My guess is that the zle code thinks that all 80 columns were printed and
> thus that the line has wrapped, so it needed to move the cursor up two
> line; but some other part of the code is suppressing the 80th character
> in order to prevent the line from wrapping.  However, I'm not sure how to
> track it down.  Geoff or Sven?

This is yet another manifestation of the first bug in the BUGS file.

At least for the non-complist code, it actually prints all characters
and then outputs a CLEAREOL which removes the last character again.  For
complist I suspect something similar, although there seems to be
something else keeping the last character from being printed (or which
makes it be erased again).

The cursor positioning bug is caused by what you thought.

I'm not at all sure how to fix it.  We discussed it some time ago and
then again (shortly) when talking about open bugs before entering the
4.0-pre-state.  We wanted to have some function that outputs a string
and reports the number of lines needed, taking terminal capabilities
into account.  That function didn't appear and hence I couldn't change
the completion code to use it.  And I don't think I have enough
experience with different terminals to try to write that function myself.

So, what are we to do now?


Bye
  Sven


-- 
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Screen refresh problem with completion messages
  2001-05-07 10:33 ` Sven Wischnowsky
@ 2001-05-07 14:34   ` Bart Schaefer
  2001-05-08  8:11     ` PATCH: " Sven Wischnowsky
  0 siblings, 1 reply; 4+ messages in thread
From: Bart Schaefer @ 2001-05-07 14:34 UTC (permalink / raw)
  To: Sven Wischnowsky, zsh-workers

On May 7, 12:33pm, Sven Wischnowsky wrote:
} Subject: Re: Screen refresh problem with completion messages
}
} This is yet another manifestation of the first bug in the BUGS file.
} 
} At least for the non-complist code, it actually prints all characters
} and then outputs a CLEAREOL which removes the last character again.

What about simply emitting space-backspace when the cursor reaches the
COLUMNS-th character?  That might have some ramifications in zle, but
it should be completely harmless in complist.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   


^ permalink raw reply	[flat|nested] 4+ messages in thread

* PATCH: Re: Screen refresh problem with completion messages
  2001-05-07 14:34   ` Bart Schaefer
@ 2001-05-08  8:11     ` Sven Wischnowsky
  0 siblings, 0 replies; 4+ messages in thread
From: Sven Wischnowsky @ 2001-05-08  8:11 UTC (permalink / raw)
  To: zsh-workers

Bart Schaefer wrote:

> On May 7, 12:33pm, Sven Wischnowsky wrote:
> } Subject: Re: Screen refresh problem with completion messages
> }
> } This is yet another manifestation of the first bug in the BUGS file.
> } 
> } At least for the non-complist code, it actually prints all characters
> } and then outputs a CLEAREOL which removes the last character again.
> 
> What about simply emitting space-backspace when the cursor reaches the
> COLUMNS-th character?  That might have some ramifications in zle, but
> it should be completely harmless in complist.

Oh, yes.

Bye
  Sven

Index: Src/Zle/complist.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Zle/complist.c,v
retrieving revision 1.40
diff -u -r1.40 complist.c
--- Src/Zle/complist.c	2001/03/15 09:55:33	1.40
+++ Src/Zle/complist.c	2001/05/08 08:11:11
@@ -576,6 +576,7 @@
 		    return ask;
 		}
 		col = 0;
+                fputs(" \010", shout);
 	    }
 	}
     }
@@ -895,8 +896,10 @@
 		    continue;
 		}
 		putc(*p, shout);
-		if ((beg = !(cc % columns)) && !stat)
+		if ((beg = !(cc % columns)) && !stat) {
 		    ml++;
+                    fputs(" \010", shout);
+                }
 		if (mscroll && beg && !--mrestlines && (ask = asklistscroll(ml))) {
 		    *stop = 1;
 		    if (stat && n)
Index: Src/Zle/zle_tricky.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Zle/zle_tricky.c,v
retrieving revision 1.24
diff -u -r1.24 zle_tricky.c
--- Src/Zle/zle_tricky.c	2001/02/28 09:12:57	1.24
+++ Src/Zle/zle_tricky.c	2001/05/08 08:11:12
@@ -1917,8 +1917,11 @@
 		l += 1 + (cc / columns);
 		cc = 0;
 	    }
-	    if (dopr)
+	    if (dopr) {
 		putc(*p, shout);
+                if (!(cc % columns))
+                    fputs(" \010", shout);
+            }
 	}
     }
     if (dopr) {

-- 
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2001-05-08  8:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-05-04 16:22 Screen refresh problem with completion messages Bart Schaefer
2001-05-07 10:33 ` Sven Wischnowsky
2001-05-07 14:34   ` Bart Schaefer
2001-05-08  8:11     ` PATCH: " Sven Wischnowsky

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).