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

Re: zsh-4.3.1[45] problem on FreeBSD



On Tue, Dec 27, 2011 at 12:38 PM, Herbert J. Skuhra <hskuhra@xxxxxxxxxxx> wrote:
> On Mon, 26 Dec 2011 18:31:40 -0800
> Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx> wrote:
>
>> Hrm.  This must have something to do with TIOCGWINSZ not being defined
>> on that platform and something causing re-entry into adjustwinsize(),
>> but I don't have a FreeBSD system to test on and I can't tell whether
>> it's a recursive call or simply that we've created an infinite series
>> of SIGWINCH somehow.
>
> % ./configure
> [...]
> checking for conflicts in sys/time.h and sys/select.h... no
> checking TIOCGWINSZ in termios.h... yes

Hrm again.  Nothing interesting happens in zle_resetprompt() as far as
I can tell:

zle_resetprompt(void)
{
    reexpandprompt();
    if (zleactive)
        redisplay(NULL);
}

And:

redisplay(UNUSED(char **args))
{
    moveto(0, 0);
    zputc(&zr_cr);              /* extra care */
    tc_upcurs(lprompth - 1);
    resetneeded = 1;
    clearflag = 0;
    return 0;
}

So unless the curses library is doing something wacko, I can't find
any reason why it would be a problem to reset the prompt before /
independently of calling zrefresh().

However, adjustwinsize() it is literally the only place
zle_resetprompt() is called; usually resetting the prompt is done via
a widget if at all.

Out of curiosity, what happens if you put a "sleep 5" somewhere in
your init files?  I'm wondering if there's some kind of race between
the terminal getting opened and the first attempt to output something.



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