Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: crashes when setting COLUMNS=0 or 1

On Jun 26, 12:03am, Bart Schaefer wrote:
} In recent version adjustcolumns() has this:
}     if (signalled || zterm_columns <= 0)
}         zterm_columns = shttyinfo.winsize.ws_col;
}     else
}         shttyinfo.winsize.ws_col = zterm_columns;
} #endif /* TIOCGWINSZ */
}     if (zterm_columns <= 0) {
}         DPUTS(signalled, "BUG: Impossible TIOCGWINSZ cols");
}         zterm_columns = tccolumns > 0 ? tccolumns : 80;
}     }
} This is called from adjustwinsize()

So, interesting side-effect:  If my patch for IPDEF5 is applied, then
settings of COLUMNS and LINES get propagated through to the tty driver
and can end up affecting the behavior of the parent shell (or anything
else that's using the terminal where those values were changed), even
after the shell where the assignments were made has exited.

E.g. (COLUMNS=20) in a subshell will change the tty driver which will
signal the parent shell which will pick up the change and set its own
column width to 20.  This is the only case I can think of where a
parameter assigned in a subshell can behave this way.

So we might want to consider carefully whether this is something we want
to inject only days before a 5.0.0 release ... but we should still fix
the crash somehow, so maybe there's a corresponding change needed in
some other place.

Messages sorted by: Reverse Date, Date, Thread, Author