Complete upgrade of XZ 5.0.4 => 5.0.7
[dragonfly.git] / contrib / grep / lib / colorize-posix.c
1 /* Output colorization.
2    Copyright 2011-2012 Free Software Foundation, Inc.
3
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.
8
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.
13
14    You should have received a copy of the GNU General Public License
15    along with this program; if not, write to the Free Software
16    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
17    02110-1301, USA.  */
18
19 /* Without this pragma, gcc 4.7.0 20120102 suggests that the
20    init_colorize function might be candidate for attribute 'const'  */
21 #if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__
22 # pragma GCC diagnostic ignored "-Wsuggest-attribute=const"
23 #endif
24
25 #include <config.h>
26
27 #include "colorize.h"
28
29 #include <stdio.h>
30 #include <stdlib.h>
31 #include <string.h>
32 #include <unistd.h>
33
34 /* Return non-zero if we should highlight matches in output to file
35    descriptor FD.  */
36 int
37 should_colorize (void)
38 {
39   char const *t = getenv ("TERM");
40   return t && strcmp (t, "dumb") != 0;
41 }
42
43 void init_colorize (void) { }
44
45 /* Start a colorized text attribute on stdout using the SGR_START
46    format; the attribute is specified by SGR_SEQ.  */
47 void
48 print_start_colorize (char const *sgr_start, char const *sgr_seq)
49 {
50   printf (sgr_start, sgr_seq);
51 }
52
53 /* Restore the normal text attribute using the SGR_END string.  */
54 void
55 print_end_colorize (char const *sgr_end)
56 {
57   fputs (sgr_end, stdout);
58 }