OpenCoverage

long-options.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/long-options.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* Utility to accept --help and --version options as unobtrusively as possible.-
2-
3 Copyright (C) 1993-1994, 1998-2000, 2002-2006, 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/* Written by Jim Meyering. */-
20-
21#include <config.h>-
22-
23/* Specification. */-
24#include "long-options.h"-
25-
26#include <stdarg.h>-
27#include <stdio.h>-
28#include <stdlib.h>-
29#include <getopt.h>-
30-
31#include "version-etc.h"-
32-
33static struct option const long_options[] =-
34{-
35 {"help", no_argument, NULL, 'h'},-
36 {"version", no_argument, NULL, 'v'},-
37 {NULL, 0, NULL, 0}-
38};-
39-
40/* Process long options --help and --version, but only if argc == 2.-
41 Be careful not to gobble up "--". */-
42-
43void-
44parse_long_options (int argc,-
45 char **argv,-
46 const char *command_name,-
47 const char *package,-
48 const char *version,-
49 void (*usage_func) (int),-
50 /* const char *author1, ...*/ ...)-
51{-
52 int c;-
53 int saved_opterr;-
54-
55 saved_opterr = opterr;-
56-
57 /* Don't print an error message for unrecognized options. */-
58 opterr = 0;-
59-
60 if (argc == 2
argc == 2Description
TRUEevaluated 399 times by 14 tests
Evaluated by:
  • cksum
  • dd
  • expr
  • hostid
  • link
  • logname
  • nohup
  • sleep
  • tsort
  • unlink
  • uptime
  • users
  • whoami
  • yes
FALSEevaluated 5542 times by 12 tests
Evaluated by:
  • cksum
  • dd
  • expr
  • getlimits
  • hostid
  • link
  • nohup
  • sleep
  • tsort
  • users
  • whoami
  • yes
399-5542
61 && (c = getopt_long (argc, argv, "+", long_options, NULL)) != -1)
(c = getopt_lo... *)0) )) != -1Description
TRUEevaluated 155 times by 14 tests
Evaluated by:
  • cksum
  • dd
  • expr
  • hostid
  • link
  • logname
  • nohup
  • sleep
  • tsort
  • unlink
  • uptime
  • users
  • whoami
  • yes
FALSEevaluated 244 times by 7 tests
Evaluated by:
  • dd
  • expr
  • nohup
  • sleep
  • tsort
  • unlink
  • yes
155-244
62 {-
63 switch (c)-
64 {-
65 case 'h':
executed 42 times by 14 tests: case 'h':
Executed by:
  • cksum
  • dd
  • expr
  • hostid
  • link
  • logname
  • nohup
  • sleep
  • tsort
  • unlink
  • uptime
  • users
  • whoami
  • yes
42
66 (*usage_func) (EXIT_SUCCESS);-
67 break;
never executed: break;
0
68-
69 case 'v':
executed 72 times by 14 tests: case 'v':
Executed by:
  • cksum
  • dd
  • expr
  • hostid
  • link
  • logname
  • nohup
  • sleep
  • tsort
  • unlink
  • uptime
  • users
  • whoami
  • yes
72
70 {-
71 va_list authors;-
72 va_start (authors, usage_func);-
73 version_etc_va (stdout, command_name, package, version, authors);-
74 exit (0);
executed 72 times by 14 tests: exit (0);
Executed by:
  • cksum
  • dd
  • expr
  • hostid
  • link
  • logname
  • nohup
  • sleep
  • tsort
  • unlink
  • uptime
  • users
  • whoami
  • yes
72
75 }-
76-
77 default:
code before this statement never executed: default:
executed 41 times by 14 tests: default:
Executed by:
  • cksum
  • dd
  • expr
  • hostid
  • link
  • logname
  • nohup
  • sleep
  • tsort
  • unlink
  • uptime
  • users
  • whoami
  • yes
0-41
78 /* Don't process any other long-named options. */-
79 break;
executed 41 times by 14 tests: break;
Executed by:
  • cksum
  • dd
  • expr
  • hostid
  • link
  • logname
  • nohup
  • sleep
  • tsort
  • unlink
  • uptime
  • users
  • whoami
  • yes
41
80 }-
81 }-
82-
83 /* Restore previous value. */-
84 opterr = saved_opterr;-
85-
86 /* Reset this to zero so that getopt internals get initialized from-
87 the probably-new parameters when/if getopt is called later. */-
88 optind = 0;-
89}
executed 5827 times by 15 tests: end of block
Executed by:
  • cksum
  • dd
  • expr
  • getlimits
  • hostid
  • link
  • logname
  • nohup
  • sleep
  • tsort
  • unlink
  • uptime
  • users
  • whoami
  • yes
5827
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2