OpenCoverage

shopt.def

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/bash/src/builtins/shopt.def
Source codeSwitch to Preprocessed file
LineSourceCount
1This file is shopt.def, from which is created shopt.c.-
2It implements the Bash `shopt' builtin.-
3-
4Copyright (C) 1994-2016 Free Software Foundation, Inc.-
5-
6This file is part of GNU Bash, the Bourne Again SHell.-
7-
8Bash is free software: you can redistribute it and/or modify-
9it under the terms of the GNU General Public License as published by-
10the Free Software Foundation, either version 3 of the License, or-
11(at your option) any later version.-
12-
13Bash is distributed in the hope that it will be useful,-
14but WITHOUT ANY WARRANTY; without even the implied warranty of-
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-
16GNU General Public License for more details.-
17-
18You should have received a copy of the GNU General Public License-
19along with Bash. If not, see <http://www.gnu.org/licenses/>.-
20-
21$PRODUCES shopt.c-
22-
23$BUILTIN shopt-
24$FUNCTION shopt_builtin-
25$SHORT_DOC shopt [-pqsu] [-o] [optname ...]-
26Set and unset shell options.-
27-
28Change the setting of each shell option OPTNAME. Without any option-
29arguments, list each supplied OPTNAME, or all shell options if no-
30OPTNAMEs are given, with an indication of whether or not each is set.-
31-
32Options:-
33 -o restrict OPTNAMEs to those defined for use with `set -o'-
34 -p print each shell option with an indication of its status-
35 -q suppress output-
36 -s enable (set) each OPTNAME-
37 -u disable (unset) each OPTNAME-
38-
39Exit Status:-
40Returns success if OPTNAME is enabled; fails if an invalid option is-
41given or OPTNAME is disabled.-
42$END-
43-
44#include <config.h>-
45-
46#if defined (HAVE_UNISTD_H)-
47# ifdef _MINIX-
48# include <sys/types.h>-
49# endif-
50# include <unistd.h>-
51#endif-
52-
53#include <stdio.h>-
54-
55#include "version.h"-
56-
57#include "../bashintl.h"-
58-
59#include "../shell.h"-
60#include "../flags.h"-
61#include "common.h"-
62#include "bashgetopt.h"-
63-
64#if defined (READLINE)-
65# include "../bashline.h"-
66#endif-
67-
68#if defined (HISTORY)-
69# include "../bashhist.h"-
70#endif-
71-
72#define UNSETOPT 0-
73#define SETOPT 1-
74-
75#define OPTFMT "%-15s\t%s\n"-
76-
77extern int allow_null_glob_expansion, fail_glob_expansion, glob_dot_filenames;-
78extern int cdable_vars, mail_warning, source_uses_path;-
79extern int no_exit_on_failed_exec, print_shift_error;-
80extern int check_hashed_filenames, promptvars;-
81extern int cdspelling, expand_aliases;-
82extern int extended_quote;-
83extern int check_window_size;-
84extern int glob_ignore_case, match_ignore_case;-
85extern int hup_on_exit;-
86extern int xpg_echo;-
87extern int gnu_error_format;-
88extern int check_jobs_at_exit;-
89extern int autocd;-
90extern int glob_star;-
91extern int glob_asciirange;-
92extern int lastpipe_opt;-
93extern int inherit_errexit;-
94extern int localvar_inherit;-
95extern int localvar_unset;-
96-
97#if defined (EXTENDED_GLOB)-
98extern int extended_glob;-
99#endif-
100-
101#if defined (READLINE)-
102extern int hist_verify, history_reediting, perform_hostname_completion;-
103extern int no_empty_command_completion;-
104extern int force_fignore;-
105extern int dircomplete_spelling, dircomplete_expand;-
106extern int complete_fullquote;-
107-
108extern int enable_hostname_completion __P((int));-
109#endif-
110-
111#if defined (PROGRAMMABLE_COMPLETION)-
112extern int prog_completion_enabled;-
113#endif-
114-
115#if defined (DEBUGGER)-
116extern int debugging_mode;-
117#endif-
118-
119#if defined (ARRAY_VARS)-
120extern int assoc_expand_once;-
121extern int array_expand_once;-
122#endif-
123-
124static void shopt_error __P((char *));-
125-
126static int set_shellopts_after_change __P((char *, int));-
127static int set_compatibility_level __P((char *, int));-
128-
129#if defined (RESTRICTED_SHELL)-
130static int set_restricted_shell __P((char *, int));-
131#endif-
132-
133#if defined (READLINE)-
134static int shopt_enable_hostname_completion __P((char *, int));-
135static int shopt_set_complete_direxpand __P((char *, int));-
136#endif-
137-
138static int shopt_set_debug_mode __P((char *, int));-
139-
140static int shopt_login_shell;-
141static int shopt_compat31;-
142static int shopt_compat32;-
143static int shopt_compat40;-
144static int shopt_compat41;-
145static int shopt_compat42;-
146static int shopt_compat43;-
147static int shopt_compat44;-
148-
149typedef int shopt_set_func_t __P((char *, int));-
150-
151/* If you add a new variable name here, make sure to set the default value-
152 appropriately in reset_shopt_options. */-
153-
154static struct {-
155 char *name;-
156 int *value;-
157 shopt_set_func_t *set_func;-
158} shopt_vars[] = {-
159 { "autocd", &autocd, (shopt_set_func_t *)NULL },-
160#if defined (ARRAY_VARS)-
161 { "assoc_expand_once", &assoc_expand_once, (shopt_set_func_t *)NULL },-
162#endif-
163 { "cdable_vars", &cdable_vars, (shopt_set_func_t *)NULL },-
164 { "cdspell", &cdspelling, (shopt_set_func_t *)NULL },-
165 { "checkhash", &check_hashed_filenames, (shopt_set_func_t *)NULL },-
166#if defined (JOB_CONTROL)-
167 { "checkjobs", &check_jobs_at_exit, (shopt_set_func_t *)NULL },-
168#endif-
169 { "checkwinsize", &check_window_size, (shopt_set_func_t *)NULL },-
170#if defined (HISTORY)-
171 { "cmdhist", &command_oriented_history, (shopt_set_func_t *)NULL },-
172#endif-
173 { "compat31", &shopt_compat31, set_compatibility_level },-
174 { "compat32", &shopt_compat32, set_compatibility_level },-
175 { "compat40", &shopt_compat40, set_compatibility_level },-
176 { "compat41", &shopt_compat41, set_compatibility_level },-
177 { "compat42", &shopt_compat42, set_compatibility_level },-
178 { "compat43", &shopt_compat43, set_compatibility_level },-
179 { "compat44", &shopt_compat44, set_compatibility_level },-
180#if defined (READLINE)-
181 { "complete_fullquote", &complete_fullquote, (shopt_set_func_t *)NULL},-
182 { "direxpand", &dircomplete_expand, shopt_set_complete_direxpand },-
183 { "dirspell", &dircomplete_spelling, (shopt_set_func_t *)NULL },-
184#endif-
185 { "dotglob", &glob_dot_filenames, (shopt_set_func_t *)NULL },-
186 { "execfail", &no_exit_on_failed_exec, (shopt_set_func_t *)NULL },-
187 { "expand_aliases", &expand_aliases, (shopt_set_func_t *)NULL },-
188#if defined (DEBUGGER)-
189 { "extdebug", &debugging_mode, shopt_set_debug_mode },-
190#endif-
191#if defined (EXTENDED_GLOB)-
192 { "extglob", &extended_glob, (shopt_set_func_t *)NULL },-
193#endif-
194 { "extquote", &extended_quote, (shopt_set_func_t *)NULL },-
195 { "failglob", &fail_glob_expansion, (shopt_set_func_t *)NULL },-
196#if defined (READLINE)-
197 { "force_fignore", &force_fignore, (shopt_set_func_t *)NULL },-
198#endif-
199 { "globasciiranges", &glob_asciirange, (shopt_set_func_t *)NULL },-
200 { "globstar", &glob_star, (shopt_set_func_t *)NULL },-
201 { "gnu_errfmt", &gnu_error_format, (shopt_set_func_t *)NULL },-
202#if defined (HISTORY)-
203 { "histappend", &force_append_history, (shopt_set_func_t *)NULL },-
204#endif-
205#if defined (READLINE)-
206 { "histreedit", &history_reediting, (shopt_set_func_t *)NULL },-
207 { "histverify", &hist_verify, (shopt_set_func_t *)NULL },-
208 { "hostcomplete", &perform_hostname_completion, shopt_enable_hostname_completion },-
209#endif-
210 { "huponexit", &hup_on_exit, (shopt_set_func_t *)NULL },-
211 { "inherit_errexit", &inherit_errexit, (shopt_set_func_t *)NULL },-
212 { "interactive_comments", &interactive_comments, set_shellopts_after_change },-
213 { "lastpipe", &lastpipe_opt, (shopt_set_func_t *)NULL },-
214#if defined (HISTORY)-
215 { "lithist", &literal_history, (shopt_set_func_t *)NULL },-
216#endif-
217 { "localvar_inherit", &localvar_inherit, (shopt_set_func_t *)NULL },-
218#if 0-
219 { "localvar_unset", &localvar_unset, (shopt_set_func_t *)NULL },-
220#endif-
221 { "login_shell", &shopt_login_shell, set_login_shell },-
222 { "mailwarn", &mail_warning, (shopt_set_func_t *)NULL },-
223#if defined (READLINE)-
224 { "no_empty_cmd_completion", &no_empty_command_completion, (shopt_set_func_t *)NULL },-
225#endif-
226 { "nocaseglob", &glob_ignore_case, (shopt_set_func_t *)NULL },-
227 { "nocasematch", &match_ignore_case, (shopt_set_func_t *)NULL },-
228 { "nullglob", &allow_null_glob_expansion, (shopt_set_func_t *)NULL },-
229#if defined (PROGRAMMABLE_COMPLETION)-
230 { "progcomp", &prog_completion_enabled, (shopt_set_func_t *)NULL },-
231#endif-
232 { "promptvars", &promptvars, (shopt_set_func_t *)NULL },-
233#if defined (RESTRICTED_SHELL)-
234 { "restricted_shell", &restricted_shell, set_restricted_shell },-
235#endif-
236 { "shift_verbose", &print_shift_error, (shopt_set_func_t *)NULL },-
237 { "sourcepath", &source_uses_path, (shopt_set_func_t *)NULL },-
238 { "xpg_echo", &xpg_echo, (shopt_set_func_t *)NULL },-
239 { (char *)0, (int *)0, (shopt_set_func_t *)NULL }-
240};-
241-
242#define N_SHOPT_OPTIONS (sizeof (shopt_vars) / sizeof (shopt_vars[0]))-
243-
244#define GET_SHOPT_OPTION_VALUE(i) (*shopt_vars[i].value)-
245-
246static const char * const on = "on";-
247static const char * const off = "off";-
248-
249static int find_shopt __P((char *));-
250static int toggle_shopts __P((int, WORD_LIST *, int));-
251static void print_shopt __P((char *, int, int));-
252static int list_shopts __P((WORD_LIST *, int));-
253static int list_some_shopts __P((int, int));-
254static int list_shopt_o_options __P((WORD_LIST *, int));-
255static int list_some_o_options __P((int, int));-
256static int set_shopt_o_options __P((int, WORD_LIST *, int));-
257-
258#define SFLAG 0x01-
259#define UFLAG 0x02-
260#define QFLAG 0x04-
261#define OFLAG 0x08-
262#define PFLAG 0x10-
263-
264int-
265shopt_builtin (list)-
266 WORD_LIST *list;-
267{-
268 int opt, flags, rval;-
269-
270 flags = 0;-
271 reset_internal_getopt ();-
272 while ((opt = internal_getopt (list, "psuoq")) != -1)
(opt = interna...psuoq")) != -1Description
TRUEevaluated 268 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 256 times by 1 test
Evaluated by:
  • Self test
256-268
273 {-
274 switch (opt)-
275 {-
276 case 's':
executed 146 times by 1 test: case 's':
Executed by:
  • Self test
146
277 flags |= SFLAG;-
278 break;
executed 146 times by 1 test: break;
Executed by:
  • Self test
146
279 case 'u':
executed 89 times by 1 test: case 'u':
Executed by:
  • Self test
89
280 flags |= UFLAG;-
281 break;
executed 89 times by 1 test: break;
Executed by:
  • Self test
89
282 case 'q':
executed 6 times by 1 test: case 'q':
Executed by:
  • Self test
6
283 flags |= QFLAG;-
284 break;
executed 6 times by 1 test: break;
Executed by:
  • Self test
6
285 case 'o':
executed 13 times by 1 test: case 'o':
Executed by:
  • Self test
13
286 flags |= OFLAG;-
287 break;
executed 13 times by 1 test: break;
Executed by:
  • Self test
13
288 case 'p':
executed 13 times by 1 test: case 'p':
Executed by:
  • Self test
13
289 flags |= PFLAG;-
290 break;
executed 13 times by 1 test: break;
Executed by:
  • Self test
13
291 CASE_HELPOPT;
never executed: return (258);
never executed: case -99:
0
292 default:
executed 1 time by 1 test: default:
Executed by:
  • Self test
1
293 builtin_usage ();-
294 return (EX_USAGE);
executed 1 time by 1 test: return (258);
Executed by:
  • Self test
1
295 }-
296 }-
297 list = loptend;-
298-
299 if ((flags & (SFLAG|UFLAG)) == (SFLAG|UFLAG))
(flags & (0x01...== (0x01|0x02)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test
FALSEevaluated 255 times by 1 test
Evaluated by:
  • Self test
1-255
300 {-
301 builtin_error (_("cannot set and unset shell options simultaneously"));-
302 return (EXECUTION_FAILURE);
executed 1 time by 1 test: return (1);
Executed by:
  • Self test
1
303 }-
304-
305 rval = EXECUTION_SUCCESS;-
306 if ((flags & OFLAG) && ((flags & (SFLAG|UFLAG)) == 0)) /* shopt -o */
(flags & 0x08)Description
TRUEevaluated 13 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 242 times by 1 test
Evaluated by:
  • Self test
((flags & (0x01|0x02)) == 0)Description
TRUEevaluated 7 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 6 times by 1 test
Evaluated by:
  • Self test
6-242
307 rval = list_shopt_o_options (list, flags);
executed 7 times by 1 test: rval = list_shopt_o_options (list, flags);
Executed by:
  • Self test
7
308 else if (list && (flags & OFLAG)) /* shopt -so args */
listDescription
TRUEevaluated 241 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 7 times by 1 test
Evaluated by:
  • Self test
(flags & 0x08)Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 238 times by 1 test
Evaluated by:
  • Self test
3-241
309 rval = set_shopt_o_options ((flags & SFLAG) ? FLAG_ON : FLAG_OFF, list, flags & QFLAG);
executed 3 times by 1 test: rval = set_shopt_o_options ((flags & 0x01) ? '-' : '+', list, flags & 0x04);
Executed by:
  • Self test
3
310 else if (flags & OFLAG) /* shopt -so */
flags & 0x08Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 242 times by 1 test
Evaluated by:
  • Self test
3-242
311 rval = list_some_o_options ((flags & SFLAG) ? 1 : 0, flags);
executed 3 times by 1 test: rval = list_some_o_options ((flags & 0x01) ? 1 : 0, flags);
Executed by:
  • Self test
3
312 else if (list && (flags & (SFLAG|UFLAG))) /* shopt -su args */
listDescription
TRUEevaluated 238 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 4 times by 1 test
Evaluated by:
  • Self test
(flags & (0x01|0x02))Description
TRUEevaluated 224 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 14 times by 1 test
Evaluated by:
  • Self test
4-238
313 rval = toggle_shopts ((flags & SFLAG) ? SETOPT : UNSETOPT, list, flags & QFLAG);
executed 224 times by 1 test: rval = toggle_shopts ((flags & 0x01) ? 1 : 0, list, flags & 0x04);
Executed by:
  • Self test
224
314 else if ((flags & (SFLAG|UFLAG)) == 0) /* shopt [args] */
(flags & (0x01|0x02)) == 0Description
TRUEevaluated 15 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test
3-15
315 rval = list_shopts (list, flags);
executed 15 times by 1 test: rval = list_shopts (list, flags);
Executed by:
  • Self test
15
316 else /* shopt -su */-
317 rval = list_some_shopts ((flags & SFLAG) ? SETOPT : UNSETOPT, flags);
executed 3 times by 1 test: rval = list_some_shopts ((flags & 0x01) ? 1 : 0, flags);
Executed by:
  • Self test
3
318 return (rval);
executed 255 times by 1 test: return (rval);
Executed by:
  • Self test
255
319}-
320-
321/* Reset the options managed by `shopt' to the values they would have at-
322 shell startup. Variables from shopt_vars. */-
323void-
324reset_shopt_options ()-
325{-
326 autocd = cdable_vars = cdspelling = 0;-
327 check_hashed_filenames = CHECKHASH_DEFAULT;-
328 check_window_size = CHECKWINSIZE_DEFAULT;-
329 allow_null_glob_expansion = glob_dot_filenames = 0;-
330 no_exit_on_failed_exec = 0;-
331 expand_aliases = 0;-
332 extended_quote = 1;-
333 fail_glob_expansion = 0;-
334 glob_asciirange = GLOBASCII_DEFAULT;-
335 glob_star = 0;-
336 gnu_error_format = 0;-
337 hup_on_exit = 0;-
338 inherit_errexit = 0;-
339 interactive_comments = 1;-
340 lastpipe_opt = 0;-
341 mail_warning = 0;-
342 glob_ignore_case = match_ignore_case = 0;-
343 print_shift_error = 0;-
344 source_uses_path = promptvars = 1;-
345-
346#if defined (JOB_CONTROL)-
347 check_jobs_at_exit = 0;-
348#endif-
349-
350#if defined (EXTENDED_GLOB)-
351 extended_glob = EXTGLOB_DEFAULT;-
352#endif-
353-
354#if defined (HISTORY)-
355 literal_history = 0;-
356 force_append_history = 0;-
357 command_oriented_history = 1;-
358#endif-
359-
360#if defined (READLINE)-
361 complete_fullquote = 1;-
362 force_fignore = 1;-
363 hist_verify = history_reediting = 0;-
364 perform_hostname_completion = 1;-
365# if DIRCOMPLETE_EXPAND_DEFAULT-
366 dircomplete_expand = 1;-
367# else-
368 dircomplete_expand = 0;-
369#endif-
370 dircomplete_spelling = 0;-
371 no_empty_command_completion = 0;-
372#endif-
373-
374#if defined (PROGRAMMABLE_COMPLETION)-
375 prog_completion_enabled = 1;-
376#endif-
377-
378#if defined (DEFAULT_ECHO_TO_XPG) || defined (STRICT_POSIX)-
379 xpg_echo = 1;-
380#else-
381 xpg_echo = 0;-
382#endif /* DEFAULT_ECHO_TO_XPG */-
383-
384 shopt_login_shell = login_shell;-
385}
executed 15 times by 1 test: end of block
Executed by:
  • Self test
15
386-
387static int-
388find_shopt (name)-
389 char *name;-
390{-
391 int i;-
392-
393 for (i = 0; shopt_vars[i].name; i++)
shopt_vars[i].nameDescription
TRUEevaluated 8414 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 15 times by 1 test
Evaluated by:
  • Self test
15-8414
394 if (STREQ (name, shopt_vars[i].name))
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( shopt_vars[i].name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(name)[0] == (...rs[i].name)[0]Description
TRUEevaluated 521 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 7893 times by 1 test
Evaluated by:
  • Self test
__extension__ ... )))); }) == 0Description
TRUEevaluated 230 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 291 times by 1 test
Evaluated by:
  • Self test
__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-7893
395 return i;
executed 230 times by 1 test: return i;
Executed by:
  • Self test
230
396 return -1;
executed 15 times by 1 test: return -1;
Executed by:
  • Self test
15
397}-
398-
399static void-
400shopt_error (s)-
401 char *s;-
402{-
403 builtin_error (_("%s: invalid shell option name"), s);-
404}
executed 15 times by 1 test: end of block
Executed by:
  • Self test
15
405-
406static int-
407toggle_shopts (mode, list, quiet)-
408 int mode;-
409 WORD_LIST *list;-
410 int quiet;-
411{-
412 WORD_LIST *l;-
413 int ind, rval;-
414 SHELL_VAR *v;-
415-
416 for (l = list, rval = EXECUTION_SUCCESS; l; l = l->next)
lDescription
TRUEevaluated 228 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 224 times by 1 test
Evaluated by:
  • Self test
224-228
417 {-
418 ind = find_shopt (l->word->word);-
419 if (ind < 0)
ind < 0Description
TRUEevaluated 5 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 223 times by 1 test
Evaluated by:
  • Self test
5-223
420 {-
421 shopt_error (l->word->word);-
422 rval = EXECUTION_FAILURE;-
423 }
executed 5 times by 1 test: end of block
Executed by:
  • Self test
5
424 else-
425 {-
426 *shopt_vars[ind].value = mode; /* 1 for set, 0 for unset */-
427 if (shopt_vars[ind].set_func)
shopt_vars[ind].set_funcDescription
TRUEevaluated 25 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 198 times by 1 test
Evaluated by:
  • Self test
25-198
428 (*shopt_vars[ind].set_func) (shopt_vars[ind].name, mode);
executed 25 times by 1 test: (*shopt_vars[ind].set_func) (shopt_vars[ind].name, mode);
Executed by:
  • Self test
25
429 }
executed 223 times by 1 test: end of block
Executed by:
  • Self test
223
430 }-
431-
432 /* Don't set $BASHOPTS here if it hasn't already been initialized */-
433 if (v = find_variable ("BASHOPTS"))
v = find_variable ("BASHOPTS")Description
TRUEevaluated 224 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
0-224
434 set_bashopts ();
executed 224 times by 1 test: set_bashopts ();
Executed by:
  • Self test
224
435 return (rval);
executed 224 times by 1 test: return (rval);
Executed by:
  • Self test
224
436}-
437-
438static void-
439print_shopt (name, val, flags)-
440 char *name;-
441 int val, flags;-
442{-
443 if (flags & PFLAG)
flags & 0x10Description
TRUEevaluated 105 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 41 times by 1 test
Evaluated by:
  • Self test
41-105
444 printf ("shopt %s %s\n", val ? "-s" : "-u", name);
executed 105 times by 1 test: printf ("shopt %s %s\n", val ? "-s" : "-u", name);
Executed by:
  • Self test
105
445 else-
446 printf (OPTFMT, name, val ? on : off);
executed 41 times by 1 test: printf ("%-15s\t%s\n", name, val ? on : off);
Executed by:
  • Self test
41
447}-
448-
449/* List the values of all or any of the `shopt' options. Returns 0 if-
450 all were listed or all variables queried were on; 1 otherwise. */-
451static int-
452list_shopts (list, flags)-
453 WORD_LIST *list;-
454 int flags;-
455{-
456 WORD_LIST *l;-
457 int i, val, rval;-
458-
459 if (list == 0)
list == 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test
FALSEevaluated 14 times by 1 test
Evaluated by:
  • Self test
1-14
460 {-
461 for (i = 0; shopt_vars[i].name; i++)
shopt_vars[i].nameDescription
TRUEevaluated 51 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 1 time by 1 test
Evaluated by:
  • Self test
1-51
462 {-
463 val = *shopt_vars[i].value;-
464 if ((flags & QFLAG) == 0)
(flags & 0x04) == 0Description
TRUEevaluated 51 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
0-51
465 print_shopt (shopt_vars[i].name, val, flags);
executed 51 times by 1 test: print_shopt (shopt_vars[i].name, val, flags);
Executed by:
  • Self test
51
466 }
executed 51 times by 1 test: end of block
Executed by:
  • Self test
51
467 return (sh_chkwrite (EXECUTION_SUCCESS));
executed 1 time by 1 test: return (sh_chkwrite (0));
Executed by:
  • Self test
1
468 }-
469-
470 for (l = list, rval = EXECUTION_SUCCESS; l; l = l->next)
lDescription
TRUEevaluated 17 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 14 times by 1 test
Evaluated by:
  • Self test
14-17
471 {-
472 i = find_shopt (l->word->word);-
473 if (i < 0)
i < 0Description
TRUEevaluated 10 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 7 times by 1 test
Evaluated by:
  • Self test
7-10
474 {-
475 shopt_error (l->word->word);-
476 rval = EXECUTION_FAILURE;-
477 continue;
executed 10 times by 1 test: continue;
Executed by:
  • Self test
10
478 }-
479 val = *shopt_vars[i].value;-
480 if (val == 0)
val == 0Description
TRUEevaluated 5 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 2 times by 1 test
Evaluated by:
  • Self test
2-5
481 rval = EXECUTION_FAILURE;
executed 5 times by 1 test: rval = 1;
Executed by:
  • Self test
5
482 if ((flags & QFLAG) == 0)
(flags & 0x04) == 0Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test
3-4
483 print_shopt (l->word->word, val, flags);
executed 4 times by 1 test: print_shopt (l->word->word, val, flags);
Executed by:
  • Self test
4
484 }
executed 7 times by 1 test: end of block
Executed by:
  • Self test
7
485-
486 return (sh_chkwrite (rval));
executed 14 times by 1 test: return (sh_chkwrite (rval));
Executed by:
  • Self test
14
487}-
488-
489static int-
490list_some_shopts (mode, flags)-
491 int mode, flags;-
492{-
493 int val, i;-
494-
495 for (i = 0; shopt_vars[i].name; i++)
shopt_vars[i].nameDescription
TRUEevaluated 153 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test
3-153
496 {-
497 val = *shopt_vars[i].value;-
498 if (((flags & QFLAG) == 0) && mode == val)
((flags & 0x04) == 0)Description
TRUEevaluated 153 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
mode == valDescription
TRUEevaluated 91 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 62 times by 1 test
Evaluated by:
  • Self test
0-153
499 print_shopt (shopt_vars[i].name, val, flags);
executed 91 times by 1 test: print_shopt (shopt_vars[i].name, val, flags);
Executed by:
  • Self test
91
500 }
executed 153 times by 1 test: end of block
Executed by:
  • Self test
153
501 return (sh_chkwrite (EXECUTION_SUCCESS));
executed 3 times by 1 test: return (sh_chkwrite (0));
Executed by:
  • Self test
3
502}-
503-
504static int-
505list_shopt_o_options (list, flags)-
506 WORD_LIST *list;-
507 int flags;-
508{-
509 WORD_LIST *l;-
510 int val, rval;-
511-
512 if (list == 0)
list == 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test
FALSEevaluated 6 times by 1 test
Evaluated by:
  • Self test
1-6
513 {-
514 if ((flags & QFLAG) == 0)
(flags & 0x04) == 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
0-1
515 list_minus_o_opts (-1, (flags & PFLAG));
executed 1 time by 1 test: list_minus_o_opts (-1, (flags & 0x10));
Executed by:
  • Self test
1
516 return (sh_chkwrite (EXECUTION_SUCCESS));
executed 1 time by 1 test: return (sh_chkwrite (0));
Executed by:
  • Self test
1
517 }-
518-
519 for (l = list, rval = EXECUTION_SUCCESS; l; l = l->next)
lDescription
TRUEevaluated 6 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 6 times by 1 test
Evaluated by:
  • Self test
6
520 {-
521 val = minus_o_option_value (l->word->word);-
522 if (val == -1)
val == -1Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test
FALSEevaluated 5 times by 1 test
Evaluated by:
  • Self test
1-5
523 {-
524 sh_invalidoptname (l->word->word);-
525 rval = EXECUTION_FAILURE;-
526 continue;
executed 1 time by 1 test: continue;
Executed by:
  • Self test
1
527 }-
528 if (val == 0)
val == 0Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 1 time by 1 test
Evaluated by:
  • Self test
1-4
529 rval = EXECUTION_FAILURE;
executed 4 times by 1 test: rval = 1;
Executed by:
  • Self test
4
530 if ((flags & QFLAG) == 0)
(flags & 0x04) == 0Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test
2-3
531 {-
532 if (flags & PFLAG)
flags & 0x10Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
0-2
533 printf ("set %co %s\n", val ? '-' : '+', l->word->word);
executed 2 times by 1 test: printf ("set %co %s\n", val ? '-' : '+', l->word->word);
Executed by:
  • Self test
2
534 else-
535 printf (OPTFMT, l->word->word, val ? on : off);
never executed: printf ("%-15s\t%s\n", l->word->word, val ? on : off);
0
536 }-
537 }
executed 5 times by 1 test: end of block
Executed by:
  • Self test
5
538 return (sh_chkwrite (rval));
executed 6 times by 1 test: return (sh_chkwrite (rval));
Executed by:
  • Self test
6
539}-
540-
541static int-
542list_some_o_options (mode, flags)-
543 int mode, flags;-
544{-
545 if ((flags & QFLAG) == 0)
(flags & 0x04) == 0Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
0-3
546 list_minus_o_opts (mode, (flags & PFLAG));
executed 3 times by 1 test: list_minus_o_opts (mode, (flags & 0x10));
Executed by:
  • Self test
3
547 return (sh_chkwrite (EXECUTION_SUCCESS));
executed 3 times by 1 test: return (sh_chkwrite (0));
Executed by:
  • Self test
3
548}-
549-
550static int-
551set_shopt_o_options (mode, list, quiet)-
552 int mode;-
553 WORD_LIST *list;-
554 int quiet;-
555{-
556 WORD_LIST *l;-
557 int rval;-
558-
559 for (l = list, rval = EXECUTION_SUCCESS; l; l = l->next)
lDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test
3
560 {-
561 if (set_minus_o_option (mode, l->word->word) == EXECUTION_FAILURE)
set_minus_o_op...rd->word) == 1Description
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test
0-3
562 rval = EXECUTION_FAILURE;
never executed: rval = 1;
0
563 }
executed 3 times by 1 test: end of block
Executed by:
  • Self test
3
564 set_shellopts ();-
565 return rval;
executed 3 times by 1 test: return rval;
Executed by:
  • Self test
3
566}-
567-
568/* If we set or unset interactive_comments with shopt, make sure the-
569 change is reflected in $SHELLOPTS. */-
570static int-
571set_shellopts_after_change (option_name, mode)-
572 char *option_name;-
573 int mode;-
574{-
575 set_shellopts ();-
576 return (0);
executed 1 time by 1 test: return (0);
Executed by:
  • Self test
1
577}-
578-
579static int-
580shopt_set_debug_mode (option_name, mode)-
581 char *option_name;-
582 int mode;-
583{-
584#if defined (DEBUGGER)-
585 error_trace_mode = function_trace_mode = debugging_mode;-
586 set_shellopts ();-
587 if (debugging_mode)
debugging_modeDescription
TRUEevaluated 21 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
0-21
588 init_bash_argv ();
executed 21 times by 1 test: init_bash_argv ();
Executed by:
  • Self test
21
589#endif-
590 return (0);
executed 21 times by 1 test: return (0);
Executed by:
  • Self test
21
591}-
592-
593#if defined (READLINE)-
594static int-
595shopt_enable_hostname_completion (option_name, mode)-
596 char *option_name;-
597 int mode;-
598{-
599 return (enable_hostname_completion (mode));
executed 3 times by 1 test: return (enable_hostname_completion (mode));
Executed by:
  • Self test
3
600}-
601#endif-
602-
603static int-
604set_compatibility_level (option_name, mode)-
605 char *option_name;-
606 int mode;-
607{-
608 int ind;-
609 char *rhs;-
610-
611 /* If we're setting something, redo some of the work we did above in-
612 toggle_shopt(). Unset everything and reset the appropriate option-
613 based on OPTION_NAME. */-
614 if (mode)
modeDescription
TRUEnever evaluated
FALSEnever evaluated
0
615 {-
616 shopt_compat31 = shopt_compat32 = 0;-
617 shopt_compat40 = shopt_compat41 = shopt_compat42 = shopt_compat43 = 0;-
618 shopt_compat44 = 0;-
619 ind = find_shopt (option_name);-
620 *shopt_vars[ind].value = mode;-
621 }
never executed: end of block
0
622-
623 /* Then set shell_compatibility_level based on what remains */-
624 if (shopt_compat31)
shopt_compat31Description
TRUEnever evaluated
FALSEnever evaluated
0
625 shell_compatibility_level = 31;
never executed: shell_compatibility_level = 31;
0
626 else if (shopt_compat32)
shopt_compat32Description
TRUEnever evaluated
FALSEnever evaluated
0
627 shell_compatibility_level = 32;
never executed: shell_compatibility_level = 32;
0
628 else if (shopt_compat40)
shopt_compat40Description
TRUEnever evaluated
FALSEnever evaluated
0
629 shell_compatibility_level = 40;
never executed: shell_compatibility_level = 40;
0
630 else if (shopt_compat41)
shopt_compat41Description
TRUEnever evaluated
FALSEnever evaluated
0
631 shell_compatibility_level = 41;
never executed: shell_compatibility_level = 41;
0
632 else if (shopt_compat42)
shopt_compat42Description
TRUEnever evaluated
FALSEnever evaluated
0
633 shell_compatibility_level = 42;
never executed: shell_compatibility_level = 42;
0
634 else if (shopt_compat43)
shopt_compat43Description
TRUEnever evaluated
FALSEnever evaluated
0
635 shell_compatibility_level = 43;
never executed: shell_compatibility_level = 43;
0
636 else if (shopt_compat44)
shopt_compat44Description
TRUEnever evaluated
FALSEnever evaluated
0
637 shell_compatibility_level = 44;
never executed: shell_compatibility_level = 44;
0
638 else-
639 shell_compatibility_level = DEFAULT_COMPAT_LEVEL;
never executed: shell_compatibility_level = 50;
0
640-
641 /* Make sure the current compatibility level is reflected in BASH_COMPAT */-
642 rhs = itos (shell_compatibility_level);-
643 bind_variable ("BASH_COMPAT", rhs, 0);-
644 free (rhs);-
645-
646 return 0;
never executed: return 0;
0
647}-
648-
649/* Set and unset the various compatibility options from the value of-
650 shell_compatibility_level; used by sv_shcompat */-
651void-
652set_compatibility_opts ()-
653{-
654 shopt_compat31 = shopt_compat32 = 0;-
655 shopt_compat40 = shopt_compat41 = shopt_compat42 = shopt_compat43 = 0;-
656 shopt_compat44 = 0;-
657 switch (shell_compatibility_level)-
658 {-
659 case DEFAULT_COMPAT_LEVEL:
executed 5447 times by 1 test: case 50:
Executed by:
  • Self test
5447
660 break;
executed 5447 times by 1 test: break;
Executed by:
  • Self test
5447
661 case 44:
never executed: case 44:
0
662 shopt_compat44 = 1; break;
never executed: break;
0
663 case 43:
never executed: case 43:
0
664 shopt_compat43 = 1; break;
never executed: break;
0
665 case 42:
never executed: case 42:
0
666 shopt_compat42 = 1; break;
never executed: break;
0
667 case 41:
never executed: case 41:
0
668 shopt_compat41 = 1; break;
never executed: break;
0
669 case 40:
never executed: case 40:
0
670 shopt_compat40 = 1; break;
never executed: break;
0
671 case 32:
never executed: case 32:
0
672 shopt_compat32 = 1; break;
never executed: break;
0
673 case 31:
never executed: case 31:
0
674 shopt_compat31 = 1; break;
never executed: break;
0
675 }-
676}
executed 5447 times by 1 test: end of block
Executed by:
  • Self test
5447
677-
678#if defined (READLINE)-
679static int-
680shopt_set_complete_direxpand (option_name, mode)-
681 char *option_name;-
682 int mode;-
683{-
684 set_directory_hook ();-
685 return 0;
never executed: return 0;
0
686}-
687#endif-
688-
689#if defined (RESTRICTED_SHELL)-
690/* Don't allow the value of restricted_shell to be modified. */-
691-
692static int-
693set_restricted_shell (option_name, mode)-
694 char *option_name;-
695 int mode;-
696{-
697 static int save_restricted = -1;-
698-
699 if (save_restricted == -1)
save_restricted == -1Description
TRUEnever evaluated
FALSEnever evaluated
0
700 save_restricted = shell_is_restricted (shell_name);
never executed: save_restricted = shell_is_restricted (shell_name);
0
701-
702 restricted_shell = save_restricted;-
703 return (0);
never executed: return (0);
0
704}-
705#endif /* RESTRICTED_SHELL */-
706-
707/* Not static so shell.c can call it to initialize shopt_login_shell */-
708int-
709set_login_shell (option_name, mode)-
710 char *option_name;-
711 int mode;-
712{-
713 shopt_login_shell = login_shell != 0;-
714 return (0);
executed 5447 times by 1 test: return (0);
Executed by:
  • Self test
5447
715}-
716-
717char **-
718get_shopt_options ()-
719{-
720 char **ret;-
721 int n, i;-
722-
723 n = sizeof (shopt_vars) / sizeof (shopt_vars[0]);-
724 ret = strvec_create (n + 1);-
725 for (i = 0; shopt_vars[i].name; i++)
shopt_vars[i].nameDescription
TRUEnever evaluated
FALSEnever evaluated
0
726 ret[i] = savestring (shopt_vars[i].name);
never executed: ret[i] = (char *)strcpy (sh_xmalloc((1 + strlen (shopt_vars[i].name)), "./shopt.def", 726), (shopt_vars[i].name));
0
727 ret[i] = (char *)NULL;-
728 return ret;
never executed: return ret;
0
729}-
730-
731/*-
732 * External interface for other parts of the shell. NAME is a string option;-
733 * MODE is 0 if we want to unset an option; 1 if we want to set an option.-
734 * REUSABLE is 1 if we want to print output in a form that may be reused.-
735 */-
736int-
737shopt_setopt (name, mode)-
738 char *name;-
739 int mode;-
740{-
741 WORD_LIST *wl;-
742 int r;-
743-
744 wl = add_string_to_list (name, (WORD_LIST *)NULL);-
745 r = toggle_shopts (mode, wl, 0);-
746 dispose_words (wl);-
747 return r;
never executed: return r;
0
748}-
749-
750int-
751shopt_listopt (name, reusable)-
752 char *name;-
753 int reusable;-
754{-
755 int i;-
756-
757 if (name == 0)
name == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
758 return (list_shopts ((WORD_LIST *)NULL, reusable ? PFLAG : 0));
never executed: return (list_shopts ((WORD_LIST *) ((void *)0) , reusable ? 0x10 : 0));
0
759-
760 i = find_shopt (name);-
761 if (i < 0)
i < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
762 {-
763 shopt_error (name);-
764 return (EXECUTION_FAILURE);
never executed: return (1);
0
765 }-
766-
767 print_shopt (name, *shopt_vars[i].value, reusable ? PFLAG : 0);-
768 return (sh_chkwrite (EXECUTION_SUCCESS));
never executed: return (sh_chkwrite (0));
0
769}-
770-
771void-
772set_bashopts ()-
773{-
774 char *value;-
775 char tflag[N_SHOPT_OPTIONS];-
776 int vsize, i, vptr, *ip, exported;-
777 SHELL_VAR *v;-
778-
779 for (vsize = i = 0; shopt_vars[i].name; i++)
shopt_vars[i].nameDescription
TRUEevaluated 289221 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 5671 times by 1 test
Evaluated by:
  • Self test
5671-289221
780 {-
781 tflag[i] = 0;-
782 if (GET_SHOPT_OPTION_VALUE (i))
(*shopt_vars[i].value)Description
TRUEevaluated 51361 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 237860 times by 1 test
Evaluated by:
  • Self test
51361-237860
783 {-
784 vsize += strlen (shopt_vars[i].name) + 1;-
785 tflag[i] = 1;-
786 }
executed 51361 times by 1 test: end of block
Executed by:
  • Self test
51361
787 }
executed 289221 times by 1 test: end of block
Executed by:
  • Self test
289221
788-
789 value = (char *)xmalloc (vsize + 1);-
790-
791 for (i = vptr = 0; shopt_vars[i].name; i++)
shopt_vars[i].nameDescription
TRUEevaluated 289221 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 5671 times by 1 test
Evaluated by:
  • Self test
5671-289221
792 {-
793 if (tflag[i])
tflag[i]Description
TRUEevaluated 51361 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 237860 times by 1 test
Evaluated by:
  • Self test
51361-237860
794 {-
795 strcpy (value + vptr, shopt_vars[i].name);-
796 vptr += strlen (shopt_vars[i].name);-
797 value[vptr++] = ':';-
798 }
executed 51361 times by 1 test: end of block
Executed by:
  • Self test
51361
799 }
executed 289221 times by 1 test: end of block
Executed by:
  • Self test
289221
800-
801 if (vptr)
vptrDescription
TRUEevaluated 5671 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
0-5671
802 vptr--; /* cut off trailing colon */
executed 5671 times by 1 test: vptr--;
Executed by:
  • Self test
5671
803 value[vptr] = '\0';-
804-
805 v = find_variable ("BASHOPTS");-
806-
807 /* Turn off the read-only attribute so we can bind the new value, and-
808 note whether or not the variable was exported. */-
809 if (v)
vDescription
TRUEevaluated 224 times by 1 test
Evaluated by:
  • Self test
FALSEevaluated 5447 times by 1 test
Evaluated by:
  • Self test
224-5447
810 {-
811 VUNSETATTR (v, att_readonly);-
812 exported = exported_p (v);-
813 }
executed 224 times by 1 test: end of block
Executed by:
  • Self test
224
814 else-
815 exported = 0;
executed 5447 times by 1 test: exported = 0;
Executed by:
  • Self test
5447
816-
817 v = bind_variable ("BASHOPTS", value, 0);-
818-
819 /* Turn the read-only attribute back on, and turn off the export attribute-
820 if it was set implicitly by mark_modified_vars and SHELLOPTS was not-
821 exported before we bound the new value. */-
822 VSETATTR (v, att_readonly);-
823 if (mark_modified_vars && exported == 0 && exported_p (v))
mark_modified_varsDescription
TRUEnever evaluated
FALSEevaluated 5671 times by 1 test
Evaluated by:
  • Self test
exported == 0Description
TRUEnever evaluated
FALSEnever evaluated
((((v)->attrib... (0x0000001)))Description
TRUEnever evaluated
FALSEnever evaluated
0-5671
824 VUNSETATTR (v, att_exported);
never executed: ((v)->attributes &= ~(0x0000001));
0
825-
826 free (value);-
827}
executed 5671 times by 1 test: end of block
Executed by:
  • Self test
5671
828-
829void-
830parse_bashopts (value)-
831 char *value;-
832{-
833 char *vname;-
834 int vptr, ind;-
835-
836 vptr = 0;-
837 while (vname = extract_colon_unit (value, &vptr))
vname = extrac...(value, &vptr)Description
TRUEnever evaluated
FALSEnever evaluated
0
838 {-
839 ind = find_shopt (vname);-
840 if (ind >= 0)
ind >= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
841 {-
842 *shopt_vars[ind].value = 1;-
843 if (shopt_vars[ind].set_func)
shopt_vars[ind].set_funcDescription
TRUEnever evaluated
FALSEnever evaluated
0
844 (*shopt_vars[ind].set_func) (shopt_vars[ind].name, 1);
never executed: (*shopt_vars[ind].set_func) (shopt_vars[ind].name, 1);
0
845 }
never executed: end of block
0
846 free (vname);-
847 }
never executed: end of block
0
848}
never executed: end of block
0
849-
850void-
851initialize_bashopts (no_bashopts)-
852 int no_bashopts;-
853{-
854 char *temp;-
855 SHELL_VAR *var;-
856-
857 if (no_bashopts == 0)
no_bashopts == 0Description
TRUEevaluated 5447 times by 1 test
Evaluated by:
  • Self test
FALSEnever evaluated
0-5447
858 {-
859 var = find_variable ("BASHOPTS");-
860 /* set up any shell options we may have inherited. */-
861 if (var && imported_p (var))
varDescription
TRUEnever evaluated
FALSEevaluated 5447 times by 1 test
Evaluated by:
  • Self test
((((var)->attr... (0x0008000)))Description
TRUEnever evaluated
FALSEnever evaluated
0-5447
862 {-
863 temp = (array_p (var) || assoc_p (var)) ? (char *)NULL : savestring (value_cell (var));
((((var)->attr... (0x0000004)))Description
TRUEnever evaluated
FALSEnever evaluated
((((var)->attr... (0x0000040)))Description
TRUEnever evaluated
FALSEnever evaluated
0
864 if (temp)
tempDescription
TRUEnever evaluated
FALSEnever evaluated
0
865 {-
866 parse_bashopts (temp);-
867 free (temp);-
868 }
never executed: end of block
0
869 }
never executed: end of block
0
870 }
executed 5447 times by 1 test: end of block
Executed by:
  • Self test
5447
871-
872 /* Set up the $BASHOPTS variable. */-
873 set_bashopts ();-
874}
executed 5447 times by 1 test: end of block
Executed by:
  • Self test
5447
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2