OpenCoverage

link.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/src/link.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* link utility for GNU.-
2 Copyright (C) 2001-2018 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 of the License, or-
7 (at your option) 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, see <https://www.gnu.org/licenses/>. */-
16-
17/* Written by Michael Stone */-
18-
19/* Implementation overview:-
20-
21 Simply call the system 'link' function */-
22-
23#include <config.h>-
24#include <stdio.h>-
25#include <getopt.h>-
26#include <sys/types.h>-
27-
28#include "system.h"-
29#include "die.h"-
30#include "error.h"-
31#include "long-options.h"-
32#include "quote.h"-
33-
34/* The official name of this program (e.g., no 'g' prefix). */-
35#define PROGRAM_NAME "link"-
36-
37#define AUTHORS proper_name ("Michael Stone")-
38-
39static struct option const long_options[] =-
40{-
41 {NULL, 0, NULL, 0}-
42};-
43-
44void-
45usage (int status)-
46{-
47 if (status != EXIT_SUCCESS)
status != 0Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • link
FALSEevaluated 3 times by 1 test
Evaluated by:
  • link
3
48 emit_try_help ();
executed 3 times by 1 test: end of block
Executed by:
  • link
3
49 else-
50 {-
51 printf (_("\-
52Usage: %s FILE1 FILE2\n\-
53 or: %s OPTION\n"), program_name, program_name);-
54 fputs (_("Call the link function to create a link named FILE2\-
55 to an existing FILE1.\n\n"),-
56 stdout);-
57 fputs (HELP_OPTION_DESCRIPTION, stdout);-
58 fputs (VERSION_OPTION_DESCRIPTION, stdout);-
59 emit_ancillary_info (PROGRAM_NAME);-
60 }
executed 3 times by 1 test: end of block
Executed by:
  • link
3
61 exit (status);
executed 6 times by 1 test: exit (status);
Executed by:
  • link
6
62}-
63-
64int-
65main (int argc, char **argv)-
66{-
67 initialize_main (&argc, &argv);-
68 set_program_name (argv[0]);-
69 setlocale (LC_ALL, "");-
70 bindtextdomain (PACKAGE, LOCALEDIR);-
71 textdomain (PACKAGE);-
72-
73 atexit (close_stdout);-
74-
75 parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE_NAME, Version,-
76 usage, AUTHORS, (char const *) NULL);-
77 if (getopt_long (argc, argv, "", long_options, NULL) != -1)
getopt_long (a...d *)0) ) != -1Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • link
FALSEevaluated 1 time by 1 test
Evaluated by:
  • link
1-3
78 usage (EXIT_FAILURE);
executed 3 times by 1 test: usage ( 1 );
Executed by:
  • link
3
79-
80 if (argc < optind + 2)
argc < optind + 2Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • link
0-1
81 {-
82 if (argc < optind + 1)
argc < optind + 1Description
TRUEnever evaluated
FALSEnever evaluated
0
83 error (0, 0, _("missing operand"));
never executed: error (0, 0, dcgettext (((void *)0), "missing operand" , 5) );
0
84 else-
85 error (0, 0, _("missing operand after %s"), quote (argv[optind]));
never executed: error (0, 0, dcgettext (((void *)0), "missing operand after %s" , 5) , quote (argv[optind]));
0
86 usage (EXIT_FAILURE);-
87 }
never executed: end of block
0
88-
89 if (optind + 2 < argc)
optind + 2 < argcDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • link
0-1
90 {-
91 error (0, 0, _("extra operand %s"), quote (argv[optind + 2]));-
92 usage (EXIT_FAILURE);-
93 }
never executed: end of block
0
94-
95 if (link (argv[optind], argv[optind + 1]) != 0)
link (argv[opt...ind + 1]) != 0Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • link
0-1
96 die (EXIT_FAILURE, errno, _("cannot create link %s to %s"),
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, (*__errno_location ()), dcgettext (((void *)0), \"cannot create link %s to %s\", 5), quotearg_n_style (0, shell_escape_always_quoting_style, argv[optind + 1]), quotearg_n_style...ettext (((void *)0), "cannot create link %s to %s" , 5) , quotearg_n_style (0, shell_escape_always_quoting_style, argv[optind + 1]), quotearg_n_style (1, shell_escape_always_quoting_style, argv[optind])), (( 0 ) ? (void) 0 : __builtin_unreachable ())))) ;
0
97 quoteaf_n (0, argv[optind + 1]), quoteaf_n (1, argv[optind]));
never executed: ((!!sizeof (struct { _Static_assert ( 1 , "verify_expr (" "1" ", " "(error (1, (*__errno_location ()), dcgettext (((void *)0), \"cannot create link %s to %s\", 5), quotearg_n_style (0, shell_escape_always_quoting_style, argv[optind + 1]), quotearg_n_style...ettext (((void *)0), "cannot create link %s to %s" , 5) , quotearg_n_style (0, shell_escape_always_quoting_style, argv[optind + 1]), quotearg_n_style (1, shell_escape_always_quoting_style, argv[optind])), (( 0 ) ? (void) 0 : __builtin_unreachable ())))) ;
0
98-
99 return EXIT_SUCCESS;
executed 1 time by 1 test: return 0 ;
Executed by:
  • link
1
100}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2