Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/long-options.c |
Source code | Switch to Preprocessed file |
Line | Source | Count | ||||||
---|---|---|---|---|---|---|---|---|
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 | - | |||||||
33 | static 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 | - | |||||||
43 | void | - | ||||||
44 | parse_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
| 399-5542 | ||||||
61 | && (c = getopt_long (argc, argv, "+", long_options, NULL)) != -1)
| 155-244 | ||||||
62 | { | - | ||||||
63 | switch (c) | - | ||||||
64 | { | - | ||||||
65 | case 'h': executed 42 times by 14 tests: case 'h': Executed by:
| 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:
| 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:
| 72 | ||||||
75 | } | - | ||||||
76 | - | |||||||
77 | default: code before this statement never executed: default: executed 41 times by 14 tests: default: Executed by:
| 0-41 | ||||||
78 | /* Don't process any other long-named options. */ | - | ||||||
79 | break; executed 41 times by 14 tests: break; Executed by:
| 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:
| 5827 | ||||||
Source code | Switch to Preprocessed file |