help-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-bash] `read -e -p`, colors, and invisible chars


From: Chet Ramey
Subject: Re: [Help-bash] `read -e -p`, colors, and invisible chars
Date: Thu, 27 Aug 2015 08:58:17 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.2.0

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 8/26/15 10:16 PM, Mike Frysinger wrote:
> On 26 Aug 2015 22:04, Chet Ramey wrote:
>> On 8/26/15 9:01 PM, Mike Frysinger wrote:
>>> my desire is simple:
>>>   show a custom colorized prompt when reading input and leverage readli
ne
>>>   (for editing & history)
>>>
>>> the `read` builtin almost gets me there:
>>>  - the -p flag allows you to specify a custom prompt
>>>  - the -e flag uses readline for input
>>>
>>> however, the -p flag does not parse escape sequences.  np, just expand
>>> that myself ahead of time using `printf %b`.  simple example:
>>>   prompt=$(printf '%bfoo>%b ' '\033[1;33m' '\033[0m')
>>>   read -e -p "${prompt}"
>>>
>>> now i hit the classic invisible char problem when readline tries to
>>> redraw the prompt (just hold up on the arrow key to draw many lines
>>> from your history).  normally i'd leverage \[ and \], but bash does
>>> not seem to support that w/the read builtin -- they get rendered in
>>> the output directly instead of being consumed.
>>>   $ prompt=$(printf '%bfoo>%b ' '\[\033[1;33m\]' '\[\033[0m\]')
>>>   $ read -e -p "${prompt}"
>>>   \[\]foo>\[\] 
>>> (yes, moving the \[ and \] to the printf string yields same behavior)
>>
>> https://lists.gnu.org/archive/html/bug-bash/2015-08/msg00025.html
> 
> so no interest in making -p easier to use ?

Sure, at some point I'll look at doing something, but the solution Dennis
and I provided will work today.

- -- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    address@hidden    http://cnswww.cns.cwru.edu/~chet/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iEYEARECAAYFAlXfCWEACgkQu1hp8GTqdKuZ8QCeLQxW0UGLDBDGqhCscmYrbc6Y
N1UAnjbyXK3Dviq1Z8Xof89U1xcqnobt
=iSoV
-----END PGP SIGNATURE-----



reply via email to

[Prev in Thread] Current Thread [Next in Thread]