(root)/
grep-3.11/
lib/
colorize-posix.c
       1  /* Output colorization.
       2     Copyright 2011-2023 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  }