doc: clarify a --help sentence
[grep.git] / lib / colorize-posix.c
blob49efa8d9e54f8de9ac7939d0575c1a08b2485a18
1 /* Output colorization.
2 Copyright 2011-2025 Free Software Foundation, Inc.
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 3, or (at your option)
7 any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17 /* Without this pragma, gcc 4.7.0 20120102 suggests that the
18 init_colorize function might be candidate for attribute 'const' */
19 #if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__
20 # pragma GCC diagnostic ignored "-Wsuggest-attribute=const"
21 #endif
23 #include <config.h>
25 #include "colorize.h"
27 #include <stdio.h>
28 #include <stdlib.h>
29 #include <string.h>
30 #include <unistd.h>
32 /* Return non-zero if we should highlight matches in output to file
33 descriptor FD. */
34 int
35 should_colorize (void)
37 char const *t = getenv ("TERM");
38 return t && strcmp (t, "dumb") != 0;
41 void init_colorize (void) { }
43 /* Start a colorized text attribute on stdout using the SGR_START
44 format; the attribute is specified by SGR_SEQ. */
45 void
46 print_start_colorize (char const *sgr_start, char const *sgr_seq)
48 printf (sgr_start, sgr_seq);
51 /* Restore the normal text attribute using the SGR_END string. */
52 void
53 print_end_colorize (char const *sgr_end)
55 fputs (sgr_end, stdout);