Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm
Precedence: bulk
X-No-Archive: yes
List-Id: Zsh Workers List <zsh-workers.zsh.org>
List-Post: <mailto:zsh-workers@zsh.org>
List-Help: <mailto:zsh-workers-help@zsh.org>
X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au
X-Spam-Level: 
X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_00,TO_NO_BRKTS_PCNT
	autolearn=no autolearn_force=no version=3.4.1
Date: Tue, 16 Feb 2016 11:01:40 +0100
From: Vincent Lefevre <vincent@vinc17.net>
To: zsh-workers@zsh.org
Subject: Re: clear-screen widget and prompt expansion
Message-ID: <20160216100140.GA27569@cventin.lip.ens-lyon.fr>
Mail-Followup-To: zsh-workers@zsh.org
References: <20160204141206.GA9349@cventin.lip.ens-lyon.fr>
 <160204073731.ZM25972@torch.brasslantern.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <160204073731.ZM25972@torch.brasslantern.com>
X-Mailer-Info: https://www.vinc17.net/mutt/
User-Agent: Mutt/1.5.24-6557-vl-r83103 (2016-02-11)
X-Seq: zsh-workers 37996

On 2016-02-04 07:37:31 -0800, Bart Schaefer wrote:
> On Feb 4,  3:12pm, Vincent Lefevre wrote:
> } Shouldn't the prompt also be re-expanded (like when the screen is
> } resized)? Or is it up to the user to create a new widget for that?
> 
> There was a deliberate decision made a long time ago that once ZLE
> is started, the prompt is a relatively static part of the editor.
> Originally this was because prompts are formatted by the shell (even
> if ZLE is disabled) and ZLE was treated like a separate entity.
> 
> Window resize is particularly tricky because, depending on the window
> manager/desktop application, SIGWINCH may be sent either only once
> when the user releases the mouse button (or otherwise ends the drag-
> resize operation), or multiple times in very rapid succession for every
> incremental drag motion.
> 
> So it's left up to the user to decide how to handle that, typically by
> something like
>     TRAPWINCH() { zle && zle reset-prompt }

I meant that prompt is already re-expanded when the terminal is
resized. What I'm saying is that clear-screen is not consistent
with that. For instance, with RPS1="<%*" after "zsh -f", when
resizing the terminal, the time is updated, but with Ctrl-L it
is not. I'm wondering whether such a difference is expected.

Moreover I thought that

  zle -A clear-screen real-clear-screen
  cls-rp() { zle real-clear-screen; zle reset-prompt }
  zle -N clear-screen cls-rp

would do what I expect, but this doesn't work in incremental search
mode (while the prompt is still re-expanded when the terminal is
resized).

-- 
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

