completion: fix shell expansion of items

As reported by Jeroen Meijer[1]; the current code doesn't deal properly
with items (tags, branches, etc.) that have ${} in them because they get
expaned by bash while using compgen.

A simple solution is to quote the items so they get expanded properly
(\$\{\}).

In order to achieve that I took bash-completion's quote() function,
which is rather simple, and renamed it to __git_quote() as per Jeff
King's suggestion.

Solves the original problem for me.

[1] http://article.gmane.org/gmane.comp.version-control.git/201596

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation: Document signature showing options

The pretty formats for GPG signatures were introduced but never
documented. Use the documentation from the commit that introduced them.
Do the same for the --show-signature option added to git log and
friends.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
grep.c: make two symbols really file-scope static this time

Adding a declaration at the beginning is not sufficient for obvious
reasons. The definition has to be made static.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'nd/maint-remote-remove' into maint

* nd/maint-remote-remove:
  remote: prefer subcommand name 'remove' to 'rm'
Merge branch 'nd/log-n-doc' into maint

* nd/log-n-doc:
  doc: move rev-list option -<n> from git-log.txt to rev-list-options.txt
Merge branch 'sn/ls-remote-get-url-doc' into maint

* sn/ls-remote-get-url-doc:
  ls-remote: document the '--get-url' option
Merge branch 'jc/mailinfo-RE' into maint

* jc/mailinfo-RE:
  mailinfo: strip "RE: " prefix
Merge branch 'dg/run-command-child-cleanup' into maint

* dg/run-command-child-cleanup:
  run-command.c: fix broken list iteration in clear_child_for_cleanup
Merge branch 'jw/doc-commit-title' into maint

* jw/doc-commit-title:
  Documentation: describe subject more precisely
Merge branch 'nd/maint-diffstat-summary' into maint

* nd/maint-diffstat-summary:
  Revert diffstat back to English
Merge branch 'maint'

* maint:
  Documentation: Document signature showing options
  completion: fix shell expansion of items
Merge branch 'jc/maint-log-grep-all-match-1'

A finishing touch to make two symbols that were meant to be file-scope
static really so.

* jc/maint-log-grep-all-match-1:
  grep.c: make two symbols really file-scope static this time
Merge branch 'mh/fetch-filter-refs'

Finishing touch to update documentation of string-list to make sure
the earlier rewrite of ref-list match logic that depends on its sort
order will not get broken.

* mh/fetch-filter-refs:
  string_list API: document what "sorted" means
Improve the description of GIT_PS1_SHOWUPSTREAM

Describe what '=' means in the output of __git_ps1 when using
GIT_PS1_SHOWUPSTREAM, which was not previously described.

Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'dj/fetch-all-tags' into maint

"git fetch --all", when passed "--no-tags", did not honor the
"--no-tags" option while fetching from individual remotes (the same
issue existed with "--tags", but combination "--all --tags" makes
much less sense than "--all --no-tags").

* dj/fetch-all-tags:
  fetch --all: pass --tags/--no-tags through to each remote
  submodule: use argv_array instead of hand-building arrays
  fetch: use argv_array instead of hand-building arrays
  argv-array: fix bogus cast when freeing array
  argv-array: add pop function
Merge branch 'jc/maint-blame-no-such-path' into maint

Even during a conflicted merge, "git blame $path" always meant to
blame uncommitted changes to the "working tree" version; make it
more useful by showing cleanly merged parts as coming from the other
branch that is being merged.

This incidentally fixes an unrelated problem on a case insensitive
filesystem, where "git blame MAKEFILE" run in a history that has
"Makefile" but not "MAKEFILE" did not say "No such file MAKEFILE in
HEAD" but pretended as if "MAKEFILE" was a newly added file.

* jc/maint-blame-no-such-path:
  blame: allow "blame file" in the middle of a conflicted merge
  blame $path: avoid getting fooled by case insensitive filesystems
Start preparation for 1.7.12.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Sync with maint
git-gui: Work around freeze problem with dialogs in Mac OS X

Tk 8.5 on Mac OS X has a bug whereby a dialog opened from a key
binding will hang; see issue 3044863 in the Tk issue tracker.
<http://sourceforge.net/tracker/?func=detail&aid=3044863&group_id=12997&atid=112997>

To work around this, we perform commands that open a dialog after
a brief delay; 150 ms seems to be a good compromise between short
enough as to be not annoying, and long enough to reliably work
around the issue.

Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
Launch git gui and gitk in the foreground