1 /* Output colorization. 2 Copyright 2011-2020 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 } 59