OpenCoverage

progname.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/progname.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* Program name management.-
2 Copyright (C) 2001-2003, 2005-2018 Free Software Foundation, Inc.-
3 Written by Bruno Haible <bruno@clisp.org>, 2001.-
4-
5 This program is free software: you can redistribute it and/or modify-
6 it under the terms of the GNU General Public License as published by-
7 the Free Software Foundation; either version 3 of the License, or-
8 (at your option) any later version.-
9-
10 This program is distributed in the hope that it will be useful,-
11 but WITHOUT ANY WARRANTY; without even the implied warranty of-
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-
13 GNU General Public License for more details.-
14-
15 You should have received a copy of the GNU General Public License-
16 along with this program. If not, see <https://www.gnu.org/licenses/>. */-
17-
18-
19#include <config.h>-
20-
21/* Specification. */-
22#undef ENABLE_RELOCATABLE /* avoid defining set_program_name as a macro */-
23#include "progname.h"-
24-
25#include <errno.h> /* get program_invocation_name declaration */-
26#include <stdio.h>-
27#include <stdlib.h>-
28#include <string.h>-
29-
30-
31/* String containing name the program is called with.-
32 To be initialized by main(). */-
33const char *program_name = NULL;-
34-
35/* Set program_name, based on argv[0].-
36 argv0 must be a string allocated with indefinite extent, and must not be-
37 modified after this call. */-
38void-
39set_program_name (const char *argv0)-
40{-
41 /* libtool creates a temporary executable whose name is sometimes prefixed-
42 with "lt-" (depends on the platform). It also makes argv[0] absolute.-
43 But the name of the temporary executable is a detail that should not be-
44 visible to the end user and to the test suite.-
45 Remove this "<dirname>/.libs/" or "<dirname>/.libs/lt-" prefix here. */-
46 const char *slash;-
47 const char *base;-
48-
49 /* Sanity check. POSIX requires the invoking process to pass a non-NULL-
50 argv[0]. */-
51 if (argv0 == NULL)
argv0 == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 38499 times by 106 tests
Evaluated by:
  • [
  • b2sum
  • base32
  • base64
  • basename
  • cat
  • chcon
  • chgrp
  • chmod
  • chown
  • chroot
  • cksum
  • comm
  • cp
  • csplit
  • cut
  • date
  • dd
  • df
  • dir
  • dircolors
  • dirname
  • du
  • echo
  • env
  • ...
0-38499
52 {-
53 /* It's a bug in the invoking program. Help diagnosing it. */-
54 fputs ("A NULL argv[0] was passed through an exec system call.\n",-
55 stderr);-
56 abort ();
never executed: abort ();
0
57 }-
58-
59 slash = strrchr (argv0, '/');-
60 base = (slash != NULL ? slash + 1 : argv0);
slash != ((void *)0)Description
TRUEevaluated 220 times by 105 tests
Evaluated by:
  • [
  • b2sum
  • base32
  • base64
  • basename
  • cat
  • chcon
  • chgrp
  • chmod
  • chown
  • chroot
  • cksum
  • comm
  • cp
  • csplit
  • cut
  • date
  • dd
  • df
  • dir
  • dircolors
  • dirname
  • du
  • echo
  • env
  • ...
FALSEevaluated 38279 times by 106 tests
Evaluated by:
  • [
  • b2sum
  • base32
  • base64
  • basename
  • cat
  • chcon
  • chgrp
  • chmod
  • chown
  • chroot
  • cksum
  • comm
  • cp
  • csplit
  • cut
  • date
  • dd
  • df
  • dir
  • dircolors
  • dirname
  • du
  • echo
  • env
  • ...
220-38279
61 if (base - argv0 >= 7 && strncmp (base - 7, "/.libs/", 7) == 0)
never executed: __result = (((const unsigned char *) (const char *) ( base - 7 ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "/.libs/" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
base - argv0 >= 7Description
TRUEevaluated 220 times by 105 tests
Evaluated by:
  • [
  • b2sum
  • base32
  • base64
  • basename
  • cat
  • chcon
  • chgrp
  • chmod
  • chown
  • chroot
  • cksum
  • comm
  • cp
  • csplit
  • cut
  • date
  • dd
  • df
  • dir
  • dircolors
  • dirname
  • du
  • echo
  • env
  • ...
FALSEevaluated 38279 times by 106 tests
Evaluated by:
  • [
  • b2sum
  • base32
  • base64
  • basename
  • cat
  • chcon
  • chgrp
  • chmod
  • chown
  • chroot
  • cksum
  • comm
  • cp
  • csplit
  • cut
  • date
  • dd
  • df
  • dir
  • dircolors
  • dirname
  • du
  • echo
  • env
  • ...
(__extension__..." , 7 ))) == 0Description
TRUEnever evaluated
FALSEevaluated 220 times by 105 tests
Evaluated by:
  • [
  • b2sum
  • base32
  • base64
  • basename
  • cat
  • chcon
  • chgrp
  • chmod
  • chown
  • chroot
  • cksum
  • comm
  • cp
  • csplit
  • cut
  • date
  • dd
  • df
  • dir
  • dircolors
  • dirname
  • du
  • echo
  • env
  • ...
__builtin_constant_p ( 7 )Description
TRUEevaluated 220 times by 105 tests
Evaluated by:
  • [
  • b2sum
  • base32
  • base64
  • basename
  • cat
  • chcon
  • chgrp
  • chmod
  • chown
  • chroot
  • cksum
  • comm
  • cp
  • csplit
  • cut
  • date
  • dd
  • df
  • dir
  • dircolors
  • dirname
  • du
  • echo
  • env
  • ...
FALSEnever evaluated
__builtin_cons...p ( base - 7 )Description
TRUEnever evaluated
FALSEevaluated 220 times by 105 tests
Evaluated by:
  • [
  • b2sum
  • base32
  • base64
  • basename
  • cat
  • chcon
  • chgrp
  • chmod
  • chown
  • chroot
  • cksum
  • comm
  • cp
  • csplit
  • cut
  • date
  • dd
  • df
  • dir
  • dircolors
  • dirname
  • du
  • echo
  • env
  • ...
strlen ( base ...size_t) ( 7 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons... ( "/.libs/" )Description
TRUEevaluated 220 times by 105 tests
Evaluated by:
  • [
  • b2sum
  • base32
  • base64
  • basename
  • cat
  • chcon
  • chgrp
  • chmod
  • chown
  • chroot
  • cksum
  • comm
  • cp
  • csplit
  • cut
  • date
  • dd
  • df
  • dir
  • dircolors
  • dirname
  • du
  • echo
  • env
  • ...
FALSEnever evaluated
strlen ( "/.li...size_t) ( 7 ))Description
TRUEnever evaluated
FALSEevaluated 220 times by 105 tests
Evaluated by:
  • [
  • b2sum
  • base32
  • base64
  • basename
  • cat
  • chcon
  • chgrp
  • chmod
  • chown
  • chroot
  • cksum
  • comm
  • cp
  • csplit
  • cut
  • date
  • dd
  • df
  • dir
  • dircolors
  • dirname
  • du
  • echo
  • env
  • ...
__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-38279
62 {-
63 argv0 = base;-
64 if (strncmp (base, "lt-", 3) == 0)
never executed: __result = (((const unsigned char *) (const char *) ( base ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "lt-" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(__extension__..." , 3 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( 3 )Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( base )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( base ...size_t) ( 3 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( "lt-" )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( "lt-"...size_t) ( 3 ))Description
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
65 {-
66 argv0 = base + 3;-
67 /* On glibc systems, remove the "lt-" prefix from the variable-
68 program_invocation_short_name. */-
69#if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME-
70 program_invocation_short_name = (char *) argv0;-
71#endif-
72 }
never executed: end of block
0
73 }
never executed: end of block
0
74-
75 /* But don't strip off a leading <dirname>/ in general, because when the user-
76 runs-
77 /some/hidden/place/bin/cp foo foo-
78 he should get the error message-
79 /some/hidden/place/bin/cp: `foo' and `foo' are the same file-
80 not-
81 cp: `foo' and `foo' are the same file-
82 */-
83-
84 program_name = argv0;-
85-
86 /* On glibc systems, the error() function comes from libc and uses the-
87 variable program_invocation_name, not program_name. So set this variable-
88 as well. */-
89#if HAVE_DECL_PROGRAM_INVOCATION_NAME-
90 program_invocation_name = (char *) argv0;-
91#endif-
92}
executed 38499 times by 106 tests: end of block
Executed by:
  • [
  • b2sum
  • base32
  • base64
  • basename
  • cat
  • chcon
  • chgrp
  • chmod
  • chown
  • chroot
  • cksum
  • comm
  • cp
  • csplit
  • cut
  • date
  • dd
  • df
  • dir
  • dircolors
  • dirname
  • du
  • echo
  • env
  • ...
38499
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2