C. McEnroe <june@causal.agency> wrote: > Previously, the prompt would be expanded every time editline called the > getprompt callback. I think the code may have been written assuming that > editline only calls getprompt once per prompt, but it may actually call > it many times, for instance every time you type backspace. This results > not only in slower editing from expanding complex prompts repeatedly, it > also consumes more and more stack memory each time getprompt is called. > This can be seen by setting PS1 to some command substitution, typing > many characters at the prompt, then holding backspace and observing > memory usage. Thankfully all this stack memory is freed between prompts > by the stackmark calls around el_gets. > > This change causes prompt expansion to always happen in the setprompt > call, as it would when editline is disabled, and a cached copy of the > prompt is saved for getprompt to return every time editline calls it. > Since getprompt is no longer doing expansion, the stackmark calls > surrounding el_gets can be removed. > --- > > v2: Missed adding breaks when replacing returns with assignments. What if someone actually wanted the prompt to change? Cheers, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt