zsh-workers
 help / color / mirror / code / Atom feed
* Re: zsh-3.0.2 repacked
@ 1996-12-20  0:38 Wolfgang Hukriede
  1996-12-20  0:55 ` Zoltan Hidvegi
  1996-12-20  1:22 ` Richard Coleman
  0 siblings, 2 replies; 4+ messages in thread
From: Wolfgang Hukriede @ 1996-12-20  0:38 UTC (permalink / raw)
  To: zsh-workers

Hi Zoltan!

> It also contains a little fix which is included below to work around a bug
> in the NeXTStep libc which causes slow refresh.  You only need to apply
> this patch if you find zle slow when it refreshes the screen (but first
> try to unset BAUD and see if that helps).

I'm sorry, but definitely there's no such alleged bug in the NeXTStep libc.
Setting BAUD to zero fixes the jumping movement of the cursor, nothing else,
the screen output is as fast/slow as without setting BAUD.

Then, after:

        setvbuf(shout, NULL, _IOFBF, 0);

shout->_bufsiz gives ZERO, as well as shout->_base still is ZERO, in other
words, shout is unbuffered. I cannot imagine this should be different with
other libc's. Have you actually checked this?

Also, to fix that all,

        setvbuf(shout, NULL, _IOFBF, BUFSIZ);

is totally sufficient, and has the advantage, that the buffer only is
allocated if shout is actually used. (Further: imo there's really no need for
conditional compilation here.).

Cheers, till then, Wolfgang.


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

* Re: zsh-3.0.2 repacked
  1996-12-20  0:38 zsh-3.0.2 repacked Wolfgang Hukriede
@ 1996-12-20  0:55 ` Zoltan Hidvegi
  1996-12-20  1:22 ` Richard Coleman
  1 sibling, 0 replies; 4+ messages in thread
From: Zoltan Hidvegi @ 1996-12-20  0:55 UTC (permalink / raw)
  To: Wolfgang Hukriede; +Cc: zsh-workers

Wolfgang Hukriede wrote:
> I'm sorry, but definitely there's no such alleged bug in the NeXTStep libc.
[...]
> Then, after:
> 
>         setvbuf(shout, NULL, _IOFBF, 0);
> 
> shout->_bufsiz gives ZERO, as well as shout->_base still is ZERO, in other
> words, shout is unbuffered. I cannot imagine this should be different with
> other libc's. Have you actually checked this?

Yes of course.  On all other systems I know (and I tesed zsh on 8 different
Unix systems) setvbuf ignores the last argument of setvbuf if the second
argument is NULL.  And conditional compilation is probably has been put
there because there were some systems without setvbuf or _IOFBF.  And only
NeXTStep people complained about slow refresh so I'm pretty sure that
NeXTStep is the only system with this behaviour.

And I used static buffer instead of passing NULL to make sure that it will
really work.  I can imagine that some other system's buggy libc would
interpret non-zero last argument as if you had given it a buffer at address
NULL.

Zoltan


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

* Re: zsh-3.0.2 repacked
  1996-12-20  0:38 zsh-3.0.2 repacked Wolfgang Hukriede
  1996-12-20  0:55 ` Zoltan Hidvegi
@ 1996-12-20  1:22 ` Richard Coleman
  1 sibling, 0 replies; 4+ messages in thread
From: Richard Coleman @ 1996-12-20  1:22 UTC (permalink / raw)
  To: Wolfgang Hukriede; +Cc: zsh-workers

> I'm sorry, but definitely there's no such alleged bug in the NeXTStep libc.
> Setting BAUD to zero fixes the jumping movement of the cursor, nothing else,
> the screen output is as fast/slow as without setting BAUD.
> 
> Then, after:
> 
>         setvbuf(shout, NULL, _IOFBF, 0);
> 
> shout->_bufsiz gives ZERO, as well as shout->_base still is ZERO, in other
> words, shout is unbuffered. I cannot imagine this should be different with
> other libc's. Have you actually checked this?
> 
> Also, to fix that all,
> 
>         setvbuf(shout, NULL, _IOFBF, BUFSIZ);
> 
> is totally sufficient, and has the advantage, that the buffer only is
> allocated if shout is actually used. (Further: imo there's really no need for
> conditional compilation here.).

This is definitely a bug.  If second argument is NULL, and the mode is
either _IOFBF (fully buffered) or _IOLBF (line buffered), then the libc
should ignore the fourth argument and allocate a buffer of the appropriate
length.  This is according to Steven's "Advanced Programming in the Unix
Environment".

rc


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

* Re: zsh-3.0.2 repacked
@ 1996-12-20  1:16 Wolfgang Hukriede
  0 siblings, 0 replies; 4+ messages in thread
From: Wolfgang Hukriede @ 1996-12-20  1:16 UTC (permalink / raw)
  To: zsh-workers

Hi again,

> > other libc's. Have you actually checked this?

> Yes of course.  On all other systems I know (and I tesed zsh on 8 different
> Unix systems) setvbuf ignores the last argument of setvbuf if the second
> argument is NULL.  And conditional compilation is probably has been put
> there because there were some systems without setvbuf or _IOFBF.

Ok, well yes, sorry.

> And I used static buffer instead of passing NULL to make sure that it will
> really work. I can imagine that some other system's buggy libc would
> interpret non-zero last argument as if you had given it a buffer at address
> NULL.

Hm... that's *very* defensive.  :-)

Wolfgang.


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

end of thread, other threads:[~1996-12-20  1:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-12-20  0:38 zsh-3.0.2 repacked Wolfgang Hukriede
1996-12-20  0:55 ` Zoltan Hidvegi
1996-12-20  1:22 ` Richard Coleman
1996-12-20  1:16 Wolfgang Hukriede

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