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

Re: [PATCH] make __git_ps1 accept a third parameter in pcmode

From
Simon Oosthoek <s.oosthoek@xs4all.nl>
Date
Dec 26, 2012, 21:03 UTC
Message-ID
<20121226210324.GA20704@xs4all.nl>
In-Reply-To
<7vfw2so8q3.fsf@alter.siamese.dyndns.org>
* Junio C Hamano <gitster@pobox.com> [2012-12-26 12:32:20 -0800]:
Show 14 quoted lines
> The point of the above two was that __git_ps1 does not have to set
> PS1 as long as the insn says user to use PROMPT_COMMAND that sets
> PS1 himself, exactly as illustrated above.  In other words, replace
> the last PS1=...  in the "prompt command" mode with an echo or
> something and make the user responsible for assigning it to PS1 in
> his PROMPT_COMMAND.
> 
> Or put it in another way, I was hoping that we can do without adding
> the prompt command mode---if there is no two modes, there is no need
> to switch between them.
> 
> But as I said, there probably is a reason why that approach does not
> work, that is why I said...
> 
The only reason to my knowledge is that bash's handling of zero-length strings, like terminal colour commands, is producing a PS1 that outputs less visible characters than bash thinks and thus bash makes mistakes when wrapping the commandline. The way to prevent that is to use \[ and \] around those and that doesn't seem to work from a string produced from command-substitution. (BTW, the colours come through just fine, just the \[ and \] don't)
Another approach could be to split up the functionality and have a few support functions to set various variables (corresponding with the gitstring features, like *%+ characters and colour hints). These variables could then be used by a custom PROMPT_COMMAND function or a command substitution function to produce a gitstring. I suppose that would mean a complete rewrite or very close to it ;-)
/Simon
Previous: Junio C HamanoNext: Junio C Hamano
Message 19 of 20 in “Re: git-prompt.sh vs leading white space in __git_ps1()::printf_format”
  1. Simon OosthoekNov 28, 2012
  2. Piotr KrukowieckiNov 28, 2012
  3. Simon OosthoekNov 28, 2012
  4. Junio C HamanoNov 28, 2012
  5. Simon OosthoekNov 28, 2012
  6. Simon OosthoekDec 11, 2012
  7. Junio C HamanoDec 11, 2012
  8. Junio C HamanoDec 12, 2012
  9. Simon OosthoekDec 12, 2012
  10. Junio C HamanoDec 12, 2012
  11. Simon OosthoekDec 12, 2012
  12. Junio C HamanoDec 26, 2012
  13. Simon OosthoekDec 26, 2012
  14. make __git_ps1 accept a third parameter in pcmodeSimon Oosthoek, Dec 26, 2012
  15. Junio C HamanoDec 26, 2012
  16. Simon OosthoekDec 26, 2012
  17. Junio C HamanoDec 26, 2012
  18. Junio C HamanoDec 26, 2012
  19. Simon OosthoekDec 26, 2012
  20. Junio C HamanoDec 26, 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.