git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2] tests: add initial bash completion tests

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Apr 13, 2012, 10:48 UTC
Message-ID
<CAMP44s3g8acV4fjaSvnUo_jnhj40-TWR0az6zOwRNfv9_Qa23g@mail.gmail.com>
In-Reply-To
<20120413094500.GD2164@goldbirke>
2012/4/13 SZEDER Gábor <szeder@ira.uka.de>:
Show 39 quoted lines
> On Fri, Apr 13, 2012 at 11:12:36AM +0200, SZEDER Gábor wrote:
>> On Thu, Apr 12, 2012 at 12:57:03AM +0300, Felipe Contreras wrote:
>> > +. "$GIT_BUILD_DIR/contrib/completion/git-completion.bash"
>> > +
>> > +_get_comp_words_by_ref ()
>> > +{
>> > +   while [ $# -gt 0 ]; do
>> > +           case "$1" in
>> > +           cur)
>> > +                   cur=${_words[_cword]}
>> > +                   ;;
>> > +           prev)
>> > +                   prev=${_words[_cword-1]}
>> > +                   ;;
>> > +           words)
>> > +                   words=("${_words[@]}")
>> > +                   ;;
>> > +           cword)
>> > +                   cword=$_cword
>> > +                   ;;
>> > +           esac
>> > +           shift
>> > +   done
>> > +}
>>
>> Git's completion script already implements this function.  Why
>> override it here?
>
> Ah, ok, I think I got it.
>
> Of course, the words on the command line must be specified somehow to
> test completion functions.  But the two implementations of
> _get_comp_words_by_ref() for bash and zsh in the completion script
> take the words on the command line from different variables, so we
> need a common implementation to test completion functions both on bash
> and zsh.  Hence the _get_comp_words_by_ref() above, which takes the
> words on the command line and their count from $_words and $_cword,
> respectively, and run_completion() below, which fills those variables
> with its arguments.

Well, yeah, that's one reason, but also I don't see the point in trying to fill the internal bash completion variables, maybe there would be some conflicts? Plus, the bash version of _get_comp_words_by_ref is rather complicated, so I decided to start with something simple that I could understand and see exactly what's going on. And for zsh I would definitely prefer to override _get_comp_words_by_ref than to mess with the internal variables, although I haven't found a way to test completion for zsh.

Cheers.
-- 
Felipe Contreras
Previous: SZEDER GáborNext: SZEDER Gábor
Message 10 of 21 in “tests: add initial bash completion tests”
  1. tests: add initial bash completion testsFelipe Contreras, Apr 11, 2012
  2. Junio C HamanoApr 11, 2012
  3. Felipe ContrerasApr 12, 2012
  4. Junio C HamanoApr 12, 2012
  5. Felipe ContrerasApr 12, 2012
  6. Junio C HamanoApr 12, 2012
  7. Junio C HamanoApr 13, 2012
  8. SZEDER GáborApr 13, 2012
  9. SZEDER GáborApr 13, 2012
  10. Felipe ContrerasApr 13, 2012
  11. SZEDER GáborApr 13, 2012
  12. Felipe ContrerasApr 13, 2012
  13. Felipe ContrerasApr 13, 2012
  14. SZEDER GáborApr 13, 2012
  15. Thomas RastApr 13, 2012
  16. Junio C HamanoApr 13, 2012
  17. Felipe ContrerasApr 14, 2012
  18. SZEDER GáborApr 17, 2012
  19. Felipe ContrerasApr 17, 2012
  20. SZEDER GáborApr 17, 2012
  21. tests: add tests for the __gitcomp() completion helper functionSZEDER Gábor, Apr 17, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.