Re: screen update problem during periodic file "refresh"

2006-09-08 Thread Bram Moolenaar

Yakov Lerner wrote:

> > > I see several problems (that I can't explain) in the vim "refresh"-loop
> > > watching the growing file (a-la 'tail -f'). Vim commands are below.
> > >
> > > Problem #1: There is unexpected output on the bottom line
> > >   (lines of the file is echoed on the bottom line). Why
> > ?
> > > Problem #2: When you vertically resize the xterm window,
> > >   vim screen is corrupted and never repainted properly.
> > > Problem #3: Sometimes, when I press Ctrl-C to quit the loop,
> > >   vim is in ex mode and responds 'Type  :quit
> > > to exit Vim'
> > >   Why ?
> > > Problem #4: Since vim repaints properly when waiting for chars, I'd like
> > >   to put getchartimeout(1000) in place of sleep 1. Do we
> > >   have getchar() with timeout ?
> > >
> > > To see the demonstration:
> > >
> > > 1. In one window, create growing file using these shell command:
> > >
> > >   % while :; do date >>1; sleep 1; done
> > >
> > > 2. In another window:
> > >
> > >   vim -u NONE ~/xxx
> > >   :set nolz | while 1 | e | redraw | $ | sleep 1 | endw
> > >
> > >   " notice unexpected output on the bottom line
> > >   " try to resize screen. It is not restored properly.
> > >   " Press Ctrl-C to quit. Sometimes, vim quits the loop
> > properly.
> > >   " Sometime, vim does not quit the loop, stays in ex mode.
> > >   " (Type  :quit  to exit Vim)
> > >
> > > (This command sequence must be not perfect but it demonstrates the
> > problem).
> >
> > I can see the extra output on the bottom line.  I'll look into this
> > later.
> >
> > How do you see the problem with the screen resize?
> 
> 
> Originally, &lines is around 50. Screenshot before resize is
> 
> http://www.wikiupload.com/download_page.php?id=16428
> (before-resize.gif). This is normal screen.
> 
> Here is how I resize: I resize screen height down to 10.
> Then I resize height back to approximately original height.
> Here is screenshot after resize
> (I also give it several seconds of time, but it never really recovers):
> 
> http://www.wikiupload.com/download_page.php?id=16429
> (after-resize.gif). It's different every time, but always screwed.

It looks wrong.  I'll look into this later.

-- 
Seen on the back of a biker's vest: If you can read this, my wife fell off.

 /// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net   \\\
///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\download, build and distribute -- http://www.A-A-P.org///
 \\\help me help AIDS victims -- http://ICCF-Holland.org///


Re: screen update problem during periodic file "refresh"

2006-09-07 Thread Yakov Lerner

On 9/7/06, Yakov Lerner <[EMAIL PROTECTED]> wrote:

On 9/7/06, Bram Moolenaar <[EMAIL PROTECTED]> wrote:
>
> Yakov Lerner wrote:
>
> > I see several problems (that I can't explain) in the vim "refresh"-loop
> > watching the growing file (a-la 'tail -f'). Vim commands are below.
> >
> > Problem #1: There is unexpected output on the bottom line
> >   (lines of the file is echoed on the bottom line). Why ?
> > Problem #2: When you vertically resize the xterm window,
> >   vim screen is corrupted and never repainted properly.
> > Problem #3: Sometimes, when I press Ctrl-C to quit the loop,
> >   vim is in ex mode and responds 'Type  :quit
> > to exit Vim'
> >   Why ?
> > Problem #4: Since vim repaints properly when waiting for chars, I'd like
> >   to put getchartimeout(1000) in place of sleep 1. Do we
> >   have getchar() with timeout ?
> >
> > To see the demonstration:
> >
> > 1. In one window, create growing file using these shell command:
> >
> >   % while :; do date >>1; sleep 1; done
> >
> > 2. In another window:
> >
> >   vim -u NONE ~/xxx
> >   :set nolz | while 1 | e | redraw | $ | sleep 1 | endw
> >
> >   " notice unexpected output on the bottom line
> >   " try to resize screen. It is not restored properly.
> >   " Press Ctrl-C to quit. Sometimes, vim quits the loop properly.
> >   " Sometime, vim does not quit the loop, stays in ex mode.
> >   " (Type  :quit  to exit Vim)
> >
> > (This command sequence must be not perfect but it demonstrates the problem).
>
> I can see the extra output on the bottom line.  I'll look into this
> later.
>
> How do you see the problem with the screen resize?

I am  trying now to ':call getchar(0)' near 'sleep 1',
and with this addition, screen resizes properly.
Like this:

:set nolz | while 1 | e | redraw | $ | call getchar(0) | sleep 1 | endw


Correction, this should have been getchar(1) not getchar(0).
Addition of getchar(1) also handles resizes properly.

Yakov


Re: screen update problem during periodic file "refresh"

2006-09-07 Thread Yakov Lerner

On 9/7/06, Bram Moolenaar <[EMAIL PROTECTED]> wrote:


Yakov Lerner wrote:

> I see several problems (that I can't explain) in the vim "refresh"-loop
> watching the growing file (a-la 'tail -f'). Vim commands are below.
>
> Problem #1: There is unexpected output on the bottom line
>   (lines of the file is echoed on the bottom line). Why ?
> Problem #2: When you vertically resize the xterm window,
>   vim screen is corrupted and never repainted properly.
> Problem #3: Sometimes, when I press Ctrl-C to quit the loop,
>   vim is in ex mode and responds 'Type  :quit
> to exit Vim'
>   Why ?
> Problem #4: Since vim repaints properly when waiting for chars, I'd like
>   to put getchartimeout(1000) in place of sleep 1. Do we
>   have getchar() with timeout ?
>
> To see the demonstration:
>
> 1. In one window, create growing file using these shell command:
>
>   % while :; do date >>1; sleep 1; done
>
> 2. In another window:
>
>   vim -u NONE ~/xxx
>   :set nolz | while 1 | e | redraw | $ | sleep 1 | endw
>
>   " notice unexpected output on the bottom line
>   " try to resize screen. It is not restored properly.
>   " Press Ctrl-C to quit. Sometimes, vim quits the loop properly.
>   " Sometime, vim does not quit the loop, stays in ex mode.
>   " (Type  :quit  to exit Vim)
>
> (This command sequence must be not perfect but it demonstrates the problem).

I can see the extra output on the bottom line.  I'll look into this
later.

How do you see the problem with the screen resize?


I am  trying now to ':call getchar(0)' near 'sleep 1',
and with this addition, screen resizes properly.
Like this:

:set nolz | while 1 | e | redraw | $ | call getchar(0) | sleep 1 | endw

Without getchar(0), resize is not handled.

Yakov


Re: screen update problem during periodic file "refresh"

2006-09-07 Thread Yakov Lerner

On 9/7/06, Bram Moolenaar <[EMAIL PROTECTED]> wrote:


Yakov Lerner wrote:

> I see several problems (that I can't explain) in the vim "refresh"-loop
> watching the growing file (a-la 'tail -f'). Vim commands are below.
>
> Problem #1: There is unexpected output on the bottom line
>   (lines of the file is echoed on the bottom line). Why ?
> Problem #2: When you vertically resize the xterm window,
>   vim screen is corrupted and never repainted properly.
> Problem #3: Sometimes, when I press Ctrl-C to quit the loop,
>   vim is in ex mode and responds 'Type  :quit
> to exit Vim'
>   Why ?
> Problem #4: Since vim repaints properly when waiting for chars, I'd like
>   to put getchartimeout(1000) in place of sleep 1. Do we
>   have getchar() with timeout ?
>
> To see the demonstration:
>
> 1. In one window, create growing file using these shell command:
>
>   % while :; do date >>1; sleep 1; done
>
> 2. In another window:
>
>   vim -u NONE ~/xxx
>   :set nolz | while 1 | e | redraw | $ | sleep 1 | endw
>
>   " notice unexpected output on the bottom line
>   " try to resize screen. It is not restored properly.
>   " Press Ctrl-C to quit. Sometimes, vim quits the loop properly.
>   " Sometime, vim does not quit the loop, stays in ex mode.
>   " (Type  :quit  to exit Vim)
>
> (This command sequence must be not perfect but it demonstrates the problem).

I can see the extra output on the bottom line.  I'll look into this
later.

How do you see the problem with the screen resize?


Originally, &lines is around 50. Screenshot before resize is

http://www.wikiupload.com/download_page.php?id=16428
   (before-resize.gif). This is normal screen.

Here is how I resize: I resize screen height down to 10.
Then I resize height back to approximately original height.
Here is screenshot after resize
(I also give it several seconds of time, but it never really recovers):

http://www.wikiupload.com/download_page.php?id=16429
(after-resize.gif). It's different every time, but always screwed.

Yakov


Re: screen update problem during periodic file "refresh"

2006-09-07 Thread Bram Moolenaar

Yakov Lerner wrote:

> I see several problems (that I can't explain) in the vim "refresh"-loop
> watching the growing file (a-la 'tail -f'). Vim commands are below.
> 
> Problem #1: There is unexpected output on the bottom line
>   (lines of the file is echoed on the bottom line). Why ?
> Problem #2: When you vertically resize the xterm window,
>   vim screen is corrupted and never repainted properly.
> Problem #3: Sometimes, when I press Ctrl-C to quit the loop,
>   vim is in ex mode and responds 'Type  :quit
> to exit Vim'
>   Why ?
> Problem #4: Since vim repaints properly when waiting for chars, I'd like
>   to put getchartimeout(1000) in place of sleep 1. Do we
>   have getchar() with timeout ?
> 
> To see the demonstration:
> 
> 1. In one window, create growing file using these shell command:
> 
>   % while :; do date >>1; sleep 1; done
> 
> 2. In another window:
> 
>   vim -u NONE ~/xxx
>   :set nolz | while 1 | e | redraw | $ | sleep 1 | endw
> 
>   " notice unexpected output on the bottom line
>   " try to resize screen. It is not restored properly.
>   " Press Ctrl-C to quit. Sometimes, vim quits the loop properly.
>   " Sometime, vim does not quit the loop, stays in ex mode.
>   " (Type  :quit  to exit Vim)
> 
> (This command sequence must be not perfect but it demonstrates the problem).

I can see the extra output on the bottom line.  I'll look into this
later.

How do you see the problem with the screen resize?

-- 
Vim is like Emacs without all the typing.  (John "Johann" Spetz)

 /// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net   \\\
///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\download, build and distribute -- http://www.A-A-P.org///
 \\\help me help AIDS victims -- http://ICCF-Holland.org///


screen update problem during periodic file "refresh"

2006-09-07 Thread Yakov Lerner

I see several problems (that I can't explain) in the vim "refresh"-loop
watching the growing file (a-la 'tail -f'). Vim commands are below.

Problem #1: There is unexpected output on the bottom line
 (lines of the file is echoed on the bottom line). Why ?
Problem #2: When you vertically resize the xterm window,
 vim screen is corrupted and never repainted properly.
Problem #3: Sometimes, when I press Ctrl-C to quit the loop,
 vim is in ex mode and responds 'Type  :quit
to exit Vim'
 Why ?
Problem #4: Since vim repaints properly when waiting for chars, I'd like
 to put getchartimeout(1000) in place of sleep 1. Do we
 have getchar() with timeout ?

To see the demonstration:

1. In one window, create growing file using these shell command:

 % while :; do date >>1; sleep 1; done

2. In another window:

 vim -u NONE ~/xxx
 :set nolz | while 1 | e | redraw | $ | sleep 1 | endw

 " notice unexpected output on the bottom line
 " try to resize screen. It is not restored properly.
 " Press Ctrl-C to quit. Sometimes, vim quits the loop properly.
 " Sometime, vim does not quit the loop, stays in ex mode.
 " (Type  :quit  to exit Vim)

(This command sequence must be not perfect but it demonstrates the problem).

Yakov