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

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



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:
> >
> > > How does one embed a literal ctrl-A or ctrl-B in the prompt?
> >
> > What would that achieve?
>
> Nothing specific, but one can embed any other literal character, so
> why not those?

We could make the code more complex in order to support doing that,
but without knowing the use cases it's unclear how we would test that
it works correctly and it's useful.

Do we want something like "\001foo\002%\001bar%\002"?

> > > I haven't found any readline documentation that explains the use of
> > > "start of header" or "start of text".
> >
> > It's in the code:
>
> Ah, so "start of header/text" is your phrasing, not theirs.

It's not my phrasing, it's what I've found these characters are called [1].

01 SOH Start of Heading
02 STX Start of Text

> > > I'm also leaning to the opinion that \001 and \002 should only be
> > > recognized when PROMPT_PERCENT is unset.
> >
> > 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.

Why would somebody do something like this for example:

\001%F{red}foo%f %{$color%}bar%{$reset%}\002

Or this:

%{\001$color\002foo\001$reset\002%}

I can add code to make %{ and \001 be equivalent, if that's what we
want to do, but how am I supposed to do a reasonable test?

Cheers.

[1] https://www.ascii-code.com/

-- 
Felipe Contreras




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