OpenCoverage

hard-locale.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/hard-locale.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* hard-locale.c -- Determine whether a locale is hard.-
2-
3 Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2018 Free Software-
4 Foundation, Inc.-
5-
6 This program is free software: you can redistribute it and/or modify-
7 it under the terms of the GNU General Public License as published by-
8 the Free Software Foundation; either version 3 of the License, or-
9 (at your option) any later version.-
10-
11 This program is distributed in the hope that it will be useful,-
12 but WITHOUT ANY WARRANTY; without even the implied warranty of-
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-
14 GNU General Public License for more details.-
15-
16 You should have received a copy of the GNU General Public License-
17 along with this program. If not, see <https://www.gnu.org/licenses/>. */-
18-
19#include <config.h>-
20-
21#include "hard-locale.h"-
22-
23#include <locale.h>-
24#include <stdlib.h>-
25#include <string.h>-
26-
27#ifdef __GLIBC__-
28# define GLIBC_VERSION __GLIBC__-
29#elif defined __UCLIBC__-
30# define GLIBC_VERSION 2-
31#else-
32# define GLIBC_VERSION 0-
33#endif-
34-
35/* Return true if the current CATEGORY locale is hard, i.e. if you-
36 can't get away with assuming traditional C or POSIX behavior. */-
37bool-
38hard_locale (int category)-
39{-
40 bool hard = true;-
41 char const *p = setlocale (category, NULL);-
42-
43 if (p)
pDescription
TRUEevaluated 2643 times by 8 tests
Evaluated by:
  • comm
  • join
  • ls
  • pinky
  • sort
  • uniq
  • vdir
  • who
FALSEnever evaluated
0-2643
44 {-
45 if (2 <= GLIBC_VERSION)
2 <= 2Description
TRUEevaluated 2643 times by 8 tests
Evaluated by:
  • comm
  • join
  • ls
  • pinky
  • sort
  • uniq
  • vdir
  • who
FALSEnever evaluated
0-2643
46 {-
47 if (strcmp (p, "C") == 0 || strcmp (p, "POSIX") == 0)
never executed: __result = (((const unsigned char *) (const char *) ( p ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "C" ))[3] - __s2[3]);
never executed: end of block
executed 2639 times by 8 tests: end of block
Executed by:
  • comm
  • join
  • ls
  • pinky
  • sort
  • uniq
  • vdir
  • who
never executed: __result = (((const unsigned char *) (const char *) ( p ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "POSIX" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
__extension__ ... )))); }) == 0Description
TRUEevaluated 2639 times by 8 tests
Evaluated by:
  • comm
  • join
  • ls
  • pinky
  • sort
  • uniq
  • vdir
  • who
FALSEevaluated 4 times by 1 test
Evaluated by:
  • sort
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEevaluated 2643 times by 8 tests
Evaluated by:
  • comm
  • join
  • ls
  • pinky
  • sort
  • uniq
  • vdir
  • who
FALSEnever evaluated
__result == 0Description
TRUEevaluated 2639 times by 8 tests
Evaluated by:
  • comm
  • join
  • ls
  • pinky
  • sort
  • uniq
  • vdir
  • who
FALSEevaluated 4 times by 1 test
Evaluated by:
  • sort
__s2_len > 1Description
TRUEnever evaluated
FALSEevaluated 2639 times by 8 tests
Evaluated by:
  • comm
  • join
  • ls
  • pinky
  • sort
  • uniq
  • vdir
  • who
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • sort
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-2643
48 hard = false;
executed 2639 times by 8 tests: hard = 0 ;
Executed by:
  • comm
  • join
  • ls
  • pinky
  • sort
  • uniq
  • vdir
  • who
2639
49 }
executed 2643 times by 8 tests: end of block
Executed by:
  • comm
  • join
  • ls
  • pinky
  • sort
  • uniq
  • vdir
  • who
2643
50 else-
51 {-
52 char *locale = strdup (p);
never executed: __retval = (char *) memcpy (__retval, p , __len);
__retval != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
((const char *... ))[0] == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( p )Description
TRUEnever evaluated
FALSEnever evaluated
((size_t)(cons... *)( p ) == 1)Description
TRUEnever evaluated
FALSEnever evaluated
0
53 if (locale)
localeDescription
TRUEnever evaluated
FALSEnever evaluated
0
54 {-
55 /* Temporarily set the locale to the "C" and "POSIX" locales-
56 to find their names, so that we can determine whether one-
57 or the other is the caller's locale. */-
58 if (((p = setlocale (category, "C"))
(p = setlocale...ategory, "C"))Description
TRUEnever evaluated
FALSEnever evaluated
0
59 && strcmp (p, locale) == 0)
never executed: __result = (((const unsigned char *) (const char *) ( p ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( locale ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
60 || ((p = setlocale (category, "POSIX"))
(p = setlocale...ory, "POSIX"))Description
TRUEnever evaluated
FALSEnever evaluated
0
61 && strcmp (p, locale) == 0))
never executed: __result = (((const unsigned char *) (const char *) ( p ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( locale ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
__extension__ ... )))); }) == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
62 hard = false;
never executed: hard = 0 ;
0
63-
64 /* Restore the caller's locale. */-
65 setlocale (category, locale);-
66 free (locale);-
67 }
never executed: end of block
0
68 }
never executed: end of block
0
69 }-
70-
71 return hard;
executed 2643 times by 8 tests: return hard;
Executed by:
  • comm
  • join
  • ls
  • pinky
  • sort
  • uniq
  • vdir
  • who
2643
72}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2