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

Re: [PATCH v2] prompt: support generic non-visible regions



On Mon, Aug 15, 2022 at 2:37 PM Felipe Contreras
<felipe.contreras@xxxxxxxxx> wrote:
>
> Do we want something like "\001foo\002%\001bar%\002"?

More on this below.

> On Sun, Aug 14, 2022 at 8:00 PM Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx> wrote:
> >
> > On Sun, Aug 14, 2022 at 3:47 PM Felipe Contreras
> > <felipe.contreras@xxxxxxxxx> wrote:
> > >
> > > That would defeat the primary purpose of the patch, which is to be
> > > able to write prompt helper functions which work in multiple shells.
> >
> > In that case I think the patch is incomplete, because it's not keeping
> > track of bv->dontcount and will be confused if both \001 and %} are
> > used (or %{ and \002).  See lines 602 through 628 of Src/prompt.c
> > (line numbers as of commit c5a891a2).
>
> Yes, I've seen that code, but in my view mixing \001 and %{ doesn't
> seem to be a useful use case.

Your point above about writing helper functions would seem to imply
that someone might inadvertently use such a helper (e.g. via
PROMPT_SUBST) inside a section that was already surrounded by %{ %}
(or surrounded by \001 \002 though that does seem less likely).  The
purpose of bv->dontcount (or at least one purpose thereof) is to
permit nesting zero-width sections.  I agree it wouldn't make sense to
(for example) begin a section with %{ and intentionally end it with
\002.

> I can add code to make %{ and \001 be equivalent, if that's what we
> want to do,

Ideally they'd in fact be distinct (so it would be some kind of an
error to have %{...\002 without an intervening \001 and so on)  but
that might require a lot more fiddling.

> but how am I supposed to do a reasonable test?

There isn't a Test/ case for it yet even now.  How are we handling %}
when there's no %{ before it?  I think the answer is that we don't
have a test for that either ...




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