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

[PATCH] Add a notice that only certain functions can print color escape codes

From
Johannes Sixt <j.sixt@viscovery.net>
Date
Nov 27, 2009, 07:00 UTC
Message-ID
<4B0F78F1.4040101@viscovery.net>
In-Reply-To
<7vy6lt6rh3.fsf@alter.siamese.dyndns.org>
From: Johannes Sixt <j6t@kdbg.org>

We emulate color escape codes on Windows by overriding printf, fprintf, and fputs. Warn users that these are the only functions that can be used to print them.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
Junio C Hamano schrieb:
Show 10 quoted lines
> Johannes Sixt <j.sixt@viscovery.net> writes:
> 
>> Michael J Gruber schrieb:
>>> * Is there any policy regarding use of putchar/puts vs. printf?
>> If the printed string contains color escapes that should be obeyed, you
>> can use only fputs, printf, and fprintf. You should not use puts or putchar.
> 
> This msysgit-imposed restriction is something even I do not remember
> offhand.  Could you please document it somewhere in a file any developer
> would get by checking out the 'master' branch of git.git?
Like this?
 color.h |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/color.h b/color.h
index 7d8da6f..edeaa3e 100644
--- a/color.h
+++ b/color.h
@@ -4,6 +4,11 @@
 /* "\033[1;38;5;2xx;48;5;2xxm\0" is 23 bytes */
 #define COLOR_MAXLEN 24

+/*
+ * IMPORTANT: Due to the way these color codes are emulated on Windows,
+ * write them only using printf, fprintf, and fputs. In particular,
+ * do not use puts.
+ */
 #define GIT_COLOR_NORMAL	""
 #define GIT_COLOR_RESET		"\033[m"
 #define GIT_COLOR_BOLD		"\033[1m"
-- 
1.6.6.rc0.43.g50037
Previous: Junio C HamanoNext: Junio C Hamano
Message 9 of 14 in “status -s: Use the same config as status”
  1. 0/2 status -s: Use the same config as statusMichael J Gruber, Nov 26, 2009
  2. 1/2 status -s: respect the status.relativePaths optionMichael J Gruber, Nov 26, 2009
  3. Junio C HamanoNov 27, 2009
  4. Jeff KingNov 27, 2009
  5. 2/2 status -s: obey color.statusMichael J Gruber, Nov 26, 2009
  6. Johannes SixtNov 26, 2009
  7. Michael J GruberNov 26, 2009
  8. Junio C HamanoNov 26, 2009
  9. Add a notice that only certain functions can print color escape codesJohannes Sixt, Nov 27, 2009
  10. Junio C HamanoNov 27, 2009
  11. Johannes SixtNov 27, 2009
  12. Michael J GruberNov 27, 2009
  13. Junio C HamanoNov 27, 2009
  14. Michael J GruberNov 27, 2009

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.