On 1/20/24 12:20 PM, Oğuz wrote:
See:

     $ echo echo foo bar >s
     $ chmod +x s
     $ f(){ COMPREPLY=($(bash ./s));}
     $ complete -F f g
     $
     $ g
     bar  foo
     $ g ^C
     $
     $ f(){ COMPREPLY=($(./s));}
     $ g             ^C^C
     $

I press tab after typing `g ' in both cases, this moves the cursor to
the right in the second case instead of showing the completion
options.

Thanks for the report. The script works, it just leaves the terminal in
icanon mode, so the tabs don't cause word completion until you hit newline.

The problem is the subshell inherits the readline state, so it can tell
whether or not the terminal is in icanon mode should it need to, but resets
it to icanon mode at exit without making sure it was the one that set it to
-icanon in the first place.

Chet

--
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    c...@case.edu    http://tiswww.cwru.edu/~chet/

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to