Hi,
On Wed, May 09, 2012 at 08:38:22PM +0100, Andrew Sayers wrote:
> On 09/05/12 01:44, SZEDER Gábor wrote:
> > PROMPT_COMMAND=__git_prompt_command
>
> Rather than overwrite any existing PROMPT_COMMAND, it would be better to
> do something like:
>
> PROMPT_COMMAND="__git_prompt_command; $PROMPT_COMMAND"
> > +# Alternatively, to make the above Bash prompt a bit faster:
> > +# PROMPT_COMMAND=__git_prompt_command
>
> As above, I'd recommend a simple documentation change:
> PROMPT_COMMAND="__git_prompt_command; $PROMPT_COMMAND"
> (to show people how to chain any other prompt commands they have)
That's a good idea. In fact I did manage to overwrite my
$PROMPT_COMMAND and was wondering why did the title of my terminal
windows disappear so suddenly...
> > @@ -365,7 +371,18 @@ __git_ps1 ()
> > fi
> >
> > local f="$w$i$s$u"
> > - printf -- "${1:- (%s)}" "$c${b##refs/heads/}${f:+ $f}$r$p"
> > + __git_ps1_string="$c${b##refs/heads/}${f:+ $f}$r$p"
> > +}
> > +
> > +# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
> > +# returns text to add to bash PS1 prompt (includes branch name)
> > +__git_ps1 ()
> > +{
> > + local __git_ps1_string
> > + __git_prompt_command
> > + if [ -n "$__git_ps1_string" ]; then
> > + printf -- "${1:- (%s)}" "$__git_ps1_string"
> > + fi
>
> How hard/appropriate would it be to export individual parts of the
> prompt here? Something like:
>
> __git_ps1_string_dirtystate="$i"
> __git_ps1_string_untrackedfiles="$u"
>
> There have been requests in the past to let people individually
> colourise different bits of the prompt, which this would make practical.
We can't do that from __git_ps1(), because, as I mentioned in the commit
message, it must be invoked in a command substitution from $PS1, and
what's exported in a subshell that stays in that subshell.
Doing so from __git_prompt_command() would be quite simple: just
rename the appropriate variables and don't declare them as local.
It would even be more pleasing to the eyes than the current one-letter
variable names.
Gábor
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Newbies FAQ] [Linux Kernel Development] [Free Online Dating] [Gcc Help] [IETF Annouce] [DCCP] [Netdev] [Networking] [Security] [V4L] [Bugtraq] [Free Online Dating] [Photo] [Yosemite] [MIPS Linux] [ARM Linux] [Linux Security] [Linux RAID] [Linux SCSI] [Fedora Users] [Linux Resources]