zsh-workers
 help / color / mirror / code / Atom feed
* 3.0.5: eval `resize` messes up
@ 1998-05-12 16:27 Clint Olsen
  1998-05-18  7:45 ` Tatsuo Furukawa
  0 siblings, 1 reply; 6+ messages in thread
From: Clint Olsen @ 1998-05-12 16:27 UTC (permalink / raw)
  To: zsh-workers

Hello:

Is there a known problem with using eval `resize`?  I used to be able to do
this with 3.0.2 (and any other shell).  Is there some setting I might be
missing?  I'm on HP-UX 10.20.

Thanks,

-Clint


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

* Re: 3.0.5: eval `resize` messes up
  1998-05-12 16:27 3.0.5: eval `resize` messes up Clint Olsen
@ 1998-05-18  7:45 ` Tatsuo Furukawa
  1998-05-18  8:10   ` Clint Olsen
  0 siblings, 1 reply; 6+ messages in thread
From: Tatsuo Furukawa @ 1998-05-18  7:45 UTC (permalink / raw)
  To: olsenc; +Cc: zsh-workers


Hi,

Clint> Is there a known problem with using eval `resize`?  I used to
Clint> be able to do this with 3.0.2 (and any other shell).  Is there
Clint> some setting I might be missing?  I'm on HP-UX 10.20.

Is this problem "If you evaluated `resize`, zsh is not measure
terminal size"?

If so, this is normal zsh action. (Your setting is sufficient.)  Zsh
3.0.5 trust LINES and COLUMNS.  If you don't set LINES and COLUMNS,
zsh measures terminal size.  But If you set LINES and COLUMNS, zsh
trusts its value.  Therefore, if you execute "eval 'resize`", you must
always execute "eval `resize`" when terminal size is changed.

I don't know whether this is zsh's feature or bug.  I just read source
code.

-- 
---------------------------------------------------------------
[(hp)]  Hewlett-Packard Japan, Ltd     Tatsuo Furukawa 
                                       tatsuo@kobe.hp.com


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

* Re: 3.0.5: eval `resize` messes up
  1998-05-18  7:45 ` Tatsuo Furukawa
@ 1998-05-18  8:10   ` Clint Olsen
  1998-05-18 18:20     ` Bart Schaefer
  0 siblings, 1 reply; 6+ messages in thread
From: Clint Olsen @ 1998-05-18  8:10 UTC (permalink / raw)
  To: zsh-workers

On May 18, Tatsuo Furukawa wrote:
> 
> Is this problem "If you evaluated `resize`, zsh is not measure
> terminal size"?
 
Yes.  Resize alone seems to corectly meausre the new window size.

> If so, this is normal zsh action. (Your setting is sufficient.)  Zsh
> 3.0.5 trust LINES and COLUMNS.  If you don't set LINES and COLUMNS, zsh
> measures terminal size.  But If you set LINES and COLUMNS, zsh trusts its
> value.  Therefore, if you execute "eval 'resize`", you must always
> execute "eval `resize`" when terminal size is changed.

Setting LINES and COLUMNS is precisely why I use "eval `resize`".  It seems
to work on every other shell except Zsh.  In fact it worked on Zsh 3.0.2.

-Clint


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

* Re: 3.0.5: eval `resize` messes up
  1998-05-18  8:10   ` Clint Olsen
@ 1998-05-18 18:20     ` Bart Schaefer
  1998-05-19  7:21       ` Clint Olsen
  0 siblings, 1 reply; 6+ messages in thread
From: Bart Schaefer @ 1998-05-18 18:20 UTC (permalink / raw)
  To: Tatsuo Furukawa, olsenc, zsh-workers

On May 18,  4:45pm, Tatsuo Furukawa wrote:
} Subject: Re: 3.0.5: eval `resize` messes up
}
} 3.0.5 trust LINES and COLUMNS.  If you don't set LINES and COLUMNS,
} zsh measures terminal size.  But If you set LINES and COLUMNS, zsh
} trusts its value.
} 
} I don't know whether this is zsh's feature or bug.

It's a feature that has a bug, as far as I'm concerned.  Zsh went from
not believing LINES and COLUMNS when it should have, to believing them
even when it should not.  However, it's very difficult to come up with
an accurate expression for when they ought to be recognized.

On May 18,  1:10am, Clint Olsen wrote:
} Subject: Re: 3.0.5: eval `resize` messes up
}
} Setting LINES and COLUMNS is precisely why I use "eval `resize`".  It
} seems to work on every other shell except Zsh.  In fact it worked on
} Zsh 3.0.2.

Run "resize" without the "eval" wrapper and see what it spits out.  It
may be emitting some syntax that zsh doesn't like.  (And if you still
have 3.0.2 around, run it there too and see it it differs at all.)

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


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

* Re: 3.0.5: eval `resize` messes up
  1998-05-18 18:20     ` Bart Schaefer
@ 1998-05-19  7:21       ` Clint Olsen
       [not found]         ` <980519093419.ZM14978@candle.brasslantern.com>
  0 siblings, 1 reply; 6+ messages in thread
From: Clint Olsen @ 1998-05-19  7:21 UTC (permalink / raw)
  To: zsh-workers

On May 18, Bart Schaefer wrote:
> } Setting LINES and COLUMNS is precisely why I use "eval `resize`".  It
> } seems to work on every other shell except Zsh.  In fact it worked on
> } Zsh 3.0.2.
> 
> Run "resize" without the "eval" wrapper and see what it spits out.  It
> may be emitting some syntax that zsh doesn't like.  (And if you still
> have 3.0.2 around, run it there too and see it it differs at all.)

Resize spits out the usual:

COLUMNS=77;
LINES=30;
export COLUMNS LINES;

This doesn't change with shell versions.

There are no syntax errors on 3.0.5.  It just plain doesn't respond to the
command.  3.0.2 seems to work fine.

-Clint


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

* Re: 3.0.5: eval `resize` messes up
       [not found]           ` <19980519094017.A9893@dtthp169.pdx.intel.com>
@ 1998-05-19 17:27             ` Bart Schaefer
  0 siblings, 0 replies; 6+ messages in thread
From: Bart Schaefer @ 1998-05-19 17:27 UTC (permalink / raw)
  To: Clint Olsen; +Cc: zsh-workers

On May 19,  9:40am, Clint Olsen wrote:
} Subject: Re: 3.0.5: eval `resize` messes up
}
} On May 19, Bart Schaefer wrote:
} > 
} > OK, next question ... what exactly does it not do, that 3.0.2 does?
} 
} Eval `resize` no longer sets the window to the new size so that programs
} like less etc. etc. use the correct terminal window size.

Ah!  Now we're getting somewhere.  If you look in Src/utils.c at around
lines 875-885 you'll see that setting the window size now happens only
when COLUMNS and LINES actually change (rather than on every settyinfo()
as it did before) and that it's now conditional upon `interact' being
true.  If you're interested in running the debugger, you could check the
value of the `from' parameter in adjustwinsize() and see whether that
`if (interact && ...)' case is executing.

The first thing I'd check, though, is that configure did its job correctly
so that TIOCGWINSZ is actually defined at that point when compiling utils.c.
The code in adjustwinsize() is definitely working for me on Linux; I tried
this experiment:

zagzig[38] foo=$(resize)
( stretch the xterm to be much bigger than it was )
zagzig[39] vi
( verify that vim is using the new terminal size )
zagzig[40] eval $foo
zagzig[41] unset LINES COLUMNS
zagzig[42] vi
( vim is now using the old, smaller terminal size )

With LINES and COLUMNS unset, the only place vim could have read the smaller
terminal size is from the tty driver, so zsh must have reset it at the time
of the `eval $foo'.

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


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

end of thread, other threads:[~1998-05-19 17:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-05-12 16:27 3.0.5: eval `resize` messes up Clint Olsen
1998-05-18  7:45 ` Tatsuo Furukawa
1998-05-18  8:10   ` Clint Olsen
1998-05-18 18:20     ` Bart Schaefer
1998-05-19  7:21       ` Clint Olsen
     [not found]         ` <980519093419.ZM14978@candle.brasslantern.com>
     [not found]           ` <19980519094017.A9893@dtthp169.pdx.intel.com>
1998-05-19 17:27             ` Bart Schaefer

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