From: Manlio Perillo <manlio.perillo@gmail.com>
To: Felipe Contreras <felipe.contreras@gmail.com>
Cc: git@vger.kernel.org, "Junio C Hamano" <gitster@pobox.com>,
"Matthieu Moy" <Matthieu.Moy@imag.fr>,
"SZEDER Gábor" <szeder@ira.uka.de>
Subject: Re: [PATCH 00/11] completion: general cleanups
Date: Sat, 27 Apr 2013 17:40:23 +0200 [thread overview]
Message-ID: <517BF167.7090300@gmail.com> (raw)
In-Reply-To: <CAMP44s3h43S=A7+QEWuv0iefxbXyKZsiJ2QMdc-XiouoO3yYng@mail.gmail.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Il 27/04/2013 15:07, Felipe Contreras ha scritto:
> [...]
> This should do the trick. No?
>
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -262,16 +262,17 @@ __git_ls_files_helper ()
> # If provided, only files within the specified directory are listed.
> # Sub directories are never recursed. Path must have a trailing
> # slash.
> +# 3. Compat mode; set to enable.
> __git_index_files ()
> {
> - local dir="$(__gitdir)" root="${2-.}" file
> + local dir="$(__gitdir)" root="${2-.}" file old="${3-}"
>
> if [ -d "$dir" ]; then
> __git_ls_files_helper "$root" "$1" |
> while read -r file; do
> case "$file" in
> - ?*/*) echo "${file%%/*}/" ;;
> - *) echo "$file " ;;
> + ?*/*) echo "${file%%/*}${old:+/}" ;;
> + *) echo "${file}${old:+ }" ;;
> esac
> done | sort | uniq
> fi
> @@ -480,7 +481,7 @@ __git_complete_revlist_file ()
> # The exception is --committable, which finds the files appropriate commit.
> __git_complete_index_file ()
> {
> - local pfx="" cur_="$cur"
> + local pfx="" cur_="$cur" old
>
> case "$cur_" in
> ?*/*)
> @@ -490,7 +491,8 @@ __git_complete_index_file ()
> ;;
> esac
>
> - __gitcomp_nl "$(__git_index_files "$1" "$pfx")" "$pfx" "$cur_" ""
> + compopt -o filenames +o nospace 2> /dev/null || old=1
> + __gitcomp_nl "$(__git_index_files "$1" "$pfx" "$old")" "$pfx" "$cur_" ""
> }
>
> __git_complete_file ()
>
I like the idea (but I have not tested it), however compopt is called
two times, for each completion.
Maybe we can test for `-o filenames` support when script is loaded,
where currently there is a Bash version check, and set a global variable?
Regards Manlio
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAlF78WcACgkQscQJ24LbaUSjzgCfWq26RMqFLgGU9B8C0mb+Wogu
A5IAnjKpupGbdOZAKtYZkglYKSmbqtqK
=iTzW
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2013-04-27 15:40 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-27 10:19 [PATCH 00/11] completion: general cleanups Felipe Contreras
2013-04-27 10:19 ` [PATCH 01/11] completion: add file completion tests Felipe Contreras
2013-04-27 10:19 ` [PATCH 02/11] completion: document tilde expansion failure in tests Felipe Contreras
2013-04-27 10:19 ` [PATCH 03/11] completion; remove unuseful comments Felipe Contreras
2013-04-27 10:19 ` [PATCH 04/11] completion: use __gitcompadd for __gitcomp_file Felipe Contreras
2013-04-27 10:19 ` [PATCH 05/11] completion: refactor diff_index wrappers Felipe Contreras
2013-04-27 10:19 ` [PATCH 06/11] completion: refactor __git_complete_index_file() Felipe Contreras
2013-04-27 10:19 ` [PATCH 07/11] completion: avoid compopt -o filenames Felipe Contreras
2013-04-27 10:19 ` [PATCH 08/11] completion: get rid of __gitcomp_file() Felipe Contreras
2013-04-27 10:19 ` [PATCH 09/11] completion: add space after completed filename Felipe Contreras
2013-04-27 10:19 ` [PATCH 10/11] completion: remove __git_index_file_list_filter() Felipe Contreras
2013-04-27 10:19 ` [PATCH 11/11] completion: zsh: add proper file support Felipe Contreras
2013-04-27 11:33 ` [PATCH 00/11] completion: general cleanups Manlio Perillo
2013-04-27 12:36 ` Felipe Contreras
2013-04-27 13:07 ` Felipe Contreras
2013-04-27 15:40 ` Manlio Perillo [this message]
2013-04-27 19:15 ` Felipe Contreras
2013-04-27 19:43 ` Felipe Contreras
2013-04-27 20:13 ` Manlio Perillo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=517BF167.7090300@gmail.com \
--to=manlio.perillo@gmail.com \
--cc=Matthieu.Moy@imag.fr \
--cc=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=szeder@ira.uka.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.