I doubt this is zsh's problem but she may have a solution just the same.  I do this in my 'i' function:     width=${=$( stty size )[2]} ... and it works fine, however if I call the function thusly: _function_test () {     local integer i=0     while read aa; do         let i++         eval ${=aa} 2> /dev/null     done }     $ _function_test <<< "i path" ... 'width' is zero.  I think this is some 'stty' issue, still the function will be running in a terminal and the terminal has a width so it puzzles me that no width can be reported.