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)
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"
32 /* Return non-zero if we should highlight matches in output to file
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. */
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. */
53 print_end_colorize (char const *sgr_end
)
55 fputs (sgr_end
, stdout
);