LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc/m2/gm2-compiler-boot - M2ColorString.c (source / functions) Coverage Total Hit
Test: gcc.info Lines: 65.5 % 55 36
Test Date: 2026-08-29 16:23:03 Functions: 50.0 % 18 9
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /* do not edit automatically generated by mc from M2ColorString.  */
       2              : /* M2ColorString.mod provides procedures for obtaining GCC color strings.
       3              : 
       4              : Copyright (C) 2019-2026 Free Software Foundation, Inc.
       5              : Contributed by Gaius Mulley <gaius@glam.ac.uk>.
       6              : 
       7              : This file is part of GNU Modula-2.
       8              : 
       9              : GNU Modula-2 is free software; you can redistribute it and/or modify
      10              : it under the terms of the GNU General Public License as published by
      11              : the Free Software Foundation; either version 3, or (at your option)
      12              : any later version.
      13              : 
      14              : GNU Modula-2 is distributed in the hope that it will be useful, but
      15              : WITHOUT ANY WARRANTY; without even the implied warranty of
      16              : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      17              : General Public License for more details.
      18              : 
      19              : You should have received a copy of the GNU General Public License
      20              : along with GNU Modula-2; see the file COPYING3.  If not see
      21              : <http://www.gnu.org/licenses/>.  */
      22              : 
      23              : #include "config.h"
      24              : #include "system.h"
      25              : #include <stdbool.h>
      26              : #   if !defined (PROC_D)
      27              : #      define PROC_D
      28              :        typedef void (*PROC_t) (void);
      29              :        typedef struct { PROC_t proc; } PROC;
      30              : #   endif
      31              : 
      32              : #   if !defined (TRUE)
      33              : #      define TRUE (1==1)
      34              : #   endif
      35              : 
      36              : #define _M2ColorString_C
      37              : 
      38              : #include "GM2ColorString.h"
      39              : #   include "Gm2color.h"
      40              : #   include "GDynamicStrings.h"
      41              : #   include "GStrLib.h"
      42              : #   include "Glibc.h"
      43              : #   include "GSYSTEM.h"
      44              : 
      45              : static bool EnableColor;
      46              : 
      47              : /*
      48              :    SetEnableColor - sets the global variable to, b, and returns
      49              :                     the previous value.
      50              : */
      51              : 
      52              : extern "C" bool M2ColorString_SetEnableColor (bool b);
      53              : 
      54              : /*
      55              :    quoteOpen - adds an open quote to string, s.
      56              : */
      57              : 
      58              : extern "C" DynamicStrings_String M2ColorString_quoteOpen (DynamicStrings_String s);
      59              : 
      60              : /*
      61              :    quoteClose - adds a close quote to string, s.
      62              : */
      63              : 
      64              : extern "C" DynamicStrings_String M2ColorString_quoteClose (DynamicStrings_String s);
      65              : 
      66              : /*
      67              :    endColor - stops using color.
      68              : */
      69              : 
      70              : extern "C" DynamicStrings_String M2ColorString_endColor (DynamicStrings_String s);
      71              : 
      72              : /*
      73              :    quoteColor - adds quote color to string, s.
      74              : */
      75              : 
      76              : extern "C" DynamicStrings_String M2ColorString_quoteColor (DynamicStrings_String s);
      77              : 
      78              : /*
      79              :    errorColor - adds error color to string, s.
      80              : */
      81              : 
      82              : extern "C" DynamicStrings_String M2ColorString_errorColor (DynamicStrings_String s);
      83              : 
      84              : /*
      85              :    warningColor - adds warning color to string, s.
      86              : */
      87              : 
      88              : extern "C" DynamicStrings_String M2ColorString_warningColor (DynamicStrings_String s);
      89              : 
      90              : /*
      91              :    noteColor - adds note color to string, s.
      92              : */
      93              : 
      94              : extern "C" DynamicStrings_String M2ColorString_noteColor (DynamicStrings_String s);
      95              : 
      96              : /*
      97              :    locusColor - adds locus color to string, s.
      98              : */
      99              : 
     100              : extern "C" DynamicStrings_String M2ColorString_locusColor (DynamicStrings_String s);
     101              : 
     102              : /*
     103              :    insertColor - adds fixit-insert color to string, s.
     104              : */
     105              : 
     106              : extern "C" DynamicStrings_String M2ColorString_insertColor (DynamicStrings_String s);
     107              : 
     108              : /*
     109              :    deleteColor - adds fixit-insert color to string, s.
     110              : */
     111              : 
     112              : extern "C" DynamicStrings_String M2ColorString_deleteColor (DynamicStrings_String s);
     113              : 
     114              : /*
     115              :    filenameColor - adds filename color to string, s.
     116              : */
     117              : 
     118              : extern "C" DynamicStrings_String M2ColorString_filenameColor (DynamicStrings_String s);
     119              : 
     120              : /*
     121              :    typeColor - adds type color to string, s.
     122              : */
     123              : 
     124              : extern "C" DynamicStrings_String M2ColorString_typeColor (DynamicStrings_String s);
     125              : 
     126              : /*
     127              :    range1Color - adds type color to string, s.
     128              : */
     129              : 
     130              : extern "C" DynamicStrings_String M2ColorString_range1Color (DynamicStrings_String s);
     131              : 
     132              : /*
     133              :    range2Color - adds type color to string, s.
     134              : */
     135              : 
     136              : extern "C" DynamicStrings_String M2ColorString_range2Color (DynamicStrings_String s);
     137              : 
     138              : /*
     139              :    append - appends color string, name, to the end of string, s,
     140              :             and returns, s.
     141              : */
     142              : 
     143              : static DynamicStrings_String append (DynamicStrings_String s, const char *name_, unsigned int _name_high);
     144              : 
     145              : 
     146              : /*
     147              :    append - appends color string, name, to the end of string, s,
     148              :             and returns, s.
     149              : */
     150              : 
     151       109827 : static DynamicStrings_String append (DynamicStrings_String s, const char *name_, unsigned int _name_high)
     152              : {
     153       109827 :   DynamicStrings_String c;
     154       109827 :   char name[_name_high+1];
     155              : 
     156              :   /* make a local copy of each unbounded array.  */
     157       109827 :   memcpy (name, name_, _name_high+1);
     158              : 
     159       109827 :   c = DynamicStrings_InitStringCharStar (reinterpret_cast <void *> (m2color_colorize_start (EnableColor, const_cast<void*> (static_cast<const void*>(name)), StrLib_StrLen ((const char *) name, _name_high))));
     160       109827 :   s = DynamicStrings_ConCat (s, c);
     161       109827 :   c = DynamicStrings_KillString (c);
     162       109827 :   return s;
     163              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     164              :   __builtin_unreachable ();
     165       109827 : }
     166              : 
     167              : 
     168              : /*
     169              :    SetEnableColor - sets the global variable to, b, and returns
     170              :                     the previous value.
     171              : */
     172              : 
     173        27326 : extern "C" bool M2ColorString_SetEnableColor (bool b)
     174              : {
     175        27326 :   bool previous;
     176              : 
     177        27326 :   previous = EnableColor;
     178        27326 :   EnableColor = b;
     179        27326 :   return previous;
     180              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     181              :   __builtin_unreachable ();
     182              : }
     183              : 
     184              : 
     185              : /*
     186              :    quoteOpen - adds an open quote to string, s.
     187              : */
     188              : 
     189        35216 : extern "C" DynamicStrings_String M2ColorString_quoteOpen (DynamicStrings_String s)
     190              : {
     191        35216 :   return DynamicStrings_ConCat (append (s, (const char *) "quote", 5), DynamicStrings_Mark (DynamicStrings_InitStringCharStar (reinterpret_cast <void *> (m2color_open_quote ()))));
     192              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     193              :   __builtin_unreachable ();
     194              : }
     195              : 
     196              : 
     197              : /*
     198              :    quoteClose - adds a close quote to string, s.
     199              : */
     200              : 
     201        35216 : extern "C" DynamicStrings_String M2ColorString_quoteClose (DynamicStrings_String s)
     202              : {
     203        35216 :   s = M2ColorString_endColor (s);
     204        35216 :   s = append (s, (const char *) "quote", 5);
     205        35216 :   s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitStringCharStar (reinterpret_cast <void *> (m2color_close_quote ()))));
     206        35216 :   s = M2ColorString_endColor (s);
     207        35216 :   return s;
     208              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     209              :   __builtin_unreachable ();
     210              : }
     211              : 
     212              : 
     213              : /*
     214              :    endColor - stops using color.
     215              : */
     216              : 
     217       139506 : extern "C" DynamicStrings_String M2ColorString_endColor (DynamicStrings_String s)
     218              : {
     219       139506 :   DynamicStrings_String c;
     220              : 
     221       139506 :   c = DynamicStrings_InitStringCharStar (reinterpret_cast <void *> (m2color_colorize_stop (EnableColor)));
     222       139506 :   s = DynamicStrings_ConCat (s, c);
     223       139506 :   c = DynamicStrings_KillString (c);
     224       139506 :   return s;
     225              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     226              :   __builtin_unreachable ();
     227              : }
     228              : 
     229              : 
     230              : /*
     231              :    quoteColor - adds quote color to string, s.
     232              : */
     233              : 
     234            0 : extern "C" DynamicStrings_String M2ColorString_quoteColor (DynamicStrings_String s)
     235              : {
     236            0 :   return append (s, (const char *) "quote", 5);
     237              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     238              :   __builtin_unreachable ();
     239              : }
     240              : 
     241              : 
     242              : /*
     243              :    errorColor - adds error color to string, s.
     244              : */
     245              : 
     246        11199 : extern "C" DynamicStrings_String M2ColorString_errorColor (DynamicStrings_String s)
     247              : {
     248        11199 :   return append (s, (const char *) "error", 5);
     249              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     250              :   __builtin_unreachable ();
     251              : }
     252              : 
     253              : 
     254              : /*
     255              :    warningColor - adds warning color to string, s.
     256              : */
     257              : 
     258        26952 : extern "C" DynamicStrings_String M2ColorString_warningColor (DynamicStrings_String s)
     259              : {
     260        26952 :   return append (s, (const char *) "warning", 7);
     261              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     262              :   __builtin_unreachable ();
     263              : }
     264              : 
     265              : 
     266              : /*
     267              :    noteColor - adds note color to string, s.
     268              : */
     269              : 
     270           59 : extern "C" DynamicStrings_String M2ColorString_noteColor (DynamicStrings_String s)
     271              : {
     272           59 :   return append (s, (const char *) "note", 4);
     273              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     274              :   __builtin_unreachable ();
     275              : }
     276              : 
     277              : 
     278              : /*
     279              :    locusColor - adds locus color to string, s.
     280              : */
     281              : 
     282         1185 : extern "C" DynamicStrings_String M2ColorString_locusColor (DynamicStrings_String s)
     283              : {
     284         1185 :   return append (s, (const char *) "locus", 5);
     285              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     286              :   __builtin_unreachable ();
     287              : }
     288              : 
     289              : 
     290              : /*
     291              :    insertColor - adds fixit-insert color to string, s.
     292              : */
     293              : 
     294            0 : extern "C" DynamicStrings_String M2ColorString_insertColor (DynamicStrings_String s)
     295              : {
     296            0 :   return append (s, (const char *) "fixit-insert", 12);
     297              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     298              :   __builtin_unreachable ();
     299              : }
     300              : 
     301              : 
     302              : /*
     303              :    deleteColor - adds fixit-insert color to string, s.
     304              : */
     305              : 
     306            0 : extern "C" DynamicStrings_String M2ColorString_deleteColor (DynamicStrings_String s)
     307              : {
     308            0 :   return append (s, (const char *) "fixit-delete", 12);
     309              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     310              :   __builtin_unreachable ();
     311              : }
     312              : 
     313              : 
     314              : /*
     315              :    filenameColor - adds filename color to string, s.
     316              : */
     317              : 
     318            0 : extern "C" DynamicStrings_String M2ColorString_filenameColor (DynamicStrings_String s)
     319              : {
     320            0 :   return append (s, (const char *) "diff-filename", 13);
     321              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     322              :   __builtin_unreachable ();
     323              : }
     324              : 
     325              : 
     326              : /*
     327              :    typeColor - adds type color to string, s.
     328              : */
     329              : 
     330            0 : extern "C" DynamicStrings_String M2ColorString_typeColor (DynamicStrings_String s)
     331              : {
     332            0 :   return append (s, (const char *) "type", 4);
     333              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     334              :   __builtin_unreachable ();
     335              : }
     336              : 
     337              : 
     338              : /*
     339              :    range1Color - adds type color to string, s.
     340              : */
     341              : 
     342            0 : extern "C" DynamicStrings_String M2ColorString_range1Color (DynamicStrings_String s)
     343              : {
     344            0 :   return append (s, (const char *) "range1", 6);
     345              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     346              :   __builtin_unreachable ();
     347              : }
     348              : 
     349              : 
     350              : /*
     351              :    range2Color - adds type color to string, s.
     352              : */
     353              : 
     354            0 : extern "C" DynamicStrings_String M2ColorString_range2Color (DynamicStrings_String s)
     355              : {
     356            0 :   return append (s, (const char *) "range2", 6);
     357              :   /* static analysis guarentees a RETURN statement will be used before here.  */
     358              :   __builtin_unreachable ();
     359              : }
     360              : 
     361            0 : extern "C" void _M2_M2ColorString_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
     362              : {
     363            0 :   EnableColor = true;
     364            0 : }
     365              : 
     366            0 : extern "C" void _M2_M2ColorString_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
     367              : {
     368            0 : }
        

Generated by: LCOV version 2.4-beta

LCOV profile is generated on x86_64 machine using following configure options: configure --disable-bootstrap --enable-coverage=opt --enable-languages=c,c++,fortran,go,jit,lto,rust,m2 --enable-host-shared. GCC test suite is run with the built compiler.