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: Wed, 26 Aug 2015 22:19:03 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.2.0

On 8/26/15 10:06 PM, Mike Frysinger wrote:
> On 26 Aug 2015 20:42, Dennis Williamson wrote:
>> On Aug 26, 2015 8:06 PM, "Mike Frysinger" wrote:
>>> 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)
>>
>> Use \001 and \002 instead of \[ and \].
> 
> thanks ... didn't realize bash was changing \[ and \] into SOH and STX
> and those are the magic bytes readline uses to mark things

$ grep PROMPT readline.h
/* Read a line of input.  Prompt with PROMPT.  A NULL PROMPT means none. */
#define RL_PROMPT_START_IGNORE  '\001'
#define RL_PROMPT_END_IGNORE    '\002'

-- 
``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/



reply via email to

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