diff --git a/.bash.metadata b/.bash.metadata deleted file mode 100644 index 1a4d454..0000000 --- a/.bash.metadata +++ /dev/null @@ -1 +0,0 @@ -8de012df1e4f3e91f571c3eb8ec45b43d7c747eb SOURCES/bash-4.4.tar.gz diff --git a/.gitignore b/.gitignore index ba1de94..9ef38c6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -SOURCES/bash-4.4.tar.gz +bash-5.2.tar.gz +bash-5.2.tar.gz.sig diff --git a/SOURCES/bash-2.02-security.patch b/SOURCES/bash-2.02-security.patch deleted file mode 100644 index f8a913b..0000000 --- a/SOURCES/bash-2.02-security.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- bash-2.02-orig/parse.y Wed Mar 25 18:16:23 1998 -+++ bash-2.02/parse.y Sun Apr 19 16:46:34 1998 -@@ -923,7 +923,7 @@ - - #if defined (READLINE) - char *current_readline_prompt = (char *)NULL; --char *current_readline_line = (char *)NULL; -+unsigned char *current_readline_line = (unsigned char *)NULL; - int current_readline_line_index = 0; - - static int diff --git a/SOURCES/bash-2.03-paths.patch b/SOURCES/bash-2.03-paths.patch deleted file mode 100644 index 24ec5cc..0000000 --- a/SOURCES/bash-2.03-paths.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- bash-3.0/config-top.h.paths 2003-08-05 15:36:12.000000000 +0100 -+++ bash-3.0/config-top.h 2004-07-28 09:36:27.117205637 +0100 -@@ -66,7 +66,7 @@ - the Posix.2 confstr () function, or CS_PATH define are not present. */ - #ifndef STANDARD_UTILS_PATH - #define STANDARD_UTILS_PATH \ -- "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc" -+ "/bin:/usr/bin:/usr/sbin:/sbin" - #endif - - /* Default primary and secondary prompt strings. */ diff --git a/SOURCES/bash-2.05b-manso.patch b/SOURCES/bash-2.05b-manso.patch deleted file mode 100644 index 39ebf74..0000000 --- a/SOURCES/bash-2.05b-manso.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- bash-2.05b/doc/builtins.1.manso 2003-02-10 18:58:21.000000000 +0000 -+++ bash-2.05b/doc/builtins.1 2003-02-10 18:58:28.000000000 +0000 -@@ -10,6 +10,6 @@ - ulimit, umask, unalias, unset, wait \- bash built-in commands, see \fBbash\fR(1) - .SH BASH BUILTIN COMMANDS - .nr zZ 1 --.so bash.1 -+.so man1/bash.1 - .SH SEE ALSO - bash(1), sh(1) diff --git a/SOURCES/bash-2.05b-pgrp_sync.patch b/SOURCES/bash-2.05b-pgrp_sync.patch deleted file mode 100644 index bd7ded6..0000000 --- a/SOURCES/bash-2.05b-pgrp_sync.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- bash-2.05b/aclocal.m4.pgrp_sync 2002-06-25 14:45:43.000000000 +0100 -+++ bash-2.05b/aclocal.m4 2003-01-15 18:17:35.000000000 +0000 -@@ -1255,7 +1255,7 @@ - wait(&status); - exit(ok ? 0 : 5); - } --], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes, -+], bash_cv_pgrp_pipe=yes,bash_cv_pgrp_pipe=yes, - [AC_MSG_WARN(cannot check pgrp synchronization if cross compiling -- defaulting to no) - bash_cv_pgrp_pipe=no]) - ]) diff --git a/SOURCES/bash-2.05b-xcc.patch b/SOURCES/bash-2.05b-xcc.patch deleted file mode 100644 index ad42832..0000000 --- a/SOURCES/bash-2.05b-xcc.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- bash-3.1/Makefile.in.xcc 2005-10-25 19:37:52.000000000 +0100 -+++ bash-3.1/Makefile.in 2005-12-23 16:11:09.000000000 +0000 -@@ -68,6 +68,7 @@ - ARFLAGS = @ARFLAGS@ - RANLIB = @RANLIB@ - SIZE = @SIZE@ -+STRIP = strip - - INSTALL = @INSTALL@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ -@@ -535,7 +536,7 @@ - @chmod a+rx bashbug - - strip: $(Program) .made -- strip $(Program) -+ $(STRIP) $(Program) - ls -l $(Program) - -$(SIZE) $(Program) - diff --git a/SOURCES/bash-4.1-defer-sigchld-trap.patch b/SOURCES/bash-4.1-defer-sigchld-trap.patch deleted file mode 100644 index e00adec..0000000 --- a/SOURCES/bash-4.1-defer-sigchld-trap.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -pruN bash-4.1/jobs.c bash-4.1.patched/jobs.c ---- bash-4.1/jobs.c 2009-11-30 03:42:05.000000000 +0530 -+++ bash-4.1.patched/jobs.c 2012-03-06 16:44:15.706595703 +0530 -@@ -3037,6 +3037,7 @@ waitchld (wpid, block) - pid_t pid; - - int call_set_current, last_stopped_job, job, children_exited, waitpid_flags; -+ int called_from_sighand = sigchld; - static int wcontinued = WCONTINUED; /* run-time fix for glibc problem */ - - call_set_current = children_exited = 0; diff --git a/SOURCES/bash-4.1-examples.patch b/SOURCES/bash-4.1-examples.patch deleted file mode 100644 index 19159e7..0000000 --- a/SOURCES/bash-4.1-examples.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up bash-4.1/examples/loadables/Makefile.in.examples bash-4.1/examples/loadables/Makefile.in ---- bash-4.1/examples/loadables/Makefile.in.examples 2010-06-22 16:20:02.000000000 +0200 -+++ bash-4.1/examples/loadables/Makefile.in 2010-06-22 16:20:41.000000000 +0200 -@@ -43,7 +43,7 @@ host_os = @host_os@ - host_cpu = @host_cpu@ - host_vendor = @host_vendor@ - --CFLAGS = @CFLAGS@ -+CFLAGS = -O2 -g - LOCAL_CFLAGS = @LOCAL_CFLAGS@ - DEFS = @DEFS@ - LOCAL_DEFS = @LOCAL_DEFS@ -diff -up bash-4.1/examples/loadables/perl/Makefile.in.examples bash-4.1/examples/loadables/perl/Makefile.in ---- bash-4.1/examples/loadables/perl/Makefile.in.examples 2010-06-22 16:20:46.000000000 +0200 -+++ bash-4.1/examples/loadables/perl/Makefile.in 2010-06-22 16:21:04.000000000 +0200 -@@ -42,7 +42,7 @@ SHELL = @MAKE_SHELL@ - - PERL5 = perl5 - --CFLAGS = @CFLAGS@ -+CFLAGS = -O2 -g - - # - # These values are generated for configure by ${topdir}/support/shobj-conf. diff --git a/SOURCES/bash-4.3-memleak-lc_all.patch b/SOURCES/bash-4.3-memleak-lc_all.patch deleted file mode 100644 index 77e86de..0000000 --- a/SOURCES/bash-4.3-memleak-lc_all.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up bash-4.3/locale.c.old bash-4.3/locale.c ---- bash-4.3/locale.c.old 2015-07-15 11:55:00.002857301 +0200 -+++ bash-4.3/locale.c 2015-07-15 11:48:36.698086257 +0200 -@@ -77,8 +77,6 @@ set_default_locale () - { - #if defined (HAVE_SETLOCALE) - default_locale = setlocale (LC_ALL, ""); -- if (default_locale) -- default_locale = savestring (default_locale); - #endif /* HAVE_SETLOCALE */ - bindtextdomain (PACKAGE, LOCALEDIR); - textdomain (PACKAGE); diff --git a/SOURCES/bash-4.4-assignment-error.patch b/SOURCES/bash-4.4-assignment-error.patch deleted file mode 100644 index 9645503..0000000 --- a/SOURCES/bash-4.4-assignment-error.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/execute_cmd.h b/execute_cmd.h ---- a/execute_cmd.h -+++ b/execute_cmd.h -@@ -37,6 +37,9 @@ struct func_array_state - }; - #endif - -+/* Variables delared in execute_cmd.c, used by many other files */ -+extern int executing_command_builtin; -+ - extern struct fd_bitmap *new_fd_bitmap __P((int)); - extern void dispose_fd_bitmap __P((struct fd_bitmap *)); - extern void close_fd_bitmap __P((struct fd_bitmap *)); -diff --git a/subst.c b/subst.c ---- a/subst.c -+++ b/subst.c -@@ -10676,11 +10676,12 @@ expand_word_list_internal (list, eflags) - tint = do_word_assignment (temp_list->word, 0); - this_command_name = savecmd; - /* Variable assignment errors in non-interactive shells -- running in Posix.2 mode cause the shell to exit. */ -+ running in Posix.2 mode cause the shell to exit, unless -+ they are being run by the `command' builtin. */ - if (tint == 0) - { - last_command_exit_value = EXECUTION_FAILURE; -- if (interactive_shell == 0 && posixly_correct) -+ if (interactive_shell == 0 && posixly_correct && executing_command_builtin == 0) - exp_jump_to_top_level (FORCE_EOF); - else - exp_jump_to_top_level (DISCARD); diff --git a/SOURCES/bash-4.4-case-in-command-subst.patch b/SOURCES/bash-4.4-case-in-command-subst.patch deleted file mode 100644 index 12509ed..0000000 --- a/SOURCES/bash-4.4-case-in-command-subst.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/parse.y b/parse.y ---- a/parse.y -+++ b/parse.y -@@ -4011,11 +4011,13 @@ eof_error: - tflags |= LEX_RESWDOK; - lex_rwlen = 0; - } -- else -+ else if (shellmeta (ch) == 0) - { - tflags &= ~LEX_RESWDOK; - /*itrace("parse_comsub:%d: found `%.4s', lex_reswdok -> 0", line_number, ret+retind-4);*/ - } -+ else /* can't be in a reserved word any more */ -+ lex_rwlen = 0; - } - else if MBTEST((tflags & LEX_CKCOMMENT) && ch == '#' && (lex_rwlen == 0 || ((tflags & LEX_INWORD) && lex_wlen == 0))) - ; /* don't modify LEX_RESWDOK if we're starting a comment */ diff --git a/SOURCES/bash-4.4-coverity.patch b/SOURCES/bash-4.4-coverity.patch deleted file mode 100644 index c1fc747..0000000 --- a/SOURCES/bash-4.4-coverity.patch +++ /dev/null @@ -1,203 +0,0 @@ -diff --git a/builtins/fc.def b/builtins/fc.def -index fe16471..98c53db 100644 ---- a/builtins/fc.def -+++ b/builtins/fc.def -@@ -423,6 +423,7 @@ fc_builtin (list) - { - sh_wrerror (); - fclose (stream); -+ FREE (fn); - return (EXECUTION_FAILURE); - } - fclose (stream); -diff --git a/execute_cmd.c b/execute_cmd.c -index 63a332a..15b5e19 100644 ---- a/execute_cmd.c -+++ b/execute_cmd.c -@@ -2196,8 +2196,10 @@ coproc_setvars (cp) - if (v == 0) - { - v = find_variable_nameref_for_create (cp->c_name, 1); -- if (v == INVALID_NAMEREF_VALUE) -- return; -+ if (v == INVALID_NAMEREF_VALUE) { -+ free (namevar); -+ return; -+ } - if (v && nameref_p (v)) - { - free (cp->c_name); -@@ -2210,6 +2212,7 @@ coproc_setvars (cp) - { - if (readonly_p (v)) - err_readonly (cp->c_name); -+ free (namevar); - return; - } - if (v == 0) -@@ -5528,7 +5531,6 @@ shell_execve (command, args, env) - char *interp; - int ilen; - -- close (fd); - interp = getinterp (sample, sample_len, (int *)NULL); - ilen = strlen (interp); - errno = i; -diff --git a/expr.c b/expr.c -index 172964a..5dc57c0 100644 ---- a/expr.c -+++ b/expr.c -@@ -207,7 +207,8 @@ static intmax_t exp5 __P((void)); - static intmax_t exp4 __P((void)); - static intmax_t expshift __P((void)); - static intmax_t exp3 __P((void)); --static intmax_t exp2 __P((void)); -+/* Avoid name clash with standard exp2 */ -+static intmax_t bash_exp2 __P((void)); - static intmax_t exppower __P((void)); - static intmax_t exp1 __P((void)); - static intmax_t exp0 __P((void)); -@@ -809,14 +810,14 @@ exp3 () - { - register intmax_t val1, val2; - -- val1 = exp2 (); -+ val1 = bash_exp2 (); - - while ((curtok == PLUS) || (curtok == MINUS)) - { - int op = curtok; - - readtok (); -- val2 = exp2 (); -+ val2 = bash_exp2 (); - - if (op == PLUS) - val1 += val2; -@@ -828,7 +829,7 @@ exp3 () - } - - static intmax_t --exp2 () -+bash_exp2 () - { - register intmax_t val1, val2; - #if defined (HAVE_IMAXDIV) -diff --git a/lib/glob/glob.c b/lib/glob/glob.c -index 7f6eafe..c018e29 100644 ---- a/lib/glob/glob.c -+++ b/lib/glob/glob.c -@@ -576,7 +576,7 @@ glob_vector (pat, dir, flags) - register char *nextname, *npat, *subdir; - unsigned int count; - int lose, skip, ndirs, isdir, sdlen, add_current, patlen; -- register char **name_vector; -+ register char **name_vector = NULL; - register unsigned int i; - int mflags; /* Flags passed to strmatch (). */ - int pflags; /* flags passed to sh_makepath () */ -@@ -894,7 +894,7 @@ glob_vector (pat, dir, flags) - } - - /* Don't call QUIT; here; let higher layers deal with it. */ -- -+ FREE (name_vector); - return ((char **)NULL); - } - -diff --git a/lib/sh/pathcanon.c b/lib/sh/pathcanon.c -index f19bd55..2a565d6 100644 ---- a/lib/sh/pathcanon.c -+++ b/lib/sh/pathcanon.c -@@ -227,7 +227,7 @@ sh_canonpath (path, flags) - if (result[2] == '\0') /* short-circuit for bare `//' */ - result[1] = '\0'; - else -- strcpy (result, result + 1); -+ memmove(result, result + 1, strlen(result + 1) + 1); - } - - return (result); -diff --git a/lib/sh/pathphys.c b/lib/sh/pathphys.c -index 26016b7..b64c4cd 100644 ---- a/lib/sh/pathphys.c -+++ b/lib/sh/pathphys.c -@@ -245,7 +245,7 @@ error: - if (result[2] == '\0') /* short-circuit for bare `//' */ - result[1] = '\0'; - else -- strcpy (result, result + 1); -+ memmove(result, result + 1, strlen(result + 1) + 1); - } - - return (result); -diff --git a/shell.c b/shell.c -index b43de50..4aae182 100644 ---- a/shell.c -+++ b/shell.c -@@ -1948,8 +1948,10 @@ show_shell_usage (fp, extra) - fputs (_("\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"), fp); - - for (i = 0, set_opts = 0; shell_builtins[i].name; i++) -- if (STREQ (shell_builtins[i].name, "set")) -+ if (STREQ (shell_builtins[i].name, "set")) { - set_opts = savestring (shell_builtins[i].short_doc); -+ break; -+ } - if (set_opts) - { - s = strchr (set_opts, '['); -diff --git a/subst.c b/subst.c -index 5f3e41e..7574617 100644 ---- a/subst.c -+++ b/subst.c -@@ -5182,8 +5182,11 @@ parameter_list_transform (xc, itype, quoted) - list = list_rest_of_args (); - if (list == 0) - return ((char *)NULL); -- if (xc == 'A') -- return (pos_params_assignment (list, itype, quoted)); -+ if (xc == 'A') { -+ ret = pos_params_assignment (list, itype, quoted); -+ dispose_words (list); -+ return (ret); -+ } - ret = list_transform (xc, (SHELL_VAR *)0, list, itype, quoted); - dispose_words (list); - return (ret); -@@ -6813,6 +6816,7 @@ parameter_brace_expand_rhs (name, value, c, quoted, pflags, qdollaratp, hasdolla - { - report_error (_("%s: invalid indirect expansion"), name); - free (vname); -+ free (t1); - dispose_word (w); - return &expand_wdesc_error; - } -@@ -6820,6 +6824,7 @@ parameter_brace_expand_rhs (name, value, c, quoted, pflags, qdollaratp, hasdolla - { - report_error (_("%s: invalid variable name"), vname); - free (vname); -+ free (t1); - dispose_word (w); - return &expand_wdesc_error; - } -diff --git a/support/man2html.c b/support/man2html.c -index 6ba5061..1d9e376 100644 ---- a/support/man2html.c -+++ b/support/man2html.c -@@ -522,6 +522,7 @@ read_man_page(char *filename) - man_buf[buf_size] = '\n'; - man_buf[buf_size + 1] = man_buf[buf_size + 2] = '\0'; - } else { -+ free (man_buf); - man_buf = NULL; - } - fclose(man_stream); -@@ -2562,7 +2563,6 @@ scan_request(char *c) - h = name; - if (stat(h, &stbuf) != -1) - l = stbuf.st_size; -- buf = stralloc(l + 4); - #if NOCGI - if (!out_length) { - char *t, *s; diff --git a/SOURCES/bash-4.4-fix-buffered_getchar-crash.patch b/SOURCES/bash-4.4-fix-buffered_getchar-crash.patch deleted file mode 100644 index 0290fa8..0000000 --- a/SOURCES/bash-4.4-fix-buffered_getchar-crash.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -up bash-4.4/input.c.orig bash-4.4/input.c ---- bash-4.4/input.c.orig 2022-03-10 10:50:40.046490589 -0300 -+++ bash-4.4/input.c 2022-03-10 10:51:48.659491601 -0300 -@@ -530,7 +530,7 @@ bufstream_ungetc(c, bp) - int c; - BUFFERED_STREAM *bp; - { -- if (c == EOF || bp->b_inputp == 0) -+ if (c == EOF || bp == 0 || bp->b_inputp == 0) - return (EOF); - - bp->b_buffer[--bp->b_inputp] = c; -@@ -561,6 +561,10 @@ buffered_getchar () - { - CHECK_TERMSIG; - -+ if (bash_input.location.buffered_fd < 0 || -+ buffers[bash_input.location.buffered_fd] == 0) -+ return EOF; -+ - #if !defined (DJGPP) - return (bufstream_getc (buffers[bash_input.location.buffered_fd])); - #else diff --git a/SOURCES/bash-4.4-patch-1.patch b/SOURCES/bash-4.4-patch-1.patch deleted file mode 100644 index e0a6088..0000000 --- a/SOURCES/bash-4.4-patch-1.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 8ddc8d6e3a3d85eec6d4ba9b9ed2bc36bce56716 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Mon, 14 Nov 2016 14:26:51 -0500 -Subject: [PATCH] Bash-4.4 patch 1 - ---- - lib/readline/history.c | 6 +++++- - patchlevel.h | 2 +- - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/lib/readline/history.c b/lib/readline/history.c -index 3b8dbc5..9ff25a7 100644 ---- a/lib/readline/history.c -+++ b/lib/readline/history.c -@@ -57,6 +57,8 @@ extern int errno; - /* How big to make the_history when we first allocate it. */ - #define DEFAULT_HISTORY_INITIAL_SIZE 502 - -+#define MAX_HISTORY_INITIAL_SIZE 8192 -+ - /* The number of slots to increase the_history by. */ - #define DEFAULT_HISTORY_GROW_SIZE 50 - -@@ -307,7 +309,9 @@ add_history (string) - if (history_size == 0) - { - if (history_stifled && history_max_entries > 0) -- history_size = history_max_entries + 2; -+ history_size = (history_max_entries > MAX_HISTORY_INITIAL_SIZE) -+ ? MAX_HISTORY_INITIAL_SIZE -+ : history_max_entries + 2; - else - history_size = DEFAULT_HISTORY_INITIAL_SIZE; - the_history = (HIST_ENTRY **)xmalloc (history_size * sizeof (HIST_ENTRY *)); -diff --git a/patchlevel.h b/patchlevel.h -index 1cd7c96..40db1a3 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 0 -+#define PATCHLEVEL 1 - - #endif /* _PATCHLEVEL_H_ */ --- -2.9.3 - diff --git a/SOURCES/bash-4.4-patch-10.patch b/SOURCES/bash-4.4-patch-10.patch deleted file mode 100644 index ec0fbfe..0000000 --- a/SOURCES/bash-4.4-patch-10.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 5b9762d6f0cd36ff1b88bde22efa30ad0ed27ec6 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Fri, 20 Jan 2017 15:38:38 -0500 -Subject: [PATCH] Bash-4.4 patch 10 - ---- - builtins/read.def | 3 ++- - patchlevel.h | 2 +- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/builtins/read.def b/builtins/read.def -index 48fda33..33821f3 100644 ---- a/builtins/read.def -+++ b/builtins/read.def -@@ -181,7 +181,8 @@ read_builtin (list) - WORD_LIST *list; - { - register char *varname; -- int size, i, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2; -+ int size, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2; -+ volatile int i; - int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul; - int raw, edit, nchars, silent, have_timeout, ignore_delim, fd, lastsig, t_errno; - unsigned int tmsec, tmusec; -diff --git a/patchlevel.h b/patchlevel.h -index 02f1d60..8002af7 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 9 -+#define PATCHLEVEL 10 - - #endif /* _PATCHLEVEL_H_ */ --- -2.9.3 - diff --git a/SOURCES/bash-4.4-patch-11.patch b/SOURCES/bash-4.4-patch-11.patch deleted file mode 100644 index d3ec76a..0000000 --- a/SOURCES/bash-4.4-patch-11.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 76bb456d8fcd870cd31b7bf9d90798cd97cee2ab Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Fri, 20 Jan 2017 15:38:49 -0500 -Subject: [PATCH] Bash-4.4 patch 11 - ---- - patchlevel.h | 2 +- - sig.c | 3 ++- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/patchlevel.h b/patchlevel.h -index 8002af7..772676c 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 10 -+#define PATCHLEVEL 11 - - #endif /* _PATCHLEVEL_H_ */ -diff --git a/sig.c b/sig.c -index ad01631..e5bb739 100644 ---- a/sig.c -+++ b/sig.c -@@ -585,7 +585,8 @@ termsig_handler (sig) - #if defined (JOB_CONTROL) - if (sig == SIGHUP && (interactive || (subshell_environment & (SUBSHELL_COMSUB|SUBSHELL_PROCSUB)))) - hangup_all_jobs (); -- end_job_control (); -+ if ((subshell_environment & (SUBSHELL_COMSUB|SUBSHELL_PROCSUB)) == 0) -+ end_job_control (); - #endif /* JOB_CONTROL */ - - #if defined (PROCESS_SUBSTITUTION) --- -2.9.3 - diff --git a/SOURCES/bash-4.4-patch-12.patch b/SOURCES/bash-4.4-patch-12.patch deleted file mode 100644 index 2983a94..0000000 --- a/SOURCES/bash-4.4-patch-12.patch +++ /dev/null @@ -1,119 +0,0 @@ -From bc007799f0e1362100375bb95d952d28de4c62fb Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Fri, 27 Jan 2017 11:25:44 -0500 -Subject: [PATCH] Bash-4.4 patch 12 - ---- - patchlevel.h | 2 +- - subst.c | 32 ++++++++++++++++++++------------ - 2 files changed, 21 insertions(+), 13 deletions(-) - -diff --git a/patchlevel.h b/patchlevel.h -index 772676c..93dbe0d 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 11 -+#define PATCHLEVEL 12 - - #endif /* _PATCHLEVEL_H_ */ -diff --git a/subst.c b/subst.c -index 027a13e..dbf0157 100644 ---- a/subst.c -+++ b/subst.c -@@ -2825,11 +2825,15 @@ list_string (string, separators, quoted) - - /* Parse a single word from STRING, using SEPARATORS to separate fields. - ENDPTR is set to the first character after the word. This is used by -- the `read' builtin. This is never called with SEPARATORS != $IFS; -- it should be simplified. -+ the `read' builtin. -+ -+ This is never called with SEPARATORS != $IFS, and takes advantage of that. - - XXX - this function is very similar to list_string; they should be - combined - XXX */ -+ -+#define islocalsep(c) (local_cmap[(unsigned char)(c)] != 0) -+ - char * - get_word_from_string (stringp, separators, endptr) - char **stringp, *separators, **endptr; -@@ -2837,6 +2841,7 @@ get_word_from_string (stringp, separators, endptr) - register char *s; - char *current_word; - int sindex, sh_style_split, whitesep, xflags; -+ unsigned char local_cmap[UCHAR_MAX+1]; /* really only need single-byte chars here */ - size_t slen; - - if (!stringp || !*stringp || !**stringp) -@@ -2846,20 +2851,23 @@ get_word_from_string (stringp, separators, endptr) - separators[1] == '\t' && - separators[2] == '\n' && - separators[3] == '\0'; -- for (xflags = 0, s = ifs_value; s && *s; s++) -+ memset (local_cmap, '\0', sizeof (local_cmap)); -+ for (xflags = 0, s = separators; s && *s; s++) - { - if (*s == CTLESC) xflags |= SX_NOCTLESC; - if (*s == CTLNUL) xflags |= SX_NOESCCTLNUL; -+ local_cmap[(unsigned char)*s] = 1; /* local charmap of separators */ - } - - s = *stringp; - slen = 0; - - /* Remove sequences of whitespace at the beginning of STRING, as -- long as those characters appear in IFS. */ -- if (sh_style_split || !separators || !*separators) -+ long as those characters appear in SEPARATORS. This happens if -+ SEPARATORS == $' \t\n' or if IFS is unset. */ -+ if (sh_style_split || separators == 0) - { -- for (; *s && spctabnl (*s) && isifs (*s); s++); -+ for (; *s && spctabnl (*s) && islocalsep (*s); s++); - - /* If the string is nothing but whitespace, update it and return. */ - if (!*s) -@@ -2878,9 +2886,9 @@ get_word_from_string (stringp, separators, endptr) - - This obeys the field splitting rules in Posix.2. */ - sindex = 0; -- /* Don't need string length in ADVANCE_CHAR or string_extract_verbatim -- unless multibyte chars are possible. */ -- slen = (MB_CUR_MAX > 1) ? STRLEN (s) : 1; -+ /* Don't need string length in ADVANCE_CHAR unless multibyte chars are -+ possible, but need it in string_extract_verbatim for bounds checking */ -+ slen = STRLEN (s); - current_word = string_extract_verbatim (s, slen, &sindex, separators, xflags); - - /* Set ENDPTR to the first character after the end of the word. */ -@@ -2899,19 +2907,19 @@ get_word_from_string (stringp, separators, endptr) - - /* Now skip sequences of space, tab, or newline characters if they are - in the list of separators. */ -- while (s[sindex] && spctabnl (s[sindex]) && isifs (s[sindex])) -+ while (s[sindex] && spctabnl (s[sindex]) && islocalsep (s[sindex])) - sindex++; - - /* If the first separator was IFS whitespace and the current character is - a non-whitespace IFS character, it should be part of the current field - delimiter, not a separate delimiter that would result in an empty field. - Look at POSIX.2, 3.6.5, (3)(b). */ -- if (s[sindex] && whitesep && isifs (s[sindex]) && !spctabnl (s[sindex])) -+ if (s[sindex] && whitesep && islocalsep (s[sindex]) && !spctabnl (s[sindex])) - { - sindex++; - /* An IFS character that is not IFS white space, along with any adjacent - IFS white space, shall delimit a field. */ -- while (s[sindex] && spctabnl (s[sindex]) && isifs (s[sindex])) -+ while (s[sindex] && spctabnl (s[sindex]) && islocalsep(s[sindex])) - sindex++; - } - --- -2.9.3 - diff --git a/SOURCES/bash-4.4-patch-13.patch b/SOURCES/bash-4.4-patch-13.patch deleted file mode 100644 index abfb2de..0000000 --- a/SOURCES/bash-4.4-patch-13.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 1aef9c7b55dcef4af239caf93e01419e1c8e04ad Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Mon, 29 Jan 2018 16:03:33 -0500 -Subject: [PATCH] Bash-4.4 patch 13 - ---- - patchlevel.h | 2 +- - redir.c | 2 ++ - 2 files changed, 3 insertions(+), 1 deletion(-) - -diff --git a/patchlevel.h b/patchlevel.h -index 93dbe0db..779671cd 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 12 -+#define PATCHLEVEL 13 - - #endif /* _PATCHLEVEL_H_ */ -diff --git a/redir.c b/redir.c -index 25488eaf..1858b0b0 100644 ---- a/redir.c -+++ b/redir.c -@@ -469,6 +469,8 @@ here_document_to_fd (redirectee, ri) - return (fd); - } - -+ SET_CLOSE_ON_EXEC (fd); -+ - errno = r = 0; /* XXX */ - /* write_here_document returns 0 on success, errno on failure. */ - if (redirectee->word) --- -2.13.6 - diff --git a/SOURCES/bash-4.4-patch-14.patch b/SOURCES/bash-4.4-patch-14.patch deleted file mode 100644 index bceb8ea..0000000 --- a/SOURCES/bash-4.4-patch-14.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 2fb21d75bfddd724b0e45d4a51455a166467e496 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Mon, 29 Jan 2018 16:03:47 -0500 -Subject: [PATCH] Bash-4.4 patch 14 - ---- - execute_cmd.c | 19 ++++++++++++++++--- - patchlevel.h | 2 +- - 2 files changed, 17 insertions(+), 4 deletions(-) - -diff --git a/execute_cmd.c b/execute_cmd.c -index 2a3df6d6..76a80766 100644 ---- a/execute_cmd.c -+++ b/execute_cmd.c -@@ -726,6 +726,8 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out, - { - ofifo = num_fifos (); - ofifo_list = copy_fifo_list ((int *)&osize); -+ begin_unwind_frame ("internal_fifos"); -+ add_unwind_protect (xfree, ofifo_list); - saved_fifo = 1; - } - else -@@ -741,7 +743,10 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out, - dispose_exec_redirects (); - #if defined (PROCESS_SUBSTITUTION) - if (saved_fifo) -- free ((void *)ofifo_list); -+ { -+ free ((void *)ofifo_list); -+ discard_unwind_frame ("internal_fifos"); -+ } - #endif - return (last_command_exit_value = EXECUTION_FAILURE); - } -@@ -1060,6 +1065,7 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out, - if (nfifo > ofifo) - close_new_fifos ((char *)ofifo_list, osize); - free ((void *)ofifo_list); -+ discard_unwind_frame ("internal_fifos"); - } - #endif - -@@ -4977,9 +4983,14 @@ execute_builtin_or_function (words, builtin, var, redirects, - char *ofifo_list; - #endif - --#if defined (PROCESS_SUBSTITUTION) -+#if defined (PROCESS_SUBSTITUTION) -+ begin_unwind_frame ("saved_fifos"); -+ /* If we return, we longjmp and don't get a chance to restore the old -+ fifo list, so we add an unwind protect to free it */ - ofifo = num_fifos (); - ofifo_list = copy_fifo_list (&osize); -+ if (ofifo_list) -+ add_unwind_protect (xfree, ofifo_list); - #endif - - if (do_redirections (redirects, RX_ACTIVE|RX_UNDOABLE) != 0) -@@ -5063,7 +5074,9 @@ execute_builtin_or_function (words, builtin, var, redirects, - nfifo = num_fifos (); - if (nfifo > ofifo) - close_new_fifos (ofifo_list, osize); -- free (ofifo_list); -+ if (ofifo_list) -+ free (ofifo_list); -+ discard_unwind_frame ("saved_fifos"); - #endif - - return (result); -diff --git a/patchlevel.h b/patchlevel.h -index 779671cd..09a3cc84 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 13 -+#define PATCHLEVEL 14 - - #endif /* _PATCHLEVEL_H_ */ --- -2.13.6 - diff --git a/SOURCES/bash-4.4-patch-15.patch b/SOURCES/bash-4.4-patch-15.patch deleted file mode 100644 index 7d1dccf..0000000 --- a/SOURCES/bash-4.4-patch-15.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 9cce630e80008e74fa9a1d9408367341caf363f2 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Mon, 29 Jan 2018 16:04:01 -0500 -Subject: [PATCH] Bash-4.4 patch 15 - ---- - patchlevel.h | 2 +- - subst.c | 2 ++ - 2 files changed, 3 insertions(+), 1 deletion(-) - -diff --git a/patchlevel.h b/patchlevel.h -index 09a3cc84..6e9ed3fc 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 14 -+#define PATCHLEVEL 15 - - #endif /* _PATCHLEVEL_H_ */ -diff --git a/subst.c b/subst.c -index dbf0157e..fc00cab0 100644 ---- a/subst.c -+++ b/subst.c -@@ -5906,6 +5906,8 @@ process_substitute (string, open_for_read_in_child) - parent. */ - expanding_redir = 0; - -+ remove_quoted_escapes (string); -+ - subshell_level++; - result = parse_and_execute (string, "process substitution", (SEVAL_NONINT|SEVAL_NOHIST)); - subshell_level--; --- -2.13.6 - diff --git a/SOURCES/bash-4.4-patch-16.patch b/SOURCES/bash-4.4-patch-16.patch deleted file mode 100644 index 752b034..0000000 --- a/SOURCES/bash-4.4-patch-16.patch +++ /dev/null @@ -1,68 +0,0 @@ -From c9f1b04651dae16e33f0aa8974c5122e26b362ae Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Mon, 29 Jan 2018 16:04:20 -0500 -Subject: [PATCH] Bash-4.4 patch 16 - ---- - lib/sh/zread.c | 23 +++++++++-------------- - patchlevel.h | 2 +- - 2 files changed, 10 insertions(+), 15 deletions(-) - -diff --git a/lib/sh/zread.c b/lib/sh/zread.c -index 868f9705..496f20b8 100644 ---- a/lib/sh/zread.c -+++ b/lib/sh/zread.c -@@ -37,7 +37,10 @@ extern int errno; - # define SEEK_CUR 1 - #endif - -+extern int executing_builtin; -+ - extern void check_signals_and_traps (void); -+extern void check_signals (void); - extern int signal_is_trapped (int); - - /* Read LEN bytes from FD into BUF. Retry the read on EINTR. Any other -@@ -50,21 +53,13 @@ zread (fd, buf, len) - { - ssize_t r; - --#if 0 --#if defined (HAVE_SIGINTERRUPT) -- if (signal_is_trapped (SIGCHLD)) -- siginterrupt (SIGCHLD, 1); --#endif --#endif -- - while ((r = read (fd, buf, len)) < 0 && errno == EINTR) -- check_signals_and_traps (); /* XXX - should it be check_signals()? */ -- --#if 0 --#if defined (HAVE_SIGINTERRUPT) -- siginterrupt (SIGCHLD, 0); --#endif --#endif -+ /* XXX - bash-5.0 */ -+ /* We check executing_builtin and run traps here for backwards compatibility */ -+ if (executing_builtin) -+ check_signals_and_traps (); /* XXX - should it be check_signals()? */ -+ else -+ check_signals (); - - return r; - } -diff --git a/patchlevel.h b/patchlevel.h -index 6e9ed3fc..9074f4dd 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 15 -+#define PATCHLEVEL 16 - - #endif /* _PATCHLEVEL_H_ */ --- -2.13.6 - diff --git a/SOURCES/bash-4.4-patch-17.patch b/SOURCES/bash-4.4-patch-17.patch deleted file mode 100644 index ac3eac8..0000000 --- a/SOURCES/bash-4.4-patch-17.patch +++ /dev/null @@ -1,41 +0,0 @@ -From b3a5ec8dd510a68dc850f3f516c0cf9afd87451f Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Mon, 29 Jan 2018 16:04:37 -0500 -Subject: [PATCH] Bash-4.4 patch 17 - ---- - builtins/read.def | 5 +++++ - patchlevel.h | 2 +- - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/builtins/read.def b/builtins/read.def -index 33821f3f..803bea35 100644 ---- a/builtins/read.def -+++ b/builtins/read.def -@@ -690,6 +690,11 @@ add_char: - input_string[i] = '\0'; - CHECK_ALRM; - -+#if defined (READLINE) -+ if (edit) -+ free (rlbuf); -+#endif -+ - if (retval < 0) - { - t_errno = errno; -diff --git a/patchlevel.h b/patchlevel.h -index 9074f4dd..98e714da 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 16 -+#define PATCHLEVEL 17 - - #endif /* _PATCHLEVEL_H_ */ --- -2.13.6 - diff --git a/SOURCES/bash-4.4-patch-18.patch b/SOURCES/bash-4.4-patch-18.patch deleted file mode 100644 index 853a9e3..0000000 --- a/SOURCES/bash-4.4-patch-18.patch +++ /dev/null @@ -1,38 +0,0 @@ -From eb78197af36bb0fb95493ebf8fce104be6832ec9 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Mon, 29 Jan 2018 16:04:56 -0500 -Subject: [PATCH] Bash-4.4 patch 18 - ---- - builtins/read.def | 2 +- - patchlevel.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/builtins/read.def b/builtins/read.def -index 803bea35..b54b3af6 100644 ---- a/builtins/read.def -+++ b/builtins/read.def -@@ -610,7 +610,7 @@ read_builtin (list) - } - - CHECK_ALRM; -- -+ QUIT; /* in case we didn't call check_signals() */ - #if defined (READLINE) - } - #endif -diff --git a/patchlevel.h b/patchlevel.h -index 98e714da..f0ee56e4 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 17 -+#define PATCHLEVEL 18 - - #endif /* _PATCHLEVEL_H_ */ --- -2.13.6 - diff --git a/SOURCES/bash-4.4-patch-19.patch b/SOURCES/bash-4.4-patch-19.patch deleted file mode 100644 index 35e6606..0000000 --- a/SOURCES/bash-4.4-patch-19.patch +++ /dev/null @@ -1,40 +0,0 @@ -From b0776d8c49ab4310fa056ce1033985996c5b9807 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Tue, 6 Feb 2018 16:22:34 -0500 -Subject: [PATCH] Bash-4.4 patch 19 - ---- - lib/readline/display.c | 4 +++- - patchlevel.h | 2 +- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/lib/readline/display.c b/lib/readline/display.c -index 41fb0531..2d2e768a 100644 ---- a/lib/readline/display.c -+++ b/lib/readline/display.c -@@ -771,7 +771,9 @@ rl_redisplay () - appear in the first and last lines of the prompt */ - wadjust = (newlines == 0) - ? prompt_invis_chars_first_line -- : ((newlines == prompt_lines_estimate) ? wrap_offset : prompt_invis_chars_first_line); -+ : ((newlines == prompt_lines_estimate) -+ ? (wrap_offset - prompt_invis_chars_first_line) -+ : 0); - - /* fix from Darin Johnson for prompt string with - invisible characters that is longer than the screen width. The -diff --git a/patchlevel.h b/patchlevel.h -index f0ee56e4..a711c495 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 18 -+#define PATCHLEVEL 19 - - #endif /* _PATCHLEVEL_H_ */ --- -2.13.6 - diff --git a/SOURCES/bash-4.4-patch-2.patch b/SOURCES/bash-4.4-patch-2.patch deleted file mode 100644 index 373a92d..0000000 --- a/SOURCES/bash-4.4-patch-2.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 280bd77d8d3e7f7c90c9fa07de3d1e8f8e18ac29 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Mon, 14 Nov 2016 14:27:06 -0500 -Subject: [PATCH] Bash-4.4 patch 2 - ---- - patchlevel.h | 2 +- - subst.c | 9 ++++++++- - 2 files changed, 9 insertions(+), 2 deletions(-) - -diff --git a/patchlevel.h b/patchlevel.h -index 40db1a3..a988d85 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 1 -+#define PATCHLEVEL 2 - - #endif /* _PATCHLEVEL_H_ */ -diff --git a/subst.c b/subst.c -index f1a4df1..4d498ef 100644 ---- a/subst.c -+++ b/subst.c -@@ -5931,6 +5931,7 @@ read_comsub (fd, quoted, rflag) - char *istring, buf[128], *bufp, *s; - int istring_index, istring_size, c, tflag, skip_ctlesc, skip_ctlnul; - ssize_t bufn; -+ int nullbyte; - - istring = (char *)NULL; - istring_index = istring_size = bufn = tflag = 0; -@@ -5938,6 +5939,8 @@ read_comsub (fd, quoted, rflag) - for (skip_ctlesc = skip_ctlnul = 0, s = ifs_value; s && *s; s++) - skip_ctlesc |= *s == CTLESC, skip_ctlnul |= *s == CTLNUL; - -+ nullbyte = 0; -+ - /* Read the output of the command through the pipe. This may need to be - changed to understand multibyte characters in the future. */ - while (1) -@@ -5956,7 +5959,11 @@ read_comsub (fd, quoted, rflag) - if (c == 0) - { - #if 1 -- internal_warning ("%s", _("command substitution: ignored null byte in input")); -+ if (nullbyte == 0) -+ { -+ internal_warning ("%s", _("command substitution: ignored null byte in input")); -+ nullbyte = 1; -+ } - #endif - continue; - } --- -2.9.3 - diff --git a/SOURCES/bash-4.4-patch-20.patch b/SOURCES/bash-4.4-patch-20.patch deleted file mode 100644 index 5475e3c..0000000 --- a/SOURCES/bash-4.4-patch-20.patch +++ /dev/null @@ -1,136 +0,0 @@ -From 354efb96f1e4574f458e994163bbe31c76769573 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Fri, 1 Jun 2018 10:19:56 -0400 -Subject: [PATCH] saved background process status hash table loop fixes - ---- - jobs.c | 62 +++++++++++++++++++++++++++++++++++++++++----------- - patchlevel.h | 2 +- - 2 files changed, 50 insertions(+), 14 deletions(-) - -diff --git a/jobs.c b/jobs.c -index fc966036..2684632d 100644 ---- a/jobs.c -+++ b/jobs.c -@@ -812,8 +812,22 @@ bgp_add (pid, status) - ps_index_t *bucket, psi; - struct pidstat *ps; - -- bucket = pshash_getbucket (pid); -- psi = bgp_getindex (); -+ /* bucket == existing chain of pids hashing to same value -+ psi = where were going to put this pid/status */ -+ -+ bucket = pshash_getbucket (pid); /* index into pidstat_table */ -+ psi = bgp_getindex (); /* bgpids.head, index into storage */ -+ -+ /* XXX - what if psi == *bucket? */ -+ if (psi == *bucket) -+ { -+#ifdef DEBUG -+ internal_warning ("hashed pid %d (pid %d) collides with bgpids.head, skipping", psi, pid); -+#endif -+ bgpids.storage[psi].pid = NO_PID; /* make sure */ -+ psi = bgp_getindex (); /* skip to next one */ -+ } -+ - ps = &bgpids.storage[psi]; - - ps->pid = pid; -@@ -841,32 +855,47 @@ pshash_delindex (psi) - ps_index_t psi; - { - struct pidstat *ps; -+ ps_index_t *bucket; - - ps = &bgpids.storage[psi]; - if (ps->pid == NO_PID) - return; - -- if (ps->bucket_next != NO_PID) -+ if (ps->bucket_next != NO_PIDSTAT) - bgpids.storage[ps->bucket_next].bucket_prev = ps->bucket_prev; -- if (ps->bucket_prev != NO_PID) -+ if (ps->bucket_prev != NO_PIDSTAT) - bgpids.storage[ps->bucket_prev].bucket_next = ps->bucket_next; - else -- *(pshash_getbucket (ps->pid)) = ps->bucket_next; -+ { -+ bucket = pshash_getbucket (ps->pid); -+ *bucket = ps->bucket_next; /* deleting chain head in hash table */ -+ } -+ -+ /* clear out this cell, just in case */ -+ ps->pid = NO_PID; -+ ps->bucket_next = ps->bucket_prev = NO_PIDSTAT; - } - - static int - bgp_delete (pid) - pid_t pid; - { -- ps_index_t psi; -+ ps_index_t psi, orig_psi; - - if (bgpids.storage == 0 || bgpids.nalloc == 0 || bgpids.npid == 0) - return 0; - - /* Search chain using hash to find bucket in pidstat_table */ -- for (psi = *(pshash_getbucket (pid)); psi != NO_PIDSTAT; psi = bgpids.storage[psi].bucket_next) -- if (bgpids.storage[psi].pid == pid) -- break; -+ for (orig_psi = psi = *(pshash_getbucket (pid)); psi != NO_PIDSTAT; psi = bgpids.storage[psi].bucket_next) -+ { -+ if (bgpids.storage[psi].pid == pid) -+ break; -+ if (orig_psi == bgpids.storage[psi].bucket_next) /* catch reported bug */ -+ { -+ internal_warning ("bgp_delete: LOOP: psi (%d) == storage[psi].bucket_next", psi); -+ return 0; -+ } -+ } - - if (psi == NO_PIDSTAT) - return 0; /* not found */ -@@ -904,15 +933,22 @@ static int - bgp_search (pid) - pid_t pid; - { -- ps_index_t psi; -+ ps_index_t psi, orig_psi; - - if (bgpids.storage == 0 || bgpids.nalloc == 0 || bgpids.npid == 0) - return -1; - - /* Search chain using hash to find bucket in pidstat_table */ -- for (psi = *(pshash_getbucket (pid)); psi != NO_PIDSTAT; psi = bgpids.storage[psi].bucket_next) -- if (bgpids.storage[psi].pid == pid) -- return (bgpids.storage[psi].status); -+ for (orig_psi = psi = *(pshash_getbucket (pid)); psi != NO_PIDSTAT; psi = bgpids.storage[psi].bucket_next) -+ { -+ if (bgpids.storage[psi].pid == pid) -+ return (bgpids.storage[psi].status); -+ if (orig_psi == bgpids.storage[psi].bucket_next) /* catch reported bug */ -+ { -+ internal_warning ("bgp_search: LOOP: psi (%d) == storage[psi].bucket_next", psi); -+ return -1; -+ } -+ } - - return -1; - } -diff --git a/patchlevel.h b/patchlevel.h -index a711c495..4a65dc0f 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 19 -+#define PATCHLEVEL 20 - - #endif /* _PATCHLEVEL_H_ */ --- -2.29.2 - diff --git a/SOURCES/bash-4.4-patch-3.patch b/SOURCES/bash-4.4-patch-3.patch deleted file mode 100644 index 30b81cb..0000000 --- a/SOURCES/bash-4.4-patch-3.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 4f59a8babc53a9f975078c4a003bdc8831c5ee22 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Mon, 14 Nov 2016 14:27:23 -0500 -Subject: [PATCH] Bash-4.4 patch 3 - ---- - lib/glob/sm_loop.c | 9 +++++++++ - patchlevel.h | 2 +- - 2 files changed, 10 insertions(+), 1 deletion(-) - -diff --git a/lib/glob/sm_loop.c b/lib/glob/sm_loop.c -index c3a2aa3..65179e2 100644 ---- a/lib/glob/sm_loop.c -+++ b/lib/glob/sm_loop.c -@@ -330,6 +330,12 @@ PARSE_COLLSYM (p, vp) - for (pc = 0; p[pc]; pc++) - if (p[pc] == L('.') && p[pc+1] == L(']')) - break; -+ if (p[pc] == 0) -+ { -+ if (vp) -+ *vp = INVALID; -+ return (p + pc); -+ } - val = COLLSYM (p, pc); - if (vp) - *vp = val; -@@ -483,6 +489,9 @@ BRACKMATCH (p, test, flags) - c = *p++; - c = FOLD (c); - -+ if (c == L('\0')) -+ return ((test == L('[')) ? savep : (CHAR *)0); -+ - if ((flags & FNM_PATHNAME) && c == L('/')) - /* [/] can never match when matching a pathname. */ - return (CHAR *)0; -diff --git a/patchlevel.h b/patchlevel.h -index a988d85..e7e960c 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 2 -+#define PATCHLEVEL 3 - - #endif /* _PATCHLEVEL_H_ */ --- -2.9.3 - diff --git a/SOURCES/bash-4.4-patch-4.patch b/SOURCES/bash-4.4-patch-4.patch deleted file mode 100644 index f397be6..0000000 --- a/SOURCES/bash-4.4-patch-4.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 2965eca924466a48c5597ac5c6c86d470e718908 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Mon, 14 Nov 2016 14:27:35 -0500 -Subject: [PATCH] Bash-4.4 patch 4 - ---- - jobs.c | 15 +++++++++++++++ - jobs.h | 1 + - patchlevel.h | 2 +- - subst.c | 5 +---- - 4 files changed, 18 insertions(+), 5 deletions(-) - -diff --git a/jobs.c b/jobs.c -index cef3c79..fc96603 100644 ---- a/jobs.c -+++ b/jobs.c -@@ -453,6 +453,21 @@ cleanup_the_pipeline () - discard_pipeline (disposer); - } - -+void -+discard_last_procsub_child () -+{ -+ PROCESS *disposer; -+ sigset_t set, oset; -+ -+ BLOCK_CHILD (set, oset); -+ disposer = last_procsub_child; -+ last_procsub_child = (PROCESS *)NULL; -+ UNBLOCK_CHILD (oset); -+ -+ if (disposer) -+ discard_pipeline (disposer); -+} -+ - struct pipeline_saver * - alloc_pipeline_saver () - { -diff --git a/jobs.h b/jobs.h -index 4ba3513..6df0607 100644 ---- a/jobs.h -+++ b/jobs.h -@@ -190,6 +190,7 @@ extern JOB **jobs; - extern void making_children __P((void)); - extern void stop_making_children __P((void)); - extern void cleanup_the_pipeline __P((void)); -+extern void discard_last_procsub_child __P((void)); - extern void save_pipeline __P((int)); - extern PROCESS *restore_pipeline __P((int)); - extern void start_pipeline __P((void)); -diff --git a/patchlevel.h b/patchlevel.h -index e7e960c..c059f0b 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 3 -+#define PATCHLEVEL 4 - - #endif /* _PATCHLEVEL_H_ */ -diff --git a/subst.c b/subst.c -index 4d498ef..298187d 100644 ---- a/subst.c -+++ b/subst.c -@@ -5808,10 +5808,7 @@ process_substitute (string, open_for_read_in_child) - { - #if defined (JOB_CONTROL) - if (last_procsub_child) -- { -- discard_pipeline (last_procsub_child); -- last_procsub_child = (PROCESS *)NULL; -- } -+ discard_last_procsub_child (); - last_procsub_child = restore_pipeline (0); - #endif - --- -2.9.3 - diff --git a/SOURCES/bash-4.4-patch-5.patch b/SOURCES/bash-4.4-patch-5.patch deleted file mode 100644 index 03b9761..0000000 --- a/SOURCES/bash-4.4-patch-5.patch +++ /dev/null @@ -1,42 +0,0 @@ -From f459cbd8be37b28be1dc90315e0ab51d7f211301 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Mon, 14 Nov 2016 14:27:55 -0500 -Subject: [PATCH] Bash-4.4 patch 5 - ---- - builtins/evalstring.c | 3 --- - patchlevel.h | 2 +- - 2 files changed, 1 insertion(+), 4 deletions(-) - -diff --git a/builtins/evalstring.c b/builtins/evalstring.c -index e221591..6dc756c 100644 ---- a/builtins/evalstring.c -+++ b/builtins/evalstring.c -@@ -104,12 +104,9 @@ should_suppress_fork (command) - running_trap == 0 && - *bash_input.location.string == '\0' && - command->type == cm_simple && --#if 0 - signal_is_trapped (EXIT_TRAP) == 0 && - signal_is_trapped (ERROR_TRAP) == 0 && --#else - any_signals_trapped () < 0 && --#endif - command->redirects == 0 && command->value.Simple->redirects == 0 && - ((command->flags & CMD_TIME_PIPELINE) == 0) && - ((command->flags & CMD_INVERT_RETURN) == 0)); -diff --git a/patchlevel.h b/patchlevel.h -index c059f0b..1bc098b 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 4 -+#define PATCHLEVEL 5 - - #endif /* _PATCHLEVEL_H_ */ --- -2.9.3 - diff --git a/SOURCES/bash-4.4-patch-6.patch b/SOURCES/bash-4.4-patch-6.patch deleted file mode 100644 index a6e3551..0000000 --- a/SOURCES/bash-4.4-patch-6.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 44bfefc553993613c0aff992bc4f3078d738ee1d Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Fri, 20 Jan 2017 11:47:31 -0500 -Subject: [PATCH] Bash-4.4 patch 6 - ---- - builtins/pushd.def | 7 ++++++- - patchlevel.h | 2 +- - 2 files changed, 7 insertions(+), 2 deletions(-) - -diff --git a/builtins/pushd.def b/builtins/pushd.def -index 82653c4..6579e4c 100644 ---- a/builtins/pushd.def -+++ b/builtins/pushd.def -@@ -365,7 +365,7 @@ popd_builtin (list) - break; - } - -- if (which > directory_list_offset || (directory_list_offset == 0 && which == 0)) -+ if (which > directory_list_offset || (which < -directory_list_offset) || (directory_list_offset == 0 && which == 0)) - { - pushd_error (directory_list_offset, which_word ? which_word : ""); - return (EXECUTION_FAILURE); -@@ -387,6 +387,11 @@ popd_builtin (list) - remove that directory from the list and shift the remainder - of the list into place. */ - i = (direction == '+') ? directory_list_offset - which : which; -+ if (i < 0 || i > directory_list_offset) -+ { -+ pushd_error (directory_list_offset, which_word ? which_word : ""); -+ return (EXECUTION_FAILURE); -+ } - free (pushd_directory_list[i]); - directory_list_offset--; - -diff --git a/patchlevel.h b/patchlevel.h -index 1bc098b..14bff9f 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 5 -+#define PATCHLEVEL 6 - - #endif /* _PATCHLEVEL_H_ */ --- -2.9.3 - diff --git a/SOURCES/bash-4.4-patch-7.patch b/SOURCES/bash-4.4-patch-7.patch deleted file mode 100644 index 2db3d82..0000000 --- a/SOURCES/bash-4.4-patch-7.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 4f747edc625815f449048579f6e65869914dd715 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Fri, 20 Jan 2017 11:47:55 -0500 -Subject: [PATCH] Bash-4.4 patch 7 - ---- - bashline.c | 22 ++++++++++++---------- - patchlevel.h | 2 +- - subst.c | 4 ++++ - 3 files changed, 17 insertions(+), 11 deletions(-) - -diff --git a/bashline.c b/bashline.c -index f4fe9f1..0275844 100644 ---- a/bashline.c -+++ b/bashline.c -@@ -142,7 +142,7 @@ static int executable_completion __P((const char *, int)); - static rl_icppfunc_t *save_directory_hook __P((void)); - static void restore_directory_hook __P((rl_icppfunc_t)); - --static int directory_exists __P((const char *)); -+static int directory_exists __P((const char *, int)); - - static void cleanup_expansion_error __P((void)); - static void maybe_make_readline_line __P((char *)); -@@ -3102,18 +3102,20 @@ restore_directory_hook (hookf) - rl_directory_rewrite_hook = hookf; - } - --/* Check whether not the (dequoted) version of DIRNAME, with any trailing slash -- removed, exists. */ -+/* Check whether not DIRNAME, with any trailing slash removed, exists. If -+ SHOULD_DEQUOTE is non-zero, we dequote the directory name first. */ - static int --directory_exists (dirname) -+directory_exists (dirname, should_dequote) - const char *dirname; -+ int should_dequote; - { - char *new_dirname; - int dirlen, r; - struct stat sb; - -- /* First, dequote the directory name */ -- new_dirname = bash_dequote_filename ((char *)dirname, rl_completion_quote_character); -+ /* We save the string and chop the trailing slash because stat/lstat behave -+ inconsistently if one is present. */ -+ new_dirname = should_dequote ? bash_dequote_filename ((char *)dirname, rl_completion_quote_character) : savestring (dirname); - dirlen = STRLEN (new_dirname); - if (new_dirname[dirlen - 1] == '/') - new_dirname[dirlen - 1] = '\0'; -@@ -3145,7 +3147,7 @@ bash_filename_stat_hook (dirname) - else if (t = mbschr (local_dirname, '`')) /* XXX */ - should_expand_dirname = '`'; - -- if (should_expand_dirname && directory_exists (local_dirname)) -+ if (should_expand_dirname && directory_exists (local_dirname, 0)) - should_expand_dirname = 0; - - if (should_expand_dirname) -@@ -3155,7 +3157,7 @@ bash_filename_stat_hook (dirname) - have to worry about restoring this setting. */ - global_nounset = unbound_vars_is_error; - unbound_vars_is_error = 0; -- wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB|W_COMPLETE); /* does the right thing */ -+ wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB|W_NOPROCSUB|W_COMPLETE); /* does the right thing */ - unbound_vars_is_error = global_nounset; - if (wl) - { -@@ -3244,13 +3246,13 @@ bash_directory_completion_hook (dirname) - should_expand_dirname = '`'; - } - -- if (should_expand_dirname && directory_exists (local_dirname)) -+ if (should_expand_dirname && directory_exists (local_dirname, 1)) - should_expand_dirname = 0; - - if (should_expand_dirname) - { - new_dirname = savestring (local_dirname); -- wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB|W_COMPLETE); /* does the right thing */ -+ wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB|W_NOPROCSUB|W_COMPLETE); /* does the right thing */ - if (wl) - { - *dirname = string_list (wl); -diff --git a/patchlevel.h b/patchlevel.h -index 14bff9f..deb9c5b 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 6 -+#define PATCHLEVEL 7 - - #endif /* _PATCHLEVEL_H_ */ -diff --git a/subst.c b/subst.c -index 298187d..027a13e 100644 ---- a/subst.c -+++ b/subst.c -@@ -9458,6 +9458,10 @@ add_twochars: - tword->flags |= word->flags & (W_ASSIGNARG|W_ASSIGNRHS); /* affects $@ */ - if (word->flags & W_COMPLETE) - tword->flags |= W_COMPLETE; /* for command substitutions */ -+ if (word->flags & W_NOCOMSUB) -+ tword->flags |= W_NOCOMSUB; -+ if (word->flags & W_NOPROCSUB) -+ tword->flags |= W_NOPROCSUB; - - temp = (char *)NULL; - --- -2.9.3 - diff --git a/SOURCES/bash-4.4-patch-8.patch b/SOURCES/bash-4.4-patch-8.patch deleted file mode 100644 index fc435f9..0000000 --- a/SOURCES/bash-4.4-patch-8.patch +++ /dev/null @@ -1,71 +0,0 @@ -From b9f81c2977b82490cd4dc70b0bb292bfbf86bd2c Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Fri, 20 Jan 2017 15:38:10 -0500 -Subject: [PATCH] Bash-4.4 patch 8 - ---- - expr.c | 15 +++++++++------ - patchlevel.h | 2 +- - 2 files changed, 10 insertions(+), 7 deletions(-) - -diff --git a/expr.c b/expr.c -index 1ddb693..172964a 100644 ---- a/expr.c -+++ b/expr.c -@@ -578,24 +578,23 @@ expcond () - rval = cval = explor (); - if (curtok == QUES) /* found conditional expr */ - { -- readtok (); -- if (curtok == 0 || curtok == COL) -- evalerror (_("expression expected")); - if (cval == 0) - { - set_noeval = 1; - noeval++; - } - -+ readtok (); -+ if (curtok == 0 || curtok == COL) -+ evalerror (_("expression expected")); -+ - val1 = EXP_HIGHEST (); - - if (set_noeval) - noeval--; - if (curtok != COL) - evalerror (_("`:' expected for conditional expression")); -- readtok (); -- if (curtok == 0) -- evalerror (_("expression expected")); -+ - set_noeval = 0; - if (cval) - { -@@ -603,7 +602,11 @@ expcond () - noeval++; - } - -+ readtok (); -+ if (curtok == 0) -+ evalerror (_("expression expected")); - val2 = expcond (); -+ - if (set_noeval) - noeval--; - rval = cval ? val1 : val2; -diff --git a/patchlevel.h b/patchlevel.h -index deb9c5b..16c8740 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 7 -+#define PATCHLEVEL 8 - - #endif /* _PATCHLEVEL_H_ */ --- -2.9.3 - diff --git a/SOURCES/bash-4.4-patch-9.patch b/SOURCES/bash-4.4-patch-9.patch deleted file mode 100644 index b759e01..0000000 --- a/SOURCES/bash-4.4-patch-9.patch +++ /dev/null @@ -1,80 +0,0 @@ -From e59fb114e9c0436890d110cfdda4d794a63496e7 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Fri, 20 Jan 2017 15:38:29 -0500 -Subject: [PATCH] Bash-4.4 patch 9 - ---- - lib/readline/history.c | 16 +++++++--------- - patchlevel.h | 2 +- - 2 files changed, 8 insertions(+), 10 deletions(-) - -diff --git a/lib/readline/history.c b/lib/readline/history.c -index 9ff25a7..129c57a 100644 ---- a/lib/readline/history.c -+++ b/lib/readline/history.c -@@ -279,6 +279,7 @@ add_history (string) - const char *string; - { - HIST_ENTRY *temp; -+ int new_length; - - if (history_stifled && (history_length == history_max_entries)) - { -@@ -295,13 +296,9 @@ add_history (string) - - /* Copy the rest of the entries, moving down one slot. Copy includes - trailing NULL. */ --#if 0 -- for (i = 0; i < history_length; i++) -- the_history[i] = the_history[i + 1]; --#else - memmove (the_history, the_history + 1, history_length * sizeof (HIST_ENTRY *)); --#endif - -+ new_length = history_length; - history_base++; - } - else -@@ -315,7 +312,7 @@ add_history (string) - else - history_size = DEFAULT_HISTORY_INITIAL_SIZE; - the_history = (HIST_ENTRY **)xmalloc (history_size * sizeof (HIST_ENTRY *)); -- history_length = 1; -+ new_length = 1; - } - else - { -@@ -325,14 +322,15 @@ add_history (string) - the_history = (HIST_ENTRY **) - xrealloc (the_history, history_size * sizeof (HIST_ENTRY *)); - } -- history_length++; -+ new_length = history_length + 1; - } - } - - temp = alloc_history_entry ((char *)string, hist_inittime ()); - -- the_history[history_length] = (HIST_ENTRY *)NULL; -- the_history[history_length - 1] = temp; -+ the_history[new_length] = (HIST_ENTRY *)NULL; -+ the_history[new_length - 1] = temp; -+ history_length = new_length; - } - - /* Change the time stamp of the most recent history entry to STRING. */ -diff --git a/patchlevel.h b/patchlevel.h -index 16c8740..02f1d60 100644 ---- a/patchlevel.h -+++ b/patchlevel.h -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 8 -+#define PATCHLEVEL 9 - - #endif /* _PATCHLEVEL_H_ */ --- -2.9.3 - diff --git a/SOURCES/bash-4.4-unset-nonblock-stdin.patch b/SOURCES/bash-4.4-unset-nonblock-stdin.patch deleted file mode 100644 index 68ad38c..0000000 --- a/SOURCES/bash-4.4-unset-nonblock-stdin.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/parse.y b/parse.y -index 85f1c4f..9d1cdf8 100644 ---- a/parse.y -+++ b/parse.y -@@ -1453,6 +1453,7 @@ yy_readline_get () - old_sigint = (SigHandler *)set_signal_handler (SIGINT, sigint_sighandler); - } - -+ sh_unset_nodelay_mode (fileno (rl_instream)); /* just in case */ - current_readline_line = readline (current_readline_prompt ? - current_readline_prompt : ""); diff --git a/SOURCES/bash-4.5-test-modification-time.patch b/SOURCES/bash-4.5-test-modification-time.patch deleted file mode 100644 index 275bbed..0000000 --- a/SOURCES/bash-4.5-test-modification-time.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/config.h.in b/config.h.in ---- a/config.h.in -+++ b/config.h.in -@@ -449,6 +449,7 @@ - #undef SYS_TIME_H_DEFINES_STRUCT_TIMESPEC - #undef PTHREAD_H_DEFINES_STRUCT_TIMESPEC - -+#undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC - #undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC - #undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC - #undef HAVE_STRUCT_STAT_ST_ATIMENSEC diff --git a/SOURCES/bash-5.0-bgp-resize.patch b/SOURCES/bash-5.0-bgp-resize.patch deleted file mode 100644 index 1a3f288..0000000 --- a/SOURCES/bash-5.0-bgp-resize.patch +++ /dev/null @@ -1,95 +0,0 @@ -diff --git a/include/typemax.h b/include/typemax.h ---- a/include/typemax.h -+++ b/include/typemax.h -@@ -35,14 +35,23 @@ - # define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) - #endif - -+#ifndef TYPE_SIGNED_MAGNITUDE -+# define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) -+#endif -+ -+#ifndef TYPE_WIDTH -+# define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) -+#endif -+ - #ifndef TYPE_MINIMUM --# define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \ -- ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) \ -- : (t) 0)) -+# define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t)) - #endif - - #ifndef TYPE_MAXIMUM --# define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t))) -+# define TYPE_MAXIMUM(t) \ -+ ((t) (! TYPE_SIGNED (t) \ -+ ? (t) -1 \ -+ : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1))) - #endif - - #ifdef HAVE_LONG_LONG -diff --git a/jobs.c b/jobs.c ---- a/jobs.c -+++ b/jobs.c -@@ -72,6 +72,8 @@ - #include "execute_cmd.h" - #include "flags.h" - -+#include "typemax.h" -+ - #include "builtins/builtext.h" - #include "builtins/common.h" - -@@ -92,7 +94,7 @@ extern int killpg __P((pid_t, int)); - #endif - - #if !MAX_CHILD_MAX --# define MAX_CHILD_MAX 8192 -+# define MAX_CHILD_MAX 32768 - #endif - - #if !defined (DEBUG) -@@ -751,7 +753,7 @@ stop_pipeline (async, deferred) - static void - bgp_resize () - { -- ps_index_t nsize; -+ ps_index_t nsize, nsize_cur, nsize_max; - ps_index_t psi; - - if (bgpids.nalloc == 0) -@@ -765,11 +767,20 @@ bgp_resize () - else - nsize = bgpids.nalloc; - -- while (nsize < js.c_childmax) -- nsize *= 2; -+ nsize_max = TYPE_MAXIMUM (ps_index_t); -+ nsize_cur = (ps_index_t)js.c_childmax; -+ if (nsize_cur < 0) /* overflow */ -+ nsize_cur = MAX_CHILD_MAX; - -- if (bgpids.nalloc < js.c_childmax) -- { -+ while (nsize > 0 && nsize < nsize_cur) /* > 0 should catch overflow */ -+ nsize <<= 1; -+ if (nsize > nsize_max || nsize <= 0) /* overflow? */ -+ nsize = nsize_max; -+ if (nsize > MAX_CHILD_MAX) -+ nsize = nsize_max = MAX_CHILD_MAX; /* hard cap */ -+ -+ if (bgpids.nalloc < nsize_cur && bgpids.nalloc < nsize_max) -+ { - bgpids.storage = (struct pidstat *)xrealloc (bgpids.storage, nsize * sizeof (struct pidstat)); - - for (psi = bgpids.nalloc; psi < nsize; psi++) -@@ -787,7 +798,7 @@ bgp_getindex () - { - ps_index_t psi; - -- if (bgpids.nalloc < js.c_childmax || bgpids.head >= bgpids.nalloc) -+ if (bgpids.nalloc < (ps_index_t)js.c_childmax || bgpids.head >= bgpids.nalloc) - bgp_resize (); - - pshash_delindex (bgpids.head); /* XXX - clear before reusing */ diff --git a/SOURCES/bash-5.0-cve-2019-18276-2.patch b/SOURCES/bash-5.0-cve-2019-18276-2.patch deleted file mode 100644 index ff911e3..0000000 --- a/SOURCES/bash-5.0-cve-2019-18276-2.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index e5162c4..b82a33b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -799,10 +799,13 @@ AC_CHECK_DECLS([confstr]) - AC_CHECK_DECLS([printf]) - AC_CHECK_DECLS([sbrk]) - AC_CHECK_DECLS([setregid]) --AC_CHECK_DECLS[(setresuid, setresgid]) -+dnl AC_CHECK_DECLS[(setresuid]) -+dnl AC_CHECK_DECLS[(setresgid]) - AC_CHECK_DECLS([strcpy]) - AC_CHECK_DECLS([strsignal]) - -+AC_CHECK_FUNCS(setresuid setresgid) -+ - dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3) - AC_CHECK_DECLS([strtold], [ - AC_MSG_CHECKING([for broken strtold]) -diff --git a/shell.c b/shell.c -index 484d8a9..5c24922 100644 ---- a/shell.c -+++ b/shell.c -@@ -1286,7 +1286,7 @@ disable_priv_mode () - { - int e; - --#if HAVE_DECL_SETRESUID -+#if HAVE_SETRESUID - if (setresuid (current_user.uid, current_user.uid, current_user.uid) < 0) - #else - if (setuid (current_user.uid) < 0) -@@ -1299,7 +1299,7 @@ disable_priv_mode () - exit (e); - #endif - } --#if HAVE_DECL_SETRESGID -+#if HAVE_SETRESGID - if (setresgid (current_user.gid, current_user.gid, current_user.gid) < 0) - #else - if (setgid (current_user.gid) < 0) diff --git a/SOURCES/bash-5.0-cve-2019-18276.patch b/SOURCES/bash-5.0-cve-2019-18276.patch deleted file mode 100644 index 4ff0574..0000000 --- a/SOURCES/bash-5.0-cve-2019-18276.patch +++ /dev/null @@ -1,61 +0,0 @@ -diff --git a/config.h.in b/config.h.in -index 1a89e85..2df4786 100644 ---- a/config.h.in -+++ b/config.h.in -@@ -801,6 +801,14 @@ - #undef HAVE_SETREGID - #undef HAVE_DECL_SETREGID - -+/* Define if you have the setregid function. */ -+#undef HAVE_SETRESGID -+#undef HAVE_DECL_SETRESGID -+ -+/* Define if you have the setresuid function. */ -+#undef HAVE_SETRESUID -+#undef HAVE_DECL_SETRESUID -+ - /* Define if you have the setvbuf function. */ - #undef HAVE_SETVBUF - -diff --git a/configure.ac b/configure.ac -index a3f6d8f..e5162c4 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -799,6 +799,7 @@ AC_CHECK_DECLS([confstr]) - AC_CHECK_DECLS([printf]) - AC_CHECK_DECLS([sbrk]) - AC_CHECK_DECLS([setregid]) -+AC_CHECK_DECLS[(setresuid, setresgid]) - AC_CHECK_DECLS([strcpy]) - AC_CHECK_DECLS([strsignal]) - -diff --git a/shell.c b/shell.c -index 4aae182..484d8a9 100644 ---- a/shell.c -+++ b/shell.c -@@ -1286,7 +1286,11 @@ disable_priv_mode () - { - int e; - -+#if HAVE_DECL_SETRESUID -+ if (setresuid (current_user.uid, current_user.uid, current_user.uid) < 0) -+#else - if (setuid (current_user.uid) < 0) -+#endif - { - e = errno; - sys_error (_("cannot set uid to %d: effective uid %d"), current_user.uid, current_user.euid); -@@ -1295,7 +1299,11 @@ disable_priv_mode () - exit (e); - #endif - } -+#if HAVE_DECL_SETRESGID -+ if (setresgid (current_user.gid, current_user.gid, current_user.gid) < 0) -+#else - if (setgid (current_user.gid) < 0) -+#endif - sys_error (_("cannot set gid to %d: effective gid %d"), current_user.gid, current_user.egid); - - current_user.euid = current_user.uid; --- -2.25.4 diff --git a/SOURCES/bash-5.0-histtimeformat-segfault.patch b/SOURCES/bash-5.0-histtimeformat-segfault.patch deleted file mode 100644 index 0d7efa8..0000000 --- a/SOURCES/bash-5.0-histtimeformat-segfault.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/builtins/history.def b/builtins/history.def ---- a/builtins/history.def -+++ b/builtins/history.def -@@ -256,10 +256,13 @@ histtime (hlist, histtimefmt) - { - static char timestr[128]; - time_t t; -+ struct tm *tm; - - t = history_get_time (hlist); -- if (t) -- strftime (timestr, sizeof (timestr), histtimefmt, localtime (&t)); -+ -+ tm = t ? localtime (&t) : 0; -+ if (t && tm) -+ strftime (timestr, sizeof (timestr), histtimefmt, tm); - else if (hlist->timestamp && hlist->timestamp[0]) - snprintf (timestr, sizeof (timestr), _("%s: invalid timestamp"), - (hlist->timestamp[0] == '#') ? hlist->timestamp + 1: hlist->timestamp); diff --git a/SOURCES/bash-5.0-shellpid-subshell.patch b/SOURCES/bash-5.0-shellpid-subshell.patch deleted file mode 100644 index 6dad7c1..0000000 --- a/SOURCES/bash-5.0-shellpid-subshell.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/parse.y b/parse.y ---- a/parse.y -+++ b/parse.y -@@ -4193,7 +4193,7 @@ eof_error: - - FREE (nestret); - } -- if MBTEST(ch == '$') -+ if MBTEST(ch == '$' && (tflags & LEX_WASDOL) == 0) - tflags |= LEX_WASDOL; - else - tflags &= ~LEX_WASDOL; diff --git a/SOURCES/bash-5.0-syslog-history.patch b/SOURCES/bash-5.0-syslog-history.patch deleted file mode 100644 index e5fe25e..0000000 --- a/SOURCES/bash-5.0-syslog-history.patch +++ /dev/null @@ -1,84 +0,0 @@ -diff --git a/bashhist.c b/bashhist.c -index 9979f99..793c81f 100644 ---- a/bashhist.c -+++ b/bashhist.c -@@ -754,6 +754,12 @@ extern char *shell_name; - #define OPENLOG_OPTS 0 - #endif - -+#if defined (SYSLOG_SHOPT) -+int syslog_history = SYSLOG_SHOPT; -+#else -+int syslog_history = 1; -+#endif -+ - void - bash_syslog_history (line) - const char *line; -@@ -851,7 +857,8 @@ bash_add_history (line) - really_add_history (line); - - #if defined (SYSLOG_HISTORY) -- bash_syslog_history (line); -+ if (syslog_history) -+ bash_syslog_history (line); - #endif - - using_history (); -diff --git a/builtins/shopt.def b/builtins/shopt.def -index 2febb7e..38c398e 100644 ---- a/builtins/shopt.def -+++ b/builtins/shopt.def -@@ -118,6 +118,10 @@ extern char *shell_name; - extern int debugging_mode; - #endif - -+#if defined (SYSLOG_HISTORY) && defined (SYSLOG_SHOPT) -+extern int syslog_history; -+#endif -+ - static void shopt_error __P((char *)); - - static int set_shellopts_after_change __P((char *, int)); -@@ -223,6 +227,9 @@ static struct { - #endif - { "shift_verbose", &print_shift_error, (shopt_set_func_t *)NULL }, - { "sourcepath", &source_uses_path, (shopt_set_func_t *)NULL }, -+#if defined (SYSLOG_HISTORY) && defined (SYSLOG_SHOPT) -+ { "syslog_history", &syslog_history, (shopt_set_func_t *)NULL }, -+#endif - { "xpg_echo", &xpg_echo, (shopt_set_func_t *)NULL }, - { (char *)0, (int *)0, (shopt_set_func_t *)NULL } - }; -diff --git a/config-top.h b/config-top.h -index cb0e002..39cf6b5 100644 ---- a/config-top.h -+++ b/config-top.h -@@ -122,6 +122,13 @@ - # define OPENLOG_OPTS LOG_PID - #endif - -+/* Define if you want syslogging history to be controllable at runtime via a -+ shell option; if defined, the value is the default for the syslog_history -+ shopt option */ -+#if defined (SYSLOG_HISTORY) -+#define SYSLOG_SHOPT 0 -+#endif -+ - /* Define if you want to include code in shell.c to support wordexp(3) */ - /* #define WORDEXP_OPTION */ - -diff --git a/doc/bash.1 b/doc/bash.1 -index d6cee1d..9dfa0b3 100644 ---- a/doc/bash.1 -+++ b/doc/bash.1 -@@ -9889,6 +9889,9 @@ If set, the - to find the directory containing the file supplied as an argument. - This option is enabled by default. - .TP 8 -+.B syslog_history -+If set, command history is logged to syslog. -+.TP 8 - .B xpg_echo - If set, the \fBecho\fP builtin expands backslash-escape sequences - by default. diff --git a/SOURCES/bash-infotags.patch b/SOURCES/bash-infotags.patch deleted file mode 100644 index fe39609..0000000 --- a/SOURCES/bash-infotags.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/doc/Makefile.in b/doc/Makefile.in -index 5f0756c..a5fa5a0 100644 ---- a/doc/Makefile.in -+++ b/doc/Makefile.in -@@ -74,7 +74,6 @@ TEXI2DVI = ${SUPPORT_SRCDIR}/texi2dvi - TEXI2HTML = ${SUPPORT_SRCDIR}/texi2html - MAN2HTML = ${BUILD_DIR}/support/man2html - HTMLPOST = ${srcdir}/htmlpost.sh --INFOPOST = ${srcdir}/infopost.sh - QUIETPS = #set this to -q to shut up dvips - PAPERSIZE = letter # change to a4 for A4-size paper - PSDPI = 600 # could be 300 if you like -@@ -188,8 +187,8 @@ bashref.pdf: $(BASHREF_FILES) $(HSUSER) $(RLUSER) - bashref.html: $(BASHREF_FILES) $(HSUSER) $(RLUSER) - $(MAKEINFO) --html --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi - --bash.info: bashref.info -- ${SHELL} ${INFOPOST} < $(srcdir)/bashref.info > $@ ; \ -+bash.info: $(BASHREF_FILES) $(HSUSER) $(RLUSER) -+ $(MAKEINFO) --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi -o $@ - - bash.txt: bash.1 - bash.ps: bash.1 --- -2.9.3 - diff --git a/SOURCES/bash-2.03-profile.patch b/bash-2.03-profile.patch similarity index 100% rename from SOURCES/bash-2.03-profile.patch rename to bash-2.03-profile.patch diff --git a/SOURCES/bash-2.05a-interpreter.patch b/bash-2.05a-interpreter.patch similarity index 80% rename from SOURCES/bash-2.05a-interpreter.patch rename to bash-2.05a-interpreter.patch index ca497c4..e8ca4ca 100644 --- a/SOURCES/bash-2.05a-interpreter.patch +++ b/bash-2.05a-interpreter.patch @@ -1,8 +1,8 @@ diff --git a/config.h.in b/config.h.in -index a5ad9e7..62a6b32 100644 +index ab316d4..11d1d68 100644 --- a/config.h.in +++ b/config.h.in -@@ -748,6 +748,9 @@ +@@ -775,6 +775,9 @@ /* Define if you have the pselect function. */ #undef HAVE_PSELECT @@ -12,7 +12,7 @@ index a5ad9e7..62a6b32 100644 /* Define if you have the putenv function. */ #undef HAVE_PUTENV -@@ -946,6 +949,9 @@ +@@ -981,6 +984,9 @@ /* Define if you have the header file. */ #undef HAVE_DLFCN_H @@ -23,29 +23,20 @@ index a5ad9e7..62a6b32 100644 #undef HAVE_GRP_H diff --git a/configure.ac b/configure.ac -index ce4e9b6..eda95d6 100644 +index 2fe3e7d..f1b7f1b 100644 --- a/configure.ac +++ b/configure.ac -@@ -700,7 +700,7 @@ BASH_HEADER_INTTYPES - AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \ - memory.h locale.h termcap.h termio.h termios.h dlfcn.h \ - stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \ -- regex.h syslog.h ulimit.h) -+ regex.h syslog.h ulimit.h elf.h) - AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h sys/ioctl.h \ - sys/param.h sys/socket.h sys/stat.h \ - sys/time.h sys/times.h sys/types.h sys/wait.h) -@@ -771,7 +771,7 @@ dnl checks for system calls - AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \ - getpagesize getpeername getrlimit getrusage gettimeofday \ - kill killpg lstat pselect readlink sbrk select setdtablesize \ -- setitimer tcgetpgrp uname ulimit waitpid) -+ setitimer tcgetpgrp uname ulimit waitpid pread) +@@ -827,7 +827,7 @@ dnl checks for system calls + AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getentropy getgroups \ + gethostname getpagesize getpeername getrandom getrlimit \ + getrusage gettimeofday kill killpg lstat pselect readlink \ +- select setdtablesize setitimer tcgetpgrp uname ulimit waitpid) ++ select setdtablesize setitimer tcgetpgrp uname ulimit waitpid pread) AC_REPLACE_FUNCS(rename) dnl checks for c library functions diff --git a/execute_cmd.c b/execute_cmd.c -index 2a3df6d..b5cd405 100644 +index d2a0dd7..d2555ad 100644 --- a/execute_cmd.c +++ b/execute_cmd.c @@ -41,6 +41,10 @@ @@ -59,7 +50,7 @@ index 2a3df6d..b5cd405 100644 #include "posixtime.h" #if defined (HAVE_SYS_RESOURCE_H) && !defined (RLIMTYPE) -@@ -5486,6 +5490,14 @@ shell_execve (command, args, env) +@@ -5832,6 +5836,14 @@ shell_execve (command, args, env) { /* The file has the execute bits set, but the kernel refuses to run it for some reason. See why. */ @@ -74,18 +65,19 @@ index 2a3df6d..b5cd405 100644 #if defined (HAVE_HASH_BANG_EXEC) READ_SAMPLE_BUF (command, sample, sample_len); if (sample_len > 0) -@@ -5495,6 +5507,7 @@ shell_execve (command, args, env) +@@ -5841,6 +5853,7 @@ shell_execve (command, args, env) char *interp; int ilen; -+ close (fd); ++ close (fd); interp = getinterp (sample, sample_len, (int *)NULL); ilen = strlen (interp); errno = i; -@@ -5510,6 +5523,136 @@ shell_execve (command, args, env) +@@ -5856,7 +5869,138 @@ shell_execve (command, args, env) return (EX_NOEXEC); } #endif +- errno = i; +#if defined (HAVE_ELF_H) + if (i == ENOENT + && sample_len > EI_NIDENT @@ -216,9 +208,8 @@ index 2a3df6d..b5cd405 100644 +#if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H) + close (fd); +#endif - errno = i; ++ ++ errno = i; file_error (command); } --- -2.9.3 - + return (last_command_exit_value); diff --git a/SOURCES/bash-2.05b-debuginfo.patch b/bash-2.05b-debuginfo.patch similarity index 100% rename from SOURCES/bash-2.05b-debuginfo.patch rename to bash-2.05b-debuginfo.patch diff --git a/bash-2.05b-pgrp_sync.patch b/bash-2.05b-pgrp_sync.patch new file mode 100644 index 0000000..cc98518 --- /dev/null +++ b/bash-2.05b-pgrp_sync.patch @@ -0,0 +1,12 @@ +diff --git a/aclocal.m4 b/aclocal.m4 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -1324,7 +1324,7 @@ main() + wait(&status); + exit(ok ? 0 : 5); + } +-]])], [bash_cv_pgrp_pipe=no], [bash_cv_pgrp_pipe=yes], ++]])], [bash_cv_pgrp_pipe=yes], [bash_cv_pgrp_pipe=yes], + [AC_MSG_WARN(cannot check pgrp synchronization if cross compiling -- defaulting to no) + bash_cv_pgrp_pipe=no] + )]) diff --git a/SOURCES/bash-3.2-ssh_source_bash.patch b/bash-3.2-ssh_source_bash.patch similarity index 53% rename from SOURCES/bash-3.2-ssh_source_bash.patch rename to bash-3.2-ssh_source_bash.patch index 5bd19ce..e675957 100644 --- a/SOURCES/bash-3.2-ssh_source_bash.patch +++ b/bash-3.2-ssh_source_bash.patch @@ -1,12 +1,13 @@ -diff -up bash-4.0/config-top.h.ssh_source_bash bash-4.0/config-top.h ---- bash-4.0/config-top.h.ssh_source_bash 2009-01-21 15:20:06.000000000 +0100 -+++ bash-4.0/config-top.h 2009-01-21 15:25:46.000000000 +0100 -@@ -90,7 +90,7 @@ +diff --git a/config-top.h b/config-top.h +index e5cc147..f5e0a52 100644 +--- a/config-top.h ++++ b/config-top.h +@@ -106,7 +106,7 @@ sshd and source the .bashrc if so (like the rshd behavior). This checks for the presence of SSH_CLIENT or SSH2_CLIENT in the initial environment, which can be fooled under certain not-uncommon circumstances. */ -/* #define SSH_SOURCE_BASHRC */ +#define SSH_SOURCE_BASHRC - /* Define if you want the case-capitalizing operators (~[~]) and the + /* Define if you want the case-toggling operators (~[~]) and the `capcase' variable attribute (declare -c). */ diff --git a/SOURCES/bash-4.0-nobits.patch b/bash-4.0-nobits.patch similarity index 100% rename from SOURCES/bash-4.0-nobits.patch rename to bash-4.0-nobits.patch diff --git a/SOURCES/bash-4.1-broken_pipe.patch b/bash-4.1-broken_pipe.patch similarity index 100% rename from SOURCES/bash-4.1-broken_pipe.patch rename to bash-4.1-broken_pipe.patch diff --git a/bash-4.1-examples.patch b/bash-4.1-examples.patch new file mode 100644 index 0000000..43407d9 --- /dev/null +++ b/bash-4.1-examples.patch @@ -0,0 +1,24 @@ +diff --git a/examples/loadables/Makefile.in b/examples/loadables/Makefile.in +--- a/examples/loadables/Makefile.in ++++ b/examples/loadables/Makefile.in +@@ -59,7 +59,7 @@ host_cpu = @host_cpu@ + host_vendor = @host_vendor@ + + STYLE_CFLAGS = @STYLE_CFLAGS@ +-CFLAGS = @CFLAGS@ +++CFLAGS = -O2 -g + LOCAL_CFLAGS = @LOCAL_CFLAGS@ + DEFS = @DEFS@ + LOCAL_DEFS = @LOCAL_DEFS@ +diff --git a/examples/loadables/perl/Makefile.in b/examples/loadables/perl/Makefile.in +--- a/examples/loadables/perl/Makefile.in ++++ b/examples/loadables/perl/Makefile.in +@@ -42,7 +42,7 @@ SHELL = @MAKE_SHELL@ + + PERL5 = perl5 + +-CFLAGS = @CFLAGS@ ++CFLAGS = -O2 -g + + # + # These values are generated for configure by ${topdir}/support/shobj-conf. diff --git a/SOURCES/bash-4.2-coverity.patch b/bash-4.2-coverity.patch similarity index 79% rename from SOURCES/bash-4.2-coverity.patch rename to bash-4.2-coverity.patch index 5fc8456..dc52e52 100644 --- a/SOURCES/bash-4.2-coverity.patch +++ b/bash-4.2-coverity.patch @@ -1,7 +1,8 @@ -diff -up bash-4.2/execute_cmd.c.coverity bash-4.2/execute_cmd.c ---- bash-4.2/execute_cmd.c.coverity 2011-02-24 13:04:35.000000000 +0100 -+++ bash-4.2/execute_cmd.c 2011-02-24 13:49:13.000000000 +0100 -@@ -5036,7 +5036,7 @@ shell_execve (command, args, env) +diff --git a/execute_cmd.c b/execute_cmd.c +index a988400..412128c 100644 +--- a/execute_cmd.c ++++ b/execute_cmd.c +@@ -5760,7 +5760,7 @@ shell_execve (command, args, env) Elf32_Ehdr ehdr; Elf32_Phdr *phdr; Elf32_Shdr *shdr; @@ -10,7 +11,7 @@ diff -up bash-4.2/execute_cmd.c.coverity bash-4.2/execute_cmd.c /* We have to copy the data since the sample buffer might not be aligned correctly to be accessed as -@@ -5044,12 +5044,12 @@ shell_execve (command, args, env) +@@ -5768,12 +5768,12 @@ shell_execve (command, args, env) memcpy (&ehdr, sample, sizeof (Elf32_Ehdr)); nshdr = ehdr.e_shnum; @@ -25,7 +26,7 @@ diff -up bash-4.2/execute_cmd.c.coverity bash-4.2/execute_cmd.c ehdr.e_shoff); #else if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1) -@@ -5091,11 +5091,11 @@ shell_execve (command, args, env) +@@ -5815,11 +5815,11 @@ shell_execve (command, args, env) } nphdr = ehdr.e_phnum; @@ -39,7 +40,7 @@ diff -up bash-4.2/execute_cmd.c.coverity bash-4.2/execute_cmd.c ehdr.e_phoff); #else if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1) -@@ -5120,7 +5120,7 @@ shell_execve (command, args, env) +@@ -5844,7 +5844,7 @@ shell_execve (command, args, env) Elf64_Ehdr ehdr; Elf64_Phdr *phdr; Elf64_Shdr *shdr; @@ -48,7 +49,7 @@ diff -up bash-4.2/execute_cmd.c.coverity bash-4.2/execute_cmd.c /* We have to copy the data since the sample buffer might not be aligned correctly to be accessed as -@@ -5128,11 +5128,11 @@ shell_execve (command, args, env) +@@ -5852,11 +5852,11 @@ shell_execve (command, args, env) memcpy (&ehdr, sample, sizeof (Elf64_Ehdr)); nshdr = ehdr.e_shnum; @@ -62,7 +63,7 @@ diff -up bash-4.2/execute_cmd.c.coverity bash-4.2/execute_cmd.c ehdr.e_shoff); #else if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1) -@@ -5174,11 +5174,11 @@ shell_execve (command, args, env) +@@ -5898,11 +5898,11 @@ shell_execve (command, args, env) } nphdr = ehdr.e_phnum; @@ -76,7 +77,7 @@ diff -up bash-4.2/execute_cmd.c.coverity bash-4.2/execute_cmd.c ehdr.e_phoff); #else if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1) -@@ -5200,8 +5200,8 @@ shell_execve (command, args, env) +@@ -5924,8 +5924,8 @@ shell_execve (command, args, env) if (offset != -1) { @@ -87,7 +88,7 @@ diff -up bash-4.2/execute_cmd.c.coverity bash-4.2/execute_cmd.c char *interp = NULL; do -@@ -5250,7 +5250,8 @@ shell_execve (command, args, env) +@@ -5974,7 +5974,8 @@ shell_execve (command, args, env) } #endif #if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H) @@ -95,5 +96,8 @@ diff -up bash-4.2/execute_cmd.c.coverity bash-4.2/execute_cmd.c + if (fd >= 0) + close (fd); #endif - errno = i; - file_error (command); + + errno = i; +-- +2.17.2 + diff --git a/SOURCES/bash-4.2-manpage_trap.patch b/bash-4.2-manpage_trap.patch similarity index 100% rename from SOURCES/bash-4.2-manpage_trap.patch rename to bash-4.2-manpage_trap.patch diff --git a/SOURCES/bash-4.2-rc2-logout.patch b/bash-4.2-rc2-logout.patch similarity index 100% rename from SOURCES/bash-4.2-rc2-logout.patch rename to bash-4.2-rc2-logout.patch diff --git a/SOURCES/bash-4.2-size_type.patch b/bash-4.2-size_type.patch similarity index 100% rename from SOURCES/bash-4.2-size_type.patch rename to bash-4.2-size_type.patch diff --git a/SOURCES/bash-4.3-audit.patch b/bash-4.3-audit.patch similarity index 100% rename from SOURCES/bash-4.3-audit.patch rename to bash-4.3-audit.patch diff --git a/SOURCES/bash-4.3-man-ulimit.patch b/bash-4.3-man-ulimit.patch similarity index 100% rename from SOURCES/bash-4.3-man-ulimit.patch rename to bash-4.3-man-ulimit.patch diff --git a/bash-4.3-memleak-lc_all.patch b/bash-4.3-memleak-lc_all.patch new file mode 100644 index 0000000..4de1753 --- /dev/null +++ b/bash-4.3-memleak-lc_all.patch @@ -0,0 +1,13 @@ +diff --git a/locale.c b/locale.c +index 17ccc58..a6c07a3 100644 +--- a/locale.c ++++ b/locale.c +@@ -78,8 +78,6 @@ set_default_locale () + { + #if defined (HAVE_SETLOCALE) + default_locale = setlocale (LC_ALL, ""); +- if (default_locale) +- default_locale = savestring (default_locale); + #else + default_locale = savestring ("C"); + #endif /* HAVE_SETLOCALE */ diff --git a/SOURCES/bash-4.3-noecho.patch b/bash-4.3-noecho.patch similarity index 66% rename from SOURCES/bash-4.3-noecho.patch rename to bash-4.3-noecho.patch index 2906fbf..b06d7f4 100644 --- a/SOURCES/bash-4.3-noecho.patch +++ b/bash-4.3-noecho.patch @@ -1,29 +1,28 @@ diff --git a/parse.y b/parse.y -index 30425a5..85f1c4f 100644 --- a/parse.y +++ b/parse.y -@@ -4228,6 +4228,8 @@ xparse_dolparen (base, string, indp, flags) +@@ -4255,7 +4255,8 @@ xparse_dolparen (base, string, indp, flags) + save_parser_state (&ps); save_input_line_state (&ls); - orig_eof_token = shell_eof_token; +- + /* avoid echoing every substitution again */ + echo_input_at_read = 0; - - /*(*/ - parser_state |= PST_CMDSUBST|PST_EOFTOKEN; /* allow instant ')' */ /*(*/ + #if defined (ALIAS) || defined (DPAREN_ARITHMETIC) + pushed_string_list = (STRING_SAVER *)NULL; + #endif diff --git a/subst.c b/subst.c -index f1a4df1..a93a4ce 100644 --- a/subst.c +++ b/subst.c -@@ -8513,6 +8513,7 @@ param_expand (string, sindex, quoted, expanded_something, - WORD_LIST *list; +@@ -10222,6 +10222,7 @@ param_expand (string, sindex, quoted, expanded_something, + WORD_LIST *list, *l; WORD_DESC *tdesc, *ret; - int tflag; + int tflag, nullarg; + int old_echo_input; /*itrace("param_expand: `%s' pflags = %d", string+*sindex, pflags);*/ zindex = *sindex; -@@ -8831,6 +8832,9 @@ arithsub: +@@ -10614,6 +10615,9 @@ arithsub: } comsub: @@ -33,7 +32,7 @@ index f1a4df1..a93a4ce 100644 if (pflags & PF_NOCOMSUB) /* we need zindex+1 because string[zindex] == RPAREN */ temp1 = substring (string, *sindex, zindex+1); -@@ -8843,6 +8847,7 @@ comsub: +@@ -10626,6 +10630,7 @@ comsub: } FREE (temp); temp = temp1; @@ -41,6 +40,3 @@ index f1a4df1..a93a4ce 100644 break; /* Do POSIX.2d9-style arithmetic substitution. This will probably go --- -2.9.3 - diff --git a/SOURCES/bash-4.4-no-loadable-builtins.patch b/bash-4.4-no-loadable-builtins.patch similarity index 100% rename from SOURCES/bash-4.4-no-loadable-builtins.patch rename to bash-4.4-no-loadable-builtins.patch diff --git a/bash-5.0-syslog-history.patch b/bash-5.0-syslog-history.patch new file mode 100644 index 0000000..dc1ad89 --- /dev/null +++ b/bash-5.0-syslog-history.patch @@ -0,0 +1,13 @@ +diff --git a/doc/bash.1 b/doc/bash.1 +--- a/doc/bash.1 ++++ b/doc/bash.1 +@@ -10726,6 +10726,9 @@ If set, the shell automatically closes file descriptors assigned using the + .el above) + instead of leaving them open when the command completes. + .TP 8 ++.B syslog_history ++If set, command history is logged to syslog. ++.TP 8 + .B xpg_echo + If set, the \fBecho\fP builtin expands backslash-escape sequences + by default. diff --git a/bash-5.2-patch-1.patch b/bash-5.2-patch-1.patch new file mode 100644 index 0000000..30ba586 --- /dev/null +++ b/bash-5.2-patch-1.patch @@ -0,0 +1,24 @@ +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 0 ++#define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/subst.c b/subst.c +index d9feabca..93b91606 100644 +--- a/subst.c ++++ b/subst.c +@@ -10857,7 +10857,7 @@ expand_array_subscript (string, sindex, quoted, flags) + exp = substring (string, si+1, ni); + t = expand_subscript_string (exp, quoted & ~(Q_ARITH|Q_DOUBLE_QUOTES)); + free (exp); +- exp = sh_backslash_quote (t, abstab, 0); ++ exp = t ? sh_backslash_quote (t, abstab, 0) : savestring (""); + free (t); + + slen = STRLEN (exp); diff --git a/bash-5.2-patch-10.patch b/bash-5.2-patch-10.patch new file mode 100644 index 0000000..4ca63e6 --- /dev/null +++ b/bash-5.2-patch-10.patch @@ -0,0 +1,41 @@ +diff --git a/general.c b/general.c +--- a/general.c ++++ b/general.c +@@ -683,21 +683,20 @@ check_binary_file (sample, sample_len) + int sample_len; + { + register int i; ++ int nline; + unsigned char c; + + if (sample_len >= 4 && sample[0] == 0x7f && sample[1] == 'E' && sample[2] == 'L' && sample[3] == 'F') + return 1; + + /* Generally we check the first line for NULs. If the first line looks like +- a `#!' interpreter specifier, we just look for NULs anywhere in the +- buffer. */ +- if (sample[0] == '#' && sample[1] == '!') +- return (memchr (sample, '\0', sample_len) != NULL); ++ a `#!' interpreter specifier, we look for NULs in the first two lines. */ ++ nline = (sample[0] == '#' && sample[1] == '!') ? 2 : 1; + + for (i = 0; i < sample_len; i++) + { + c = sample[i]; +- if (c == '\n') ++ if (c == '\n' && --nline == 0) + return (0); + if (c == '\0') + return (1); +diff --git a/patchlevel.h b/patchlevel.h +index e59027ac..9ddc79f7 100644 +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 9 ++#define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash-5.2-patch-11.patch b/bash-5.2-patch-11.patch new file mode 100644 index 0000000..c83ad1a --- /dev/null +++ b/bash-5.2-patch-11.patch @@ -0,0 +1,25 @@ +diff --git a/builtins/read.def b/builtins/read.def +--- a/builtins/read.def ++++ b/builtins/read.def +@@ -167,6 +167,9 @@ reset_timeout () + /* Cancel alarm before restoring signal handler. */ + if (read_timeout) + shtimer_clear (read_timeout); ++#if defined (READLINE) ++ rl_clear_timeout (); ++#endif + read_timeout = 0; + } + +diff --git a/patchlevel.h b/patchlevel.h +index 9ddc79f7..9ff902a0 100644 +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 10 ++#define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash-5.2-patch-12.patch b/bash-5.2-patch-12.patch new file mode 100644 index 0000000..a99de5b --- /dev/null +++ b/bash-5.2-patch-12.patch @@ -0,0 +1,268 @@ +diff --git a/builtins/common.h b/builtins/common.h +--- a/builtins/common.h ++++ b/builtins/common.h +@@ -257,6 +257,10 @@ extern int print_shift_error; + extern int expand_once_flag; + #endif + ++#if defined (EXTENDED_GLOB) ++extern int extglob_flag; ++#endif ++ + extern int expaliases_flag; + + /* variables from source.def */ +diff --git a/builtins/shopt.def b/builtins/shopt.def +--- a/builtins/shopt.def ++++ b/builtins/shopt.def +@@ -149,6 +149,11 @@ static int shopt_set_complete_direxpand PARAMS((char *, int)); + static int set_assoc_expand PARAMS((char *, int)); + #endif + ++#if defined (EXTENDED_GLOB) ++int extglob_flag = EXTGLOB_DEFAULT; ++static int shopt_set_extglob PARAMS((char *, int)); ++#endif ++ + int expaliases_flag = 0; + static int shopt_set_expaliases PARAMS((char *, int)); + +@@ -206,7 +211,7 @@ static struct { + { "extdebug", &debugging_mode, shopt_set_debug_mode }, + #endif + #if defined (EXTENDED_GLOB) +- { "extglob", &extended_glob, (shopt_set_func_t *)NULL }, ++ { "extglob", &extglob_flag, shopt_set_extglob }, + #endif + { "extquote", &extended_quote, (shopt_set_func_t *)NULL }, + { "failglob", &fail_glob_expansion, (shopt_set_func_t *)NULL }, +@@ -377,7 +382,7 @@ reset_shopt_options () + #endif + + #if defined (EXTENDED_GLOB) +- extended_glob = EXTGLOB_DEFAULT; ++ extended_glob = extglob_flag = EXTGLOB_DEFAULT; + #endif + + #if defined (ARRAY_VARS) +@@ -643,6 +648,17 @@ shopt_set_expaliases (option_name, mode) + return 0; + } + ++#if defined (EXTENDED_GLOB) ++static int ++shopt_set_extglob (option_name, mode) ++ char *option_name; ++ int mode; ++{ ++ extended_glob = extglob_flag; ++ return 0; ++} ++#endif ++ + #if defined (READLINE) + static int + shopt_enable_hostname_completion (option_name, mode) +diff --git a/execute_cmd.c b/execute_cmd.c +--- a/execute_cmd.c ++++ b/execute_cmd.c +@@ -3990,13 +3990,11 @@ execute_cond_node (cond) + else + #endif /* COND_REGEXP */ + { +- int oe; +- oe = extended_glob; + extended_glob = 1; + result = binary_test (cond->op->word, arg1, arg2, TEST_PATMATCH|TEST_ARITHEXP|TEST_LOCALE) + ? EXECUTION_SUCCESS + : EXECUTION_FAILURE; +- extended_glob = oe; ++ extended_glob = extglob_flag; + } + if (arg1 != nullstr) + free (arg1); +diff --git a/parse.y b/parse.y +--- a/parse.y ++++ b/parse.y +@@ -125,7 +125,7 @@ do { \ + } while (0) + + #if defined (EXTENDED_GLOB) +-extern int extended_glob; ++extern int extended_glob, extglob_flag; + #endif + + #if defined (TRANSLATABLE_STRINGS) +@@ -3304,7 +3304,7 @@ reset_parser () + #if defined (EXTENDED_GLOB) + /* Reset to global value of extended glob */ + if (parser_state & (PST_EXTPAT|PST_CMDSUBST)) +- extended_glob = global_extglob; ++ extended_glob = extglob_flag; + #endif + if (parser_state & (PST_CMDSUBST|PST_STRING)) + expand_aliases = expaliases_flag; +@@ -4124,10 +4124,10 @@ parse_comsub (qc, open, close, lenp, flags) + expand_aliases = posixly_correct != 0; + #if defined (EXTENDED_GLOB) + /* If (parser_state & PST_EXTPAT), we're parsing an extended pattern for a +- conditional command and have already set global_extglob appropriately. */ ++ conditional command and have already set extended_glob appropriately. */ + if (shell_compatibility_level <= 51 && was_extpat == 0) + { +- local_extglob = global_extglob = extended_glob; ++ local_extglob = extended_glob; + extended_glob = 1; + } + #endif +@@ -4235,7 +4235,7 @@ xparse_dolparen (base, string, indp, flags) + { + sh_parser_state_t ps; + sh_input_line_state_t ls; +- int orig_ind, nc, sflags, start_lineno; ++ int orig_ind, nc, sflags, start_lineno, local_extglob; + char *ret, *ep, *ostring; + + /*debug_parser(1);*/ +@@ -4278,7 +4278,7 @@ xparse_dolparen (base, string, indp, flags) + old value will be restored by restore_parser_state(). */ + expand_aliases = 0; + #if defined (EXTENDED_GLOB) +- global_extglob = extended_glob; /* for reset_parser() */ ++ local_extglob = extended_glob; + #endif + + token_to_read = DOLPAREN; /* let's trick the parser */ +@@ -4296,6 +4296,9 @@ xparse_dolparen (base, string, indp, flags) + restore_input_line_state (&ls); + restore_parser_state (&ps); + ++#if defined (EXTENDED_GLOB) ++ extended_glob = local_extglob; ++#endif + token_to_read = 0; + + /* If parse_string returns < 0, we need to jump to top level with the +@@ -4731,12 +4734,16 @@ cond_term () + } + + /* rhs */ ++#if defined (EXTENDED_GLOB) + local_extglob = extended_glob; + if (parser_state & PST_EXTPAT) + extended_glob = 1; ++#endif + tok = read_token (READ); ++#if defined (EXTENDED_GLOB) + if (parser_state & PST_EXTPAT) + extended_glob = local_extglob; ++#endif + parser_state &= ~(PST_REGEXP|PST_EXTPAT); + + if (tok == WORD) +@@ -4783,7 +4790,6 @@ parse_cond_command () + { + COND_COM *cexp; + +- global_extglob = extended_glob; + cexp = cond_expr (); + return (make_cond_command (cexp)); + } +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 11 ++#define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/y.tab.c b/y.tab.c +--- a/y.tab.c ++++ b/y.tab.c +@@ -175,7 +175,7 @@ do { \ + } while (0) + + #if defined (EXTENDED_GLOB) +-extern int extended_glob; ++extern int extended_glob, extglob_flag; + #endif + + #if defined (TRANSLATABLE_STRINGS) +@@ -5615,7 +5615,7 @@ reset_parser () + #if defined (EXTENDED_GLOB) + /* Reset to global value of extended glob */ + if (parser_state & (PST_EXTPAT|PST_CMDSUBST)) +- extended_glob = global_extglob; ++ extended_glob = extglob_flag; + #endif + if (parser_state & (PST_CMDSUBST|PST_STRING)) + expand_aliases = expaliases_flag; +@@ -6435,10 +6435,10 @@ parse_comsub (qc, open, close, lenp, flags) + expand_aliases = posixly_correct != 0; + #if defined (EXTENDED_GLOB) + /* If (parser_state & PST_EXTPAT), we're parsing an extended pattern for a +- conditional command and have already set global_extglob appropriately. */ ++ conditional command and have already set extended_glob appropriately. */ + if (shell_compatibility_level <= 51 && was_extpat == 0) + { +- local_extglob = global_extglob = extended_glob; ++ local_extglob = extended_glob; + extended_glob = 1; + } + #endif +@@ -6546,7 +6546,7 @@ xparse_dolparen (base, string, indp, flags) + { + sh_parser_state_t ps; + sh_input_line_state_t ls; +- int orig_ind, nc, sflags, start_lineno; ++ int orig_ind, nc, sflags, start_lineno, local_extglob; + char *ret, *ep, *ostring; + + /*debug_parser(1);*/ +@@ -6589,7 +6589,7 @@ xparse_dolparen (base, string, indp, flags) + old value will be restored by restore_parser_state(). */ + expand_aliases = 0; + #if defined (EXTENDED_GLOB) +- global_extglob = extended_glob; /* for reset_parser() */ ++ local_extglob = extended_glob; + #endif + + token_to_read = DOLPAREN; /* let's trick the parser */ +@@ -6607,6 +6607,9 @@ xparse_dolparen (base, string, indp, flags) + restore_input_line_state (&ls); + restore_parser_state (&ps); + ++#if defined (EXTENDED_GLOB) ++ extended_glob = local_extglob; ++#endif + token_to_read = 0; + + /* If parse_string returns < 0, we need to jump to top level with the +@@ -7042,12 +7045,16 @@ cond_term () + } + + /* rhs */ ++#if defined (EXTENDED_GLOB) + local_extglob = extended_glob; + if (parser_state & PST_EXTPAT) + extended_glob = 1; ++#endif + tok = read_token (READ); ++#if defined (EXTENDED_GLOB) + if (parser_state & PST_EXTPAT) + extended_glob = local_extglob; ++#endif + parser_state &= ~(PST_REGEXP|PST_EXTPAT); + + if (tok == WORD) +@@ -7094,7 +7101,6 @@ parse_cond_command () + { + COND_COM *cexp; + +- global_extglob = extended_glob; + cexp = cond_expr (); + return (make_cond_command (cexp)); + } diff --git a/bash-5.2-patch-13.patch b/bash-5.2-patch-13.patch new file mode 100644 index 0000000..78bb233 --- /dev/null +++ b/bash-5.2-patch-13.patch @@ -0,0 +1,34 @@ +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 12 ++#define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/subst.c b/subst.c +--- a/subst.c ++++ b/subst.c +@@ -7497,8 +7497,6 @@ expand_arrayref: + ? quote_string (temp) + : quote_escapes (temp); + rflags |= W_ARRAYIND; +- if (estatep) +- *estatep = es; /* structure copy */ + } + /* Note that array[*] and array[@] expanded to a quoted null string by + returning the W_HASQUOTEDNULL flag to the caller in addition to TEMP. */ +@@ -7507,7 +7505,9 @@ expand_arrayref: + else if (es.subtype == 2 && temp && QUOTED_NULL (temp) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) + rflags |= W_HASQUOTEDNULL; + +- if (estatep == 0) ++ if (estatep) ++ *estatep = es; /* structure copy */ ++ else + flush_eltstate (&es); + } + #endif diff --git a/bash-5.2-patch-14.patch b/bash-5.2-patch-14.patch new file mode 100644 index 0000000..1b352e9 --- /dev/null +++ b/bash-5.2-patch-14.patch @@ -0,0 +1,93 @@ +diff --git a/execute_cmd.c b/execute_cmd.c +--- a/execute_cmd.c ++++ b/execute_cmd.c +@@ -3624,6 +3624,7 @@ execute_case_command (case_command) + free (pattern); + + dispose_words (es); ++ QUIT; + + if (match) + { +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 13 ++#define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/sig.c b/sig.c +--- a/sig.c ++++ b/sig.c +@@ -94,6 +94,7 @@ static SigHandler *old_winch = (SigHandler *)SIG_DFL; + #endif + + static void initialize_shell_signals PARAMS((void)); ++static void kill_shell PARAMS((int)); + + void + initialize_signals (reinit) +@@ -486,6 +487,8 @@ restore_sigmask () + #endif + } + ++static int handling_termsig = 0; ++ + sighandler + termsig_sighandler (sig) + int sig; +@@ -532,6 +535,14 @@ termsig_sighandler (sig) + sig == terminating_signal) + terminate_immediately = 1; + ++ /* If we are currently handling a terminating signal, we have a couple of ++ choices here. We can ignore this second terminating signal and let the ++ shell exit from the first one, or we can exit immediately by killing ++ the shell with this signal. This code implements the latter; to implement ++ the former, replace the kill_shell(sig) with return. */ ++ if (handling_termsig) ++ kill_shell (sig); /* just short-circuit now */ ++ + terminating_signal = sig; + + if (terminate_immediately) +@@ -564,16 +575,13 @@ void + termsig_handler (sig) + int sig; + { +- static int handling_termsig = 0; +- int i, core; +- sigset_t mask; +- + /* Simple semaphore to keep this function from being executed multiple + times. Since we no longer are running as a signal handler, we don't + block multiple occurrences of the terminating signals while running. */ + if (handling_termsig) + return; +- handling_termsig = 1; ++ ++ handling_termsig = terminating_signal; /* for termsig_sighandler */ + terminating_signal = 0; /* keep macro from re-testing true. */ + + /* I don't believe this condition ever tests true. */ +@@ -613,6 +621,16 @@ termsig_handler (sig) + + run_exit_trap (); /* XXX - run exit trap possibly in signal context? */ + ++ kill_shell (sig); ++} ++ ++static void ++kill_shell (sig) ++ int sig; ++{ ++ int i, core; ++ sigset_t mask; ++ + /* We don't change the set of blocked signals. If a user starts the shell + with a terminating signal blocked, we won't get here (and if by some + magic chance we do, we'll exit below). What we do is to restore the diff --git a/bash-5.2-patch-15.patch b/bash-5.2-patch-15.patch new file mode 100644 index 0000000..aa6f11d --- /dev/null +++ b/bash-5.2-patch-15.patch @@ -0,0 +1,163 @@ +diff --git a/builtins/common.h b/builtins/common.h +--- a/builtins/common.h ++++ b/builtins/common.h +@@ -51,6 +51,7 @@ do { \ + #define SEVAL_FUNCDEF 0x080 /* only allow function definitions */ + #define SEVAL_ONECMD 0x100 /* only allow a single command */ + #define SEVAL_NOHISTEXP 0x200 /* inhibit history expansion */ ++#define SEVAL_NOOPTIMIZE 0x400 /* don't try to set optimization flags */ + + /* Flags for describe_command, shared between type.def and command.def */ + #define CDESC_ALL 0x001 /* type -a */ +diff --git a/builtins/eval.def b/builtins/eval.def +--- a/builtins/eval.def ++++ b/builtins/eval.def +@@ -53,5 +53,5 @@ eval_builtin (list) + return (EX_USAGE); + list = loptend; /* skip over possible `--' */ + +- return (list ? evalstring (string_list (list), "eval", SEVAL_NOHIST) : EXECUTION_SUCCESS); ++ return (list ? evalstring (string_list (list), "eval", SEVAL_NOHIST|SEVAL_NOOPTIMIZE) : EXECUTION_SUCCESS); + } +diff --git a/builtins/evalstring.c b/builtins/evalstring.c +--- a/builtins/evalstring.c ++++ b/builtins/evalstring.c +@@ -132,8 +132,8 @@ optimize_connection_fork (command) + if (command->type == cm_connection && + (command->value.Connection->connector == AND_AND || command->value.Connection->connector == OR_OR || command->value.Connection->connector == ';') && + (command->value.Connection->second->flags & CMD_TRY_OPTIMIZING) && +- ((startup_state == 2 && should_suppress_fork (command->value.Connection->second)) || +- ((subshell_environment & SUBSHELL_PAREN) && should_optimize_fork (command->value.Connection->second, 0)))) ++ (should_suppress_fork (command->value.Connection->second) || ++ ((subshell_environment & SUBSHELL_PAREN) && should_optimize_fork (command->value.Connection->second, 0)))) + { + command->value.Connection->second->flags |= CMD_NO_FORK; + command->value.Connection->second->value.Simple->flags |= CMD_NO_FORK; +@@ -290,6 +290,7 @@ parse_prologue (string, flags, tag) + (flags & SEVAL_NOFREE) -> don't free STRING when finished + (flags & SEVAL_RESETLINE) -> reset line_number to 1 + (flags & SEVAL_NOHISTEXP) -> history_expansion_inhibited -> 1 ++ (flags & SEVAL_NOOPTIMIZE) -> don't try to turn on optimizing flags + */ + + int +@@ -502,7 +503,9 @@ parse_and_execute (string, from_file, flags) + if we are at the end of the command string, the last in a + series of connection commands is + command->value.Connection->second. */ +- else if (command->type == cm_connection && can_optimize_connection (command)) ++ else if (command->type == cm_connection && ++ (flags & SEVAL_NOOPTIMIZE) == 0 && ++ can_optimize_connection (command)) + { + command->value.Connection->second->flags |= CMD_TRY_OPTIMIZING; + command->value.Connection->second->value.Simple->flags |= CMD_TRY_OPTIMIZING; +diff --git a/execute_cmd.c b/execute_cmd.c +--- a/execute_cmd.c ++++ b/execute_cmd.c +@@ -1654,7 +1654,8 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) + subshell sets an exit trap, so we set CMD_NO_FORK for simple commands + and set CMD_TRY_OPTIMIZING for simple commands on the right side of an + and-or or `;' list to test for optimizing forks when they are executed. */ +- if (user_subshell && command->type == cm_subshell) ++ if (user_subshell && command->type == cm_subshell && ++ (command->flags & (CMD_TIME_PIPELINE|CMD_INVERT_RETURN)) == 0) + optimize_subshell_command (command->value.Subshell->command); + + /* Do redirections, then dispose of them before recursive call. */ +diff --git a/jobs.c b/jobs.c +--- a/jobs.c ++++ b/jobs.c +@@ -4220,7 +4220,7 @@ run_sigchld_trap (nchild) + jobs_list_frozen = 1; + for (i = 0; i < nchild; i++) + { +- parse_and_execute (savestring (trap_command), "trap", SEVAL_NOHIST|SEVAL_RESETLINE); ++ parse_and_execute (savestring (trap_command), "trap", SEVAL_NOHIST|SEVAL_RESETLINE|SEVAL_NOOPTIMIZE); + } + + run_unwind_frame ("SIGCHLD trap"); +diff --git a/parse.y b/parse.y +--- a/parse.y ++++ b/parse.y +@@ -2827,7 +2827,7 @@ execute_variable_command (command, vname) + if (last_lastarg) + last_lastarg = savestring (last_lastarg); + +- parse_and_execute (savestring (command), vname, SEVAL_NONINT|SEVAL_NOHIST); ++ parse_and_execute (savestring (command), vname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOOPTIMIZE); + + restore_parser_state (&ps); + bind_variable ("_", last_lastarg, 0); +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 14 ++#define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/trap.c b/trap.c +--- a/trap.c ++++ b/trap.c +@@ -304,6 +304,7 @@ run_pending_traps () + sh_parser_state_t pstate; + volatile int save_return_catch_flag, function_code; + procenv_t save_return_catch; ++ char *trap_command, *old_trap; + #if defined (ARRAY_VARS) + ARRAY *ps; + #endif +@@ -419,6 +420,9 @@ run_pending_traps () + } + else + { ++ old_trap = trap_list[sig]; ++ trap_command = savestring (old_trap); ++ + save_parser_state (&pstate); + save_subst_varlist = subst_assign_varlist; + subst_assign_varlist = 0; +@@ -441,7 +445,8 @@ run_pending_traps () + } + + if (function_code == 0) +- x = parse_and_execute (savestring (trap_list[sig]), "trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE); ++ /* XXX is x always last_command_exit_value? */ ++ x = parse_and_execute (trap_command, "trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE|SEVAL_NOOPTIMIZE); + else + { + parse_and_execute_cleanup (sig + 1); /* XXX - could use -1 */ +@@ -1002,7 +1007,7 @@ run_exit_trap () + if (code == 0 && function_code == 0) + { + reset_parser (); +- parse_and_execute (trap_command, "exit trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE); ++ parse_and_execute (trap_command, "exit trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE|SEVAL_NOOPTIMIZE); + } + else if (code == ERREXIT) + retval = last_command_exit_value; +@@ -1109,7 +1114,7 @@ _run_trap_internal (sig, tag) + function_code = setjmp_nosigs (return_catch); + } + +- flags = SEVAL_NONINT|SEVAL_NOHIST; ++ flags = SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOOPTIMIZE; + if (sig != DEBUG_TRAP && sig != RETURN_TRAP && sig != ERROR_TRAP) + flags |= SEVAL_RESETLINE; + evalnest++; +diff --git a/y.tab.c b/y.tab.c +--- a/y.tab.c ++++ b/y.tab.c +@@ -5138,7 +5138,7 @@ execute_variable_command (command, vname) + if (last_lastarg) + last_lastarg = savestring (last_lastarg); + +- parse_and_execute (savestring (command), vname, SEVAL_NONINT|SEVAL_NOHIST); ++ parse_and_execute (savestring (command), vname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOOPTIMIZE); + + restore_parser_state (&ps); + bind_variable ("_", last_lastarg, 0); diff --git a/bash-5.2-patch-16.patch b/bash-5.2-patch-16.patch new file mode 100644 index 0000000..648d9a3 --- /dev/null +++ b/bash-5.2-patch-16.patch @@ -0,0 +1,5089 @@ +diff --git a/execute_cmd.c b/execute_cmd.c +--- a/execute_cmd.c ++++ b/execute_cmd.c +@@ -3050,7 +3050,7 @@ eval_arith_for_expr (l, okp) + temp = expand_arith_string (expr, Q_DOUBLE_QUOTES|Q_ARITH); + if (l->next) + free (expr); +- new = make_word_list (make_word (temp), (WORD_LIST *)NULL); ++ new = make_word_list (make_word (temp ? temp : ""), (WORD_LIST *)NULL); + free (temp); + + if (new) +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 15 ++#define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/tags b/tags +new file mode 100644 +--- /dev/null ++++ b/tags +@@ -0,0 +1,5061 @@ ++$name variable 36 /usr/local/src/bash/bash-20230914/builtins/getopts.def shell variable $name, initializing name if it does not exist, and ++A variable 53 /usr/local/src/bash/bash-20230914/builtins/declare.def A, and r. ++ABSPATH macro 257 general.h # define ABSPATH(x) ((x)[0] == '/') ++ABSPATH macro 260 general.h # define ABSPATH(x) (((x)[0] && ISALPHA((unsigned char)(x)[0]) && (x)[1] == ':') || ISDIRSEP((x)[0])) ++ADDINTERRUPT macro 44 quit.h #define ADDINTERRUPT interrupt_state++ ++ADDOVERFLOW macro 131 /usr/local/src/bash/bash-20230914/include/typemax.h #define ADDOVERFLOW(a,b,minv,maxv) \ ++ADD_AFTER macro 56 array.c #define ADD_AFTER(ae, new) \ ++ADD_BEFORE macro 48 array.c #define ADD_BEFORE(ae, new) \ ++AFLAG macro 80 /usr/local/src/bash/bash-20230914/builtins/enable.def #define AFLAG 0x01 ++AFLAG macro 96 /usr/local/src/bash/bash-20230914/builtins/history.def #define AFLAG 0x01 ++ALIAS_HASH_BUCKETS macro 49 alias.c #define ALIAS_HASH_BUCKETS 64 /* must be power of two */ ++ALLOCATE_BUFFERS macro 158 input.c #define ALLOCATE_BUFFERS(n) \ ++ALL_ELEMENT_SUB macro 177 array.h #define ALL_ELEMENT_SUB(c) ((c) == '@' || (c) == '*') ++AL_BEINGEXPANDED macro 36 alias.h #define AL_BEINGEXPANDED 0x2 ++AL_EXPANDNEXT macro 35 alias.h #define AL_EXPANDNEXT 0x1 ++AL_REUSABLE macro 64 /usr/local/src/bash/bash-20230914/builtins/alias.def #define AL_REUSABLE 0x01 ++AMBIGUOUS_REDIRECT macro 42 command.h #define AMBIGUOUS_REDIRECT -1 ++ANDOR macro 75 test.c #define ANDOR(s) (s[0] == '-' && (s[1] == 'a' || s[1] == 'o') && s[2] == 0) ++ANY_PID macro 201 jobs.h #define ANY_PID (pid_t)-1 ++ARITH_COM typedef 316 command.h } ARITH_COM; ++ARITH_EXP_CHAR macro 3790 subst.c #define ARITH_EXP_CHAR(s) (s == '$' || s == '`' || s == CTLESC || s == '~') ++ARITH_FOR_COM typedef 277 command.h } ARITH_FOR_COM; ++ARRAY typedef 41 array.h } ARRAY; ++ARRAY typedef 126 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c } ARRAY; ++ARRAYREF_BUILTIN macro 48 builtins.h #define ARRAYREF_BUILTIN 0x80 /* This builtin takes array references as arguments */ ++ARRAY_ASSOC macro 36 arrayfunc.h #define ARRAY_ASSOC 2 ++ARRAY_DEFAULT_SIZE macro 51 array.h #define ARRAY_DEFAULT_SIZE 1024 ++ARRAY_ELEMENT typedef 49 array.h } ARRAY_ELEMENT; ++ARRAY_ELEMENT_REPLACE macro 166 array.h #define ARRAY_ELEMENT_REPLACE(ae, v) \ ++ARRAY_INDEXED macro 35 arrayfunc.h #define ARRAY_INDEXED 1 ++ARRAY_INVALID macro 33 arrayfunc.h #define ARRAY_INVALID -1 ++ARRAY_SCALAR macro 34 arrayfunc.h #define ARRAY_SCALAR 0 ++ARRAY_VALUE_REPLACE macro 173 array.h #define ARRAY_VALUE_REPLACE(a, i, v) \ ++ASSIGNMENT_BUILTIN macro 45 builtins.h #define ASSIGNMENT_BUILTIN 0x10 /* This builtin takes assignment statements. */ ++ASSIGN_RETURN macro 3573 subst.c #define ASSIGN_RETURN(r) \ ++ASSOC_HASH_BUCKETS macro 28 assoc.h #define ASSOC_HASH_BUCKETS 1024 ++ASS_ALLOWALLSUB macro 58 subst.h #define ASS_ALLOWALLSUB 0x0800 /* allow * and @ as associative array keys */ ++ASS_APPEND macro 47 subst.h #define ASS_APPEND 0x0001 ++ASS_CHKLOCAL macro 53 subst.h #define ASS_CHKLOCAL 0x0040 /* check local variable before assignment */ ++ASS_FORCE macro 52 subst.h #define ASS_FORCE 0x0020 /* force assignment even to readonly variable */ ++ASS_MKASSOC macro 49 subst.h #define ASS_MKASSOC 0x0004 ++ASS_MKGLOBAL macro 50 subst.h #define ASS_MKGLOBAL 0x0008 /* force global assignment */ ++ASS_MKLOCAL macro 48 subst.h #define ASS_MKLOCAL 0x0002 ++ASS_NAMEREF macro 51 subst.h #define ASS_NAMEREF 0x0010 /* assigning to nameref variable */ ++ASS_NOEVAL macro 55 subst.h #define ASS_NOEVAL 0x0100 /* don't evaluate value as expression */ ++ASS_NOEXPAND macro 54 subst.h #define ASS_NOEXPAND 0x0080 /* don't expand associative array subscripts */ ++ASS_NOINVIS macro 57 subst.h #define ASS_NOINVIS 0x0400 /* don't resolve local invisible variables */ ++ASS_NOLONGJMP macro 56 subst.h #define ASS_NOLONGJMP 0x0200 /* don't longjmp on fatal assignment error */ ++ASS_NOTEMPENV macro 60 subst.h #define ASS_NOTEMPENV 0x2000 /* don't assign into temporary environment */ ++ASS_ONEWORD macro 59 subst.h #define ASS_ONEWORD 0x1000 /* don't check array subscripts, assume higher level has done that */ ++AS_DISPOSE macro 119 array.h #define AS_DISPOSE 0x01 ++ATTROPTS macro 112 /usr/local/src/bash/bash-20230914/builtins/setattr.def # define ATTROPTS "aAfnp" ++ATTROPTS macro 114 /usr/local/src/bash/bash-20230914/builtins/setattr.def # define ATTROPTS "fnp" ++AV_ALLOWALL macro 57 arrayfunc.h #define AV_ALLOWALL 0x001 /* treat a[@] like $@ and a[*] like $* */ ++AV_ALLOWALL macro 124 arrayfunc.h #define AV_ALLOWALL 0 ++AV_ASSIGNRHS macro 61 arrayfunc.h #define AV_ASSIGNRHS 0x010 /* no splitting, special case ${a[@]} */ ++AV_ASSIGNRHS macro 128 arrayfunc.h #define AV_ASSIGNRHS 0 ++AV_ATSTARKEYS macro 64 arrayfunc.h #define AV_ATSTARKEYS 0x080 /* accept a[@] and a[*] but use them as keys, not special values */ ++AV_ATSTARKEYS macro 131 arrayfunc.h #define AV_ATSTARKEYS 0 ++AV_NOEXPAND macro 62 arrayfunc.h #define AV_NOEXPAND 0x020 /* don't run assoc subscripts through word expansion */ ++AV_NOEXPAND macro 129 arrayfunc.h #define AV_NOEXPAND 0 ++AV_ONEWORD macro 63 arrayfunc.h #define AV_ONEWORD 0x040 /* not used yet */ ++AV_ONEWORD macro 130 arrayfunc.h #define AV_ONEWORD 0 ++AV_QUOTED macro 58 arrayfunc.h #define AV_QUOTED 0x002 ++AV_QUOTED macro 125 arrayfunc.h #define AV_QUOTED 0 ++AV_USEIND macro 59 arrayfunc.h #define AV_USEIND 0x004 ++AV_USEIND macro 126 arrayfunc.h #define AV_USEIND 0 ++AV_USEVAL macro 60 arrayfunc.h #define AV_USEVAL 0x008 /* XXX - should move this */ ++AV_USEVAL macro 127 arrayfunc.h #define AV_USEVAL 0 ++Arith member 215 command.h struct arith_com *Arith; ++ArithFor member 221 command.h struct arith_for_com *ArithFor; ++BADOPT macro 110 /usr/local/src/bash/bash-20230914/builtins/getopt.c #define BADOPT(x) fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], x) ++BADVAR_REDIRECT macro 46 command.h #define BADVAR_REDIRECT -5 /* something wrong with {varname}redir */ ++BAD_JOBSPEC macro 196 jobs.h #define BAD_JOBSPEC -3 /* Bad syntax for job spec. */ ++BAND macro 133 expr.c #define BAND '&' /* Bitwise AND */ ++BASE_INDENT macro 50 builtins.h #define BASE_INDENT 4 ++BASE_INDENT macro 75 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define BASE_INDENT 4 ++BASHARRAY_PREFIX macro 94 variables.c #define BASHARRAY_PREFIX "BASH_ARRAY_" ++BASHARRAY_PREFLEN macro 95 variables.c #define BASHARRAY_PREFLEN 11 ++BASHARRAY_SUFFIX macro 96 variables.c #define BASHARRAY_SUFFIX "%%" ++BASHARRAY_SUFFLEN macro 97 variables.c #define BASHARRAY_SUFFLEN 2 ++BASHASSOC_PREFIX macro 99 variables.c #define BASHASSOC_PREFIX "BASH_ASSOC_" ++BASHASSOC_PREFLEN macro 100 variables.c #define BASHASSOC_PREFLEN 11 ++BASHASSOC_SUFFIX macro 101 variables.c #define BASHASSOC_SUFFIX "%%" /* needs to be the same as BASHARRAY_SUFFIX */ ++BASHASSOC_SUFFLEN macro 102 variables.c #define BASHASSOC_SUFFLEN 2 ++BASHFUNC_PREFIX macro 88 variables.c #define BASHFUNC_PREFIX "BASH_FUNC_" ++BASHFUNC_PREFLEN macro 89 variables.c #define BASHFUNC_PREFLEN 10 /* == strlen(BASHFUNC_PREFIX */ ++BASHFUNC_SUFFIX macro 90 variables.c #define BASHFUNC_SUFFIX "%%" ++BASHFUNC_SUFFLEN macro 91 variables.c #define BASHFUNC_SUFFLEN 2 /* == strlen(BASHFUNC_SUFFIX) */ ++BASH_INPUT typedef 84 input.h } BASH_INPUT; ++BASH_NSIG macro 46 trap.h #define BASH_NSIG NSIG+3 ++BASH_TIMEFORMAT macro 1201 execute_cmd.c #define BASH_TIMEFORMAT "\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS" ++BGPIDS_TABLE_SZ macro 107 jobs.c #define BGPIDS_TABLE_SZ 512 ++BIND_RETURN macro 93 /usr/local/src/bash/bash-20230914/builtins/bind.def #define BIND_RETURN(x) do { return_code = x; goto bind_exit; } while (0) ++BLOCKSIZE macro 205 /usr/local/src/bash/bash-20230914/builtins/ulimit.def #define BLOCKSIZE(x) (((x) == POSIXBLK) ? (posixly_correct ? 512 : 1024) : (x)) ++BLOCK_CHILD macro 97 sig.h # define BLOCK_CHILD(nvar, ovar) BLOCK_SIGNAL (SIGCHLD, nvar, ovar) ++BLOCK_CHILD macro 100 sig.h # define BLOCK_CHILD(nvar, ovar) ovar = sigblock (sigmask (SIGCHLD)) ++BLOCK_SIGNAL macro 86 sig.h #define BLOCK_SIGNAL(sig, nvar, ovar) \ ++BNOT macro 136 expr.c #define BNOT '~' /* Bitwise NOT; Two's complement. */ ++BOR macro 134 expr.c #define BOR '|' /* Bitwise OR. */ ++BRACE_SEQ_SPECIFIER macro 60 braces.c #define BRACE_SEQ_SPECIFIER ".." ++BSTREAM struct 45 input.h typedef struct BSTREAM ++BUCKET_CONTENTS typedef 36 hashlib.h } BUCKET_CONTENTS; ++BUFFERED_STREAM typedef 53 input.h } BUFFERED_STREAM; ++BUILTINS_H macro 22 builtins.h #define BUILTINS_H ++BUILTIN_DELETED macro 42 builtins.h #define BUILTIN_DELETED 0x02 /* This has been deleted with enable -d. */ ++BUILTIN_DESC typedef 137 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c } BUILTIN_DESC; ++BUILTIN_ENABLED macro 41 builtins.h #define BUILTIN_ENABLED 0x01 /* This builtin is enabled. */ ++BUILTIN_FLAG_ARRAYREF_ARG macro 73 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define BUILTIN_FLAG_ARRAYREF_ARG 0x10 ++BUILTIN_FLAG_ASSIGNMENT macro 70 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define BUILTIN_FLAG_ASSIGNMENT 0x02 ++BUILTIN_FLAG_LOCALVAR macro 71 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define BUILTIN_FLAG_LOCALVAR 0x04 ++BUILTIN_FLAG_POSIX_BUILTIN macro 72 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define BUILTIN_FLAG_POSIX_BUILTIN 0x08 ++BUILTIN_FLAG_SPECIAL macro 69 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define BUILTIN_FLAG_SPECIAL 0x01 ++BXOR macro 135 expr.c #define BXOR '^' /* Bitwise eXclusive OR. */ ++B_EOF macro 32 input.h #undef B_EOF ++B_EOF macro 36 input.h #define B_EOF 0x01 ++B_ERROR macro 33 input.h #undef B_ERROR /* There are some systems with this define */ ++B_ERROR macro 37 input.h #define B_ERROR 0x02 ++B_SHAREDBUF macro 41 input.h #define B_SHAREDBUF 0x20 /* shared input buffer */ ++B_TEXT macro 40 input.h #define B_TEXT 0x10 ++B_UNBUFF macro 34 input.h #undef B_UNBUFF ++B_UNBUFF macro 38 input.h #define B_UNBUFF 0x04 ++B_WASBASHINPUT macro 39 input.h #define B_WASBASHINPUT 0x08 ++CACHE_IMPORTSTR macro 210 variables.h #define CACHE_IMPORTSTR(var, value) \ ++CASEPAT_FALLTHROUGH macro 239 command.h #define CASEPAT_FALLTHROUGH 0x01 ++CASEPAT_TESTNEXT macro 240 command.h #define CASEPAT_TESTNEXT 0x02 ++CASE_CAPITALIZE macro 195 externs.h #define CASE_CAPITALIZE 0x0004 ++CASE_COM typedef 256 command.h } CASE_COM; ++CASE_LOWER macro 193 externs.h #define CASE_LOWER 0x0001 ++CASE_LOWFIRST macro 200 externs.h #define CASE_LOWFIRST 0x0080 ++CASE_TOGGLE macro 197 externs.h #define CASE_TOGGLE 0x0010 ++CASE_TOGGLEALL macro 198 externs.h #define CASE_TOGGLEALL 0x0020 ++CASE_UNCAP macro 196 externs.h #define CASE_UNCAP 0x0008 ++CASE_UPFIRST macro 199 externs.h #define CASE_UPFIRST 0x0040 ++CASE_UPPER macro 194 externs.h #define CASE_UPPER 0x0002 ++CASE_USEWORDS macro 202 externs.h #define CASE_USEWORDS 0x1000 ++CA_ALIAS macro 44 pcomplete.h #define CA_ALIAS (1<<0) ++CA_ARRAYVAR macro 45 pcomplete.h #define CA_ARRAYVAR (1<<1) ++CA_BINDING macro 46 pcomplete.h #define CA_BINDING (1<<2) ++CA_BUILTIN macro 47 pcomplete.h #define CA_BUILTIN (1<<3) ++CA_COMMAND macro 48 pcomplete.h #define CA_COMMAND (1<<4) ++CA_DIRECTORY macro 49 pcomplete.h #define CA_DIRECTORY (1<<5) ++CA_DISABLED macro 50 pcomplete.h #define CA_DISABLED (1<<6) ++CA_ENABLED macro 51 pcomplete.h #define CA_ENABLED (1<<7) ++CA_EXPORT macro 52 pcomplete.h #define CA_EXPORT (1<<8) ++CA_FILE macro 53 pcomplete.h #define CA_FILE (1<<9) ++CA_FUNCTION macro 54 pcomplete.h #define CA_FUNCTION (1<<10) ++CA_GROUP macro 55 pcomplete.h #define CA_GROUP (1<<11) ++CA_HELPTOPIC macro 56 pcomplete.h #define CA_HELPTOPIC (1<<12) ++CA_HOSTNAME macro 57 pcomplete.h #define CA_HOSTNAME (1<<13) ++CA_JOB macro 58 pcomplete.h #define CA_JOB (1<<14) ++CA_KEYWORD macro 59 pcomplete.h #define CA_KEYWORD (1<<15) ++CA_RUNNING macro 60 pcomplete.h #define CA_RUNNING (1<<16) ++CA_SERVICE macro 61 pcomplete.h #define CA_SERVICE (1<<17) ++CA_SETOPT macro 62 pcomplete.h #define CA_SETOPT (1<<18) ++CA_SHOPT macro 63 pcomplete.h #define CA_SHOPT (1<<19) ++CA_SIGNAL macro 64 pcomplete.h #define CA_SIGNAL (1<<20) ++CA_STOPPED macro 65 pcomplete.h #define CA_STOPPED (1<<21) ++CA_USER macro 66 pcomplete.h #define CA_USER (1<<22) ++CA_VARIABLE macro 67 pcomplete.h #define CA_VARIABLE (1<<23) ++CBACKQ macro 54 syntax.h #define CBACKQ 0x0004 /* back quote */ ++CBLANK macro 65 syntax.h #define CBLANK 0x2000 /* whitespace (blank) character */ ++CBSDQUOTE macro 58 syntax.h #define CBSDQUOTE 0x0040 /* characters escaped by backslash in double quotes */ ++CBSHDOC macro 59 syntax.h #define CBSHDOC 0x0080 /* characters escaped by backslash in here doc */ ++CEXP macro 57 syntax.h #define CEXP 0x0020 /* shell expansion character */ ++CFLAG macro 102 /usr/local/src/bash/bash-20230914/builtins/history.def #define CFLAG 0x40 ++CGLOB macro 60 syntax.h #define CGLOB 0x0100 /* globbing characters */ ++CHAR_BIT macro 30 /usr/local/src/bash/bash-20230914/include/typemax.h # define CHAR_BIT 8 ++CHAR_BIT macro 76 general.h # define CHAR_BIT 8 ++CHAR_MAX macro 69 general.h # define CHAR_MAX 0xff ++CHAR_MAX macro 71 general.h # define CHAR_MAX 0x7f ++CHECK_SIGTERM macro 72 quit.h #define CHECK_SIGTERM \ ++CHECK_STRING_OVERRUN macro 135 subst.c #define CHECK_STRING_OVERRUN(oind, ind, len, ch) \ ++CHECK_TERMSIG macro 53 quit.h #define CHECK_TERMSIG \ ++CHECK_WAIT_INTR macro 61 quit.h #define CHECK_WAIT_INTR \ ++CHECK_WINCH macro 77 quit.h #define CHECK_WINCH \ ++CHECK_XTRACE_FP macro 112 print_cmd.c #define CHECK_XTRACE_FP xtrace_fp = (xtrace_fp ? xtrace_fp : stderr) ++CLEARSTAK macro 170 /usr/local/src/bash/bash-20230914/builtins/pushd.def #define CLEARSTAK 0x08 ++CLEAR_EXPORTSTR macro 202 variables.h #define CLEAR_EXPORTSTR(var) (var)->exportstr = (char *)NULL ++CLK_TCK macro 36 /usr/local/src/bash/bash-20230914/include/posixtime.h # define CLK_TCK HZ ++CLK_TCK macro 38 /usr/local/src/bash/bash-20230914/include/posixtime.h # define CLK_TCK 60 /* 60HZ */ ++CLOBBERING_REDIRECT macro 48 command.h #define CLOBBERING_REDIRECT(ri) \ ++CLRINTERRUPT macro 42 quit.h #define CLRINTERRUPT interrupt_state = 0 ++CLSIZE macro 46 /usr/local/src/bash/bash-20230914/lib/malloc/getpagesize.h # define CLSIZE 1 ++CMDERR_BADCONN macro 394 command.h #define CMDERR_BADCONN 2 ++CMDERR_BADJUMP macro 395 command.h #define CMDERR_BADJUMP 3 ++CMDERR_BADTYPE macro 393 command.h #define CMDERR_BADTYPE 1 ++CMDERR_DEFAULT macro 392 command.h #define CMDERR_DEFAULT 0 ++CMDERR_LAST macro 397 command.h #define CMDERR_LAST 3 ++CMD_AMPERSAND macro 188 command.h #define CMD_AMPERSAND 0x200 /* command & */ ++CMD_COMMAND_BUILTIN macro 190 command.h #define CMD_COMMAND_BUILTIN 0x0800 /* command executed by `command' builtin */ ++CMD_COPROC_SUBSHELL macro 191 command.h #define CMD_COPROC_SUBSHELL 0x1000 ++CMD_FORCE_SUBSHELL macro 180 command.h #define CMD_FORCE_SUBSHELL 0x02 /* Shell needs to force a subshell. */ ++CMD_IGNORE_RETURN macro 182 command.h #define CMD_IGNORE_RETURN 0x08 /* Ignore the exit value. For set -e. */ ++CMD_INHIBIT_EXPANSION macro 184 command.h #define CMD_INHIBIT_EXPANSION 0x20 /* Do not expand the command words. */ ++CMD_INVERT_RETURN macro 181 command.h #define CMD_INVERT_RETURN 0x04 /* Invert the exit value. */ ++CMD_IS_DIR macro 1837 bashline.c #define CMD_IS_DIR(x) (absolute_pathname(x) == 0 && absolute_program(x) == 0 && *(x) != '~' && test_for_directory (x)) ++CMD_LASTPIPE macro 192 command.h #define CMD_LASTPIPE 0x2000 ++CMD_NO_FORK macro 185 command.h #define CMD_NO_FORK 0x40 /* Don't fork; just call execve */ ++CMD_NO_FUNCTIONS macro 183 command.h #define CMD_NO_FUNCTIONS 0x10 /* Ignore functions during command lookup. */ ++CMD_STDIN_REDIR macro 189 command.h #define CMD_STDIN_REDIR 0x400 /* async command needs implicit exportstr) ? savestring ((var)->exportstr) : (char *)NULL ++COPY_PROCENV macro 35 bashjmp.h #define COPY_PROCENV(old, save) \ ++CPP_STRING macro 41 /usr/local/src/bash/bash-20230914/include/stdc.h # define CPP_STRING(x) #x ++CPP_STRING macro 43 /usr/local/src/bash/bash-20230914/include/stdc.h # define CPP_STRING(x) "x" ++CPP_STRING macro 51 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h # define CPP_STRING(x) #x ++CPP_STRING macro 53 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h # define CPP_STRING(x) "x" ++CQUOTE macro 55 syntax.h #define CQUOTE 0x0008 /* shell quote character */ ++CQ_RETURN macro 2060 subst.c #define CQ_RETURN(x) do { no_longjmp_on_fatal_error = oldjmp; return (x); } while (0) ++CSHBRK macro 53 syntax.h #define CSHBRK 0x0002 /* shell break character */ ++CSHMETA macro 52 syntax.h #define CSHMETA 0x0001 /* shell meta character */ ++CSPECL macro 56 syntax.h #define CSPECL 0x0010 /* special character that needs quoting */ ++CSPECVAR macro 63 syntax.h #define CSPECVAR 0x0800 /* single-character shell variable name */ ++CSUBSTOP macro 64 syntax.h #define CSUBSTOP 0x1000 /* values of OP for ${word[:]OPstuff} */ ++CTLESC macro 99 syntax.h #define CTLESC '\001' ++CTLESC macro 146 shell.h #define CTLESC '\001' ++CTLNUL macro 100 syntax.h #define CTLNUL '\177' ++CTLNUL macro 147 shell.h #define CTLNUL '\177' ++CWORD macro 51 syntax.h #define CWORD 0x0000 /* nothing special; an ordinary character */ ++CXGLOB macro 61 syntax.h #define CXGLOB 0x0200 /* extended globbing characters */ ++CXQUOTE macro 62 syntax.h #define CXQUOTE 0x0400 /* cquote + backslash */ ++Carg variable 105 /usr/local/src/bash/bash-20230914/builtins/complete.def static char *Garg, *Warg, *Parg, *Sarg, *Xarg, *Farg, *Carg; ++Case member 204 command.h struct case_com *Case; ++Charp macro 245 shell.c #define Charp 2 ++Cond member 218 command.h struct cond_com *Cond; ++Connection member 207 command.h struct connection *Connection; ++Coproc member 224 command.h struct coproc_com *Coproc; ++Coproc typedef 380 command.h } Coproc; ++DEADJOB macro 101 jobs.h #define DEADJOB(j) (jobs[(j)]->state == JDEAD) ++DEBUG_TRAP macro 40 trap.h #define DEBUG_TRAP NSIG ++DECLARE_OPTS macro 142 /usr/local/src/bash/bash-20230914/builtins/declare.def # define DECLARE_OPTS "+acfgilnprtuxAFGI" ++DEFAULTCMD macro 110 pcomplete.h #define DEFAULTCMD "_DefaultCmD_" ++DEFAULT_ARRAY_NAME macro 97 /usr/local/src/bash/bash-20230914/builtins/mapfile.def #define DEFAULT_ARRAY_NAME "MAPFILE" ++DEFAULT_ARRAY_SIZE macro 77 subst.c #define DEFAULT_ARRAY_SIZE 128 ++DEFAULT_CHILD_MAX macro 52 nojobs.c #define DEFAULT_CHILD_MAX 4096 ++DEFAULT_CHILD_MAX macro 92 jobs.c # define DEFAULT_CHILD_MAX 4096 ++DEFAULT_HASH_BUCKETS macro 72 hashlib.h #define DEFAULT_HASH_BUCKETS 128 /* must be power of two */ ++DEFAULT_INITIAL_ARRAY_SIZE macro 76 subst.c #define DEFAULT_INITIAL_ARRAY_SIZE 112 ++DEFAULT_QUANTUM macro 101 /usr/local/src/bash/bash-20230914/builtins/mapfile.def #define DEFAULT_QUANTUM 5000 ++DEFAULT_SIG macro 36 trap.h #define DEFAULT_SIG SIG_DFL ++DEFAULT_VARIABLE_NAME macro 98 /usr/local/src/bash/bash-20230914/builtins/mapfile.def #define DEFAULT_VARIABLE_NAME "MAPLINE" /* not used right now */ ++DEFCOMP_CMDPOS macro 342 bashline.c #define DEFCOMP_CMDPOS 1 ++DEF_FILE typedef 147 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c } DEF_FILE; ++DELINTERRUPT macro 45 quit.h #define DELINTERRUPT interrupt_state-- ++DEL_NOBGPID macro 111 jobs.c #define DEL_NOBGPID 2 /* don't add pgrp leader to bgpids */ ++DEL_WARNSTOPPED macro 110 jobs.c #define DEL_WARNSTOPPED 1 /* warn about deleting stopped jobs */ ++DESCRIBE_PID macro 589 execute_cmd.c #define DESCRIBE_PID(pid) do { if (interactive) describe_pid (pid); } while (0) ++DFLAG macro 81 /usr/local/src/bash/bash-20230914/builtins/enable.def #define DFLAG 0x02 ++DFLAG macro 103 /usr/local/src/bash/bash-20230914/builtins/history.def #define DFLAG 0x80 ++DIRSEP macro 266 general.h #define DIRSEP '/' ++DIRSTACK_ENTRY macro 490 /usr/local/src/bash/bash-20230914/builtins/pushd.def #define DIRSTACK_ENTRY(i) \ ++DIRSTACK_FORMAT macro 469 /usr/local/src/bash/bash-20230914/builtins/pushd.def #define DIRSTACK_FORMAT(temp) \ ++DISABLED macro 76 /usr/local/src/bash/bash-20230914/builtins/enable.def #define DISABLED 2 ++DISCARD macro 41 bashjmp.h #define DISCARD 2 /* Discard current command. */ ++DISP_ACTIONONLY macro 110 /usr/local/src/bash/bash-20230914/builtins/trap.def #define DISP_ACTIONONLY 4 ++DISP_ACTIONONLY macro 329 /usr/local/src/bash/bash-20230914/builtins/trap.def #define DISP_ACTIONONLY 4 ++DISP_ALLSIGS macro 109 /usr/local/src/bash/bash-20230914/builtins/trap.def #define DISP_ALLSIGS 2 ++DISP_ALLSIGS macro 328 /usr/local/src/bash/bash-20230914/builtins/trap.def #define DISP_ALLSIGS 2 ++DISP_TRAPCMD macro 108 /usr/local/src/bash/bash-20230914/builtins/trap.def #define DISP_TRAPCMD 1 ++DISP_TRAPCMD macro 327 /usr/local/src/bash/bash-20230914/builtins/trap.def #define DISP_TRAPCMD 1 ++DIV macro 128 expr.c #define DIV '/' ++DOCFILE macro 56 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define DOCFILE "builtins.texi" ++DOLBRACE_OP macro 73 parser.h #define DOLBRACE_OP 0x02 ++DOLBRACE_PARAM macro 72 parser.h #define DOLBRACE_PARAM 0x01 ++DOLBRACE_QUOTE macro 76 parser.h #define DOLBRACE_QUOTE 0x40 /* single quote is special in double quotes */ ++DOLBRACE_QUOTE2 macro 77 parser.h #define DOLBRACE_QUOTE2 0x80 /* single quote is semi-special in double quotes */ ++DOLBRACE_WORD macro 74 parser.h #define DOLBRACE_WORD 0x04 ++DOLLAR_AT_STAR macro 107 subst.c #define DOLLAR_AT_STAR(c) ((c) == '@' || (c) == '*') ++DOT_OR_DOTDOT macro 274 general.h #define DOT_OR_DOTDOT(s) (s[0] == '.' && (s[1] == 0 || (s[1] == '.' && s[2] == 0))) ++DSIG_NOCASE macro 50 trap.h #define DSIG_NOCASE 0x02 /* case-insensitive comparison */ ++DSIG_SIGPREFIX macro 49 trap.h #define DSIG_SIGPREFIX 0x01 /* don't allow `SIG' PREFIX */ ++DUP_JOB macro 195 jobs.h #define DUP_JOB -2 /* A possible return value for get_job_spec (). */ ++D_ macro 38 bashintl.h #define D_(d, msgid) dgettext(d, msgid) ++D_FILENO_AVAILABLE macro 68 /usr/local/src/bash/bash-20230914/include/posixdir.h # define D_FILENO_AVAILABLE 1 ++D_INO_AVAILABLE macro 63 /usr/local/src/bash/bash-20230914/include/posixdir.h # define D_INO_AVAILABLE ++D_NAMLEN macro 29 /usr/local/src/bash/bash-20230914/include/posixdir.h # define D_NAMLEN(d) ((d)->d_namlen) ++D_NAMLEN macro 31 /usr/local/src/bash/bash-20230914/include/posixdir.h # define D_NAMLEN(d) (strlen ((d)->d_name)) ++D_NAMLEN macro 46 /usr/local/src/bash/bash-20230914/include/posixdir.h # define D_NAMLEN(d) ((d)->d_namlen) ++Dflag member 82 /usr/local/src/bash/bash-20230914/builtins/complete.def int Dflag; ++ECHO macro 50 /usr/local/src/bash/bash-20230914/include/shtty.h # undef ECHO ++EDITOR variable 35 /usr/local/src/bash/bash-20230914/builtins/fc.def -e ENAME select which editor to use. Default is FCEDIT, then EDITOR, ++EF macro 93 test.c #define EF 2 ++ELEMENT typedef 176 command.h } ELEMENT; ++EMACS_EDITING_MODE macro 87 bashline.c # define EMACS_EDITING_MODE 1 ++EMACS_EDIT_COMMAND macro 933 bashline.c #define EMACS_EDIT_COMMAND "fc -e \"${VISUAL:-${EDITOR:-emacs}}\"" ++EMPTYCMD macro 109 pcomplete.h #define EMPTYCMD "_EmptycmD_" ++ENABLED macro 75 /usr/local/src/bash/bash-20230914/builtins/enable.def #define ENABLED 1 ++ENABLE_NLS macro 25 bashintl.h # undef ENABLE_NLS ++ENABLE_NLS macro 26 bashintl.h # define ENABLE_NLS 0 ++EQ macro 84 test.c #define EQ 0 ++EQ macro 122 expr.c #define EQ '=' ++EQEQ macro 105 expr.c #define EQEQ 1 /* "==" */ ++ERREXIT macro 43 bashjmp.h #define ERREXIT 4 /* Exit due to error condition */ ++ERROR_TRAP macro 41 trap.h #define ERROR_TRAP NSIG+1 ++EXECUTION_FAILURE macro 52 shell.h #define EXECUTION_FAILURE 1 ++EXECUTION_SUCCESS macro 53 shell.h #define EXECUTION_SUCCESS 0 ++EXITBLTIN macro 45 bashjmp.h #define EXITBLTIN 6 /* Exit due to the exit builtin. */ ++EXITPROG macro 42 bashjmp.h #define EXITPROG 3 /* Unconditionally exit the program now. */ ++EXIT_CASE macro 3614 execute_cmd.c #define EXIT_CASE() goto exit_case_command ++EXIT_TRAP macro 43 trap.h #define EXIT_TRAP 0 ++EXPCHAR macro 115 print_cmd.c #define EXPCHAR(c) ((c) == '{' || (c) == '~' || (c) == '$' || (c) == '`') ++EXPFUNC typedef 147 subst.c typedef WORD_LIST *EXPFUNC (const char *, int); ++EXPR_CONTEXT typedef 166 expr.c } EXPR_CONTEXT; ++EXPR_STACK_GROW_SIZE macro 96 expr.c #define EXPR_STACK_GROW_SIZE 10 ++EXP_CHAR macro 3783 subst.c #define EXP_CHAR(s) (s == '$' || s == '`' || s == '<' || s == '>' || s == CTLESC || s == '~') ++EXP_CHAR macro 3785 subst.c #define EXP_CHAR(s) (s == '$' || s == '`' || s == CTLESC || s == '~') ++EXP_EXPANDED macro 30 externs.h #define EXP_EXPANDED 0x01 ++EXP_LOWEST macro 143 expr.c #define EXP_LOWEST expcomma ++EX_BADASSIGN macro 73 shell.h #define EX_BADASSIGN 260 /* variable assignment error */ ++EX_BADSYNTAX macro 70 shell.h #define EX_BADSYNTAX 257 /* shell syntax error */ ++EX_BADUSAGE macro 56 shell.h #define EX_BADUSAGE 2 ++EX_BINARY_FILE macro 63 shell.h #define EX_BINARY_FILE 126 ++EX_DISKFALLBACK macro 75 shell.h #define EX_DISKFALLBACK 262 /* fall back to disk command from builtin */ ++EX_EXPFAIL macro 74 shell.h #define EX_EXPFAIL 261 /* word expansion failed */ ++EX_MISCERROR macro 58 shell.h #define EX_MISCERROR 2 ++EX_NOEXEC macro 64 shell.h #define EX_NOEXEC 126 ++EX_NOINPUT macro 65 shell.h #define EX_NOINPUT 126 ++EX_NOTFOUND macro 66 shell.h #define EX_NOTFOUND 127 ++EX_REDIRFAIL macro 72 shell.h #define EX_REDIRFAIL 259 /* redirection failed */ ++EX_RETRYFAIL macro 61 shell.h #define EX_RETRYFAIL 124 ++EX_SHERRBASE macro 68 shell.h #define EX_SHERRBASE 256 /* all special error values are > this. */ ++EX_USAGE macro 71 shell.h #define EX_USAGE 258 /* syntax error in usage */ ++EX_UTILERROR macro 76 shell.h #define EX_UTILERROR 263 /* Posix special builtin utility error */ ++EX_WEXPCOMSUB macro 62 shell.h #define EX_WEXPCOMSUB 125 ++Eflag member 83 /usr/local/src/bash/bash-20230914/builtins/complete.def int Eflag; ++FALSE macro 100 test.c #define FALSE 0 ++FASTCOPY macro 58 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h # define FASTCOPY(s, d, n) __builtin_memcpy (d, s, n) ++FASTCOPY macro 62 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h # define FASTCOPY(s, d, n) memcpy (d, s, n) ++FASTCOPY macro 64 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h # define FASTCOPY(s, d, n) memmove (d, s, n) ++FASTCOPY macro 67 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h # define FASTCOPY(s, d, n) bcopy (s, d, n) ++FASTCOPY macro 139 general.h # define FASTCOPY(s, d, n) __builtin_memcpy ((d), (s), (n)) ++FASTCOPY macro 143 general.h # define FASTCOPY(s, d, n) memcpy ((d), (s), (n)) ++FASTCOPY macro 145 general.h # define FASTCOPY(s, d, n) memmove ((d), (s), (n)) ++FASTCOPY macro 148 general.h # define FASTCOPY(s, d, n) bcopy ((s), (d), (n)) ++FC_EDIT_COMMAND macro 182 /usr/local/src/bash/bash-20230914/builtins/fc.def #define FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-vi}}" ++FD_BITMAP_DEFAULT_SIZE macro 319 execute_cmd.c #define FD_BITMAP_DEFAULT_SIZE 32 ++FD_BITMAP_SIZE macro 144 shell.h #define FD_BITMAP_SIZE 32 ++FD_CLOEXEC macro 28 /usr/local/src/bash/bash-20230914/include/filecntl.h #define FD_CLOEXEC 1 ++FD_NCLOEXEC macro 31 /usr/local/src/bash/bash-20230914/include/filecntl.h #define FD_NCLOEXEC 0 ++FEVAL_BUILTIN macro 63 /usr/local/src/bash/bash-20230914/builtins/evalfile.c #define FEVAL_BUILTIN 0x002 ++FEVAL_CHECKBINARY macro 68 /usr/local/src/bash/bash-20230914/builtins/evalfile.c #define FEVAL_CHECKBINARY 0x040 ++FEVAL_ENOENTOK macro 62 /usr/local/src/bash/bash-20230914/builtins/evalfile.c #define FEVAL_ENOENTOK 0x001 ++FEVAL_HISTORY macro 67 /usr/local/src/bash/bash-20230914/builtins/evalfile.c #define FEVAL_HISTORY 0x020 ++FEVAL_LONGJMP macro 66 /usr/local/src/bash/bash-20230914/builtins/evalfile.c #define FEVAL_LONGJMP 0x010 ++FEVAL_NONINT macro 65 /usr/local/src/bash/bash-20230914/builtins/evalfile.c #define FEVAL_NONINT 0x008 ++FEVAL_NOPUSHARGS macro 70 /usr/local/src/bash/bash-20230914/builtins/evalfile.c #define FEVAL_NOPUSHARGS 0x100 ++FEVAL_REGFILE macro 69 /usr/local/src/bash/bash-20230914/builtins/evalfile.c #define FEVAL_REGFILE 0x080 ++FEVAL_UNWINDPROT macro 64 /usr/local/src/bash/bash-20230914/builtins/evalfile.c #define FEVAL_UNWINDPROT 0x004 ++FFLAG macro 82 /usr/local/src/bash/bash-20230914/builtins/enable.def #define FFLAG 0x04 ++FFLAG macro 97 /usr/local/src/bash/bash-20230914/builtins/bind.def #define FFLAG 0x0004 ++FIFO_INCR macro 5835 subst.c #define FIFO_INCR 20 ++FILEINFO typedef 59 mailcheck.c } FILEINFO; ++FILENAME_HASH_BUCKETS macro 24 hashcmd.h #define FILENAME_HASH_BUCKETS 256 /* must be power of two */ ++FINDBRK macro 63 xmalloc.c #define FINDBRK() \ ++FINDBRK macro 79 xmalloc.c #define FINDBRK() ++FIND_CHILD macro 2831 jobs.c #define FIND_CHILD(pid, child) \ ++FIND_OR_MAKE_VARIABLE macro 4026 variables.c #define FIND_OR_MAKE_VARIABLE(name, entry) \ ++FLAG_ERROR macro 31 flags.h #define FLAG_ERROR -1 ++FLAG_OFF macro 29 flags.h #define FLAG_OFF '+' ++FLAG_ON macro 28 flags.h #define FLAG_ON '-' ++FLAG_UNKNOWN macro 32 flags.h #define FLAG_UNKNOWN (int *)0 ++FLOATMAX_CONV macro 215 /usr/local/src/bash/bash-20230914/builtins/printf.def # define FLOATMAX_CONV "L" ++FLOATMAX_CONV macro 220 /usr/local/src/bash/bash-20230914/builtins/printf.def # define FLOATMAX_CONV "" ++FL_ADDBASE macro 222 externs.h #define FL_ADDBASE 0x02 /* add base# prefix to converted value */ ++FL_HEXUPPER macro 223 externs.h #define FL_HEXUPPER 0x04 /* use uppercase when converting to hex */ ++FL_PREFIX macro 221 externs.h #define FL_PREFIX 0x01 /* add 0x, 0X, or 0 prefix as appropriate */ ++FL_UNSIGNED macro 224 externs.h #define FL_UNSIGNED 0x08 /* don't add any sign */ ++FNMATCH_EXTFLAG macro 39 pathexp.h # define FNMATCH_EXTFLAG (extended_glob ? FNM_EXTMATCH : 0) ++FNMATCH_EXTFLAG macro 41 pathexp.h # define FNMATCH_EXTFLAG 0 ++FNMATCH_IGNCASE macro 44 pathexp.h #define FNMATCH_IGNCASE (match_ignore_case ? FNM_CASEFOLD : 0) ++FNMATCH_NOCASEGLOB macro 45 pathexp.h #define FNMATCH_NOCASEGLOB (glob_ignore_case ? FNM_CASEFOLD : 0) ++FNV_OFFSET macro 197 hashlib.c #define FNV_OFFSET 2166136261 ++FNV_PRIME macro 198 hashlib.c #define FNV_PRIME 16777619 ++FORCE_EOF macro 40 bashjmp.h #define FORCE_EOF 1 /* We want to stop parsing. */ ++FORKSLEEP_MAX macro 51 jobs.h #define FORKSLEEP_MAX 16 ++FORK_ASYNC macro 205 jobs.h #define FORK_ASYNC 1 /* background process */ ++FORK_NOJOB macro 206 jobs.h #define FORK_NOJOB 2 /* don't put process in separate pgrp */ ++FORK_NOTERM macro 207 jobs.h #define FORK_NOTERM 4 /* don't give terminal to any pgrp */ ++FORK_SYNC macro 204 jobs.h #define FORK_SYNC 0 /* normal synchronous process */ ++FOR_COM typedef 267 command.h } FOR_COM; ++FREE macro 167 general.h #define FREE(s) do { if (s) free (s); } while (0) ++FREE_EXPORTSTR macro 207 variables.h #define FREE_EXPORTSTR(var) \ ++FREE_RLIST macro 145 /usr/local/src/bash/bash-20230914/builtins/fc.def #define FREE_RLIST() \ ++FS_DIRECTORY macro 243 general.h #define FS_DIRECTORY 0x10 ++FS_EXECABLE macro 240 general.h #define FS_EXECABLE 0x2 ++FS_EXEC_ONLY macro 242 general.h #define FS_EXEC_ONLY 0x8 ++FS_EXEC_PREFERRED macro 241 general.h #define FS_EXEC_PREFERRED 0x4 ++FS_EXISTS macro 239 general.h #define FS_EXISTS 0x1 ++FS_NODIRS macro 244 general.h #define FS_NODIRS 0x20 ++FS_READABLE macro 245 general.h #define FS_READABLE 0x40 ++FUNCTIONS_HASH_BUCKETS macro 85 variables.c #define FUNCTIONS_HASH_BUCKETS 512 ++FUNCTION_DEF typedef 352 command.h } FUNCTION_DEF; ++FUNCTION_TO_KEYMAP macro 95 bashline.c # define FUNCTION_TO_KEYMAP(map, key) (Keymap)((int)map[key].function) ++FUNCTION_TO_KEYMAP macro 98 bashline.c # define FUNCTION_TO_KEYMAP(map, key) (Keymap)(map[key].function) ++FUNC_EXTERNAL macro 36 externs.h #define FUNC_EXTERNAL 0x02 ++FUNC_MULTILINE macro 35 externs.h #define FUNC_MULTILINE 0x01 ++FUNSUB_CHAR macro 84 parser.h #define FUNSUB_CHAR(n) ((n) == ' ' || (n) == '\t' || (n) == '\n' || (n) == '|') ++FV_FORCETEMPENV macro 107 variables.c #define FV_FORCETEMPENV 0x01 ++FV_NODYNAMIC macro 109 variables.c #define FV_NODYNAMIC 0x04 ++FV_SKIPINVISIBLE macro 108 variables.c #define FV_SKIPINVISIBLE 0x02 ++F_OK macro 81 test.c #define F_OK 0 ++Farg variable 105 /usr/local/src/bash/bash-20230914/builtins/complete.def static char *Garg, *Warg, *Parg, *Sarg, *Xarg, *Farg, *Carg; ++For member 203 command.h struct for_com *For; ++Function_def member 209 command.h struct function_def *Function_def; ++GE macro 89 test.c #define GE 5 ++GENERIC_LIST typedef 124 general.h } GENERIC_LIST; ++GEN_COMPS macro 759 pcomplete.c #define GEN_COMPS(bmap, flag, it, text, glist, tlist) \ ++GEN_XCOMPS macro 772 pcomplete.c #define GEN_XCOMPS(bmap, flag, text, func, cmatches, glist, tlist) \ ++GEQ macro 108 expr.c #define GEQ 4 /* ">=" */ ++GETORIGSIG macro 134 trap.c #define GETORIGSIG(sig) \ ++GETTIME macro 236 general.h #define GETTIME(tv) gettimeofday(&(tv), NULL) ++GET_ARRAY_FROM_VAR macro 160 array.h #define GET_ARRAY_FROM_VAR(n, v, a) \ ++GET_BINARY_O_OPTION_VALUE macro 243 /usr/local/src/bash/bash-20230914/builtins/set.def #define GET_BINARY_O_OPTION_VALUE(i, name) \ ++GET_LINE_NUMBER macro 298 execute_cmd.c #define GET_LINE_NUMBER() \ ++GET_ORIGINAL_SIGNAL macro 149 trap.c #define GET_ORIGINAL_SIGNAL(sig) \ ++GET_SHOPT_OPTION_VALUE macro 274 /usr/local/src/bash/bash-20230914/builtins/shopt.def #define GET_SHOPT_OPTION_VALUE(i) (*shopt_vars[i].value) ++GLOB_CHAR macro 96 syntax.h #define GLOB_CHAR(c) \ ++GLOB_FAILED macro 24 pathexp.h #define GLOB_FAILED(glist) (glist) == (char **)&glob_error_return ++GROUP_COM typedef 359 command.h } GROUP_COM; ++GT macro 87 test.c #define GT 3 ++GT macro 123 expr.c #define GT '>' ++G_ARG_MISSING macro 87 /usr/local/src/bash/bash-20230914/builtins/getopts.def #define G_ARG_MISSING -3 ++G_EOF macro 85 /usr/local/src/bash/bash-20230914/builtins/getopts.def #define G_EOF -1 ++G_INVALID_OPT macro 86 /usr/local/src/bash/bash-20230914/builtins/getopts.def #define G_INVALID_OPT -2 ++Garg variable 105 /usr/local/src/bash/bash-20230914/builtins/complete.def static char *Garg, *Warg, *Parg, *Sarg, *Xarg, *Farg, *Carg; ++Group member 210 command.h struct group_com *Group; ++HANDLER_ENTRY typedef 462 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c } HANDLER_ENTRY; ++HASH_BANG_BUFSIZ macro 5988 execute_cmd.c #define HASH_BANG_BUFSIZ 128 ++HASH_BUCKET macro 51 hashlib.c #define HASH_BUCKET(s, t, h) (((h) = hash_string (s)) & ((t)->nbuckets - 1)) ++HASH_CHKDOT macro 34 hashcmd.h #define HASH_CHKDOT 0x02 /* check `.' since it was earlier in $PATH */ ++HASH_CREATE macro 78 hashlib.h #define HASH_CREATE 0x02 ++HASH_ENTRIES macro 74 hashlib.h #define HASH_ENTRIES(ht) ((ht) ? (ht)->nentries : 0) ++HASH_MIX macro 101 /usr/local/src/bash/bash-20230914/lib/malloc/table.h #define HASH_MIX(a, b, c) \ ++HASH_NOSRCH macro 77 hashlib.h #define HASH_NOSRCH 0x01 ++HASH_REHASH_FACTOR macro 39 hashlib.c #define HASH_REHASH_FACTOR 2 ++HASH_REHASH_MULTIPLIER macro 38 hashlib.c #define HASH_REHASH_MULTIPLIER 4 ++HASH_RELPATH macro 33 hashcmd.h #define HASH_RELPATH 0x01 /* this filename is a relative pathname. */ ++HASH_SHOULDGROW macro 41 hashlib.c #define HASH_SHOULDGROW(table) \ ++HASH_SHOULDSHRINK macro 45 hashlib.c #define HASH_SHOULDSHRINK(table) \ ++HASH_TABLE typedef 42 hashlib.h } HASH_TABLE; ++HAVE_ALLOCA macro 30 /usr/local/src/bash/bash-20230914/include/memalloc.h # define HAVE_ALLOCA ++HAVE_ALLOCA macro 34 /usr/local/src/bash/bash-20230914/include/memalloc.h # define HAVE_ALLOCA ++HAVE_ALLOCA_H macro 26 /usr/local/src/bash/bash-20230914/include/memalloc.h # define HAVE_ALLOCA_H ++HAVE_RENAME macro 30 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c # define HAVE_RENAME ++HAVE_RESOURCE macro 124 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # undef HAVE_RESOURCE ++HAVE_SETLOCALE macro 43 bashintl.h # undef HAVE_SETLOCALE ++HAVE_STDLIB_H macro 28 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c # define HAVE_STDLIB_H ++HAVE_STRING_H macro 27 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c # define HAVE_STRING_H ++HAVE_UNISTD_H macro 26 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c # define HAVE_UNISTD_H ++HC_ERASEDUPS macro 29 bashhist.h #define HC_ERASEDUPS 0x04 ++HC_IGNBOTH macro 31 bashhist.h #define HC_IGNBOTH (HC_IGNSPACE|HC_IGNDUPS) ++HC_IGNDUPS macro 28 bashhist.h #define HC_IGNDUPS 0x02 ++HC_IGNSPACE macro 27 bashhist.h #define HC_IGNSPACE 0x01 ++HELPFILE macro 1075 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define HELPFILE 0x08 ++HEREDOC_MAX macro 168 shell.h #define HEREDOC_MAX 16 ++HEREDOC_PIPESIZE macro 64 redir.c # define HEREDOC_PIPESIZE 4096 ++HEREDOC_PIPESIZE macro 77 redir.c # define HEREDOC_PIPESIZE PIPESIZE ++HEREDOC_PIPESIZE macro 82 redir.c # define HEREDOC_PIPESIZE HEREDOC_PIPEMAX ++HEREDOC_REDIRECT macro 45 command.h #define HEREDOC_REDIRECT -4 /* here-doc temp file can't be created */ ++HIGH_FD_MAX macro 248 general.h #define HIGH_FD_MAX 256 ++HIGN_EXPAND macro 85 bashhist.c #define HIGN_EXPAND 0x01 ++HISTEXPAND_DEFAULT macro 34 bashhist.h # undef HISTEXPAND_DEFAULT ++HISTEXPAND_DEFAULT macro 35 bashhist.h # define HISTEXPAND_DEFAULT 0 ++HISTEXPAND_DEFAULT macro 38 bashhist.h # define HISTEXPAND_DEFAULT 1 ++HISTSIZE_DEFAULT macro 64 bashhist.c # define HISTSIZE_DEFAULT "500" ++HIST_ERANGE macro 90 /usr/local/src/bash/bash-20230914/builtins/fc.def #define HIST_ERANGE INT_MIN+1 ++HIST_INVALID macro 89 /usr/local/src/bash/bash-20230914/builtins/fc.def #define HIST_INVALID INT_MIN ++HIST_NOTFOUND macro 91 /usr/local/src/bash/bash-20230914/builtins/fc.def #define HIST_NOTFOUND INT_MIN+2 ++HN_FIRST macro 95 /usr/local/src/bash/bash-20230914/builtins/fc.def #define HN_FIRST 0x02 ++HN_LISTING macro 94 /usr/local/src/bash/bash-20230914/builtins/fc.def #define HN_LISTING 0x01 ++IF_COM typedef 299 command.h } IF_COM; ++IGNORE macro 105 /usr/local/src/bash/bash-20230914/builtins/trap.def #define IGNORE 2 /* Ignore this signal. */ ++IGNORE_SIG macro 37 trap.h #define IGNORE_SIG SIG_IGN ++IMPOSSIBLE_TRAP_HANDLER macro 53 trap.h #define IMPOSSIBLE_TRAP_HANDLER (SigHandler *)initialize_traps ++INDEX_ERROR macro 1464 arrayfunc.c #define INDEX_ERROR() \ ++INITIALWORD macro 111 pcomplete.h #define INITIALWORD "_InitialWorD_" ++INIT_DYNAMIC_ARRAY_VAR macro 1217 variables.c #define INIT_DYNAMIC_ARRAY_VAR(var, gfunc, afunc) \ ++INIT_DYNAMIC_ASSOC_VAR macro 1226 variables.c #define INIT_DYNAMIC_ASSOC_VAR(var, gfunc, afunc) \ ++INIT_DYNAMIC_VAR macro 1208 variables.c #define INIT_DYNAMIC_VAR(var, val, gfunc, afunc) \ ++INLINE macro 84 /usr/local/src/bash/bash-20230914/include/stdc.h # define INLINE inline ++INLINE macro 86 /usr/local/src/bash/bash-20230914/include/stdc.h # define INLINE ++INPUT_REDIRECT macro 54 command.h #define INPUT_REDIRECT(ri) \ ++INPUT_STREAM typedef 76 input.h } INPUT_STREAM; ++INSTALL_DEBUG_MODE macro 26 shell.c #define INSTALL_DEBUG_MODE ++INTERNAL_DEBUG macro 77 error.h # define INTERNAL_DEBUG(x) internal_debug x ++INTERNAL_DEBUG macro 79 error.h # define INTERNAL_DEBUG(x) ++INTMAX_MAX macro 102 /usr/local/src/bash/bash-20230914/include/typemax.h # define INTMAX_MAX LLONG_MAX ++INTMAX_MAX macro 105 /usr/local/src/bash/bash-20230914/include/typemax.h # define INTMAX_MAX LONG_MAX ++INTMAX_MAX macro 108 /usr/local/src/bash/bash-20230914/include/typemax.h # define INTMAX_MAX INT_MAX ++INTMAX_MIN macro 103 /usr/local/src/bash/bash-20230914/include/typemax.h # define INTMAX_MIN LLONG_MIN ++INTMAX_MIN macro 106 /usr/local/src/bash/bash-20230914/include/typemax.h # define INTMAX_MIN LONG_MIN ++INTMAX_MIN macro 109 /usr/local/src/bash/bash-20230914/include/typemax.h # define INTMAX_MIN INT_MIN ++INT_BITS_STRLEN_BOUND macro 89 general.h #define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) ++INT_BUFSIZE_BOUND macro 109 general.h #define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) ++INT_MAX macro 77 /usr/local/src/bash/bash-20230914/include/typemax.h # define INT_MAX TYPE_MAXIMUM(int) ++INT_MIN macro 78 /usr/local/src/bash/bash-20230914/include/typemax.h # define INT_MIN TYPE_MINIMUM(int) ++INT_STRLEN_BOUND macro 96 general.h #define INT_STRLEN_BOUND(t) \ ++INVALIDATE_EXPORTSTR macro 213 variables.h #define INVALIDATE_EXPORTSTR(var) \ ++INVALIDATE_LASTREF macro 76 array.c #define INVALIDATE_LASTREF(a) a->lastref = 0 ++INVALID_JOB macro 103 jobs.h #define INVALID_JOB(j) ((j) < 0 || (j) >= js.j_jobslots || get_job_by_jid(j) == 0) ++INVALID_NAMEREF_VALUE macro 231 variables.h #define INVALID_NAMEREF_VALUE (void *)&nameref_invalid_value ++INVALID_SIGNAL_HANDLER macro 736 nojobs.c #define INVALID_SIGNAL_HANDLER (SigHandler *)wait_for_background_pids ++INVALID_SIGNAL_HANDLER macro 2664 jobs.c #define INVALID_SIGNAL_HANDLER (SigHandler *)wait_for_background_pids ++ISDIRSEP macro 268 general.h # define ISDIRSEP(c) ((c) == '/') ++ISDIRSEP macro 270 general.h # define ISDIRSEP(c) ((c) == '/' || (c) == '\\') ++ISINTERRUPT macro 47 quit.h #define ISINTERRUPT interrupt_state != 0 ++ISOPT macro 36 /usr/local/src/bash/bash-20230914/builtins/bashgetopt.c #define ISOPT(s) (((*(s) == '-') || (plus && *(s) == '+')) && (s)[1]) ++ISOPTION macro 4312 execute_cmd.c # define ISOPTION(s, c) (s[0] == '-' && s[1] == c && s[2] == 0) ++ISPRIMARY macro 74 test.c #define ISPRIMARY(s, c) (s[0] == '-' && s[1] == c && s[2] == '\0') ++ISTERMSIG macro 48 quit.h #define ISTERMSIG terminating_signal != 0 ++IS_ASYNC macro 118 jobs.h #define IS_ASYNC(j) ((jobs[j]->flags & J_ASYNC) != 0) ++IS_BUILTIN macro 62 /usr/local/src/bash/bash-20230914/builtins/evalstring.c #define IS_BUILTIN(s) (builtin_address_internal(s, 0) != (struct builtin *)NULL) ++IS_FOREGROUND macro 115 jobs.h #define IS_FOREGROUND(j) ((jobs[j]->flags & J_FOREGROUND) != 0) ++IS_JOBCONTROL macro 117 jobs.h #define IS_JOBCONTROL(j) ((jobs[j]->flags & J_JOBCONTROL) != 0) ++IS_LASTREF macro 68 array.c #define IS_LASTREF(a) (a->lastref) ++IS_NOTIFIED macro 116 jobs.h #define IS_NOTIFIED(j) ((jobs[j]->flags & J_NOTIFIED) != 0) ++IS_WAITING macro 119 jobs.h #define IS_WAITING(j) ((jobs[j]->flags & J_WAITING) != 0) ++ITEMLIST typedef 99 pcomplete.h } ITEMLIST; ++If member 206 command.h struct if_com *If; ++Iflag member 84 /usr/local/src/bash/bash-20230914/builtins/complete.def int Iflag; ++Int macro 244 shell.c #define Int 1 ++JDEAD enumerator 95 jobs.h typedef enum { JNONE = -1, JRUNNING = 1, JSTOPPED = 2, JDEAD = 4, JMIXED = 8 } JOB_STATE; ++JLIST_CHANGED_ONLY macro 35 jobs.h #define JLIST_CHANGED_ONLY 3 ++JLIST_LONG macro 33 jobs.h #define JLIST_LONG 1 ++JLIST_NONINTERACTIVE macro 36 jobs.h #define JLIST_NONINTERACTIVE 4 ++JLIST_PID_ONLY macro 34 jobs.h #define JLIST_PID_ONLY 2 ++JLIST_STANDARD macro 32 jobs.h #define JLIST_STANDARD 0 ++JMIXED enumerator 95 jobs.h typedef enum { JNONE = -1, JRUNNING = 1, JSTOPPED = 2, JDEAD = 4, JMIXED = 8 } JOB_STATE; ++JNONE enumerator 95 jobs.h typedef enum { JNONE = -1, JRUNNING = 1, JSTOPPED = 2, JDEAD = 4, JMIXED = 8 } JOB_STATE; ++JOB typedef 132 jobs.h } JOB; ++JOBSTATE macro 96 jobs.h #define JOBSTATE(job) (jobs[(job)]->state) ++JOB_SLOTS macro 161 jobs.c #define JOB_SLOTS 8 ++JOB_STATE typedef 95 jobs.h typedef enum { JNONE = -1, JRUNNING = 1, JSTOPPED = 2, JDEAD = 4, JMIXED = 8 } JOB_STATE; ++JRUNNING enumerator 95 jobs.h typedef enum { JNONE = -1, JRUNNING = 1, JSTOPPED = 2, JDEAD = 4, JMIXED = 8 } JOB_STATE; ++JSTATE_ANY macro 68 /usr/local/src/bash/bash-20230914/builtins/jobs.def #define JSTATE_ANY 0x0 ++JSTATE_RUNNING macro 69 /usr/local/src/bash/bash-20230914/builtins/jobs.def #define JSTATE_RUNNING 0x1 ++JSTATE_STOPPED macro 70 /usr/local/src/bash/bash-20230914/builtins/jobs.def #define JSTATE_STOPPED 0x2 ++JSTOPPED enumerator 95 jobs.h typedef enum { JNONE = -1, JRUNNING = 1, JSTOPPED = 2, JDEAD = 4, JMIXED = 8 } JOB_STATE; ++JWAIT_FORCE macro 43 jobs.h #define JWAIT_FORCE (1 << 1) ++JWAIT_NOTERM macro 48 jobs.h #define JWAIT_NOTERM (1 << 8) /* wait_for doesn't give terminal away */ ++JWAIT_NOWAIT macro 44 jobs.h #define JWAIT_NOWAIT (1 << 2) /* don't waitpid(), just return status if already exited */ ++JWAIT_PERROR macro 42 jobs.h #define JWAIT_PERROR (1 << 0) ++JWAIT_WAITING macro 45 jobs.h #define JWAIT_WAITING (1 << 3) /* wait for jobs marked J_WAITING only */ ++J_ASYNC macro 111 jobs.h #define J_ASYNC 0x20 /* Job was started asynchronously */ ++J_FOREGROUND macro 106 jobs.h #define J_FOREGROUND 0x01 /* Non-zero if this is running in the foreground. */ ++J_JOBCONTROL macro 108 jobs.h #define J_JOBCONTROL 0x04 /* Non-zero if this job started under job control. */ ++J_JOBSTATE macro 97 jobs.h #define J_JOBSTATE(j) ((j)->state) ++J_NOHUP macro 109 jobs.h #define J_NOHUP 0x08 /* Don't send SIGHUP to job if shell gets SIGHUP. */ ++J_NOTIFIED macro 107 jobs.h #define J_NOTIFIED 0x02 /* Non-zero if already notified about job state. */ ++J_PIPEFAIL macro 112 jobs.h #define J_PIPEFAIL 0x40 /* pipefail set when job was started */ ++J_STATSAVED macro 110 jobs.h #define J_STATSAVED 0x10 /* A process in this job had status saved via $! */ ++J_WAITING macro 113 jobs.h #define J_WAITING 0x80 /* one of a list of jobs for which we are waiting */ ++KEYMAP_TO_FUNCTION macro 96 bashline.c # define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)((int)(data)) ++KEYMAP_TO_FUNCTION macro 99 bashline.c # define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)(data) ++LAND macro 111 expr.c #define LAND 7 /* "&&" Logical AND */ ++LASTREF macro 74 array.c #define LASTREF(a) (a->lastref ? a->lastref : element_forw(a->head)) ++LASTREF_START macro 70 array.c #define LASTREF_START(a, i) \ ++LASTSIG macro 58 quit.h #define LASTSIG() \ ++LBRACE macro 95 subst.c #define LBRACE '{' ++LBRACK macro 44 arrayfunc.c # define LBRACK '[' ++LBRACK macro 99 subst.c #define LBRACK '[' ++LCD_DOSPELL macro 253 /usr/local/src/bash/bash-20230914/builtins/cd.def #define LCD_DOSPELL 0x002 ++LCD_DOVARS macro 252 /usr/local/src/bash/bash-20230914/builtins/cd.def #define LCD_DOVARS 0x001 ++LCD_FREEDIRNAME macro 255 /usr/local/src/bash/bash-20230914/builtins/cd.def #define LCD_FREEDIRNAME 0x008 ++LCD_PRINTPATH macro 254 /usr/local/src/bash/bash-20230914/builtins/cd.def #define LCD_PRINTPATH 0x004 ++LE macro 88 test.c #define LE 4 ++LENMODS macro 183 /usr/local/src/bash/bash-20230914/builtins/printf.def #define LENMODS "hjlLtz" ++LEQ macro 107 expr.c #define LEQ 3 /* "<=" */ ++LFLAG macro 95 /usr/local/src/bash/bash-20230914/builtins/bind.def #define LFLAG 0x0001 ++LIMIT_HARD macro 198 /usr/local/src/bash/bash-20230914/builtins/ulimit.def #define LIMIT_HARD 0x01 ++LIMIT_SOFT macro 199 /usr/local/src/bash/bash-20230914/builtins/ulimit.def #define LIMIT_SOFT 0x02 ++LINES variable 3220 execute_cmd.c static int LINES, COLS, tabsize; ++LIST_DIRTY macro 103 pcomplete.h #define LIST_DIRTY 0x002 ++LIST_DONTFREE macro 106 pcomplete.h #define LIST_DONTFREE 0x010 ++LIST_DONTFREEMEMBERS macro 107 pcomplete.h #define LIST_DONTFREEMEMBERS 0x020 ++LIST_DYNAMIC macro 102 pcomplete.h #define LIST_DYNAMIC 0x001 ++LIST_INITIALIZED macro 104 pcomplete.h #define LIST_INITIALIZED 0x004 ++LIST_MUSTSORT macro 105 pcomplete.h #define LIST_MUSTSORT 0x008 ++LLONG_MAX macro 59 /usr/local/src/bash/bash-20230914/include/typemax.h # define LLONG_MAX TYPE_MAXIMUM(long long int) ++LLONG_MIN macro 60 /usr/local/src/bash/bash-20230914/include/typemax.h # define LLONG_MIN TYPE_MINIMUM(long long int) ++LOAD_SUFFIX macro 99 /usr/local/src/bash/bash-20230914/builtins/enable.def #define LOAD_SUFFIX "_builtin_load" ++LOCALVAR_BUILTIN macro 47 builtins.h #define LOCALVAR_BUILTIN 0x40 /* This builtin creates local variables */ ++LONGEST_SIGNAL_DESC macro 39 jobs.h #define LONGEST_SIGNAL_DESC 24 ++LONGFORM macro 169 /usr/local/src/bash/bash-20230914/builtins/pushd.def #define LONGFORM 0x04 ++LONG_MAX macro 72 /usr/local/src/bash/bash-20230914/include/typemax.h # define LONG_MAX ((long int) (ULONG_MAX >> 1)) ++LONG_MIN macro 73 /usr/local/src/bash/bash-20230914/include/typemax.h # define LONG_MIN ((long int) (-LONG_MAX - 1L)) ++LOR macro 112 expr.c #define LOR 8 /* "||" Logical OR */ ++LPAR macro 131 expr.c #define LPAR '(' ++LPAREN macro 97 subst.c #define LPAREN '(' ++LSH macro 113 expr.c #define LSH 9 /* "<<" Left SHift */ ++LT macro 86 test.c #define LT 2 ++LT macro 124 expr.c #define LT '<' ++MAINTAINER macro 66 error.c #define MAINTAINER "bash-maintainers@gnu.org" ++MALLOC_BZERO macro 74 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h #define MALLOC_BZERO(charp, nbytes) \ ++MALLOC_MEMCPY macro 134 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h #define MALLOC_MEMCPY(dest,src,nbytes) \ ++MALLOC_MEMSET macro 113 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h #define MALLOC_MEMSET(charp, xch, nbytes) \ ++MALLOC_REGISTER macro 29 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h #define MALLOC_REGISTER ++MALLOC_STATS macro 27 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h #define MALLOC_STATS ++MALLOC_TRACE macro 28 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h #define MALLOC_TRACE ++MALLOC_WATCH macro 30 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h #define MALLOC_WATCH ++MALLOC_WRAPFUNCS macro 33 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h #define MALLOC_WRAPFUNCS ++MALLOC_ZERO macro 95 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h #define MALLOC_ZERO(charp, nbytes) \ ++MAPF_CHOP macro 105 /usr/local/src/bash/bash-20230914/builtins/mapfile.def #define MAPF_CHOP 0x02 ++MAPF_CLEARARRAY macro 104 /usr/local/src/bash/bash-20230914/builtins/mapfile.def #define MAPF_CLEARARRAY 0x01 ++MATCH_ANY macro 79 shell.h #define MATCH_ANY 0x000 ++MATCH_ASSIGNRHS macro 87 shell.h #define MATCH_ASSIGNRHS 0x040 ++MATCH_BEG macro 80 shell.h #define MATCH_BEG 0x001 ++MATCH_END macro 81 shell.h #define MATCH_END 0x002 ++MATCH_EXPREP macro 89 shell.h #define MATCH_EXPREP 0x100 /* for pattern substitution, expand replacement */ ++MATCH_GLOBREP macro 85 shell.h #define MATCH_GLOBREP 0x010 ++MATCH_QUOTED macro 86 shell.h #define MATCH_QUOTED 0x020 ++MATCH_STARSUB macro 88 shell.h #define MATCH_STARSUB 0x080 ++MATCH_TYPEMASK macro 83 shell.h #define MATCH_TYPEMASK 0x003 ++MAX_CHILD_MAX macro 96 jobs.c # define MAX_CHILD_MAX 32768 ++MAX_EXPR_RECURSION_LEVEL macro 101 expr.c #define MAX_EXPR_RECURSION_LEVEL 1024 ++MAX_INPUT_BUFFER_SIZE macro 130 input.c # define MAX_INPUT_BUFFER_SIZE 8172 ++MAX_INPUT_BUFFER_SIZE macro 132 input.c # define MAX_INPUT_BUFFER_SIZE 8192 ++MAX_INT_LEN macro 146 expr.c # define MAX_INT_LEN 32 ++MAX_JOBS_IN_ARRAY macro 100 jobs.c #define MAX_JOBS_IN_ARRAY 4096 /* production */ ++MAX_JOBS_IN_ARRAY macro 102 jobs.c #define MAX_JOBS_IN_ARRAY 128 /* testing */ ++MBOX_INITIALIZED macro 46 mailcheck.c #define MBOX_INITIALIZED 0x01 ++MEMBER macro 168 general.h #define MEMBER(c, s) (((c) && c == (s)[0] && !(s)[1]) || (member(c, s))) ++MFLAG macro 100 /usr/local/src/bash/bash-20230914/builtins/bind.def #define MFLAG 0x0020 ++MINUS macro 126 expr.c #define MINUS '-' ++MINUS_O_FORMAT macro 281 /usr/local/src/bash/bash-20230914/builtins/set.def #define MINUS_O_FORMAT "%-15s\t%s\n" ++MIN_COMPAT_LEVEL macro 6372 variables.c #define MIN_COMPAT_LEVEL 31 ++MKLOC_ARRAYOK macro 226 variables.h #define MKLOC_ARRAYOK 0x02 ++MKLOC_ASSOCOK macro 225 variables.h #define MKLOC_ASSOCOK 0x01 ++MKLOC_INHERIT macro 227 variables.h #define MKLOC_INHERIT 0x04 ++MOD macro 129 expr.c #define MOD '%' ++MP_DOCWD macro 270 externs.h #define MP_DOCWD 0x02 ++MP_DOTILDE macro 269 externs.h #define MP_DOTILDE 0x01 ++MP_IGNDOT macro 272 externs.h #define MP_IGNDOT 0x08 ++MP_RMDOT macro 271 externs.h #define MP_RMDOT 0x04 ++MT_ALLOC macro 29 /usr/local/src/bash/bash-20230914/lib/malloc/table.h #define MT_ALLOC 0x01 ++MT_FREE macro 30 /usr/local/src/bash/bash-20230914/lib/malloc/table.h #define MT_FREE 0x02 ++MT_READWRITE macro 503 externs.h #define MT_READWRITE 0x0002 ++MT_TEMPLATE macro 505 externs.h #define MT_TEMPLATE 0x0008 ++MT_UNLINK macro 506 externs.h #define MT_UNLINK 0x0010 /* unlink after opening */ ++MT_USERANDOM macro 504 externs.h #define MT_USERANDOM 0x0004 ++MT_USETMPDIR macro 502 externs.h #define MT_USETMPDIR 0x0001 ++MUL macro 127 expr.c #define MUL '*' ++NAME variable 29 /usr/local/src/bash/bash-20230914/builtins/alias.def form `alias NAME=VALUE' on standard output. ++NAME variable 30 /usr/local/src/bash/bash-20230914/builtins/read.def splitting, and the first word is assigned to the first NAME, the second ++NAME variable 31 /usr/local/src/bash/bash-20230914/builtins/read.def word to the second NAME, and so on, with any leftover words assigned to ++NAME variable 50 /usr/local/src/bash/bash-20230914/builtins/getopts.def is placed in NAME, OPTARG is unset, and a diagnostic message is ++NAMEREF_MAX macro 172 variables.h #define NAMEREF_MAX 8 /* only 8 levels of nameref indirection */ ++NAME_MAX macro 47 /usr/local/src/bash/bash-20230914/include/maxpath.h # define NAME_MAX MAXNAMLEN ++NAME_MAX macro 57 /usr/local/src/bash/bash-20230914/include/maxpath.h # define NAME_MAX _POSIX_NAME_MAX ++NAME_MAX macro 67 /usr/local/src/bash/bash-20230914/include/maxpath.h # define NAME_MAX 14 ++NBUCKETS macro 30 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h # define NBUCKETS 28 ++NCMDS macro 293 /usr/local/src/bash/bash-20230914/builtins/ulimit.def #define NCMDS (sizeof(limits) / sizeof(limits[0])) ++NE macro 85 test.c #define NE 1 ++NEEDARG macro 111 /usr/local/src/bash/bash-20230914/builtins/getopt.c #define NEEDARG(x) fprintf (stderr, _("%s: option requires an argument -- %c\n"), argv[0], x) ++NEED_CLOCK_FUNCS_DECL macro 57 /usr/local/src/bash/bash-20230914/builtins/times.def #define NEED_CLOCK_FUNCS_DECL ++NEED_CLOCK_FUNCS_DECL macro 62 execute_cmd.c #define NEED_CLOCK_FUNCS_DECL ++NEED_FPURGE_DECL macro 40 subst.c #define NEED_FPURGE_DECL ++NEED_FPURGE_DECL macro 42 /usr/local/src/bash/bash-20230914/builtins/common.c #define NEED_FPURGE_DECL ++NEED_FPURGE_DECL macro 49 redir.c #define NEED_FPURGE_DECL ++NEED_FPURGE_DECL macro 60 execute_cmd.c #define NEED_FPURGE_DECL ++NEED_SH_SETLINEBUF_DECL macro 51 shell.c #define NEED_SH_SETLINEBUF_DECL /* used in externs.h */ ++NEED_SH_SETLINEBUF_DECL macro 61 execute_cmd.c #define NEED_SH_SETLINEBUF_DECL ++NEED_STRFTIME_DECL macro 84 /usr/local/src/bash/bash-20230914/builtins/printf.def #define NEED_STRFTIME_DECL ++NEED_TIMEVAL_FUNCS_DECL macro 58 /usr/local/src/bash/bash-20230914/builtins/times.def #define NEED_TIMEVAL_FUNCS_DECL ++NEED_TIMEVAL_FUNCS_DECL macro 63 execute_cmd.c #define NEED_TIMEVAL_FUNCS_DECL ++NEED_XTRACE_SET_DECL macro 37 print_cmd.c #define NEED_XTRACE_SET_DECL ++NEED_XTRACE_SET_DECL macro 48 variables.c #define NEED_XTRACE_SET_DECL ++NEQ macro 106 expr.c #define NEQ 2 /* "!=" */ ++NEW_TTY_DRIVER macro 35 /usr/local/src/bash/bash-20230914/include/shtty.h # define NEW_TTY_DRIVER ++NEXT_VARIABLE macro 380 /usr/local/src/bash/bash-20230914/builtins/declare.def #define NEXT_VARIABLE() free (name); list = list->next; continue ++NEXT_VARIABLE macro 817 /usr/local/src/bash/bash-20230914/builtins/set.def #define NEXT_VARIABLE() any_failed++; list = list->next; continue; ++NFLAG macro 83 /usr/local/src/bash/bash-20230914/builtins/enable.def #define NFLAG 0x08 ++NFLAG macro 99 /usr/local/src/bash/bash-20230914/builtins/history.def #define NFLAG 0x08 ++NOCD macro 167 /usr/local/src/bash/bash-20230914/builtins/pushd.def #define NOCD 0x01 ++NOCLOBBER_REDIRECT macro 43 command.h #define NOCLOBBER_REDIRECT -2 ++NOFLSH macro 51 /usr/local/src/bash/bash-20230914/include/shtty.h # undef NOFLSH ++NOGROUP macro 1232 general.c # define NOGROUP (gid_t) -1 ++NOT macro 130 expr.c #define NOT '!' ++NOTFOUND_HOOK macro 5650 execute_cmd.c # define NOTFOUND_HOOK "command_not_found_handle" ++NOTOPT macro 37 /usr/local/src/bash/bash-20230914/builtins/bashgetopt.c #define NOTOPT(s) (((*(s) != '-') && (!plus || *(s) != '+')) || (s)[1] == '\0') ++NOT_JUMPED macro 39 bashjmp.h #define NOT_JUMPED 0 /* Not returning from a longjmp. */ ++NOW macro 235 general.h #define NOW getnow() ++NO_EDITING_MODE macro 86 bashline.c # define NO_EDITING_MODE -1 ++NO_JOB macro 194 jobs.h #define NO_JOB -1 /* An impossible job array index. */ ++NO_PID macro 199 jobs.h #define NO_PID (pid_t)-1 ++NO_PIDSTAT macro 178 jobs.h #define NO_PIDSTAT (ps_index_t)-1 ++NO_PIPE macro 46 shell.h #define NO_PIPE -1 ++NO_SIG macro 35 trap.h #define NO_SIG -1 ++NO_VARIABLE macro 49 shell.h #define NO_VARIABLE -1 ++NSIG macro 32 trap.h #define NSIG 64 ++NT macro 91 test.c #define NT 0 ++NULL macro 46 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h # define NULL 0 ++NULL macro 443 hashlib.c #undef NULL ++NULL macro 447 hashlib.c #define NULL 0 ++NULL_HANDLER macro 122 sig.c #define NULL_HANDLER (SigHandler *)SIG_DFL ++NUM macro 110 expr.c #define NUM 6 /* number */ ++NUMBER_LEN macro 3226 execute_cmd.c #define NUMBER_LEN(s) \ ++NUM_SHELL_FLAGS macro 206 flags.c #define NUM_SHELL_FLAGS (sizeof (shell_flags) / sizeof (struct flags_alist)) ++N_ macro 37 bashintl.h #define N_(msgid) msgid ++N_O_OPTIONS macro 241 /usr/local/src/bash/bash-20230914/builtins/set.def #define N_O_OPTIONS (sizeof (o_options) / sizeof (o_options[0])) ++N_SHOPT_OPTIONS macro 272 /usr/local/src/bash/bash-20230914/builtins/shopt.def #define N_SHOPT_OPTIONS (sizeof (shopt_vars) / sizeof (shopt_vars[0])) ++N_SPECIAL_VARS macro 5760 variables.c #define N_SPECIAL_VARS (sizeof (special_vars) / sizeof (special_vars[0]) - 1) ++OC_MEMSET macro 28 /usr/local/src/bash/bash-20230914/include/ocache.h #define OC_MEMSET(memp, xch, nbytes) \ ++OFLAG macro 291 /usr/local/src/bash/bash-20230914/builtins/shopt.def #define OFLAG 0x08 ++ONE_ARG_TEST macro 777 test.c #define ONE_ARG_TEST(s) ((s)[0] != '\0') ++OPENLOG_OPTS macro 815 bashhist.c #define OPENLOG_OPTS 0 ++OPTFMT macro 75 /usr/local/src/bash/bash-20230914/builtins/shopt.def #define OPTFMT "%-15s\t%s\n" ++OPTNAME variable 29 /usr/local/src/bash/bash-20230914/builtins/shopt.def arguments, list each supplied OPTNAME, or all shell options if no ++OP_ASSIGN macro 115 expr.c #define OP_ASSIGN 11 /* op= expassign as in Posix.2 */ ++OT macro 92 test.c #define OT 1 ++OUTPUT_REDIRECT macro 51 command.h #define OUTPUT_REDIRECT(ri) \ ++O_BINARY macro 47 /usr/local/src/bash/bash-20230914/include/filecntl.h # define O_BINARY 0 ++O_NDELAY macro 545 general.c # define O_NDELAY FNDELAY ++O_NONBLOCK macro 39 /usr/local/src/bash/bash-20230914/include/filecntl.h # define O_NONBLOCK O_NDELAY ++O_NONBLOCK macro 41 /usr/local/src/bash/bash-20230914/include/filecntl.h # define O_NONBLOCK 0 ++O_NONBLOCK macro 606 general.c # undef O_NONBLOCK ++O_NONBLOCK macro 607 general.c # define O_NONBLOCK 0 ++O_TEXT macro 50 /usr/local/src/bash/bash-20230914/include/filecntl.h # define O_TEXT 0 ++PALIVE macro 82 jobs.h #define PALIVE(p) (PRUNNING(p) || PSTOPPED(p)) ++PARAMEXPNEST_MAX macro 1798 subst.c #define PARAMEXPNEST_MAX 32 // for now ++PARAMS macro 33 /usr/local/src/bash/bash-20230914/include/stdc.h # define PARAMS(protos) protos ++PARAMS macro 35 /usr/local/src/bash/bash-20230914/include/stdc.h # define PARAMS(protos) () ++PARTIALLY_QUOTED macro 11052 subst.c #define PARTIALLY_QUOTED 1 ++PATHSEP macro 272 general.h #define PATHSEP(c) (ISDIRSEP(c) || (c) == 0) ++PATH_CHECKDOTDOT macro 315 externs.h #define PATH_CHECKDOTDOT 0x0001 ++PATH_CHECKEXISTS macro 316 externs.h #define PATH_CHECKEXISTS 0x0002 ++PATH_DATA typedef 31 hashcmd.h } PATH_DATA; ++PATH_HARDPATH macro 317 externs.h #define PATH_HARDPATH 0x0004 ++PATH_MAX macro 37 /usr/local/src/bash/bash-20230914/include/maxpath.h # define PATH_MAX MAXPATHLEN ++PATH_MAX macro 53 /usr/local/src/bash/bash-20230914/include/maxpath.h # define PATH_MAX _POSIX_PATH_MAX ++PATH_MAX macro 63 /usr/local/src/bash/bash-20230914/include/maxpath.h # define PATH_MAX 1024 ++PATH_MAX macro 71 /usr/local/src/bash/bash-20230914/include/maxpath.h # undef PATH_MAX ++PATH_MAX macro 72 /usr/local/src/bash/bash-20230914/include/maxpath.h # define PATH_MAX 1024 ++PATH_NOALLOC macro 318 externs.h #define PATH_NOALLOC 0x0008 ++PATTERN variable 30 /usr/local/src/bash/bash-20230914/builtins/help.def specified, gives detailed help on all commands matching PATTERN, ++PATTERN_CHAR macro 90 syntax.h # define PATTERN_CHAR(c) \ ++PATTERN_CHAR macro 93 syntax.h # define PATTERN_CHAR(c) 0 ++PATTERN_LIST typedef 248 command.h } PATTERN_LIST; ++PC macro 108 /usr/local/src/bash/bash-20230914/builtins/printf.def #define PC(c) \ ++PCOMP_NOTFOUND macro 84 pcomplete.h #define PCOMP_NOTFOUND (COPT_LASTUSER << 2) ++PCOMP_RETRYFAIL macro 83 pcomplete.h #define PCOMP_RETRYFAIL (COPT_LASTUSER << 1) ++PDEADPROC macro 90 jobs.h #define PDEADPROC(p) (PEXITED(p) || PRECYCLED(p)) ++PEXITED macro 84 jobs.h #define PEXITED(p) ((p)->running == PS_DONE) ++PE_TAG macro 68 /usr/local/src/bash/bash-20230914/builtins/evalstring.c #define PE_TAG "parse_and_execute top" ++PF macro 120 /usr/local/src/bash/bash-20230914/builtins/printf.def #define PF(f, func) \ ++PFLAG macro 84 /usr/local/src/bash/bash-20230914/builtins/enable.def #define PFLAG 0x10 ++PFLAG macro 96 /usr/local/src/bash/bash-20230914/builtins/bind.def #define PFLAG 0x0002 ++PFLAG macro 101 /usr/local/src/bash/bash-20230914/builtins/history.def #define PFLAG 0x20 ++PFLAG macro 292 /usr/local/src/bash/bash-20230914/builtins/shopt.def #define PFLAG 0x10 ++PFUNC typedef 55 print_cmd.c typedef void PFUNC (const char *, ...); ++PF_ALLINDS macro 116 command.h #define PF_ALLINDS 0x40 /* array, act as if [@] was supplied */ ++PF_ASSIGNRHS macro 113 command.h #define PF_ASSIGNRHS 0x08 /* same as W_ASSIGNRHS */ ++PF_BACKQUOTE macro 117 command.h #define PF_BACKQUOTE 0x80 /* differentiate `` from $() for command_substitute */ ++PF_COMPLETE macro 114 command.h #define PF_COMPLETE 0x10 /* same as W_COMPLETE, sets SX_COMPLETE */ ++PF_EXPANDRHS macro 115 command.h #define PF_EXPANDRHS 0x20 /* same as W_EXPANDRHS */ ++PF_IGNUNBOUND macro 111 command.h #define PF_IGNUNBOUND 0x02 /* ignore unbound vars even if -u set */ ++PF_NOCOMSUB macro 110 command.h #define PF_NOCOMSUB 0x01 /* Do not perform command substitution */ ++PF_NOSPLIT2 macro 112 command.h #define PF_NOSPLIT2 0x04 /* same as W_NOSPLIT2 */ ++PIDSTAT_TABLE_SZ macro 106 jobs.c #define PIDSTAT_TABLE_SZ 4096 ++PIPELINE variable 25 /usr/local/src/bash/bash-20230914/builtins/reserved.def Execute PIPELINE, which can be a simple command, and negate PIPELINE's ++PIPESIZE macro 70 redir.c # define PIPESIZE PIPE_BUF ++PIPESIZE macro 72 redir.c # define PIPESIZE 4096 ++PLAINTEXT macro 1074 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define PLAINTEXT 0x04 ++PLUS macro 125 expr.c #define PLUS '+' ++POSIXBLK macro 203 /usr/local/src/bash/bash-20230914/builtins/ulimit.def #define POSIXBLK -2 ++POSIX_BUILTIN macro 46 builtins.h #define POSIX_BUILTIN 0x20 /* This builtins is special in the Posix command search order. */ ++POSIX_FC_EDIT_COMMAND macro 184 /usr/local/src/bash/bash-20230914/builtins/fc.def # define POSIX_FC_EDIT_COMMAND "${FCEDIT:-ed}" ++POSIX_FC_EDIT_COMMAND macro 186 /usr/local/src/bash/bash-20230914/builtins/fc.def # define POSIX_FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-ed}}" ++POSIX_TIMEFORMAT macro 1200 execute_cmd.c #define POSIX_TIMEFORMAT "real %2R\nuser %2U\nsys %2S" ++POSIX_VI_EDIT_COMMAND macro 934 bashline.c #define POSIX_VI_EDIT_COMMAND "fc -e vi" ++POSTDEC macro 121 expr.c #define POSTDEC 17 /* var-- */ ++POSTINC macro 120 expr.c #define POSTINC 16 /* var++ */ ++POWER macro 117 expr.c #define POWER 13 /* exp1**exp2 */ ++PPFLAG macro 102 /usr/local/src/bash/bash-20230914/builtins/bind.def #define PPFLAG 0x0080 ++PRECYCLED macro 86 jobs.h # define PRECYCLED(p) ((p)->running == PS_RECYCLED) ++PRECYCLED macro 88 jobs.h # define PRECYCLED(p) (0) ++PREDEC macro 119 expr.c #define PREDEC 15 /* --var */ ++PREINC macro 118 expr.c #define PREINC 14 /* ++var */ ++PREPEND_LIST macro 12266 subst.c #define PREPEND_LIST(nlist, elist) \ ++PRETURN macro 143 /usr/local/src/bash/bash-20230914/builtins/printf.def #define PRETURN(value) \ ++PRINTED_COMMAND_GROW_SIZE macro 103 print_cmd.c #define PRINTED_COMMAND_GROW_SIZE 128 ++PRINTED_COMMAND_INITIAL_SIZE macro 102 print_cmd.c #define PRINTED_COMMAND_INITIAL_SIZE 64 ++PRINT_DEFERRED_HEREDOCS macro 117 print_cmd.c #define PRINT_DEFERRED_HEREDOCS(x) \ ++PRIdMAX macro 93 /usr/local/src/bash/bash-20230914/builtins/printf.def # undef PRIdMAX ++PRIdMAX macro 98 /usr/local/src/bash/bash-20230914/builtins/printf.def # define PRIdMAX "lld" ++PROCESS typedef 71 jobs.h } PROCESS; ++PROC_ASYNC macro 109 nojobs.c #define PROC_ASYNC 0x04 ++PROC_BAD macro 113 nojobs.c #define PROC_BAD -1 ++PROC_NOTIFIED macro 108 nojobs.c #define PROC_NOTIFIED 0x02 ++PROC_RUNNING macro 107 nojobs.c #define PROC_RUNNING 0x01 ++PROC_SIGNALED macro 110 nojobs.c #define PROC_SIGNALED 0x10 ++PROC_STILL_ALIVE macro 114 nojobs.c #define PROC_STILL_ALIVE -2 ++PROGRAM macro 1757 shell.c # define PROGRAM "bash" ++PRUNNING macro 81 jobs.h #define PRUNNING(p) ((p)->running == PS_RUNNING) ++PSTOPPED macro 80 jobs.h #define PSTOPPED(p) (WIFSTOPPED((p)->status)) ++PST_ALEXPAND macro 40 parser.h #define PST_ALEXPAND 0x000800 /* OK to expand aliases - unused */ ++PST_ALEXPNEXT macro 30 parser.h #define PST_ALEXPNEXT 0x000002 /* expand next word for aliases */ ++PST_ALLOWOPNBRC macro 31 parser.h #define PST_ALLOWOPNBRC 0x000004 /* allow open brace for function def */ ++PST_ARITHFOR macro 39 parser.h #define PST_ARITHFOR 0x000400 /* parsing an arithmetic for command - unused */ ++PST_ASSIGNOK macro 43 parser.h #define PST_ASSIGNOK 0x004000 /* assignment statement ok in this context */ ++PST_CASEPAT macro 29 parser.h #define PST_CASEPAT 0x000001 /* in a case pattern list */ ++PST_CASESTMT macro 36 parser.h #define PST_CASESTMT 0x000080 /* parsing a case statement */ ++PST_CMDBLTIN macro 54 parser.h #define PST_CMDBLTIN 0x2000000 /* last token was the `command' builtin */ ++PST_CMDSUBST macro 35 parser.h #define PST_CMDSUBST 0x000040 /* $( ... ) command substitution */ ++PST_COMMENT macro 49 parser.h #define PST_COMMENT 0x100000 /* parsing a shell comment; used by aliases */ ++PST_COMPASSIGN macro 42 parser.h #define PST_COMPASSIGN 0x002000 /* parsing x=(...) compound assignment */ ++PST_CONDCMD macro 37 parser.h #define PST_CONDCMD 0x000100 /* parsing a [[...]] command */ ++PST_CONDEXPR macro 38 parser.h #define PST_CONDEXPR 0x000200 /* parsing the guts of [[...]] */ ++PST_DBLPAREN macro 33 parser.h #define PST_DBLPAREN 0x000010 /* double-paren parsing - unused */ ++PST_ENDALIAS macro 50 parser.h #define PST_ENDALIAS 0x200000 /* just finished expanding and consuming an alias */ ++PST_EOFTOKEN macro 44 parser.h #define PST_EOFTOKEN 0x008000 /* yylex checks against shell_eof_token */ ++PST_EXTPAT macro 41 parser.h #define PST_EXTPAT 0x001000 /* parsing an extended shell pattern */ ++PST_FUNSUBST macro 55 parser.h #define PST_FUNSUBST 0x4000000 /* parsing a foreground command substitution */ ++PST_HEREDOC macro 46 parser.h #define PST_HEREDOC 0x020000 /* reading body of here-document */ ++PST_NEEDCLOSBRC macro 32 parser.h #define PST_NEEDCLOSBRC 0x000008 /* need close brace -- unused */ ++PST_NOERROR macro 52 parser.h #define PST_NOERROR 0x800000 /* don't print error messages in yyerror */ ++PST_NOEXPAND macro 51 parser.h #define PST_NOEXPAND 0x400000 /* don't expand anything in read_token_word; for command substitution */ ++PST_REDIRLIST macro 48 parser.h #define PST_REDIRLIST 0x080000 /* parsing a list of redirections preceding a simple command name */ ++PST_REGEXP macro 45 parser.h #define PST_REGEXP 0x010000 /* parsing an ERE/BRE as a single word */ ++PST_REPARSE macro 47 parser.h #define PST_REPARSE 0x040000 /* re-parsing in parse_string_to_word_list */ ++PST_STRING macro 53 parser.h #define PST_STRING 0x1000000 /* parsing a string to a command or word list */ ++PST_SUBSHELL macro 34 parser.h #define PST_SUBSHELL 0x000020 /* ( ... ) subshell */ ++PS_DONE macro 58 jobs.h #define PS_DONE 0 ++PS_RECYCLED macro 61 jobs.h #define PS_RECYCLED 4 ++PS_RUNNING macro 59 jobs.h #define PS_RUNNING 1 ++PS_STOPPED macro 60 jobs.h #define PS_STOPPED 2 ++PS_TAG macro 69 /usr/local/src/bash/bash-20230914/builtins/evalstring.c #define PS_TAG "parse_string top" ++PTR_T macro 25 /usr/local/src/bash/bash-20230914/include/ocache.h # define PTR_T void * ++PTR_T macro 27 /usr/local/src/bash/bash-20230914/lib/malloc/shmalloc.h # define PTR_T void * ++PTR_T macro 27 hashlib.h # define PTR_T void * ++PTR_T macro 35 /usr/local/src/bash/bash-20230914/include/ansi_stdlib.h # define PTR_T void * ++PTR_T macro 42 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h # define PTR_T void * ++PTR_T macro 43 xmalloc.c # define PTR_T void * ++P_ macro 40 bashintl.h #define P_(m1, m2, n) ngettext(m1, m2, n) ++Parg variable 105 /usr/local/src/bash/bash-20230914/builtins/complete.def static char *Garg, *Warg, *Parg, *Sarg, *Xarg, *Farg, *Carg; ++QFLAG macro 99 /usr/local/src/bash/bash-20230914/builtins/bind.def #define QFLAG 0x0010 ++QFLAG macro 290 /usr/local/src/bash/bash-20230914/builtins/shopt.def #define QFLAG 0x04 ++QGLOB_CTLESC macro 33 pathexp.h #define QGLOB_CTLESC 0x08 /* turn CTLESC CTLESC into CTLESC for BREs */ ++QGLOB_CVTNULL macro 30 pathexp.h #define QGLOB_CVTNULL 0x01 /* convert QUOTED_NULL strings to '\0' */ ++QGLOB_DEQUOTE macro 34 pathexp.h #define QGLOB_DEQUOTE 0x10 /* like dequote_string but quote glob chars */ ++QGLOB_FILENAME macro 31 pathexp.h #define QGLOB_FILENAME 0x02 /* do correct quoting for matching filenames */ ++QGLOB_REGEXP macro 32 pathexp.h #define QGLOB_REGEXP 0x04 /* quote an ERE for regcomp/regexec */ ++QSFUNC typedef 251 general.h typedef int QSFUNC (const void *, const void *); ++QUES macro 137 expr.c #define QUES '?' ++QUEUE_SIGCHLD macro 320 jobs.c #define QUEUE_SIGCHLD(os) (os) = sigchld, queue_sigchld++ ++QUIT macro 35 quit.h #define QUIT \ ++QUOTED_CHAR macro 365 subst.h #define QUOTED_CHAR(c) ((c) == CTLESC) ++QUOTED_NULL macro 368 subst.h #define QUOTED_NULL(string) ((string)[0] == CTLNUL && (string)[1] == '\0') ++Q_ADDEDQUOTES macro 40 subst.h #define Q_ADDEDQUOTES 0x020 ++Q_ARITH macro 43 subst.h #define Q_ARITH 0x100 /* expanding string for arithmetic evaluation */ ++Q_ARRAYSUB macro 44 subst.h #define Q_ARRAYSUB 0x200 /* expanding indexed array subscript */ ++Q_DOLBRACE macro 42 subst.h #define Q_DOLBRACE 0x080 ++Q_DOUBLE_QUOTES macro 35 subst.h #define Q_DOUBLE_QUOTES 0x001 ++Q_HERE_DOCUMENT macro 36 subst.h #define Q_HERE_DOCUMENT 0x002 ++Q_KEEP_BACKSLASH macro 37 subst.h #define Q_KEEP_BACKSLASH 0x004 ++Q_PATQUOTE macro 38 subst.h #define Q_PATQUOTE 0x008 ++Q_QUOTED macro 39 subst.h #define Q_QUOTED 0x010 ++Q_QUOTEDNULL macro 41 subst.h #define Q_QUOTEDNULL 0x040 ++RBRACE macro 96 subst.c #define RBRACE '}' ++RBRACK macro 45 arrayfunc.c # define RBRACK ']' ++RBRACK macro 100 subst.c #define RBRACK ']' ++READONLY_OR_EXPORT macro 45 /usr/local/src/bash/bash-20230914/builtins/setattr.def #define READONLY_OR_EXPORT \ ++READ_SAMPLE_BUF macro 5990 execute_cmd.c #define READ_SAMPLE_BUF(file, buf, len) \ ++REAL_DIR_ENTRY macro 57 /usr/local/src/bash/bash-20230914/include/posixdir.h # define REAL_DIR_ENTRY(dp) 1 ++REAL_DIR_ENTRY macro 59 /usr/local/src/bash/bash-20230914/include/posixdir.h # define REAL_DIR_ENTRY(dp) (dp->d_ino != 0) ++REAP macro 2893 execute_cmd.c #define REAP() \ ++RECURSIVE_SIG macro 1086 trap.c #define RECURSIVE_SIG(s) (SPECIAL_TRAP(s) == 0) ++REDIRECT typedef 169 command.h } REDIRECT; ++REDIRECTEE typedef 157 command.h } REDIRECTEE; ++REDIRECTION_ERROR macro 122 redir.c #define REDIRECTION_ERROR(r, e, fd) \ ++REDIRECT_BOTH macro 47 shell.h #define REDIRECT_BOTH -2 ++REDIR_VARASSIGN macro 39 command.h #define REDIR_VARASSIGN 0x01 ++REG_TABLE_SIZE macro 58 /usr/local/src/bash/bash-20230914/lib/malloc/table.h #define REG_TABLE_SIZE 8192 ++REINSTALL_SIGCHLD_HANDLER macro 146 jobs.c # define REINSTALL_SIGCHLD_HANDLER signal (SIGCHLD, sigchld_handler) ++REINSTALL_SIGCHLD_HANDLER macro 148 jobs.c # define REINSTALL_SIGCHLD_HANDLER ++RELPATH macro 258 general.h # define RELPATH(x) ((x)[0] != '/') ++RELPATH macro 261 general.h # define RELPATH(x) (ABSPATH(x) == 0) ++REPL typedef 139 /usr/local/src/bash/bash-20230914/builtins/fc.def } REPL; ++REPORTSIG macro 880 nojobs.c # define REPORTSIG(x) ((x) != SIGINT && (x) != SIGPIPE && (x) != SIGTERM) ++RESET_MAIL_FILE macro 134 mailcheck.c #define RESET_MAIL_FILE(i) \ ++RESET_SIGTERM macro 67 quit.h #define RESET_SIGTERM \ ++RESIZE_MALLOCED_BUFFER macro 178 general.h #define RESIZE_MALLOCED_BUFFER(str, cind, room, csize, sincr) \ ++RESTORETOK macro 245 expr.c #define RESTORETOK(X) \ ++RESTORE_NAME macro 819 /usr/local/src/bash/bash-20230914/builtins/set.def #define RESTORE_NAME() \ ++RESTRICTED_REDIRECT macro 44 command.h #define RESTRICTED_REDIRECT -3 /* can only happen in restricted shells. */ ++RETURN_NOT_COMMAND macro 4315 execute_cmd.c #define RETURN_NOT_COMMAND() \ ++RETURN_TRAP macro 42 trap.h #define RETURN_TRAP NSIG+2 ++REVERSE_LIST macro 134 general.h #define REVERSE_LIST(list, type) \ ++REVERT macro 104 /usr/local/src/bash/bash-20230914/builtins/trap.def #define REVERT 1 /* Revert to this signals original value. */ ++RFLAG macro 97 /usr/local/src/bash/bash-20230914/builtins/history.def #define RFLAG 0x02 ++RFLAG macro 101 /usr/local/src/bash/bash-20230914/builtins/bind.def #define RFLAG 0x0040 ++RF_DEVFD macro 563 redir.c #define RF_DEVFD 1 ++RF_DEVSTDERR macro 564 redir.c #define RF_DEVSTDERR 2 ++RF_DEVSTDIN macro 565 redir.c #define RF_DEVSTDIN 3 ++RF_DEVSTDOUT macro 566 redir.c #define RF_DEVSTDOUT 4 ++RF_DEVTCP macro 567 redir.c #define RF_DEVTCP 5 ++RF_DEVUDP macro 568 redir.c #define RF_DEVUDP 6 ++RLIMIT_FILESIZE macro 150 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define RLIMIT_FILESIZE RLIMIT_FSIZE ++RLIMIT_LOCKS macro 145 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define RLIMIT_LOCKS RLIMIT_POSIXLOCKS ++RLIMIT_MAXUPROC macro 177 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define RLIMIT_MAXUPROC RLIMIT_NPROC ++RLIMIT_NOFILE macro 141 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define RLIMIT_NOFILE RLIMIT_OFILE ++RLIMIT_OPENFILES macro 158 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define RLIMIT_OPENFILES RLIMIT_NOFILE ++RLIMIT_PIPESIZE macro 155 /usr/local/src/bash/bash-20230914/builtins/ulimit.def #define RLIMIT_PIPESIZE 257 ++RLIMIT_PTHREAD macro 183 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define RLIMIT_PTHREAD RLIMIT_NTHR ++RLIMIT_VIRTMEM macro 164 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define RLIMIT_VIRTMEM RLIMIT_VMEM ++RLIMIT_VMBLKSZ macro 165 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define RLIMIT_VMBLKSZ 1024 ++RLIMTYPE macro 132 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define RLIMTYPE long ++RLIM_INFINITY macro 187 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define RLIM_INFINITY 0x7fffffff ++RLIM_SAVED_CUR macro 191 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define RLIM_SAVED_CUR RLIM_INFINITY ++RLIM_SAVED_MAX macro 195 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define RLIM_SAVED_MAX RLIM_INFINITY ++RL_BOOLEAN_VARIABLE_VALUE macro 104 bashline.c #define RL_BOOLEAN_VARIABLE_VALUE(s) ((s)[0] == 'o' && (s)[1] == 'n' && (s)[2] == '\0') ++ROOTEDPATH macro 264 general.h #define ROOTEDPATH(x) (ABSPATH(x)) ++ROTATE macro 168 /usr/local/src/bash/bash-20230914/builtins/pushd.def #define ROTATE 0x02 ++RPAR macro 132 expr.c #define RPAR ')' ++RPAREN macro 98 subst.c #define RPAREN ')' ++RP_LONG_LEFT macro 5048 subst.c #define RP_LONG_LEFT 1 ++RP_LONG_RIGHT macro 5050 subst.c #define RP_LONG_RIGHT 3 ++RP_SHORT_LEFT macro 5049 subst.c #define RP_SHORT_LEFT 2 ++RP_SHORT_RIGHT macro 5051 subst.c #define RP_SHORT_RIGHT 4 ++RP_SPACE macro 3222 execute_cmd.c #define RP_SPACE ") " ++RP_SPACE_LEN macro 3223 execute_cmd.c #define RP_SPACE_LEN 2 ++RSH macro 114 expr.c #define RSH 10 /* ">>" Right SHift */ ++RTLD_LAZY macro 342 /usr/local/src/bash/bash-20230914/builtins/enable.def #define RTLD_LAZY 1 ++RUNNING macro 100 jobs.h #define RUNNING(j) (jobs[(j)]->state == JRUNNING) ++R_OK macro 78 test.c #define R_OK 4 ++SAVED_VAR typedef 60 unwind_prot.c } SAVED_VAR; ++SAVETOK macro 233 expr.c #define SAVETOK(X) \ ++SAVE_EXPORTSTR macro 205 variables.h #define SAVE_EXPORTSTR(var, value) (var)->exportstr = (value) ? savestring (value) : (char *)NULL ++SA_RESTART macro 449 nojobs.c # define SA_RESTART 0 ++SB variable 266 execute_cmd.c struct stat SB; /* used for debugging */ ++SD_ARITHEXP macro 325 subst.h #define SD_ARITHEXP 0x400 /* skip_to_delim during arithmetic expansion */ ++SD_COMPLETE macro 323 subst.h #define SD_COMPLETE 0x100 /* skip_to_delim during completion */ ++SD_EXTGLOB macro 319 subst.h #define SD_EXTGLOB 0x010 /* skip over extended globbing patterns if appropriate */ ++SD_GLOB macro 321 subst.h #define SD_GLOB 0x040 /* skip over glob patterns like bracket expressions */ ++SD_HISTEXP macro 324 subst.h #define SD_HISTEXP 0x200 /* skip_to_delim during history expansion */ ++SD_IGNOREQUOTE macro 320 subst.h #define SD_IGNOREQUOTE 0x020 /* single and double quotes are not special */ ++SD_INVERT macro 316 subst.h #define SD_INVERT 0x002 /* look for chars NOT in passed set */ ++SD_NOERROR macro 326 subst.h #define SD_NOERROR 0x800 /* don't print error messages */ ++SD_NOJMP macro 315 subst.h #define SD_NOJMP 0x001 /* don't longjmp on fatal error. */ ++SD_NOPROCSUB macro 322 subst.h #define SD_NOPROCSUB 0x080 /* don't parse process substitutions as commands */ ++SD_NOQUOTEDELIM macro 317 subst.h #define SD_NOQUOTEDELIM 0x004 /* don't let single or double quotes act as delimiters */ ++SD_NOSKIPCMD macro 318 subst.h #define SD_NOSKIPCMD 0x008 /* don't skip over $(, <(, or >( command/process substitution; parse them as commands */ ++SEEK_CUR macro 136 input.c # define SEEK_CUR 1 ++SELECT_COM typedef 290 command.h } SELECT_COM; ++SET macro 103 /usr/local/src/bash/bash-20230914/builtins/trap.def #define SET 0 /* Set this signal to first_arg. */ ++SETINTERRUPT macro 41 quit.h #define SETINTERRUPT interrupt_state = 1 ++SETOPT macro 73 /usr/local/src/bash/bash-20230914/builtins/shopt.def #define SETOPT 1 ++SETORIGSIG macro 142 trap.c #define SETORIGSIG(sig,handler) \ ++SETOSTYPE macro 5983 execute_cmd.c # define SETOSTYPE(x) __setostype(x) ++SETOSTYPE macro 5985 execute_cmd.c # define SETOSTYPE(x) ++SETVARATTR macro 189 variables.h #define SETVARATTR(var, attr, undo) \ ++SET_BINARY_O_OPTION_VALUE macro 247 /usr/local/src/bash/bash-20230914/builtins/set.def #define SET_BINARY_O_OPTION_VALUE(i, onoff, name) \ ++SET_CLOSE_ON_EXEC macro 33 /usr/local/src/bash/bash-20230914/include/filecntl.h #define SET_CLOSE_ON_EXEC(fd) (fcntl ((fd), F_SETFD, FD_CLOEXEC)) ++SET_EXPORTSTR macro 204 variables.h #define SET_EXPORTSTR(var, value) (var)->exportstr = (value) ++SET_INT_VAR macro 5667 variables.c #define SET_INT_VAR(name, intvar) intvar = find_variable (name) != 0 ++SET_LASTREF macro 77 array.c #define SET_LASTREF(a, e) a->lastref = (e) ++SET_LINE_NUMBER macro 288 execute_cmd.c #define SET_LINE_NUMBER(v) \ ++SET_OPEN_ON_EXEC macro 34 /usr/local/src/bash/bash-20230914/include/filecntl.h #define SET_OPEN_ON_EXEC(fd) (fcntl ((fd), F_SETFD, FD_NCLOEXEC)) ++SFLAG macro 85 /usr/local/src/bash/bash-20230914/builtins/enable.def #define SFLAG 0x20 ++SFLAG macro 100 /usr/local/src/bash/bash-20230914/builtins/history.def #define SFLAG 0x10 ++SFLAG macro 104 /usr/local/src/bash/bash-20230914/builtins/bind.def #define SFLAG 0x0200 ++SFLAG macro 288 /usr/local/src/bash/bash-20230914/builtins/shopt.def #define SFLAG 0x01 ++SHELL_BOOLEAN macro 101 test.c #define SHELL_BOOLEAN(value) (!(value)) ++SHELL_FD_BASE macro 86 redir.c #define SHELL_FD_BASE 10 ++SHELL_VAR typedef 94 variables.h } SHELL_VAR; ++SHFUNC_RETURN macro 33 bashjmp.h #define SHFUNC_RETURN() sh_longjmp (return_catch, 1) ++SHMAT_PWARN macro 346 externs.h #define SHMAT_PWARN 0x002 /* print a warning message on invalid regexp */ ++SHMAT_SUBEXP macro 345 externs.h #define SHMAT_SUBEXP 0x001 /* save subexpressions in SH_REMATCH */ ++SHRT_MAX macro 83 /usr/local/src/bash/bash-20230914/include/typemax.h # define SHRT_MAX TYPE_MAXIMUM(short) ++SHRT_MIN macro 84 /usr/local/src/bash/bash-20230914/include/typemax.h # define SHRT_MIN TYPE_MINIMUM(short) ++SH_FUNCTION_TYPEDEF macro 189 general.h # define SH_FUNCTION_TYPEDEF ++SIGABRT macro 31 sig.h # define SIGABRT SIGIOT ++SIGABRT macro 71 siglist.c #define SIGABRT SIGIOT ++SIGCHLD macro 49 sig.h # define SIGCHLD SIGCLD ++SIGCHLD macro 131 siglist.c #define SIGCHLD SIGCLD ++SIGEXIT macro 44 bashjmp.h #define SIGEXIT 5 /* Exit due to fatal terminating signal */ ++SIGRETURN macro 37 sig.h #define SIGRETURN(n) return ++SIG_ASYNCSIG macro 69 trap.c #define SIG_ASYNCSIG 0x80 /* The signal is ignored because it's in an asynchronous command. */ ++SIG_BLOCK macro 58 sig.h # define SIG_BLOCK 2 ++SIG_CHANGED macro 67 trap.c #define SIG_CHANGED 0x20 /* Trap value changed in trap handler. */ ++SIG_HARD_IGNORE macro 63 trap.c #define SIG_HARD_IGNORE 0x2 /* Signal was ignored on shell entry. */ ++SIG_IGNORED macro 68 trap.c #define SIG_IGNORED 0x40 /* The signal is currently being ignored. */ ++SIG_INHERITED macro 61 trap.c #define SIG_INHERITED 0x0 /* Value inherited from parent. */ ++SIG_INPROGRESS macro 66 trap.c #define SIG_INPROGRESS 0x10 /* Signal handler currently executing. */ ++SIG_NO_TRAP macro 65 trap.c #define SIG_NO_TRAP 0x8 /* Signal cannot be trapped. */ ++SIG_SETMASK macro 59 sig.h # define SIG_SETMASK 3 ++SIG_SPECIAL macro 64 trap.c #define SIG_SPECIAL 0x4 /* Treat this signal specially. */ ++SIG_TRAPPED macro 62 trap.c #define SIG_TRAPPED 0x1 /* Currently trapped. */ ++SILENT macro 78 /usr/local/src/bash/bash-20230914/builtins/enable.def #define SILENT 8 /* affects dyn_load_builtin behavior */ ++SIMPLE_COM typedef 343 command.h } SIMPLE_COM; ++SIZE_MAX macro 119 /usr/local/src/bash/bash-20230914/include/typemax.h # define SIZE_MAX ((size_t) ~(size_t)0) ++SKIP1 macro 182 /usr/local/src/bash/bash-20230914/builtins/printf.def #define SKIP1 "#'-+ 0" ++SORT_ATIME macro 112 pathexp.h #define SORT_ATIME 4 ++SORT_BLOCKS macro 114 pathexp.h #define SORT_BLOCKS 6 ++SORT_CTIME macro 113 pathexp.h #define SORT_CTIME 5 ++SORT_MTIME macro 111 pathexp.h #define SORT_MTIME 3 ++SORT_NAME macro 109 pathexp.h #define SORT_NAME 1 ++SORT_NONE macro 108 pathexp.h #define SORT_NONE 0 ++SORT_NOSORT macro 115 pathexp.h #define SORT_NOSORT 7 ++SORT_REVERSE macro 117 pathexp.h #define SORT_REVERSE 128 ++SORT_SIZE macro 110 pathexp.h #define SORT_SIZE 2 ++SPECIAL macro 77 /usr/local/src/bash/bash-20230914/builtins/enable.def #define SPECIAL 4 ++SPECIAL_BUILTIN macro 44 builtins.h #define SPECIAL_BUILTIN 0x08 /* This is a Posix `special' builtin. */ ++SPECIAL_LOCAL macro 48 /usr/local/src/bash/bash-20230914/builtins/setattr.def #define SPECIAL_LOCAL(n) \ ++SPECIAL_TRAP macro 71 trap.c #define SPECIAL_TRAP(s) ((s) == EXIT_TRAP || (s) == DEBUG_TRAP || (s) == ERROR_TRAP || (s) == RETURN_TRAP) ++SPECIAL_VAR macro 125 subst.c #define SPECIAL_VAR(name, wi) \ ++SPECIFIC_COMPLETION_FUNCTIONS macro 240 bashline.c #define SPECIFIC_COMPLETION_FUNCTIONS ++SSFLAG macro 105 /usr/local/src/bash/bash-20230914/builtins/bind.def #define SSFLAG 0x0400 ++SSIZE_MAX macro 115 /usr/local/src/bash/bash-20230914/include/typemax.h # define SSIZE_MAX INT_MAX ++STATIC_BUILTIN macro 43 builtins.h #define STATIC_BUILTIN 0x04 /* This builtin is not dynamically loaded. */ ++STOPPED macro 99 jobs.h #define STOPPED(j) (jobs[(j)]->state == JSTOPPED) ++STR macro 109 expr.c #define STR 5 /* string */ ++STRCOLLEQ macro 71 test.c #define STRCOLLEQ(a, b) ((a)[0] == (b)[0] && strcoll ((a), (b)) == 0) ++STRDUP macro 42 pcomplib.c #define STRDUP(x) ((x) ? savestring (x) : (char *)NULL) ++STRDUP macro 71 pcomplete.c # undef STRDUP ++STRDUP macro 73 pcomplete.c #define STRDUP(x) ((x) ? savestring (x) : (char *)NULL) ++STRDUP macro 75 /usr/local/src/bash/bash-20230914/builtins/complete.def #define STRDUP(x) ((x) ? savestring (x) : (char *)NULL) ++STREQ function 154 general.h STREQ(const char *a, const char *b) ++STREQ macro 69 test.c # define STREQ(a, b) ((a)[0] == (b)[0] && strcmp ((a), (b)) == 0) ++STREQN function 160 general.h STREQN(const char *a, const char *b, size_t n) ++STRINGCHAR macro 5838 execute_cmd.c # define STRINGCHAR(ind) \ ++STRINGCHAR macro 5843 execute_cmd.c # define STRINGCHAR(ind) \ ++STRINGCHAR macro 5926 execute_cmd.c #undef STRINGCHAR ++STRING_ARRAY macro 1072 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define STRING_ARRAY 0x01 ++STRING_INT_ALIST typedef 131 general.h } STRING_INT_ALIST; ++STRLEN macro 65 test.c # define STRLEN(s) ((s)[0] ? ((s)[1] ? ((s)[2] ? strlen(s) : 2) : 1) : 0) ++STRLEN macro 166 general.h #define STRLEN(s) (((s) && (s)[0]) ? ((s)[1] ? ((s)[2] ? strlen(s) : 2) : 1) : 0) ++STRUCT_SUFFIX macro 97 /usr/local/src/bash/bash-20230914/builtins/enable.def #define STRUCT_SUFFIX "_struct" ++STR_DOLLAR_AT_STAR macro 108 subst.c #define STR_DOLLAR_AT_STAR(s) (DOLLAR_AT_STAR ((s)[0]) && (s)[1] == '\0') ++ST_BACKSL macro 89 subst.c #define ST_BACKSL 0x01 ++ST_BAD macro 343 braces.c #define ST_BAD 0 ++ST_CHAR macro 345 braces.c #define ST_CHAR 2 ++ST_CTLESC macro 90 subst.c #define ST_CTLESC 0x02 ++ST_DQUOTE macro 92 subst.c #define ST_DQUOTE 0x08 /* unused yet */ ++ST_INT macro 344 braces.c #define ST_INT 1 ++ST_SQUOTE macro 91 subst.c #define ST_SQUOTE 0x04 /* unused yet */ ++ST_ZINT macro 346 braces.c #define ST_ZINT 3 ++SUBOVERFLOW macro 137 /usr/local/src/bash/bash-20230914/include/typemax.h #define SUBOVERFLOW(a,b,minv,maxv) \ ++SUBSHELL_ASYNC macro 120 command.h #define SUBSHELL_ASYNC 0x01 /* subshell caused by `command &' */ ++SUBSHELL_COM typedef 365 command.h } SUBSHELL_COM; ++SUBSHELL_COMSUB macro 122 command.h #define SUBSHELL_COMSUB 0x04 /* subshell caused by `command` or $(command) */ ++SUBSHELL_COPROC macro 126 command.h #define SUBSHELL_COPROC 0x40 /* subshell from a coproc pipeline */ ++SUBSHELL_FORK macro 123 command.h #define SUBSHELL_FORK 0x08 /* subshell caused by executing a disk command */ ++SUBSHELL_IGNTRAP macro 128 command.h #define SUBSHELL_IGNTRAP 0x100 /* subshell should reset trapped signals from trap_handler */ ++SUBSHELL_PAREN macro 121 command.h #define SUBSHELL_PAREN 0x02 /* subshell caused by ( ... ) */ ++SUBSHELL_PIPE macro 124 command.h #define SUBSHELL_PIPE 0x10 /* subshell from a pipeline element */ ++SUBSHELL_PROCSUB macro 125 command.h #define SUBSHELL_PROCSUB 0x20 /* subshell caused by <(command) or >(command) */ ++SUBSHELL_RESETTRAP macro 127 command.h #define SUBSHELL_RESETTRAP 0x80 /* subshell needs to reset trap strings on first call to trap */ ++SVFUNC typedef 75 pcomplete.c typedef SHELL_VAR **SVFUNC (void); ++SX_COMMAND macro 66 subst.h #define SX_COMMAND 0x0008 /* extracting a shell script/command */ ++SX_COMPLETE macro 73 subst.h #define SX_COMPLETE 0x0400 /* extracting word for completion */ ++SX_FUNSUB macro 70 subst.h #define SX_FUNSUB 0x0080 /* extracting ${ command; }; passed to xparse_dolparen */ ++SX_NOALLOC macro 63 subst.h #define SX_NOALLOC 0x0001 /* just skip; don't return substring */ ++SX_NOCTLESC macro 67 subst.h #define SX_NOCTLESC 0x0010 /* don't honor CTLESC quoting */ ++SX_NOERROR macro 75 subst.h #define SX_NOERROR 0x1000 /* don't print parser error messages */ ++SX_NOESCCTLNUL macro 68 subst.h #define SX_NOESCCTLNUL 0x0020 /* don't let CTLESC quote CTLNUL */ ++SX_NOLONGJMP macro 69 subst.h #define SX_NOLONGJMP 0x0040 /* don't longjmp on fatal error */ ++SX_POSIXEXP macro 71 subst.h #define SX_POSIXEXP 0x0100 /* extracting new Posix pattern removal expansions in extract_dollar_brace_string */ ++SX_REQMATCH macro 65 subst.h #define SX_REQMATCH 0x0004 /* closing/matching delimiter required */ ++SX_STRIPDQ macro 74 subst.h #define SX_STRIPDQ 0x0800 /* strip double quotes when extracting double-quoted string */ ++SX_VARNAME macro 64 subst.h #define SX_VARNAME 0x0002 /* variable name; for string_extract () */ ++SX_WORD macro 72 subst.h #define SX_WORD 0x0200 /* extracting word in ${param op word} */ ++SYSLOG_MAXHDR macro 812 bashhist.c #define SYSLOG_MAXHDR 256 ++SYSLOG_MAXLEN macro 811 bashhist.c #define SYSLOG_MAXLEN SYSLOG_MAXMSG ++SYSLOG_MAXMSG macro 810 bashhist.c #define SYSLOG_MAXMSG 1024 ++S_IEXEC macro 115 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IEXEC 00100 ++S_IFBLK macro 64 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_IFBLK _S_IFBLK ++S_IFCHR macro 58 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_IFCHR _S_IFCHR ++S_IFDIR macro 40 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IFDIR 0040000 ++S_IFDIR macro 61 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_IFDIR _S_IFDIR ++S_IFIFO macro 55 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_IFIFO _S_IFIFO ++S_IFLNK macro 70 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_IFLNK _S_IFLNK ++S_IFMT macro 43 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IFMT 0170000 ++S_IFMT macro 52 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_IFMT _S_IFMT ++S_IFREG macro 67 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_IFREG _S_IFREG ++S_IFSOCK macro 73 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_IFSOCK _S_IFSOCK ++S_IREAD macro 113 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IREAD 00400 ++S_IRGRP macro 123 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IRGRP (S_IREAD >> 3) /* read, group */ ++S_IRGRP macro 139 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IRGRP (S_IREAD >> 3) /* read, group */ ++S_IROTH macro 127 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IROTH (S_IREAD >> 6) /* read, other */ ++S_IROTH macro 145 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IROTH (S_IREAD >> 6) /* read, other */ ++S_IRUGO macro 158 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_IRUGO (S_IRUSR | S_IRGRP | S_IROTH) ++S_IRUSR macro 119 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IRUSR S_IREAD /* read, owner */ ++S_IRWXG macro 133 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) ++S_IRWXG macro 150 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) ++S_IRWXO macro 134 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) ++S_IRWXO macro 153 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) ++S_IRWXU macro 132 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) ++S_ISBLK macro 30 /usr/local/src/bash/bash-20230914/include/posixstat.h # undef S_ISBLK ++S_ISBLK macro 80 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_ISBLK(m) (((m)&S_IFMT) == S_IFBLK) /* block device */ ++S_ISCHR macro 31 /usr/local/src/bash/bash-20230914/include/posixstat.h # undef S_ISCHR ++S_ISCHR macro 84 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_ISCHR(m) (((m)&S_IFMT) == S_IFCHR) /* character device */ ++S_ISDIR macro 32 /usr/local/src/bash/bash-20230914/include/posixstat.h # undef S_ISDIR ++S_ISDIR macro 88 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR) /* directory */ ++S_ISFIFO macro 33 /usr/local/src/bash/bash-20230914/include/posixstat.h # undef S_ISFIFO ++S_ISFIFO macro 96 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_ISFIFO(m) (((m)&S_IFMT) == S_IFIFO) /* fifo - named pipe */ ++S_ISLNK macro 35 /usr/local/src/bash/bash-20230914/include/posixstat.h # undef S_ISLNK ++S_ISLNK macro 100 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_ISLNK(m) (((m)&S_IFMT) == S_IFLNK) /* symbolic link */ ++S_ISREG macro 34 /usr/local/src/bash/bash-20230914/include/posixstat.h # undef S_ISREG ++S_ISREG macro 92 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_ISREG(m) (((m)&S_IFMT) == S_IFREG) /* file */ ++S_ISSOCK macro 104 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_ISSOCK(m) (((m)&S_IFMT) == S_IFSOCK) /* socket */ ++S_IWGRP macro 124 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IWGRP (S_IWRITE >> 3) /* write, group */ ++S_IWGRP macro 140 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IWGRP (S_IWRITE >> 3) /* write, group */ ++S_IWOTH macro 128 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IWOTH (S_IWRITE >> 6) /* write, other */ ++S_IWOTH macro 146 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IWOTH (S_IWRITE >> 6) /* write, other */ ++S_IWRITE macro 114 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IWRITE 00200 ++S_IWUGO macro 159 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_IWUGO (S_IWUSR | S_IWGRP | S_IWOTH) ++S_IWUSR macro 120 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IWUSR S_IWRITE /* write, owner */ ++S_IXGRP macro 125 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IXGRP (S_IEXEC >> 3) /* execute, group */ ++S_IXGRP macro 141 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IXGRP (S_IEXEC >> 3) /* execute, group */ ++S_IXOTH macro 129 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IXOTH (S_IEXEC >> 6) /* execute, other */ ++S_IXOTH macro 147 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IXOTH (S_IEXEC >> 6) /* execute, other */ ++S_IXUGO macro 160 /usr/local/src/bash/bash-20230914/include/posixstat.h #define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) ++S_IXUSR macro 121 /usr/local/src/bash/bash-20230914/include/posixstat.h # define S_IXUSR S_IEXEC /* execute, owner */ ++Sarg variable 105 /usr/local/src/bash/bash-20230914/builtins/complete.def static char *Garg, *Warg, *Parg, *Sarg, *Xarg, *Farg, *Carg; ++Select member 212 command.h struct select_com *Select; ++SigHandler typedef 35 sig.h typedef void SigHandler (int); ++Simple member 208 command.h struct simple_com *Simple; ++Subshell member 223 command.h struct subshell_com *Subshell; ++TEMPENV_HASH_BUCKETS macro 86 variables.c #define TEMPENV_HASH_BUCKETS 4 /* must be power of two */ ++TERMIOS_TTY_DRIVER macro 30 /usr/local/src/bash/bash-20230914/include/shtty.h # define TERMIOS_TTY_DRIVER ++TERMIO_TTY_DRIVER macro 33 /usr/local/src/bash/bash-20230914/include/shtty.h # define TERMIO_TTY_DRIVER ++TERMSIGS_LENGTH macro 217 sig.c #define TERMSIGS_LENGTH (sizeof (terminating_signals) / sizeof (struct termsig)) ++TEST_ERREXIT_STATUS macro 103 test.c #define TEST_ERREXIT_STATUS 2 ++TEXINFO macro 1073 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define TEXINFO 0x02 ++TILDE_END macro 1140 general.c #define TILDE_END(c) ((c) == '\0' || (c) == '/' || (c) == ':') ++TIMELEN_MAX macro 106 /usr/local/src/bash/bash-20230914/builtins/history.def # define TIMELEN_MAX 128 ++TIMELEN_MAX macro 186 /usr/local/src/bash/bash-20230914/builtins/printf.def # define TIMELEN_MAX 128 ++TIMEVAL_TO_TIMESPEC macro 86 /usr/local/src/bash/bash-20230914/include/posixtime.h # define TIMEVAL_TO_TIMESPEC(tv, ts) \ ++TOSTOP macro 52 /usr/local/src/bash/bash-20230914/include/shtty.h # undef TOSTOP ++TRANSLATE_REDIRECT macro 66 command.h #define TRANSLATE_REDIRECT(ri) \ ++TRAP_STRING macro 57 trap.h #define TRAP_STRING(s) \ ++TRUE macro 99 test.c #define TRUE 1 ++TTYSTRUCT macro 55 /usr/local/src/bash/bash-20230914/include/shtty.h # define TTYSTRUCT struct termios ++TTYSTRUCT macro 59 /usr/local/src/bash/bash-20230914/include/shtty.h # define TTYSTRUCT struct termio ++TTYSTRUCT macro 62 /usr/local/src/bash/bash-20230914/include/shtty.h # define TTYSTRUCT struct sgttyb ++TYPE_MAXIMUM macro 51 /usr/local/src/bash/bash-20230914/include/typemax.h # define TYPE_MAXIMUM(t) \ ++TYPE_MINIMUM macro 47 /usr/local/src/bash/bash-20230914/include/typemax.h # define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t)) ++TYPE_SIGNED macro 35 /usr/local/src/bash/bash-20230914/include/typemax.h # define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) ++TYPE_SIGNED macro 80 general.h #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) ++TYPE_SIGNED_MAGNITUDE macro 39 /usr/local/src/bash/bash-20230914/include/typemax.h # define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) ++TYPE_WIDTH macro 43 /usr/local/src/bash/bash-20230914/include/typemax.h # define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) ++TYPE_WIDTH macro 84 general.h #define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) ++UCHAR_MAX macro 89 /usr/local/src/bash/bash-20230914/include/typemax.h # define UCHAR_MAX 255 ++UFLAG macro 106 /usr/local/src/bash/bash-20230914/builtins/bind.def #define UFLAG 0x0800 ++UFLAG macro 289 /usr/local/src/bash/bash-20230914/builtins/shopt.def #define UFLAG 0x02 ++UINT_MAX macro 79 /usr/local/src/bash/bash-20230914/include/typemax.h # define UINT_MAX ((unsigned int) ~(unsigned int)0) ++ULLONG_MAX macro 63 /usr/local/src/bash/bash-20230914/include/typemax.h # define ULLONG_MAX TYPE_MAXIMUM(unsigned long long int) ++ULLONG_MAX macro 95 /usr/local/src/bash/bash-20230914/include/typemax.h # undef ULLONG_MAX ++ULLONG_MAX macro 96 /usr/local/src/bash/bash-20230914/include/typemax.h # define ULLONG_MAX maxquad ++ULONG_MAX macro 68 /usr/local/src/bash/bash-20230914/include/typemax.h # define ULONG_MAX ((unsigned long) ~(unsigned long) 0) ++UNBLOCK_CHILD macro 98 sig.h # define UNBLOCK_CHILD(ovar) UNBLOCK_SIGNAL(ovar) ++UNBLOCK_CHILD macro 101 sig.h # define UNBLOCK_CHILD(ovar) sigsetmask (ovar) ++UNBLOCK_SIGNAL macro 94 sig.h #define UNBLOCK_SIGNAL(ovar) sigprocmask (SIG_SETMASK, &ovar, (sigset_t *) NULL) ++UNLOAD_SUFFIX macro 100 /usr/local/src/bash/bash-20230914/builtins/enable.def #define UNLOAD_SUFFIX "_builtin_unload" ++UNQUEUE_SIGCHLD macro 324 jobs.c #define UNQUEUE_SIGCHLD(os) \ ++UNQUOTED macro 11051 subst.c #define UNQUOTED 0 ++UNSETOPT macro 72 /usr/local/src/bash/bash-20230914/builtins/shopt.def #define UNSETOPT 0 ++UNSET_LASTREF macro 78 array.c #define UNSET_LASTREF(a) a->lastref = 0; ++UNWIND_ELT typedef 78 unwind_prot.c } UNWIND_ELT; ++UPDATE_MAIL_FILE macro 143 mailcheck.c #define UPDATE_MAIL_FILE(i, finfo) \ ++USE_EXPORTSTR macro 4781 variables.c # define USE_EXPORTSTR (value == var->exportstr && array_p (var) == 0 && assoc_p (var) == 0) ++USE_EXPORTSTR macro 4783 variables.c # define USE_EXPORTSTR (value == var->exportstr) ++USE_EXPORTSTR macro 4841 variables.c #undef USE_EXPORTSTR ++USE_LESSCORE macro 38 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h #define USE_LESSCORE ++USE_LONG_DOUBLE macro 214 /usr/local/src/bash/bash-20230914/builtins/printf.def # define USE_LONG_DOUBLE 1 ++USE_LONG_DOUBLE macro 219 /usr/local/src/bash/bash-20230914/builtins/printf.def # define USE_LONG_DOUBLE 0 ++USE_VAR macro 163 shell.h # define USE_VAR(x) ((void) &(x)) ++USE_VAR macro 165 shell.h # define USE_VAR(x) ++USHRT_MAX macro 85 /usr/local/src/bash/bash-20230914/include/typemax.h # define USHRT_MAX ((unsigned short) ~(unsigned short)0) ++UWCACHESIZE macro 92 unwind_prot.c #define UWCACHESIZE 128 ++VALID_ECHO_OPTIONS macro 90 /usr/local/src/bash/bash-20230914/builtins/echo.def # define VALID_ECHO_OPTIONS "neE" ++VALID_INDIR_PARAM macro 117 subst.c #define VALID_INDIR_PARAM(c) \ ++VALID_NUMCHAR macro 1532 expr.c #define VALID_NUMCHAR(c) (ISALNUM(c) || ((c) == '_') || ((c) == '@')) ++VALID_PARAM_EXPAND_CHAR macro 122 subst.c #define VALID_PARAM_EXPAND_CHAR(c) (sh_syntaxtab[(unsigned char)c] & CSUBSTOP) ++VALID_SPECIAL_LENGTH_PARAM macro 112 subst.c #define VALID_SPECIAL_LENGTH_PARAM(c) \ ++VARIABLES_HASH_BUCKETS macro 84 variables.c #define VARIABLES_HASH_BUCKETS 1024 /* must be power of two */ ++VARLIST typedef 100 variables.h } VARLIST; ++VAR_CONTEXT typedef 41 variables.h } VAR_CONTEXT; ++VA_ALLOWALL macro 71 arrayfunc.h #define VA_ALLOWALL 0x004 /* allow @ to mean all elements of the array */ ++VA_ALLOWALL macro 135 arrayfunc.h #define VA_ALLOWALL 0 ++VA_NOEXPAND macro 69 arrayfunc.h #define VA_NOEXPAND 0x001 ++VA_NOEXPAND macro 133 arrayfunc.h #define VA_NOEXPAND 0 ++VA_ONEWORD macro 70 arrayfunc.h #define VA_ONEWORD 0x002 ++VA_ONEWORD macro 134 arrayfunc.h #define VA_ONEWORD 0 ++VCLRFLAGS macro 199 variables.h #define VCLRFLAGS(var) ((var)->attributes = 0) ++VC_BLTNENV macro 47 variables.h #define VC_BLTNENV 0x08 /* builtin_env */ ++VC_FUNCENV macro 46 variables.h #define VC_FUNCENV 0x04 /* also function if name != NULL */ ++VC_HASLOCAL macro 44 variables.h #define VC_HASLOCAL 0x01 ++VC_HASTMPVAR macro 45 variables.h #define VC_HASTMPVAR 0x02 ++VC_TEMPENV macro 48 variables.h #define VC_TEMPENV 0x10 /* temporary_env */ ++VC_TEMPFLAGS macro 50 variables.h #define VC_TEMPFLAGS (VC_FUNCENV|VC_BLTNENV|VC_TEMPENV) ++VFLAG macro 98 /usr/local/src/bash/bash-20230914/builtins/bind.def #define VFLAG 0x0008 ++VGETFLAGS macro 196 variables.h #define VGETFLAGS(var) ((var)->attributes) ++VI_EDITING_MODE macro 88 bashline.c # define VI_EDITING_MODE 0 ++VI_EDIT_COMMAND macro 932 bashline.c #define VI_EDIT_COMMAND "fc -e \"${VISUAL:-${EDITOR:-vi}}\"" ++VSETATTR macro 193 variables.h #define VSETATTR(var, attr) ((var)->attributes |= (attr)) ++VSETFLAGS macro 198 variables.h #define VSETFLAGS(var, flags) ((var)->attributes = (flags)) ++VT_ARRAYMEMBER macro 83 subst.c #define VT_ARRAYMEMBER 3 ++VT_ARRAYVAR macro 82 subst.c #define VT_ARRAYVAR 2 ++VT_ASSOCVAR macro 84 subst.c #define VT_ASSOCVAR 4 ++VT_POSPARMS macro 81 subst.c #define VT_POSPARMS 1 ++VT_STARSUB macro 86 subst.c #define VT_STARSUB 128 /* $* or ${array[*]} -- used to split */ ++VT_VARIABLE macro 80 subst.c #define VT_VARIABLE 0 ++VUNSETATTR macro 194 variables.h #define VUNSETATTR(var, attr) ((var)->attributes &= ~(attr)) ++VVFLAG macro 103 /usr/local/src/bash/bash-20230914/builtins/bind.def #define VVFLAG 0x0100 ++WAIT typedef 38 /usr/local/src/bash/bash-20230914/include/posixwait.h typedef union wait WAIT; ++WAIT typedef 41 /usr/local/src/bash/bash-20230914/include/posixwait.h typedef int WAIT; ++WAITPID macro 63 nojobs.c # define WAITPID(pid, statusp, options) waitpid (pid, statusp, options) ++WAITPID macro 65 nojobs.c # define WAITPID(pid, statusp, options) wait (statusp) ++WAITPID macro 118 jobs.c # define WAITPID(pid, statusp, options) \ ++WAITPID macro 122 jobs.c # define WAITPID(pid, statusp, options) \ ++WAITPID macro 126 jobs.c # define WAITPID(pid, statusp, options) \ ++WAITPID macro 129 jobs.c # define WAITPID(pid, statusp, options) \ ++WAIT_RETURN macro 101 /usr/local/src/bash/bash-20230914/builtins/wait.def #define WAIT_RETURN(s) \ ++WCONTINUED macro 153 jobs.c # undef WCONTINUED ++WCONTINUED macro 154 jobs.c # define WCONTINUED 0 ++WDCACHESIZE macro 55 make_cmd.c #define WDCACHESIZE 128 ++WDOT_OR_DOTDOT macro 277 general.h #define WDOT_OR_DOTDOT(w) (w[0] == L'.' && (w[1] == L'\0' || (w[1] == L'.' && w[2] == L'\0'))) ++WEXITSTATUS macro 64 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WEXITSTATUS(s) ((s) >> 8) ++WEXITSTATUS macro 95 /usr/local/src/bash/bash-20230914/include/unionwait.h #define WEXITSTATUS(x) ((x).w_retcode) ++WEXITSTATUS macro 98 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WEXITSTATUS(s) ((s).w_retcode) ++WEXP_ALL macro 12369 subst.c #define WEXP_ALL (WEXP_VARASSIGN|WEXP_BRACEEXP|WEXP_TILDEEXP|WEXP_PARAMEXP|WEXP_PATHEXP) ++WEXP_BRACEEXP macro 12362 subst.c #define WEXP_BRACEEXP 0x002 ++WEXP_NOVARS macro 12373 subst.c #define WEXP_NOVARS (WEXP_BRACEEXP|WEXP_TILDEEXP|WEXP_PARAMEXP|WEXP_PATHEXP) ++WEXP_PARAMEXP macro 12364 subst.c #define WEXP_PARAMEXP 0x008 ++WEXP_PATHEXP macro 12365 subst.c #define WEXP_PATHEXP 0x010 ++WEXP_SHELLEXP macro 12378 subst.c #define WEXP_SHELLEXP (WEXP_BRACEEXP|WEXP_TILDEEXP|WEXP_PARAMEXP) ++WEXP_TILDEEXP macro 12363 subst.c #define WEXP_TILDEEXP 0x004 ++WEXP_VARASSIGN macro 12361 subst.c #define WEXP_VARASSIGN 0x001 ++WFLAG macro 98 /usr/local/src/bash/bash-20230914/builtins/history.def #define WFLAG 0x04 ++WFOLD macro 5410 subst.c #define WFOLD(c) (match_ignore_case && iswupper (c) ? towlower (c) : (wint_t)(c)) ++WFOLD macro 5552 subst.c #undef WFOLD ++WHILE_COM typedef 306 command.h } WHILE_COM; ++WHITECHAR macro 5840 execute_cmd.c # define WHITECHAR(ind) \ ++WHITECHAR macro 5845 execute_cmd.c # define WHITECHAR(ind) \ ++WHITECHAR macro 5927 execute_cmd.c #undef WHITECHAR ++WHOLLY_QUOTED macro 11053 subst.c #define WHOLLY_QUOTED 2 ++WIFCONTINUED macro 157 jobs.c # define WIFCONTINUED(s) (0) ++WIFCORED macro 81 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WIFCORED(s) (WCOREDUMP(s)) ++WIFCORED macro 83 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WIFCORED(s) ((s) & 0200) ++WIFCORED macro 96 /usr/local/src/bash/bash-20230914/include/unionwait.h #define WIFCORED(x) ((x).w_coredump) ++WIFCORED macro 102 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WIFCORED(s) ((s).w_coredump) ++WIFEXITED macro 72 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WIFEXITED(s) (((s) & 0377) == 0) ++WIFEXITED macro 90 /usr/local/src/bash/bash-20230914/include/unionwait.h #define WIFEXITED(x) ((x).w_stopval != WSTOPPED && (x).w_termsig == 0) ++WIFSIGNALED macro 76 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WIFSIGNALED(s) (!WIFSTOPPED(s) && !WIFEXITED(s)) ++WIFSIGNALED macro 91 /usr/local/src/bash/bash-20230914/include/unionwait.h #define WIFSIGNALED(x) ((x).w_stopval != WSTOPPED && (x).w_termsig != 0) ++WIFSTOPPED macro 68 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WIFSTOPPED(s) (((s) & 0177) == 0177) ++WIFSTOPPED macro 89 /usr/local/src/bash/bash-20230914/include/unionwait.h #define WIFSTOPPED(x) ((x).w_stopval == WSTOPPED) ++WLCACHESIZE macro 56 make_cmd.c #define WLCACHESIZE 128 ++WLPAREN macro 103 subst.c #define WLPAREN L'(' ++WNOHANG macro 47 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WNOHANG 1 ++WORDDELIM macro 1053 bashline.c #define WORDDELIM(c) (shellmeta(c) || shellblank(c)) ++WORD_DESC typedef 43 braces.c typedef char *WORD_DESC; ++WORD_DESC typedef 134 command.h } WORD_DESC; ++WORD_LIST typedef 44 braces.c typedef char **WORD_LIST; ++WORD_LIST typedef 140 command.h } WORD_LIST; ++WRITE_REDIRECT macro 57 command.h #define WRITE_REDIRECT(ri) \ ++WRPAREN macro 104 subst.c #define WRPAREN L')' ++WSTATUS macro 39 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WSTATUS(t) (t.w_status) ++WSTATUS macro 42 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WSTATUS(t) (t) ++WSTOPPED macro 88 /usr/local/src/bash/bash-20230914/include/unionwait.h #define WSTOPPED 0177 ++WSTOPSIG macro 56 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WSTOPSIG(s) ((s) >> 8) ++WSTOPSIG macro 90 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WSTOPSIG(s) ((s).w_stopsig) ++WSTOPSIG macro 94 /usr/local/src/bash/bash-20230914/include/unionwait.h #define WSTOPSIG(x) ((x).w_stopsig) ++WTERMSIG macro 60 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WTERMSIG(s) ((s) & 0177) ++WTERMSIG macro 93 /usr/local/src/bash/bash-20230914/include/unionwait.h #define WTERMSIG(x) ((x).w_termsig) ++WTERMSIG macro 94 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WTERMSIG(s) ((s).w_termsig) ++WUNTRACED macro 48 /usr/local/src/bash/bash-20230914/include/posixwait.h # define WUNTRACED 2 ++W_ALLOC macro 30 /usr/local/src/bash/bash-20230914/lib/malloc/watch.h #define W_ALLOC 0x01 ++W_ARRAYIND macro 100 command.h #define W_ARRAYIND (1 << 24) /* word is an array index being expanded */ ++W_ARRAYREF macro 85 command.h #define W_ARRAYREF (1 << 9) /* word is a valid array reference */ ++W_ASSIGNARG macro 93 command.h #define W_ASSIGNARG (1 << 17) /* word is assignment argument to command */ ++W_ASSIGNARRAY macro 99 command.h #define W_ASSIGNARRAY (1 << 23) /* word looks like a compound indexed array assignment */ ++W_ASSIGNASSOC macro 98 command.h #define W_ASSIGNASSOC (1 << 22) /* word looks like associative array assignment */ ++W_ASSIGNMENT macro 78 command.h #define W_ASSIGNMENT (1 << 2) /* This word is a variable assignment. */ ++W_ASSIGNRHS macro 87 command.h #define W_ASSIGNRHS (1 << 11) /* Word is rhs of an assignment statement */ ++W_ASSNBLTIN macro 92 command.h #define W_ASSNBLTIN (1 << 16) /* word is a builtin command that takes assignments */ ++W_ASSNGLOBAL macro 101 command.h #define W_ASSNGLOBAL (1 << 25) /* word is a global assignment to declare (declare/typeset -g) */ ++W_CHKLOCAL macro 104 command.h #define W_CHKLOCAL (1 << 28) /* check for local vars on assignment */ ++W_COMPASSIGN macro 91 command.h #define W_COMPASSIGN (1 << 15) /* Compound assignment */ ++W_COMPLETE macro 103 command.h #define W_COMPLETE (1 << 27) /* word is being expanded for completion */ ++W_DOLLARAT macro 84 command.h #define W_DOLLARAT (1 << 8) /* UNUSED - $@ and its special handling */ ++W_DQUOTE macro 95 command.h #define W_DQUOTE (1 << 19) /* UNUSED - word should be treated as if double-quoted */ ++W_EXPANDRHS macro 90 command.h #define W_EXPANDRHS (1 << 14) /* Expanding word in ${paramOPword} */ ++W_FORCELOCAL macro 105 command.h #define W_FORCELOCAL (1 << 29) /* force assignments to be to local variables, non-fatal on assignment errors */ ++W_FREE macro 31 /usr/local/src/bash/bash-20230914/lib/malloc/watch.h #define W_FREE 0x02 ++W_HASDOLLAR macro 76 command.h #define W_HASDOLLAR (1 << 0) /* Dollar sign present. */ ++W_HASQUOTEDNULL macro 94 command.h #define W_HASQUOTEDNULL (1 << 18) /* word contains a quoted null character */ ++W_NOASSNTILDE macro 89 command.h #define W_NOASSNTILDE (1 << 13) /* don't do tilde expansion like an assignment statement */ ++W_NOBRACE macro 102 command.h #define W_NOBRACE (1 << 26) /* Don't perform brace expansion */ ++W_NOCOMSUB macro 86 command.h #define W_NOCOMSUB (1 << 10) /* Don't perform command substitution on this word */ ++W_NOGLOB macro 81 command.h #define W_NOGLOB (1 << 5) /* Do not perform globbing on this word. */ ++W_NOPROCSUB macro 96 command.h #define W_NOPROCSUB (1 << 20) /* don't perform process substitution */ ++W_NOSPLIT macro 80 command.h #define W_NOSPLIT (1 << 4) /* Do not perform word splitting on this word because ifs is empty string. */ ++W_NOSPLIT2 macro 82 command.h #define W_NOSPLIT2 (1 << 6) /* Don't split word except for $@ expansion (using spaces) because context does not allow it. */ ++W_NOTILDE macro 88 command.h #define W_NOTILDE (1 << 12) /* Don't perform tilde expansion on this word */ ++W_OK macro 79 test.c #define W_OK 2 ++W_QUOTED macro 77 command.h #define W_QUOTED (1 << 1) /* Some form of quote character is present. */ ++W_REALLOC macro 32 /usr/local/src/bash/bash-20230914/lib/malloc/watch.h #define W_REALLOC 0x04 ++W_RESIZED macro 33 /usr/local/src/bash/bash-20230914/lib/malloc/watch.h #define W_RESIZED 0x08 ++W_SAWQUOTEDNULL macro 97 command.h #define W_SAWQUOTEDNULL (1 << 21) /* word contained a quoted null that was removed */ ++W_SPLITSPACE macro 79 command.h #define W_SPLITSPACE (1 << 3) /* Split this word on " " regardless of IFS */ ++W_TILDEEXP macro 83 command.h #define W_TILDEEXP (1 << 7) /* Tilde expand this assignment word */ ++Warg variable 105 /usr/local/src/bash/bash-20230914/builtins/complete.def static char *Garg, *Warg, *Parg, *Sarg, *Xarg, *Farg, *Carg; ++While member 205 command.h struct while_com *While; ++XCOREDUMP macro 222 sig.c #define XCOREDUMP(x) (terminating_signals[x].core_dump) ++XFLAG macro 107 /usr/local/src/bash/bash-20230914/builtins/bind.def #define XFLAG 0x1000 ++XHANDLER macro 220 sig.c #define XHANDLER(x) (terminating_signals[x].orig_handler) ++XHANDLER macro 381 sig.c #undef XHANDLER ++XSAFLAGS macro 221 sig.c #define XSAFLAGS(x) (terminating_signals[x].orig_flags) ++XSIG macro 219 sig.c #define XSIG(x) (terminating_signals[x].signum) ++XSIG macro 686 sig.c #undef XSIG ++XXFLAG macro 108 /usr/local/src/bash/bash-20230914/builtins/bind.def #define XXFLAG 0x2000 ++X_EAGAIN macro 49 input.c # define X_EAGAIN EAGAIN ++X_EAGAIN macro 51 input.c # define X_EAGAIN -99 ++X_EWOULDBLOCK macro 55 input.c # define X_EWOULDBLOCK EWOULDBLOCK ++X_EWOULDBLOCK macro 57 input.c # define X_EWOULDBLOCK -99 ++X_OK macro 80 test.c #define X_OK 1 ++Xarg variable 105 /usr/local/src/bash/bash-20230914/builtins/complete.def static char *Garg, *Warg, *Parg, *Sarg, *Xarg, *Farg, *Carg; ++_ macro 36 bashintl.h #define _(msgid) gettext(msgid) ++_ macro 45 braces.c #define _(X) X ++_ macro 158 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h # define _(x) x ++_ALIAS_H_ macro 22 alias.h #define _ALIAS_H_ ++_ARRAYFUNC_H_ macro 22 arrayfunc.h #define _ARRAYFUNC_H_ ++_ARRAY_H_ macro 24 array.h #define _ARRAY_H_ ++_ASSOC_H_ macro 23 assoc.h #define _ASSOC_H_ ++_BASHANSI_H_ macro 22 bashansi.h #define _BASHANSI_H_ ++_BASHHIST_H_ macro 22 bashhist.h #define _BASHHIST_H_ ++_BASHINTL_H_ macro 22 bashintl.h #define _BASHINTL_H_ ++_BASHJMP_H_ macro 22 bashjmp.h #define _BASHJMP_H_ ++_BASHLINE_H_ macro 22 bashline.h #define _BASHLINE_H_ ++_BASHTYPES_H_ macro 22 bashtypes.h # define _BASHTYPES_H_ ++_BASH_SYSTIMES_H macro 29 /usr/local/src/bash/bash-20230914/include/systimes.h #define _BASH_SYSTIMES_H 1 ++_COMMAND_H_ macro 23 command.h #define _COMMAND_H_ ++_DISPOSE_CMD_H_ macro 22 dispose_cmd.h #define _DISPOSE_CMD_H_ ++_ERROR_H_ macro 22 error.h #define _ERROR_H_ ++_EXECUTE_CMD_H_ macro 22 execute_cmd.h #define _EXECUTE_CMD_H_ ++_EXTERNS_H_ macro 25 externs.h # define _EXTERNS_H_ ++_FILECNTL_H_ macro 22 /usr/local/src/bash/bash-20230914/include/filecntl.h #define _FILECNTL_H_ ++_FLAGS_H_ macro 23 flags.h #define _FLAGS_H_ ++_GENERAL_H_ macro 22 general.h #define _GENERAL_H_ ++_HASHLIB_H_ macro 22 hashlib.h #define _HASHLIB_H_ ++_IMALLOC_H macro 24 /usr/local/src/bash/bash-20230914/lib/malloc/imalloc.h #define _IMALLOC_H ++_INPUT_H_ macro 22 input.h #define _INPUT_H_ ++_JOBS_H_ macro 22 jobs.h # define _JOBS_H_ ++_KERNEL macro 107 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define _KERNEL ++_KERNEL macro 111 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # undef _KERNEL ++_MAILCHECK_H_ macro 22 mailcheck.h #define _MAILCHECK_H_ ++_MAKE_CMD_H_ macro 22 make_cmd.h #define _MAKE_CMD_H_ ++_MAXPATH_H_ macro 22 /usr/local/src/bash/bash-20230914/include/maxpath.h #define _MAXPATH_H_ ++_MEMALLOC_H_ macro 23 /usr/local/src/bash/bash-20230914/include/memalloc.h # define _MEMALLOC_H_ ++_MSTATS_H macro 22 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h #define _MSTATS_H ++_MTABLE_H macro 22 /usr/local/src/bash/bash-20230914/lib/malloc/table.h #define _MTABLE_H ++_MWATCH_H macro 22 /usr/local/src/bash/bash-20230914/lib/malloc/watch.h #define _MWATCH_H ++_OCACHE_H_ macro 22 /usr/local/src/bash/bash-20230914/include/ocache.h #define _OCACHE_H_ 1 ++_PARSER_H_ macro 23 parser.h # define _PARSER_H_ ++_PATHEXP_H_ macro 22 pathexp.h #define _PATHEXP_H_ ++_PCOMPLETE_H_ macro 23 pcomplete.h # define _PCOMPLETE_H_ ++_POSIXDIR_H_ macro 24 /usr/local/src/bash/bash-20230914/include/posixdir.h #define _POSIXDIR_H_ ++_POSIXJMP_H_ macro 22 /usr/local/src/bash/bash-20230914/include/posixjmp.h #define _POSIXJMP_H_ ++_POSIXSTAT_H_ macro 25 /usr/local/src/bash/bash-20230914/include/posixstat.h #define _POSIXSTAT_H_ ++_POSIXTIME_H_ macro 22 /usr/local/src/bash/bash-20230914/include/posixtime.h #define _POSIXTIME_H_ ++_POSIXWAIT_H_ macro 22 /usr/local/src/bash/bash-20230914/include/posixwait.h # define _POSIXWAIT_H_ ++_POSIX_SOURCE macro 47 /usr/local/src/bash/bash-20230914/include/shtty.h # define _POSIX_SOURCE ++_QUIT_H_ macro 22 quit.h #define _QUIT_H_ ++_SH_GETOPT_H macro 24 /usr/local/src/bash/bash-20230914/builtins/getopt.h #define _SH_GETOPT_H 1 ++_SH_MALLOC_H macro 23 /usr/local/src/bash/bash-20230914/lib/malloc/shmalloc.h #define _SH_MALLOC_H ++_SH_TYPEMAX_H macro 27 /usr/local/src/bash/bash-20230914/include/typemax.h #define _SH_TYPEMAX_H ++_SIGLIST_H_ macro 22 siglist.h #define _SIGLIST_H_ ++_SIG_H_ macro 24 sig.h # define _SIG_H_ ++_STDC_H_ macro 23 /usr/local/src/bash/bash-20230914/include/stdc.h #define _STDC_H_ ++_STDLIB_H_ macro 24 /usr/local/src/bash/bash-20230914/include/ansi_stdlib.h #define _STDLIB_H_ 1 ++_SUBST_H_ macro 22 subst.h #define _SUBST_H_ ++_SYNTAX_H_ macro 22 syntax.h #define _SYNTAX_H_ ++_TRAP_H_ macro 22 trap.h #define _TRAP_H_ ++_UNIONWAIT_H macro 23 /usr/local/src/bash/bash-20230914/include/unionwait.h #define _UNIONWAIT_H ++_UNWIND_PROT_H macro 22 unwind_prot.h #define _UNWIND_PROT_H ++_VARIABLES_H_ macro 22 variables.h #define _VARIABLES_H_ ++__SH_TTY_H_ macro 25 /usr/local/src/bash/bash-20230914/include/shtty.h #define __SH_TTY_H_ ++__attribute__ macro 77 /usr/local/src/bash/bash-20230914/include/stdc.h # define __attribute__(x) ++_compacts struct 107 /usr/local/src/bash/bash-20230914/builtins/complete.def static const struct _compacts { ++_compopt struct 140 /usr/local/src/bash/bash-20230914/builtins/complete.def static const struct _compopt { ++_cygwin32_check_tmp function 349 shell.c _cygwin32_check_tmp (void) ++_evalfile function 76 /usr/local/src/bash/bash-20230914/builtins/evalfile.c _evalfile (const char *filename, int flags) ++_fileinfo struct 52 mailcheck.c typedef struct _fileinfo { ++_find_in_table function 1563 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c _find_in_table (char *name, char **name_table) ++_find_user_command_internal function 281 findcmd.c _find_user_command_internal (const char *name, int flags) ++_ignore_completion_names function 2986 bashline.c _ignore_completion_names (char **names, sh_ignore_func_t *name_func) ++_list_of_items struct 89 pcomplete.h typedef struct _list_of_items { ++_malstats struct 62 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h struct _malstats { ++_optflags struct 79 /usr/local/src/bash/bash-20230914/builtins/complete.def struct _optflags { ++_pathdata struct 28 hashcmd.h typedef struct _pathdata { ++_print_word_list function 378 print_cmd.c _print_word_list (WORD_LIST *list, char *separator, PFUNC *pfunc) ++_redir_special_filenames variable 572 redir.c static STRING_INT_ALIST _redir_special_filenames[] = { ++_rl_longjmp macro 34 /usr/local/src/bash/bash-20230914/include/posixjmp.h # define _rl_longjmp(x, n) siglongjmp((x), (n)) ++_rl_longjmp macro 42 /usr/local/src/bash/bash-20230914/include/posixjmp.h # define _rl_longjmp(x, n) longjmp((x), (n)) ++_run_trap_internal function 1091 trap.c _run_trap_internal (int sig, char *tag) ++_sh_input_line_state_t struct 222 shell.h typedef struct _sh_input_line_state_t ++_sh_parser_state_t struct 173 shell.h typedef struct _sh_parser_state_t ++_strcompare function 151 bracecomp.c _strcompare (const char **s1, const char **s2) ++_value union 68 variables.h union _value { ++_vlist struct 96 variables.h typedef struct _vlist { ++a member 72 variables.h ARRAY *a; /* array */ ++absolute_pathname function 803 general.c absolute_pathname (const char *string) ++absolute_program function 824 general.c absolute_program (const char *string) ++abstab variable 10914 subst.c static char abstab[256] = { '\1' }; ++access_time member 55 mailcheck.c time_t access_time; ++act_like_sh variable 203 shell.c static int act_like_sh; ++actflag member 109 /usr/local/src/bash/bash-20230914/builtins/complete.def unsigned long actflag; ++action member 246 command.h COMMAND *action; /* Thing to execute if a pattern matches. */ ++action member 264 command.h COMMAND *action; /* The action to execute. ++action member 276 command.h COMMAND *action; ++action member 287 command.h COMMAND *action; /* The action to execute. ++action member 305 command.h COMMAND *action; /* Thing to do while test is non-zero. */ ++actions member 30 pcomplete.h unsigned long actions; ++actname member 108 /usr/local/src/bash/bash-20230914/builtins/complete.def const char * const actname; ++actopt member 110 /usr/local/src/bash/bash-20230914/builtins/complete.def int actopt; ++add_alias function 108 alias.c add_alias (const char *name, const char *value) ++add_dirstack_element function 565 /usr/local/src/bash/bash-20230914/builtins/pushd.def add_dirstack_element (char *dir) ++add_documentation function 773 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c add_documentation (DEF_FILE *defs, char *line) ++add_exec_redirect function 1339 redir.c add_exec_redirect (REDIRECT *dummy_redirect) ++add_fifo_list function 5872 subst.c add_fifo_list (char *pathname) ++add_fifo_list function 6135 subst.c add_fifo_list (int fd) ++add_hashed_command function 214 /usr/local/src/bash/bash-20230914/builtins/hash.def add_hashed_command (char *w, int quiet) ++add_host_name function 779 bashline.c add_host_name (const char *name) ++add_mail_file function 177 mailcheck.c add_mail_file (char *file, const char *msg) ++add_or_supercede_exported_var function 4911 variables.c add_or_supercede_exported_var (char *assign, int do_alloc) ++add_pid function 319 nojobs.c add_pid (pid_t pid, int async) ++add_process function 1470 jobs.c add_process (char *name, pid_t pid) ++add_shopt_to_alist function 2076 shell.c add_shopt_to_alist (char *opt, int on_or_off) ++add_string_to_list macro 38 make_cmd.h #define add_string_to_list(s, l) make_word_list (make_word(s), (l)) ++add_temp_array_to_env function 4941 variables.c add_temp_array_to_env (char **temp_array, int do_alloc, int do_supercede) ++add_to_export_env macro 4895 variables.c #define add_to_export_env(envstr,do_alloc) \ ++add_undo_close_redirect function 1323 redir.c add_undo_close_redirect (int fd) ++add_undo_redirect function 1236 redir.c add_undo_redirect (int fd, enum r_instruction ri, int fdbase) ++add_unwind_protect function 135 unwind_prot.c add_unwind_protect (sh_uwfunc_t *cleanup, void *arg) ++add_unwind_protect_internal function 192 unwind_prot.c add_unwind_protect_internal (sh_uwfunc_t *cleanup, void *arg) ++adjust_shell_level function 855 variables.c adjust_shell_level (int change) ++advance macro 167 test.c #define advance(f) do { ++pos; if (f && pos >= argc) beyond (); } while (0) ++alias struct 28 alias.h typedef struct alias { ++alias variable 36 /usr/local/src/bash/bash-20230914/builtins/type.def -P force a PATH search for each NAME, even if it is an alias, ++alias variable 42 /usr/local/src/bash/bash-20230914/builtins/type.def `function', `builtin', `file' or `', if NAME is an alias, ++alias_builtin function 70 /usr/local/src/bash/bash-20230914/builtins/alias.def alias_builtin (WORD_LIST *list) ++alias_expand function 465 alias.c alias_expand (char *string) ++alias_expand_all variable 66 alias.c int alias_expand_all = 0; ++alias_expand_line function 2783 bashline.c alias_expand_line (int count, int ignore) ++alias_expand_word function 276 alias.c alias_expand_word (const char *s) ++alias_t typedef 32 alias.h } alias_t; ++aliases variable 33 /usr/local/src/bash/bash-20230914/builtins/type.def includes aliases, builtins, and functions, if and only if ++aliases variable 69 alias.c HASH_TABLE *aliases = (HASH_TABLE *)NULL; ++all_aliases function 262 alias.c all_aliases (void) ++all_array_variables function 4378 variables.c all_array_variables (void) ++all_digits function 227 general.c all_digits (const char *string) ++all_exported_variables function 4312 variables.c all_exported_variables (void) ++all_local_variables function 4336 variables.c all_local_variables (int visible_only) ++all_shell_functions function 4263 variables.c all_shell_functions (void) ++all_shell_variables function 4256 variables.c all_shell_variables (void) ++all_variables_matching_prefix function 4385 variables.c all_variables_matching_prefix (const char *prefix) ++all_visible_functions function 4275 variables.c all_visible_functions (void) ++all_visible_variables function 4281 variables.c all_visible_variables (void) ++alloc_lvalue function 1121 expr.c alloc_lvalue (void) ++alloc_mail_file function 215 mailcheck.c alloc_mail_file (char *filename, const char *msg) ++alloc_pid_list function 151 nojobs.c alloc_pid_list (void) ++alloc_pipeline_saver function 466 jobs.c alloc_pipeline_saver (void) ++alloc_size member 35 array.h arrayind_t alloc_size; ++alloc_word_desc function 72 make_cmd.c alloc_word_desc (void) ++alloca macro 38 /usr/local/src/bash/bash-20230914/include/memalloc.h # undef alloca ++alloca macro 39 /usr/local/src/bash/bash-20230914/include/memalloc.h # define alloca __builtin_alloca ++allocate_buffers function 163 input.c allocate_buffers (int n) ++allocated variable 53 xmalloc.c static size_t allocated; ++allocerr function 83 xmalloc.c allocerr (const char *func, size_t bytes) ++allow_null_glob_expansion variable 186 subst.c int allow_null_glob_expansion; ++already_expanded variable 180 expr.c static int already_expanded; ++already_making_children member 75 jobs.h int already_making_children; ++already_making_children variable 84 nojobs.c int already_making_children = 0; ++already_making_children variable 226 jobs.c int already_making_children = 0; ++alrm_catcher function 247 eval.c alrm_catcher(int i) ++and function 210 test.c and (void) ++any_signals_trapped function 636 trap.c any_signals_trapped (void) ++append_process function 1509 jobs.c append_process (char *name, pid_t pid, int status, int jid) ++arg member 73 unwind_prot.c } arg; ++argc variable 113 test.c static int argc; /* The number of arguments present in ARGV. */ ++argument variable 32 /usr/local/src/bash/bash-20230914/builtins/getopts.def is followed by a colon, the option is expected to have an argument, ++argv variable 114 test.c static char **argv; /* The argument list. */ ++arith_com struct 312 command.h typedef struct arith_com { ++arith_command label 1150 parse.y arith_command: ARITH_CMD ++arith_for_com struct 270 command.h typedef struct arith_for_com { ++arith_for_command label 922 parse.y arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list DO compound_list DONE ++arithcomp function 335 test.c arithcomp (char *s, char *t, int op, int flags) ++array member 125 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char **array; /* The array itself. */ ++array struct 30 array.h typedef struct array { ++array_add function 429 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c array_add (char *element, ARRAY *array) ++array_alloc_size macro 126 array.h #define array_alloc_size(a) ((a)->alloc_size) ++array_assign_list function 772 array.c array_assign_list (ARRAY *array, WORD_LIST *list) ++array_cell macro 168 variables.h #define array_cell(var) (ARRAY *)((var)->value) ++array_concat function 713 braces.c array_concat (char **arr1, char **arr2) ++array_copy function 125 array.c array_copy(ARRAY *a) ++array_copy_element function 496 array.c array_copy_element(ARRAY_ELEMENT *ae) ++array_create function 81 array.c array_create(void) ++array_create function 384 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c array_create (int width) ++array_create_element function 483 array.c array_create_element(arrayind_t indx, char *value) ++array_dequote function 328 array.c array_dequote(ARRAY *array) ++array_dequote_escapes function 344 array.c array_dequote_escapes(ARRAY *array) ++array_dispose function 115 array.c array_dispose(ARRAY *a) ++array_dispose_element function 504 array.c array_dispose_element(ARRAY_ELEMENT *ae) ++array_element struct 43 array.h typedef struct array_element { ++array_eltstate_t typedef 47 arrayfunc.h } array_eltstate_t; ++array_empty macro 131 array.h #define array_empty(a) ((a)->num_elements == 0) ++array_expand_index function 1354 arrayfunc.c array_expand_index (SHELL_VAR *var, const char *s, int len, int flags) ++array_expand_once variable 50 arrayfunc.c int array_expand_once = 0; ++array_first_index macro 124 array.h #define array_first_index(a) ((a)->head->next->ind) ++array_first_index macro 128 array.h #define array_first_index(a) ((a)->first_index) ++array_flush function 97 array.c array_flush (ARRAY *a) ++array_free function 441 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c array_free (ARRAY *array) ++array_from_argv function 808 array.c array_from_argv(ARRAY *a, char **vec, int count) ++array_from_string function 1014 array.c array_from_string(char *s, char *sep) ++array_from_word_list function 723 array.c array_from_word_list (WORD_LIST *list) ++array_head macro 125 array.h #define array_head(a) ((a)->head) ++array_head macro 129 array.h #define array_head(a) ((a)->elements) ++array_insert function 516 array.c array_insert(ARRAY *a, arrayind_t i, char *v) ++array_keys function 1665 arrayfunc.c array_keys (const char *s, int quoted, int pflags) ++array_keys_to_word_list function 734 array.c array_keys_to_word_list(ARRAY *a) ++array_length_reference function 7374 subst.c array_length_reference (const char *s) ++array_max_index macro 122 array.h #define array_max_index(a) ((a)->max_index) ++array_modcase function 449 array.c array_modcase (ARRAY *a, char *pat, int modop, int mflags) ++array_needs_making variable 167 variables.c int array_needs_making = 1; ++array_num_elements macro 121 array.h #define array_num_elements(a) ((a)->num_elements) ++array_p macro 140 variables.h #define array_p(var) ((((var)->attributes) & (att_array))) ++array_patsub function 419 array.c array_patsub (ARRAY *a, char *pat, char *rep, int mflags) ++array_pop macro 157 array.h #define array_pop(a) \ ++array_push macro 155 array.h #define array_push(a,v) \ ++array_quote function 296 array.c array_quote(ARRAY *array) ++array_quote_escapes function 312 array.c array_quote_escapes(ARRAY *array) ++array_reference function 657 array.c array_reference(ARRAY *a, arrayind_t i) ++array_remove function 602 array.c array_remove(ARRAY *a, arrayind_t i) ++array_remove_pattern function 5708 subst.c array_remove_pattern (SHELL_VAR *var, char *pattern, int patspec, int starsub, int quoted) ++array_remove_quoted_nulls function 360 array.c array_remove_quoted_nulls(ARRAY *array) ++array_rshift function 251 array.c array_rshift (ARRAY *a, int n, char *s) ++array_shift function 193 array.c array_shift(ARRAY *a, int n, int flags) ++array_shift_element function 290 array.c array_shift_element(ARRAY *a, char *v) ++array_slice function 149 array.c array_slice(ARRAY *array, ARRAY_ELEMENT *s, ARRAY_ELEMENT *e) ++array_subrange function 377 array.c array_subrange (ARRAY *a, arrayind_t start, arrayind_t nelem, int starsub, int quoted, int pflags) ++array_to_argv function 783 array.c array_to_argv (ARRAY *a, int *countp) ++array_to_assign function 948 array.c array_to_assign (ARRAY *a, int quoted) ++array_to_kvpair function 896 array.c array_to_kvpair (ARRAY *a, int quoted) ++array_to_kvpair_list function 752 array.c array_to_kvpair_list(ARRAY *a) ++array_to_string function 1000 array.c array_to_string (ARRAY *a, char *sep, int quoted) ++array_to_string_internal function 858 array.c array_to_string_internal (ARRAY_ELEMENT *start, ARRAY_ELEMENT *end, char *sep, int quoted) ++array_to_word_list function 709 array.c array_to_word_list(ARRAY *a) ++array_transform function 8706 subst.c array_transform (int xc, SHELL_VAR *var, int starsub, int quoted) ++array_unshift_element function 284 array.c array_unshift_element(ARRAY *a) ++array_value function 1643 arrayfunc.c array_value (const char *s, int quoted, int flags, array_eltstate_t *estatep) ++array_value_internal function 1485 arrayfunc.c array_value_internal (const char *s, int quoted, int flags, array_eltstate_t *estatep) ++array_var_assignment function 8546 subst.c array_var_assignment (SHELL_VAR *v, int itype, int quoted, int atype) ++array_variable_name function 1400 arrayfunc.c array_variable_name (const char *s, int flags, char **subp, int *lenp) ++array_variable_part function 1450 arrayfunc.c array_variable_part (const char *s, int flags, char **subp, int *lenp) ++array_walk function 173 array.c array_walk(ARRAY *a, sh_ae_map_func_t *func, void *udata) ++arrayind_t typedef 28 array.h typedef intmax_t arrayind_t; ++arrayvar_builtins variable 183 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *arrayvar_builtins[] = ++arrayvar_copyval function 148 arrayfunc.c arrayvar_copyval (SHELL_VAR *v1, SHELL_VAR *v2) ++asciicode function 1489 /usr/local/src/bash/bash-20230914/builtins/printf.def asciicode (void) ++assign_aliasvar function 1791 variables.c assign_aliasvar (SHELL_VAR *self, char *value, arrayind_t ind, char *key) ++assign_array_element function 334 arrayfunc.c assign_array_element (const char *name, const char *value, int flags, array_eltstate_t *estatep) ++assign_array_element_internal function 382 arrayfunc.c assign_array_element_internal (SHELL_VAR *entry, const char *name, char *vname, ++assign_array_from_string function 504 arrayfunc.c assign_array_from_string (const char *name, char *value, int flags) ++assign_array_var_from_string function 907 arrayfunc.c assign_array_var_from_string (SHELL_VAR *var, char *value, int flags) ++assign_array_var_from_word_list function 524 arrayfunc.c assign_array_var_from_word_list (SHELL_VAR *var, WORD_LIST *list, int flags) ++assign_assoc_from_kvlist function 627 arrayfunc.c assign_assoc_from_kvlist (SHELL_VAR *var, WORD_LIST *nlist, HASH_TABLE *h, int flags) ++assign_bash_argv0 function 1534 variables.c assign_bash_argv0 (SHELL_VAR *var, char *value, arrayind_t unused, char *key) ++assign_comp_wordbreaks function 1605 variables.c assign_comp_wordbreaks (SHELL_VAR *self, char *value, arrayind_t unused, char *key) ++assign_compound_array_list function 697 arrayfunc.c assign_compound_array_list (SHELL_VAR *var, WORD_LIST *nlist, int flags) ++assign_dirstack function 1618 variables.c assign_dirstack (SHELL_VAR *self, char *value, arrayind_t ind, char *key) ++assign_func member 89 variables.h sh_var_assign_func_t *assign_func; /* Function called when this `special ++assign_hashcmd function 1721 variables.c assign_hashcmd (SHELL_VAR *self, char *value, arrayind_t ind, char *key) ++assign_in_env function 3525 variables.c assign_in_env (const WORD_DESC *word, int flags) ++assign_lineno function 1456 variables.c assign_lineno (SHELL_VAR *var, char *value, arrayind_t unused, char *key) ++assign_random function 1400 variables.c assign_random (SHELL_VAR *self, char *value, arrayind_t unused, char *key) ++assign_seconds function 1328 variables.c assign_seconds (SHELL_VAR *self, char *value, arrayind_t unused, char *key) ++assign_subshell function 1477 variables.c assign_subshell (SHELL_VAR *var, char *value, arrayind_t unused, char *key) ++assigning_in_environment variable 173 subst.c int assigning_in_environment; ++assignment function 461 general.c assignment (const char *string, int flags) ++assignment_builtins variable 161 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *assignment_builtins[] = ++assigntok variable 173 expr.c static int assigntok; /* the OP in OP= */ ++assoc_cell macro 169 variables.h #define assoc_cell(var) (HASH_TABLE *)((var)->value) ++assoc_copy macro 35 assoc.h #define assoc_copy(h) (hash_copy((h), 0)) ++assoc_create macro 33 assoc.h #define assoc_create(n) (hash_create((n))) ++assoc_dequote function 178 assoc.c assoc_dequote (HASH_TABLE *h) ++assoc_dequote_escapes function 199 assoc.c assoc_dequote_escapes (HASH_TABLE *h) ++assoc_dispose function 52 assoc.c assoc_dispose (HASH_TABLE *hash) ++assoc_empty macro 30 assoc.h #define assoc_empty(h) ((h)->nentries == 0) ++assoc_flush function 62 assoc.c assoc_flush (HASH_TABLE *hash) ++assoc_insert function 68 assoc.c assoc_insert (HASH_TABLE *hash, char *key, char *value) ++assoc_keys_to_word_list function 508 assoc.c assoc_keys_to_word_list (HASH_TABLE *h) ++assoc_modcase function 315 assoc.c assoc_modcase (HASH_TABLE *h, char *pat, int modop, int mflags) ++assoc_num_elements macro 31 assoc.h #define assoc_num_elements(h) ((h)->nentries) ++assoc_p macro 144 variables.h #define assoc_p(var) ((((var)->attributes) & (att_assoc))) ++assoc_patsub function 284 assoc.c assoc_patsub (HASH_TABLE *h, char *pat, char *rep, int mflags) ++assoc_quote function 134 assoc.c assoc_quote (HASH_TABLE *h) ++assoc_quote_escapes function 157 assoc.c assoc_quote_escapes (HASH_TABLE *h) ++assoc_reference function 120 assoc.c assoc_reference (HASH_TABLE *hash, const char *string) ++assoc_remove function 106 assoc.c assoc_remove (HASH_TABLE *hash, const char *string) ++assoc_remove_quoted_nulls function 220 assoc.c assoc_remove_quoted_nulls (HASH_TABLE *h) ++assoc_replace function 87 assoc.c assoc_replace (HASH_TABLE *hash, char *key, char *value) ++assoc_subrange function 244 assoc.c assoc_subrange (HASH_TABLE *hash, arrayind_t start, arrayind_t nelem, int starsub, int quoted, int pflags) ++assoc_to_assign function 414 assoc.c assoc_to_assign (HASH_TABLE *hash, int quoted) ++assoc_to_kvpair function 346 assoc.c assoc_to_kvpair (HASH_TABLE *hash, int quoted) ++assoc_to_kvpair_list function 514 assoc.c assoc_to_kvpair_list (HASH_TABLE *h) ++assoc_to_string function 537 assoc.c assoc_to_string (HASH_TABLE *h, char *sep, int quoted) ++assoc_to_word_list function 502 assoc.c assoc_to_word_list (HASH_TABLE *h) ++assoc_to_word_list_internal function 481 assoc.c assoc_to_word_list_internal (HASH_TABLE *h, int t) ++assoc_walk macro 37 assoc.h #define assoc_walk(h, f) (hash_walk((h), (f)) ++async_redirect_stdin function 575 execute_cmd.c async_redirect_stdin (void) ++asynchronous_notification variable 51 flags.c int asynchronous_notification = 0; ++atime macro 441 mailcheck.c #define atime mailfiles[i]->access_time ++atime macro 463 mailcheck.c #undef atime ++atime member 692 pathexp.c struct timespec atime; ++att_array macro 106 variables.h #define att_array 0x0000004 /* value is an array */ ++att_assoc macro 110 variables.h #define att_assoc 0x0000040 /* variable is an associative array */ ++att_capcase macro 114 variables.h #define att_capcase 0x0000400 /* word capitalized on assignment */ ++att_exported macro 104 variables.h #define att_exported 0x0000001 /* export to environment */ ++att_function macro 107 variables.h #define att_function 0x0000008 /* value is a function */ ++att_imported macro 125 variables.h #define att_imported 0x0008000 /* came from environment */ ++att_integer macro 108 variables.h #define att_integer 0x0000010 /* internal representation is int */ ++att_invisible macro 122 variables.h #define att_invisible 0x0001000 /* cannot see */ ++att_local macro 109 variables.h #define att_local 0x0000020 /* variable is local to a function */ ++att_lowercase macro 113 variables.h #define att_lowercase 0x0000200 /* word converted to lowercase on assignment */ ++att_nameref macro 115 variables.h #define att_nameref 0x0000800 /* word is a name reference */ ++att_noassign macro 124 variables.h #define att_noassign 0x0004000 /* assignment not allowed */ ++att_nofree macro 127 variables.h #define att_nofree 0x0020000 /* do not free value on unset */ ++att_nounset macro 123 variables.h #define att_nounset 0x0002000 /* cannot unset */ ++att_propagate macro 134 variables.h #define att_propagate 0x0200000 /* propagate to previous scope */ ++att_readonly macro 105 variables.h #define att_readonly 0x0000002 /* cannot change */ ++att_regenerate macro 128 variables.h #define att_regenerate 0x0040000 /* regenerate when exported */ ++att_special macro 126 variables.h #define att_special 0x0010000 /* requires special handling */ ++att_tempvar macro 133 variables.h #define att_tempvar 0x0100000 /* variable came from the temp environment */ ++att_trace macro 111 variables.h #define att_trace 0x0000080 /* function is traced with DEBUG trap */ ++att_uppercase macro 112 variables.h #define att_uppercase 0x0000100 /* word converted to uppercase on assignment */ ++attempt_shell_completion function 1544 bashline.c attempt_shell_completion (const char *text, int start, int end) ++attempted variable 44 /usr/local/src/bash/bash-20230914/builtins/complete.def When completion is attempted, the actions are applied in the order the ++attmask_int macro 130 variables.h #define attmask_int 0x00ff000 ++attmask_scope macro 136 variables.h #define attmask_scope 0x0f00000 ++attmask_user macro 119 variables.h #define attmask_user 0x0000fff ++attributes member 92 variables.h int attributes; /* export, readonly, array, invisible... */ ++attrs member 120 /usr/local/src/bash/bash-20230914/builtins/read.def TTYSTRUCT attrs; ++autocd variable 153 shell.c int autocd = 0; ++b_buffer member 48 input.h char *b_buffer; /* The buffer that holds characters read. */ ++b_fd member 47 input.h int b_fd; ++b_fill_buffer function 483 input.c b_fill_buffer (BUFFERED_STREAM *bp) ++b_flag member 51 input.h int b_flag; /* Flag values. */ ++b_inputp member 52 input.h size_t b_inputp; /* The input pointer, index into b_buffer. */ ++b_size member 49 input.h size_t b_size; /* How big the buffer is. */ ++b_used member 50 input.h size_t b_used; /* How much of the buffer we're using, */ ++base_pathname function 865 general.c base_pathname (char *string) ++bash_add_history function 868 bashhist.c bash_add_history (char *line) ++bash_argv_initialized variable 113 shell.c int bash_argv_initialized = 0; ++bash_backward_kill_shellword function 1246 bashline.c bash_backward_kill_shellword (int count, int key) ++bash_backward_shellword function 1164 bashline.c bash_backward_shellword (int count, int key) ++bash_badsub_errmsg variable 63 arrayfunc.c const char * const bash_badsub_errmsg = N_("bad array subscript"); ++bash_brace_completion function 186 bracecomp.c bash_brace_completion (int count, int ignore) ++bash_check_expchar function 4157 bashline.c bash_check_expchar (char *dirname, int need_closer, int *nextp, int *closerp) ++bash_clear_history function 351 bashhist.c bash_clear_history (void) ++bash_command_name_stat_hook function 1902 bashline.c bash_command_name_stat_hook (char **name) ++bash_complete_command function 3852 bashline.c bash_complete_command (int ignore, int ignore2) ++bash_complete_command_internal function 3876 bashline.c bash_complete_command_internal (int what_to_do) ++bash_complete_filename function 3782 bashline.c bash_complete_filename (int ignore, int ignore2) ++bash_complete_filename_internal function 3794 bashline.c bash_complete_filename_internal (int what_to_do) ++bash_complete_hostname function 3828 bashline.c bash_complete_hostname (int ignore, int ignore2) ++bash_complete_hostname_internal function 3864 bashline.c bash_complete_hostname_internal (int what_to_do) ++bash_complete_username function 3764 bashline.c bash_complete_username (int ignore, int ignore2) ++bash_complete_username_internal function 3776 bashline.c bash_complete_username_internal (int what_to_do) ++bash_complete_variable function 3840 bashline.c bash_complete_variable (int ignore, int ignore2) ++bash_complete_variable_internal function 3870 bashline.c bash_complete_variable_internal (int what_to_do) ++bash_completer_word_break_characters variable 313 bashline.c static char *bash_completer_word_break_characters = " \t\n\"'@><=;|&(:"; ++bash_copyright variable 46 version.c const char * const bash_copyright = N_("Copyright (C) 2022 Free Software Foundation, Inc."); ++bash_dabbrev_expand function 3725 bashline.c bash_dabbrev_expand (int count, int key) ++bash_default_completion function 1781 bashline.c bash_default_completion (const char *text, int start, int end, int qc, int compflags) ++bash_default_histfile function 419 bashhist.c bash_default_histfile (void) ++bash_delete_histent function 360 bashhist.c bash_delete_histent (int i) ++bash_delete_history_range function 374 bashhist.c bash_delete_history_range (int first, int last) ++bash_delete_last_history function 391 bashhist.c bash_delete_last_history (void) ++bash_dequote_filename function 4069 bashline.c bash_dequote_filename (char *text, int quote_char) ++bash_dequote_text function 4823 bashline.c bash_dequote_text (const char *text) ++bash_directory_completion_hook function 3481 bashline.c bash_directory_completion_hook (char **dirname) ++bash_directory_completion_matches function 4795 bashline.c bash_directory_completion_matches (const char *text) ++bash_directory_expansion function 3247 bashline.c bash_directory_expansion (char **dirname) ++bash_event_hook function 4838 bashline.c bash_event_hook (void) ++bash_execute_unix_command function 4469 bashline.c bash_execute_unix_command (int count, int key) ++bash_expand_filename function 3369 bashline.c bash_expand_filename (char *filename) ++bash_filename_rewrite_hook function 3276 bashline.c bash_filename_rewrite_hook (char *fname, int fnlen) ++bash_filename_stat_hook function 3402 bashline.c bash_filename_stat_hook (char **dirname) ++bash_forward_shellword function 1056 bashline.c bash_forward_shellword (int count, int key) ++bash_getcwd_errstr variable 70 general.c const char * const bash_getcwd_errstr = N_("getcwd: cannot access parent directories"); ++bash_glob_complete_word function 3954 bashline.c bash_glob_complete_word (int count, int key) ++bash_glob_completion_internal function 3937 bashline.c bash_glob_completion_internal (int what_to_do) ++bash_glob_expand_word function 3971 bashline.c bash_glob_expand_word (int count, int key) ++bash_glob_list_expansions function 3977 bashline.c bash_glob_list_expansions (int count, int key) ++bash_glob_quote_filename function 3945 bashline.c bash_glob_quote_filename (char *s, int rtype, char *qcp) ++bash_groupname_completion_function function 2626 bashline.c bash_groupname_completion_function (const char *text, int state) ++bash_history_disable function 297 bashhist.c bash_history_disable (void) ++bash_history_enable function 306 bashhist.c bash_history_enable (void) ++bash_history_inhibit_expansion function 216 bashhist.c bash_history_inhibit_expansion (char *string, int i) ++bash_history_no_expand_chars variable 198 bashhist.c static char *bash_history_no_expand_chars = " \t\n\r=;&|()<>"; ++bash_history_reinit function 285 bashhist.c bash_history_reinit (int interact) ++bash_ignore_everything function 3165 bashline.c bash_ignore_everything (char **names) ++bash_ignore_filenames function 3145 bashline.c bash_ignore_filenames (char **names) ++bash_initialize_history function 273 bashhist.c bash_initialize_history (void) ++bash_input_fd_changed variable 148 input.c int bash_input_fd_changed; ++bash_kill_shellword function 1225 bashline.c bash_kill_shellword (int count, int key) ++bash_license variable 47 version.c const char * const bash_license = N_("License GPLv3+: GNU GPL version 3 or later \n"); ++bash_logout function 154 /usr/local/src/bash/bash-20230914/builtins/exit.def bash_logout (void) ++bash_nohostname_word_break_characters variable 314 bashline.c static char *bash_nohostname_word_break_characters = " \t\n\"'><=;|&(:"; ++bash_possible_command_completions function 3858 bashline.c bash_possible_command_completions (int ignore, int ignore2) ++bash_possible_filename_completions function 3788 bashline.c bash_possible_filename_completions (int ignore, int ignore2) ++bash_possible_hostname_completions function 3834 bashline.c bash_possible_hostname_completions (int ignore, int ignore2) ++bash_possible_username_completions function 3770 bashline.c bash_possible_username_completions (int ignore, int ignore2) ++bash_possible_variable_completions function 3846 bashline.c bash_possible_variable_completions (int ignore, int ignore2) ++bash_progcomp_ignore_filenames function 3152 bashline.c bash_progcomp_ignore_filenames (char **names) ++bash_push_line function 698 bashline.c bash_push_line (void) ++bash_quote_filename function 4254 bashline.c bash_quote_filename (char *s, int rtype, char *qcp) ++bash_re_edit function 713 bashline.c bash_re_edit (const char *line) ++bash_readline_initialized variable 279 bashline.c int bash_readline_initialized = 0; ++bash_servicename_completion_function function 2570 bashline.c bash_servicename_completion_function (const char *text, int state) ++bash_set_history function 457 /usr/local/src/bash/bash-20230914/builtins/set.def bash_set_history (int on_or_off, char *option_name) ++bash_special_tilde_expansions function 1075 general.c bash_special_tilde_expansions (char *text) ++bash_specific_completion function 3983 bashline.c bash_specific_completion (int what_to_do, rl_compentry_func_t *generator) ++bash_spell_correct_shellword function 1326 bashline.c bash_spell_correct_shellword (int count, int key) ++bash_syslog_history function 825 bashhist.c bash_syslog_history (const char *line) ++bash_tilde_expand function 1202 general.c bash_tilde_expand (const char *s, int assign_p) ++bash_tilde_find_word function 1165 general.c bash_tilde_find_word (const char *s, int flags, size_t *lenp) ++bash_tilde_prefixes variable 1064 general.c static char **bash_tilde_prefixes; ++bash_tilde_prefixes2 variable 1065 general.c static char **bash_tilde_prefixes2; ++bash_tilde_suffixes variable 1066 general.c static char **bash_tilde_suffixes; ++bash_tilde_suffixes2 variable 1067 general.c static char **bash_tilde_suffixes2; ++bash_transpose_shellwords function 1266 bashline.c bash_transpose_shellwords (int count, int key) ++bash_variable_assignment_error function 12960 subst.c bash_variable_assignment_error (int force_exit) ++bash_vi_complete function 4014 bashline.c bash_vi_complete (int count, int key) ++bashline_reinitialize function 649 bashline.c bashline_reinitialize (void) ++bashline_reset function 672 bashline.c bashline_reset (void) ++bashline_reset_event_hook function 661 bashline.c bashline_reset_event_hook (void) ++bashline_set_event_hook function 655 bashline.c bashline_set_event_hook (void) ++bashline_set_filename_hooks function 3334 bashline.c bashline_set_filename_hooks (void) ++bashrc_file variable 200 shell.c static char *bashrc_file = DEFAULT_BASHRC; ++bclearerror macro 68 input.h #undef bclearerror ++bclearerror macro 70 input.h #define bclearerror(bp) ((bp)->b_flag &= ~(B_ERROR|B_EOF)) ++begin_unwind_frame function 112 unwind_prot.c begin_unwind_frame (char *tag) ++beof macro 62 input.h #undef beof ++beof macro 65 input.h #define beof(bp) (((bp)->b_flag & B_EOF) != 0) ++berror macro 63 input.h #undef berror ++berror macro 66 input.h #define berror(bp) (((bp)->b_flag & B_ERROR) != 0) ++bexpand function 1155 /usr/local/src/bash/bash-20230914/builtins/printf.def bexpand (char *string, int len, int *sawc, int *lenp) ++beyond function 151 test.c beyond (void) ++bg_builtin function 103 /usr/local/src/bash/bash-20230914/builtins/fg_bg.def bg_builtin (WORD_LIST *list) ++bgp_add function 819 jobs.c bgp_add (pid_t pid, int status) ++bgp_clear function 920 jobs.c bgp_clear (void) ++bgp_delete function 886 jobs.c bgp_delete (pid_t pid) ++bgp_getindex function 800 jobs.c bgp_getindex (void) ++bgp_resize function 757 jobs.c bgp_resize (void) ++bgp_search function 938 jobs.c bgp_search (pid_t pid) ++bgpids struct 169 jobs.h struct bgpids { ++bgpids variable 176 jobs.c struct bgpids bgpids = { 0, 0, 0, 0 }; ++binary_operator function 436 test.c binary_operator (void) ++binary_test function 383 test.c binary_test (char *op, char *arg1, char *arg2, int flags) ++bind_args function 1481 shell.c bind_args (char **argv, int arg_start, int arg_end, int start_index) ++bind_array_element function 293 arrayfunc.c bind_array_element (SHELL_VAR *entry, arrayind_t ind, char *value, int flags) ++bind_array_var_internal function 234 arrayfunc.c bind_array_var_internal (SHELL_VAR *entry, arrayind_t ind, char *key, const char *value, int flags) ++bind_array_variable function 262 arrayfunc.c bind_array_variable (const char *name, arrayind_t ind, const char *value, int flags) ++bind_assoc_var_internal function 208 arrayfunc.c bind_assoc_var_internal (SHELL_VAR *entry, HASH_TABLE *hash, char *key, const char *value, int flags) ++bind_assoc_variable function 299 arrayfunc.c bind_assoc_variable (SHELL_VAR *entry, const char *name, char *key, const char *value, int flags) ++bind_builtin function 111 /usr/local/src/bash/bash-20230914/builtins/bind.def bind_builtin (WORD_LIST *list) ++bind_comp_words function 908 pcomplete.c bind_comp_words (WORD_LIST *lwords) ++bind_compfunc_variables function 931 pcomplete.c bind_compfunc_variables (char *line, int ind, WORD_LIST *lwords, int cw, int exported) ++bind_function function 3446 variables.c bind_function (const char *name, COMMAND *value) ++bind_function_def function 3493 variables.c bind_function_def (const char *name, FUNCTION_DEF *value, int flags) ++bind_global_variable function 3289 variables.c bind_global_variable (const char *name, const char *value, int flags) ++bind_int_variable function 3378 variables.c bind_int_variable (const char *lhs, const char *rhs, int flags) ++bind_invalid_envvar function 3299 variables.c bind_invalid_envvar (const char *name, const char *value, int aflags) ++bind_keyseq_to_unix_command function 4715 bashline.c bind_keyseq_to_unix_command (char *line) ++bind_lastarg function 4097 execute_cmd.c bind_lastarg (char *arg) ++bind_read_variable function 1090 /usr/local/src/bash/bash-20230914/builtins/read.def bind_read_variable (char *name, char *value, int flags) ++bind_tempenv_variable function 4418 variables.c bind_tempenv_variable (const char *name, const char *value) ++bind_var_to_int function 3435 variables.c bind_var_to_int (const char *var, intmax_t val, int flags) ++bind_variable function 1635 expr.c SHELL_VAR *bind_variable () { return 0; } ++bind_variable function 3217 variables.c bind_variable (const char *name, const char *value, int flags) ++bind_variable_internal function 3046 variables.c bind_variable_internal (const char *name, const char *value, HASH_TABLE *table, int hflags, int aflags) ++bind_variable_value function 3312 variables.c bind_variable_value (SHELL_VAR *var, char *value, int aflags) ++bindflags variable 242 /usr/local/src/bash/bash-20230914/builtins/printf.def static int bindflags = 0; ++bindpwd function 136 /usr/local/src/bash/bash-20230914/builtins/cd.def bindpwd (int no_symlinks) ++bitmap member 141 shell.h char *bitmap; ++blocks member 694 pathexp.c int blocks; ++blocksize member 96 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h u_bits32_t blocksize; ++brace_arg_separator variable 74 braces.c static const int brace_arg_separator = ','; ++brace_expand function 96 braces.c brace_expand (char *text) ++brace_expand_word_list function 12512 subst.c brace_expand_word_list (WORD_LIST *tlist, int eflags) ++brace_expansion variable 145 flags.c int brace_expansion = 1; ++brace_gobbler function 579 braces.c brace_gobbler (char *text, size_t tlen, int *indx, int satisfy) ++brace_whitespace macro 58 braces.c #define brace_whitespace(c) (!(c) || (c) == ' ' || (c) == '\t' || (c) == '\n') ++break_builtin function 63 /usr/local/src/bash/bash-20230914/builtins/break.def break_builtin (WORD_LIST *list) ++breaking variable 55 /usr/local/src/bash/bash-20230914/builtins/break.def int breaking = 0; ++brkfound variable 52 xmalloc.c static int brkfound; ++bucket_array member 39 hashlib.h BUCKET_CONTENTS **bucket_array; /* Where the data is kept. */ ++bucket_contents struct 30 hashlib.h typedef struct bucket_contents { ++bucket_next member 162 jobs.h ps_index_t bucket_next; ++bucket_prev member 163 jobs.h ps_index_t bucket_prev; ++bucket_stats struct 95 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h struct bucket_stats { ++buffered_fd member 75 input.h int buffered_fd; ++buffered_getchar function 563 input.c buffered_getchar (void) ++buffered_ungetchar function 582 input.c buffered_ungetchar (int c) ++buffers variable 155 input.c static BUFFERED_STREAM **buffers = (BUFFERED_STREAM **)NULL; ++bufstream_getc macro 528 input.c #define bufstream_getc(bp) \ ++bufstream_ungetc function 535 input.c bufstream_ungetc(int c, BUFFERED_STREAM *bp) ++build_actions function 195 /usr/local/src/bash/bash-20230914/builtins/complete.def build_actions (WORD_LIST *list, struct _optflags *flagp, unsigned long *actp, unsigned long *optp, char **vnamep) ++build_aliasvar function 1751 variables.c build_aliasvar (SHELL_VAR *self) ++build_arg_list function 1007 pcomplete.c build_arg_list (const char *cmd, const char *cname, const char *text, WORD_LIST *lwords, int ind) ++build_hashcmd function 1681 variables.c build_hashcmd (SHELL_VAR *self) ++build_history_completion_array function 3622 bashline.c build_history_completion_array (void) ++build_version variable 38 version.c const int build_version = BUILDVERSION; ++building_builtin variable 501 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c static int building_builtin = 0; ++builtin struct 53 builtins.h struct builtin { ++builtin variable 37 /usr/local/src/bash/bash-20230914/builtins/type.def builtin, or function, and returns the name of the disk file ++builtin variable 43 /usr/local/src/bash/bash-20230914/builtins/type.def shell reserved word, shell function, shell builtin, disk file, ++builtin_address function 874 /usr/local/src/bash/bash-20230914/builtins/common.c builtin_address (const char *name) ++builtin_address_internal function 828 /usr/local/src/bash/bash-20230914/builtins/common.c builtin_address_internal (const char *name, int disabled_okay) ++builtin_arrayref_flags function 1018 /usr/local/src/bash/bash-20230914/builtins/common.c builtin_arrayref_flags (WORD_DESC *w, int baseflags) ++builtin_bind_var_to_int function 956 /usr/local/src/bash/bash-20230914/builtins/common.c builtin_bind_var_to_int (char *name, intmax_t val, int flags) ++builtin_bind_variable function 927 /usr/local/src/bash/bash-20230914/builtins/common.c builtin_bind_variable (char *name, char *value, int flags) ++builtin_builtin function 53 /usr/local/src/bash/bash-20230914/builtins/builtin.def builtin_builtin (WORD_LIST *list) ++builtin_error function 98 /usr/local/src/bash/bash-20230914/builtins/common.c builtin_error (const char *format, ...) ++builtin_error function 1662 expr.c builtin_error (format, arg1, arg2, arg3, arg4, arg5) ++builtin_error_prolog function 83 /usr/local/src/bash/bash-20230914/builtins/common.c builtin_error_prolog (void) ++builtin_find_indexed_array function 966 /usr/local/src/bash/bash-20230914/builtins/common.c builtin_find_indexed_array (char *array_name, int flags) ++builtin_handler function 792 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c builtin_handler (char *self, DEF_FILE *defs, char *arg) ++builtin_help function 193 /usr/local/src/bash/bash-20230914/builtins/help.def builtin_help (void) ++builtin_help function 913 /usr/local/src/bash/bash-20230914/builtins/common.c builtin_help (void) ++builtin_ignoring_errexit variable 224 execute_cmd.c int builtin_ignoring_errexit = 0; ++builtin_status function 4879 execute_cmd.c builtin_status (int result) ++builtin_unbind_variable function 999 /usr/local/src/bash/bash-20230914/builtins/common.c builtin_unbind_variable (const char *vname) ++builtin_usage function 128 /usr/local/src/bash/bash-20230914/builtins/common.c builtin_usage (void) ++builtin_warning function 112 /usr/local/src/bash/bash-20230914/builtins/common.c builtin_warning (const char *format, ...) ++builtins member 146 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c ARRAY *builtins; /* Null terminated array of BUILTIN_DESC *. */ ++builtins variable 33 /usr/local/src/bash/bash-20230914/builtins/type.def includes aliases, builtins, and functions, if and only if ++bytesfree member 75 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h bits32_t bytesfree; ++bytesreq member 76 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h u_bits32_t bytesreq; ++bytesused member 74 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h bits32_t bytesused; ++c_childmax member 136 jobs.h long c_childmax; ++c_flags member 377 command.h int c_flags; ++c_injobs member 140 jobs.h int c_injobs; /* total number of child processes in jobs list */ ++c_living member 138 jobs.h int c_living; /* running or stopped child processes */ ++c_lock member 379 command.h int c_lock; ++c_name member 371 command.h char *c_name; ++c_pid member 372 command.h pid_t c_pid; ++c_reaped member 139 jobs.h int c_reaped; /* exited child processes still in jobs list */ ++c_rfd member 373 command.h int c_rfd; ++c_rsave member 375 command.h int c_rsave; ++c_status member 378 command.h int c_status; ++c_totforked member 142 jobs.h int c_totforked; /* total number of children this shell has forked */ ++c_totreaped member 143 jobs.h int c_totreaped; /* total number of children this shell has reaped */ ++c_wfd member 374 command.h int c_wfd; ++c_wsave member 376 command.h int c_wsave; ++cached_quoted_dollar_at variable 217 subst.c static WORD_LIST *cached_quoted_dollar_at = 0; ++call_expand_word_internal function 4271 subst.c call_expand_word_internal (WORD_DESC *w, int q, int i, int *c, int *e) ++caller_builtin function 72 /usr/local/src/bash/bash-20230914/builtins/caller.def caller_builtin (WORD_LIST *list) ++caller_doc variable 134 /usr/local/src/bash/bash-20230914/builtins/caller.def static char *caller_doc[] = { ++caller_struct variable 151 /usr/local/src/bash/bash-20230914/builtins/caller.def struct builtin caller_struct = { ++can_optimize_assignment function 3004 variables.c can_optimize_assignment (SHELL_VAR *entry, const char *value, int aflags) ++can_optimize_cat_file function 195 /usr/local/src/bash/bash-20230914/builtins/evalstring.c can_optimize_cat_file (COMMAND *command) ++can_optimize_connection function 135 /usr/local/src/bash/bash-20230914/builtins/evalstring.c can_optimize_connection (COMMAND *command) ++capcase_p macro 148 variables.h #define capcase_p(var) ((((var)->attributes) & (att_capcase))) ++case_clause label 1166 parse.y case_clause: pattern_list ++case_clause_sequence label 1181 parse.y case_clause_sequence: pattern_list SEMI_SEMI ++case_com struct 251 command.h typedef struct case_com { ++case_command label 990 parse.y case_command: CASE WORD newline_list IN newline_list ESAC ++cat_file function 782 /usr/local/src/bash/bash-20230914/builtins/evalstring.c cat_file (REDIRECT *r) ++catch_flag variable 325 trap.c static int catch_flag; ++cd_builtin function 262 /usr/local/src/bash/bash-20230914/builtins/cd.def cd_builtin (WORD_LIST *list) ++cd_to_string function 538 /usr/local/src/bash/bash-20230914/builtins/pushd.def cd_to_string (char *name) ++cdable_vars variable 70 /usr/local/src/bash/bash-20230914/builtins/cd.def int cdable_vars; ++cdspelling variable 68 /usr/local/src/bash/bash-20230914/builtins/cd.def int cdspelling = 0; ++cdxattr function 195 /usr/local/src/bash/bash-20230914/builtins/cd.def cdxattr (char *dir, char **ndirp) ++change_flag function 226 flags.c change_flag (int flag, int on_or_off) ++change_flag_char macro 85 flags.h #define change_flag_char(flag, on_or_off) change_flag (flag, on_or_off) ++change_signal function 880 trap.c change_signal (int sig, char *value) ++change_to_directory function 523 /usr/local/src/bash/bash-20230914/builtins/cd.def change_to_directory (char *newdir, int nolinks, int xattr) ++change_to_temp function 552 /usr/local/src/bash/bash-20230914/builtins/pushd.def change_to_temp (char *temp) ++changed_dollar_vars variable 435 /usr/local/src/bash/bash-20230914/builtins/common.c static int changed_dollar_vars; ++char_is_quoted function 2483 subst.c char_is_quoted (char *string, int eindex) ++char_value member 250 shell.c char **char_value; ++check_add_history function 788 bashhist.c check_add_history (char *line, int force) ++check_bash_input function 303 input.c check_bash_input (int fd) ++check_binary_file function 699 general.c check_binary_file (const char *sample, int sample_len) ++check_command_builtin function 4324 execute_cmd.c check_command_builtin (WORD_LIST *words, int *typep) ++check_dev_tty function 611 general.c check_dev_tty (void) ++check_hashed_filenames variable 72 findcmd.c int check_hashed_filenames = CHECKHASH_DEFAULT; ++check_history_control function 693 bashhist.c check_history_control (char *line) ++check_identifier function 349 general.c check_identifier (WORD_DESC *word, int check_word) ++check_jobs_at_exit variable 150 shell.c int check_jobs_at_exit = 0; ++check_loop_level function 133 /usr/local/src/bash/bash-20230914/builtins/break.def check_loop_level (void) ++check_mail function 415 mailcheck.c check_mail (void) ++check_read_timeout function 183 /usr/local/src/bash/bash-20230914/builtins/read.def check_read_timeout (void) ++check_redir function 1386 bashline.c check_redir (int ti) ++check_selfref function 320 general.c check_selfref (const char *name, char *value, int flags) ++check_signals function 656 trap.c check_signals (void) ++check_signals_and_traps function 665 trap.c check_signals_and_traps (void) ++check_unbind_variable function 3807 variables.c check_unbind_variable (const char *name) ++check_window_size variable 91 nojobs.c int check_window_size = CHECKWINSIZE_DEFAULT; ++check_window_size variable 230 jobs.c int check_window_size = CHECKWINSIZE_DEFAULT; ++child_caught_sigint variable 2668 jobs.c static int child_caught_sigint; ++child_max variable 120 nojobs.c static long child_max = -1L; ++chk_arithsub function 9594 subst.c chk_arithsub (const char *s, int len) ++chk_atstar function 7471 subst.c chk_atstar (const char *name, int quoted, int pflags, int *quoted_dollar_atp, int *contains_dollar_at) ++chkexport function 4987 variables.c chkexport (char *name) ++clauses member 255 command.h PATTERN_LIST *clauses; /* The clauses to test against, or NULL. */ ++clean_itemlist function 226 pcomplete.c clean_itemlist (ITEMLIST *itp) ++clean_simple_command function 800 make_cmd.c clean_simple_command (COMMAND *command) ++cleanarg member 130 jobs.h PTR_T cleanarg; /* Argument passed to (*j_cleanup)() */ ++cleanup member 68 unwind_prot.c sh_uwfunc_t *cleanup; ++cleanup_dead_jobs function 373 nojobs.c cleanup_dead_jobs (void) ++cleanup_dead_jobs function 1195 jobs.c cleanup_dead_jobs (void) ++cleanup_expansion_error function 2686 bashline.c cleanup_expansion_error (void) ++cleanup_redirects function 487 execute_cmd.c cleanup_redirects (REDIRECT *list) ++cleanup_the_pipeline function 435 jobs.c cleanup_the_pipeline (void) ++clear_directory_stack function 525 /usr/local/src/bash/bash-20230914/builtins/pushd.def clear_directory_stack (void) ++clear_dollar_vars function 5486 variables.c clear_dollar_vars (void) ++clear_fifo function 6093 subst.c clear_fifo (int i) ++clear_fifo_list function 5849 subst.c clear_fifo_list (void) ++clear_fifo_list function 6103 subst.c clear_fifo_list (void) ++clear_hostname_list function 868 bashline.c clear_hostname_list (void) ++clear_pending_traps function 647 trap.c clear_pending_traps (void) ++clear_unwind_protect_list function 158 unwind_prot.c clear_unwind_protect_list (int flags) ++clear_unwind_protects_internal function 223 unwind_prot.c clear_unwind_protects_internal (int flag) ++close_all_files function 6211 execute_cmd.c close_all_files (void) ++close_buffered_fd function 441 input.c close_buffered_fd (int fd) ++close_buffered_stream function 425 input.c close_buffered_stream (BUFFERED_STREAM *bp) ++close_fd_bitmap function 357 execute_cmd.c close_fd_bitmap (struct fd_bitmap *fdbp) ++close_new_fifos function 5977 subst.c close_new_fifos (void *list, int lsize) ++close_new_fifos function 6206 subst.c close_new_fifos (void *list, int lsize) ++close_pgrp_pipe function 5066 jobs.c close_pgrp_pipe (void) ++close_pipes function 6226 execute_cmd.c close_pipes (int in, int out) ++cm_arith enumerator 73 command.h cm_arith, cm_cond, cm_arith_for, cm_subshell, cm_coproc }; ++cm_arith_for enumerator 73 command.h cm_arith, cm_cond, cm_arith_for, cm_subshell, cm_coproc }; ++cm_case enumerator 71 command.h enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, ++cm_cond enumerator 73 command.h cm_arith, cm_cond, cm_arith_for, cm_subshell, cm_coproc }; ++cm_connection enumerator 72 command.h cm_connection, cm_function_def, cm_until, cm_group, ++cm_coproc enumerator 73 command.h cm_arith, cm_cond, cm_arith_for, cm_subshell, cm_coproc }; ++cm_for enumerator 71 command.h enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, ++cm_function_def enumerator 72 command.h cm_connection, cm_function_def, cm_until, cm_group, ++cm_group enumerator 72 command.h cm_connection, cm_function_def, cm_until, cm_group, ++cm_if enumerator 71 command.h enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, ++cm_select enumerator 71 command.h enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, ++cm_simple enumerator 71 command.h enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, ++cm_subshell enumerator 73 command.h cm_arith, cm_cond, cm_arith_for, cm_subshell, cm_coproc }; ++cm_until enumerator 72 command.h cm_connection, cm_function_def, cm_until, cm_group, ++cm_while enumerator 71 command.h enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, ++cmd_error_table variable 412 error.c static const char * const cmd_error_table[] = { ++cmd_init function 65 make_cmd.c cmd_init (void) ++colon variable 32 /usr/local/src/bash/bash-20230914/builtins/getopts.def is followed by a colon, the option is expected to have an argument, ++colon_builtin function 64 /usr/local/src/bash/bash-20230914/builtins/colon.def colon_builtin (WORD_LIST *ignore) ++command label 824 parse.y command: simple_command ++command member 37 pcomplete.h char *command; ++command member 70 jobs.h char *command; /* The particular program that is running. */ ++command member 350 command.h COMMAND *command; /* The parsed execution tree. */ ++command member 358 command.h COMMAND *command; ++command member 364 command.h COMMAND *command; ++command member 385 command.h COMMAND *command; ++command struct 197 command.h typedef struct command { ++command variable 25 /usr/local/src/bash/bash-20230914/builtins/reserved.def Execute PIPELINE, which can be a simple command, and negate PIPELINE's ++command_builtin function 67 /usr/local/src/bash/bash-20230914/builtins/command.def command_builtin (WORD_LIST *list) ++command_connect function 177 make_cmd.c command_connect (COMMAND *com1, COMMAND *com2, int connector) ++command_error function 421 error.c command_error (const char *func, int code, int e, int flags) ++command_errstr function 430 error.c command_errstr (int code) ++command_execution_string variable 302 shell.c char *command_execution_string; /* argument to -c option */ ++command_line_to_word_list function 1238 pcomplete.c command_line_to_word_list (char *line, int llen, int sentinel, int *nwp, int *cwp) ++command_oriented_history variable 141 bashhist.c int command_oriented_history = 1; ++command_print_word_list function 584 print_cmd.c command_print_word_list (WORD_LIST *list, char *separator) ++command_separator macro 295 alias.c #define command_separator(character) (member ((character), "\r\n;|&(")) ++command_string_index variable 107 print_cmd.c int command_string_index = 0; ++command_subst_completion_function function 2387 bashline.c command_subst_completion_function (const char *text, int state) ++command_substitute function 7061 subst.c command_substitute (char *string, int quoted, int flags) ++command_type enum 71 command.h enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, ++command_word variable 299 alias.c static int command_word; ++command_word_completion_function function 1946 bashline.c command_word_completion_function (const char *hint_text, int state) ++comment_handler function 897 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c comment_handler (char *self, DEF_FILE *defs, char *arg) ++compact_jobs_list function 1353 jobs.c compact_jobs_list (int flags) ++compacts variable 111 /usr/local/src/bash/bash-20230914/builtins/complete.def } compacts[] = { ++comparison variable 41 /usr/local/src/bash/bash-20230914/builtins/let.def <=, >=, <, > comparison ++compgen_builtin function 670 /usr/local/src/bash/bash-20230914/builtins/complete.def compgen_builtin (WORD_LIST *list) ++compgen_compspec variable 142 pcomplete.c static int compgen_compspec = 0; /* are we generating completions for compgen? */ ++complete_builtin function 387 /usr/local/src/bash/bash-20230914/builtins/complete.def complete_builtin (WORD_LIST *list) ++complete_fullquote variable 311 bashline.c int complete_fullquote = 1; ++completion_glob_pattern function 3882 bashline.c completion_glob_pattern (const char *string) ++completion_quoting_style variable 339 bashline.c static int completion_quoting_style = COMPLETE_BSQUOTE; ++completions variable 808 /usr/local/src/bash/bash-20230914/builtins/complete.def completions, and the options for that currently-executing completion ++completions_to_stringlist function 315 pcomplete.c completions_to_stringlist (char **matches) ++compopt_builtin function 817 /usr/local/src/bash/bash-20230914/builtins/complete.def compopt_builtin (WORD_LIST *list) ++compopts variable 143 /usr/local/src/bash/bash-20230914/builtins/complete.def } compopts[] = { ++compound_list label 1206 parse.y compound_list: newline_list list0 ++compspec struct 28 pcomplete.h typedef struct compspec { ++compspec_copy function 91 pcomplib.c compspec_copy (COMPSPEC *cs) ++compspec_create function 49 pcomplib.c compspec_create (void) ++compspec_dispose function 72 pcomplib.c compspec_dispose (COMPSPEC *cs) ++comsub label 1057 parse.y comsub: DOLPAREN compound_list ')' ++comsub_ignore_return variable 249 execute_cmd.c int comsub_ignore_return = 0; ++comsub_quote_string function 6840 subst.c comsub_quote_string (char *string, int quoted, int flags) ++comsub_shouldquote function 6611 subst.c comsub_shouldquote (int c, int quoted, int flags, int skip_ctlesc, int skip_ctlnul) ++cond_com struct 328 command.h typedef struct cond_com { ++cond_command label 1154 parse.y cond_command: COND_START COND_CMD COND_END ++cond_expand_word function 4065 subst.c cond_expand_word (WORD_DESC *w, int special) ++cond_test function 865 test.c cond_test (char *op, char *arg1, char *arg2, int flags) ++conf_standard_path function 1390 general.c conf_standard_path (void) ++connect_async_list function 826 make_cmd.c connect_async_list (COMMAND *command, COMMAND *command2, int connector) ++connection struct 229 command.h typedef struct connection { ++connection_count variable 280 execute_cmd.c static int connection_count; ++connector member 233 command.h int connector; /* What separates this command from others. */ ++context member 93 variables.h int context; /* Which context this variable belongs to. */ ++continue_builtin function 104 /usr/local/src/bash/bash-20230914/builtins/break.def continue_builtin (WORD_LIST *list) ++continuing variable 58 /usr/local/src/bash/bash-20230914/builtins/break.def int continuing = 0; ++conv_buf variable 249 /usr/local/src/bash/bash-20230914/builtins/printf.def static char *conv_buf; ++conv_bufsize variable 250 /usr/local/src/bash/bash-20230914/builtins/printf.def static size_t conv_bufsize; ++conversion_error variable 238 /usr/local/src/bash/bash-20230914/builtins/printf.def static int conversion_error; ++convert_assign_flags_to_arrayval_flags function 143 arrayfunc.h convert_assign_flags_to_arrayval_flags (int aflags) ++convert_assign_flags_to_validarray_flags function 179 arrayfunc.h convert_assign_flags_to_validarray_flags (int flags) ++convert_validarray_flags_to_arrayval_flags function 162 arrayfunc.h convert_validarray_flags_to_arrayval_flags (int vflags) ++convert_var_to_array function 74 arrayfunc.c convert_var_to_array (SHELL_VAR *var) ++convert_var_to_assoc function 111 arrayfunc.c convert_var_to_assoc (SHELL_VAR *var) ++convwidechar function 1607 /usr/local/src/bash/bash-20230914/builtins/printf.def convwidechar (wint_t wi, int prec) ++convwidestr function 1564 /usr/local/src/bash/bash-20230914/builtins/printf.def convwidestr (wchar_t *ws, int prec) ++coproc label 1077 parse.y coproc: COPROC shell_command ++coproc member 1815 execute_cmd.c struct coproc *coproc; ++coproc struct 370 command.h typedef struct coproc { ++coproc_active function 2290 execute_cmd.c coproc_active (void) ++coproc_alloc function 2091 execute_cmd.c coproc_alloc (char *name, pid_t pid) ++coproc_checkfd function 2212 execute_cmd.c coproc_checkfd (struct coproc *cp, int fd) ++coproc_close function 2152 execute_cmd.c coproc_close (struct coproc *cp) ++coproc_closeall function 2168 execute_cmd.c coproc_closeall (void) ++coproc_com struct 382 command.h typedef struct coproc_com { ++coproc_dispose function 2119 execute_cmd.c coproc_dispose (struct coproc *cp) ++coproc_fdchk function 2226 execute_cmd.c coproc_fdchk (int fd) ++coproc_fdclose function 2236 execute_cmd.c coproc_fdclose (struct coproc *cp, int fd) ++coproc_fdrestore function 2251 execute_cmd.c coproc_fdrestore (struct coproc *cp) ++coproc_fdsave function 2244 execute_cmd.c coproc_fdsave (struct coproc *cp) ++coproc_flush function 2142 execute_cmd.c coproc_flush (void) ++coproc_free function 2113 execute_cmd.c coproc_free (struct coproc *cp) ++coproc_init function 2081 execute_cmd.c coproc_init (struct coproc *cp) ++coproc_list variable 1844 execute_cmd.c cplist_t coproc_list = {0, 0, 0}; ++coproc_pidchk function 2271 execute_cmd.c coproc_pidchk (pid_t pid, int status) ++coproc_rclose function 2192 execute_cmd.c coproc_rclose (struct coproc *cp, int fd) ++coproc_reap function 2178 execute_cmd.c coproc_reap (void) ++coproc_setstatus function 2258 execute_cmd.c coproc_setstatus (struct coproc *cp, int status) ++coproc_setvars function 2299 execute_cmd.c coproc_setvars (struct coproc *cp) ++coproc_unsetvars function 2384 execute_cmd.c coproc_unsetvars (struct coproc *cp) ++coproc_wclose function 2202 execute_cmd.c coproc_wclose (struct coproc *cp, int fd) ++copy_arith_command function 274 copy_cmd.c copy_arith_command (ARITH_COM *com) ++copy_arith_for_command function 185 copy_cmd.c copy_arith_for_command (ARITH_FOR_COM *com) ++copy_bucket_array function 91 hashlib.c copy_bucket_array (BUCKET_CONTENTS *ba, sh_string_func_t *cpdata) ++copy_buffered_stream function 201 input.c copy_buffered_stream (BUFFERED_STREAM *bp) ++copy_builtin function 1036 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c copy_builtin (BUILTIN_DESC *builtin) ++copy_case_clause function 87 copy_cmd.c copy_case_clause (PATTERN_LIST *clause) ++copy_case_clauses function 99 copy_cmd.c copy_case_clauses (PATTERN_LIST *clauses) ++copy_case_command function 235 copy_cmd.c copy_case_command (CASE_COM *com) ++copy_command function 343 copy_cmd.c copy_command (COMMAND *command) ++copy_cond_command function 289 copy_cmd.c copy_cond_command (COND_COM *com) ++copy_coproc_command function 223 copy_cmd.c copy_coproc_command (COPROC_COM *com) ++copy_fifo_list function 5864 subst.c copy_fifo_list (int *sizep) ++copy_fifo_list function 6117 subst.c copy_fifo_list (int *sizep) ++copy_for_command function 170 copy_cmd.c copy_for_command (FOR_COM *com) ++copy_function_def function 330 copy_cmd.c copy_function_def (FUNCTION_DEF *com) ++copy_function_def_contents function 319 copy_cmd.c copy_function_def_contents (FUNCTION_DEF *old, FUNCTION_DEF *new_def) ++copy_group_command function 201 copy_cmd.c copy_group_command (GROUP_COM *com) ++copy_if_command function 260 copy_cmd.c copy_if_command (IF_COM *com) ++copy_redirect function 114 copy_cmd.c copy_redirect (REDIRECT *redirect) ++copy_redirects function 156 copy_cmd.c copy_redirects (REDIRECT *list) ++copy_simple_command function 306 copy_cmd.c copy_simple_command (SIMPLE_COM *com) ++copy_string_array function 403 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c copy_string_array (ARRAY *array) ++copy_subshell_command function 211 copy_cmd.c copy_subshell_command (SUBSHELL_COM *com) ++copy_variable function 3651 variables.c copy_variable (SHELL_VAR *var) ++copy_while_command function 248 copy_cmd.c copy_while_command (WHILE_COM *com) ++copy_word function 56 copy_cmd.c copy_word (WORD_DESC *w) ++copy_word_list function 68 copy_cmd.c copy_word_list (WORD_LIST *list) ++copygroup function 192 /usr/local/src/bash/bash-20230914/builtins/umask.def copygroup (mode_t mask) ++copyother function 200 /usr/local/src/bash/bash-20230914/builtins/umask.def copyother (mode_t mask) ++copyuser function 184 /usr/local/src/bash/bash-20230914/builtins/umask.def copyuser (mode_t mask) ++count member 5430 variables.c int count; ++count_all_jobs function 1037 nojobs.c count_all_jobs (void) ++count_all_jobs function 4737 jobs.c count_all_jobs (void) ++cpe_alloc function 1849 execute_cmd.c cpe_alloc (Coproc *cp) ++cpe_dispose function 1860 execute_cmd.c cpe_dispose (struct cpelement *cpe) ++cpelement struct 1812 execute_cmd.c typedef struct cpelement ++cpelement_t typedef 1817 execute_cmd.c cpelement_t; ++cpl_add function 1866 execute_cmd.c cpl_add (Coproc *cp) ++cpl_closeall function 1979 execute_cmd.c cpl_closeall (void) ++cpl_delete function 1888 execute_cmd.c cpl_delete (pid_t pid) ++cpl_fdchk function 1988 execute_cmd.c cpl_fdchk (int fd) ++cpl_firstactive function 2023 execute_cmd.c cpl_firstactive (void) ++cpl_flush function 1961 execute_cmd.c cpl_flush (void) ++cpl_reap function 1920 execute_cmd.c cpl_reap (void) ++cpl_search function 1999 execute_cmd.c cpl_search (pid_t pid) ++cpl_searchbyname function 2012 execute_cmd.c cpl_searchbyname (const char *name) ++cplist struct 1819 execute_cmd.c typedef struct cplist ++cplist_t typedef 1826 execute_cmd.c cplist_t; ++cprintf function 1470 print_cmd.c cprintf (const char *control, ...) ++cr_whitespace macro 93 expr.c #define cr_whitespace(c) (whitespace(c) || ((c) == '\n')) ++cr_whitespace macro 791 bashline.c #define cr_whitespace(c) ((c) == '\r' || (c) == '\n' || whitespace(c)) ++create_variable_tables function 345 variables.c create_variable_tables (void) ++cs member 51 /usr/local/src/bash/bash-20230914/include/ocache.h int cs; /* cache size, number of objects */ ++ctime member 693 pathexp.c struct timespec ctime; ++curlval variable 182 expr.c static struct lvalue curlval = {0, 0, 0, -1}; ++current_builtin function 761 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c current_builtin (char *directive, DEF_FILE *defs) ++current_command_first_line_saved variable 146 bashhist.c int current_command_first_line_saved = 0; ++current_command_line_comment variable 151 bashhist.c int current_command_line_comment = 0; ++current_command_line_count member 195 shell.h int current_command_line_count; ++current_command_number variable 177 shell.c int current_command_number = 1; ++current_command_subst_pid variable 151 subst.c pid_t current_command_subst_pid = NO_PID; ++current_fds_to_close variable 317 execute_cmd.c struct fd_bitmap *current_fds_to_close = (struct fd_bitmap *)NULL; ++current_host_name variable 126 shell.c char *current_host_name = (char *)NULL; ++current_user variable 118 shell.c struct user_info current_user = ++current_working_directory function 381 jobs.c current_working_directory (void) ++currently_executing_command variable 270 execute_cmd.c static COMMAND *currently_executing_command; ++curtok member 160 expr.c int curtok, lasttok; ++curtok variable 171 expr.c static int curtok; /* the current token */ ++custom_filename_quote_characters variable 318 bashline.c static char *custom_filename_quote_characters = 0; ++d member 74 variables.h double d; /* floating point number */ ++d_fileno macro 51 /usr/local/src/bash/bash-20230914/include/posixdir.h # define d_fileno d_ino ++dabbrev_expand_active variable 326 bashline.c static int dabbrev_expand_active = 0; ++data member 33 hashlib.h PTR_T data; /* What we really want. */ ++data member 50 /usr/local/src/bash/bash-20230914/include/ocache.h PTR_T data; ++dbstate variable 1799 subst.c static int dbstate[PARAMEXPNEST_MAX]; ++de_backslash function 2007 subst.c de_backslash (char *string, int qflags) ++debug_print_cond_command function 908 print_cmd.c debug_print_cond_command (COND_COM *cond) ++debug_print_pgrps function 4489 jobs.c debug_print_pgrps (void) ++debug_print_word_list function 896 print_cmd.c debug_print_word_list (char *s, WORD_LIST *list, char *sep) ++debug_printf function 190 pcomplete.c debug_printf (const char *format, ...) ++debugging variable 215 shell.c static int debugging; /* Do debugging things. */ ++debugging_login_shell variable 168 shell.c int debugging_login_shell = 0; ++debugging_mode variable 222 shell.c int debugging_mode = 0; /* In debugging mode with --debugger */ ++decode_signal function 236 trap.c decode_signal (const char *string, int flags) ++decodeprec function 253 /usr/local/src/bash/bash-20230914/builtins/printf.def decodeprec (char *ps) ++default_buffered_input variable 295 shell.c int default_buffered_input = -1; ++default_columns function 1416 general.c default_columns (void) ++default_dir variable 63 locale.c static char *default_dir; ++default_domain variable 62 locale.c static char *default_domain; ++default_filename_quote_characters variable 317 bashline.c static const char *default_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{~"; /*}*/ ++default_input variable 309 shell.c static FILE *default_input; ++default_locale variable 59 locale.c static char *default_locale; ++default_tty_job_signals function 581 nojobs.c default_tty_job_signals (void) ++default_tty_job_signals function 2322 jobs.c default_tty_job_signals (void) ++deferred member 128 jobs.h COMMAND *deferred; /* Commands that will execute when this job is done. */ ++deferred_heredocs variable 129 print_cmd.c static REDIRECT *deferred_heredocs; ++deftext variable 1178 /usr/local/src/bash/bash-20230914/builtins/read.def static char *deftext; ++delete_all_aliases function 199 alias.c delete_all_aliases (void) ++delete_all_contexts function 5322 variables.c delete_all_contexts (VAR_CONTEXT *vcxt) ++delete_all_jobs function 4673 jobs.c delete_all_jobs (int running_only) ++delete_all_variables function 4015 variables.c delete_all_variables (HASH_TABLE *hashed_vars) ++delete_builtin function 496 /usr/local/src/bash/bash-20230914/builtins/enable.def delete_builtin (struct builtin *b) ++delete_job function 1371 jobs.c delete_job (int job_index, int dflags) ++delete_local_contexts function 5308 variables.c delete_local_contexts (VAR_CONTEXT *vcxt) ++delete_old_job function 1252 jobs.c delete_old_job (pid_t pid) ++delete_var function 3879 variables.c delete_var (const char *name, VAR_CONTEXT *vc) ++delim_char variable 1270 /usr/local/src/bash/bash-20230914/builtins/read.def static unsigned char delim_char; ++delimiter_depth member 64 parser.h int delimiter_depth; ++delimiter_space member 67 parser.h int delimiter_space; ++delimiters member 61 parser.h char *delimiters; ++dependencies member 135 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c ARRAY *dependencies; /* Null terminated array of #define names. */ ++depends_on_handler function 904 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c depends_on_handler (char *self, DEF_FILE *defs, char *arg) ++dequote_escapes function 4678 subst.c dequote_escapes (const char *string) ++dequote_list function 4879 subst.c dequote_list (WORD_LIST *list) ++dequote_string function 4793 subst.c dequote_string (const char *string) ++dequote_word function 4864 subst.c dequote_word (WORD_DESC *word) ++describe_command function 210 /usr/local/src/bash/bash-20230914/builtins/type.def describe_command (char *command, int dflags) ++describe_pid function 1008 nojobs.c describe_pid (pid_t pid) ++describe_pid function 1800 jobs.c describe_pid (pid_t pid) ++desired_setting member 59 unwind_prot.c char desired_setting[1]; /* actual size is `size' */ ++dest member 155 command.h int dest; /* Place to redirect REDIRECTOR to, or ... */ ++dev_fd_list variable 6088 subst.c static pid_t *dev_fd_list = (pid_t *)NULL; ++dircomplete_expand variable 299 bashline.c int dircomplete_expand = 1; ++dircomplete_expand variable 302 bashline.c int dircomplete_expand = 0; ++dircomplete_expand_relpath variable 300 bashline.c int dircomplete_expand_relpath = 1; ++dircomplete_expand_relpath variable 303 bashline.c int dircomplete_expand_relpath = 0; ++dircomplete_spelling variable 295 bashline.c int dircomplete_spelling = 0; ++directive member 460 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *directive; ++directory_exists function 3347 bashline.c directory_exists (const char *dirname, int should_dequote) ++directory_list_offset variable 158 /usr/local/src/bash/bash-20230914/builtins/pushd.def static int directory_list_offset; ++directory_list_size variable 155 /usr/local/src/bash/bash-20230914/builtins/pushd.def static size_t directory_list_size; ++dirent macro 44 /usr/local/src/bash/bash-20230914/include/posixdir.h # define dirent direct ++dirs_builtin function 407 /usr/local/src/bash/bash-20230914/builtins/pushd.def dirs_builtin (WORD_LIST *list) ++dirs_doc variable 683 /usr/local/src/bash/bash-20230914/builtins/pushd.def char * const dirs_doc[] = { ++dirs_struct variable 769 /usr/local/src/bash/bash-20230914/builtins/pushd.def struct builtin dirs_struct = { ++disable_priv_mode function 1332 shell.c disable_priv_mode (void) ++disallow_filename_globbing variable 60 flags.c int disallow_filename_globbing = 0; ++discard_last_procsub_child function 451 jobs.c discard_last_procsub_child (void) ++discard_pipeline function 1446 jobs.c discard_pipeline (PROCESS *chain) ++discard_unwind_frame function 119 unwind_prot.c discard_unwind_frame (char *tag) ++disown_builtin function 240 /usr/local/src/bash/bash-20230914/builtins/jobs.def disown_builtin (WORD_LIST *list) ++dispcolumn function 356 /usr/local/src/bash/bash-20230914/builtins/help.def dispcolumn (int i, char *buf, size_t bufsize, int width, int height) ++display_history function 355 /usr/local/src/bash/bash-20230914/builtins/history.def display_history (WORD_LIST *list) ++display_shell_version function 725 bashline.c display_shell_version (int count, int c) ++display_signal_list function 725 /usr/local/src/bash/bash-20230914/builtins/common.c display_signal_list (WORD_LIST *list, int forcecols) ++display_traps function 333 /usr/local/src/bash/bash-20230914/builtins/trap.def display_traps (WORD_LIST *list, int flags) ++displen function 3235 execute_cmd.c displen (const char *s) ++dispose_command function 36 dispose_cmd.c dispose_command (COMMAND *command) ++dispose_cond_node function 216 dispose_cmd.c dispose_cond_node (COND_COM *cond) ++dispose_exec_redirects function 525 execute_cmd.c dispose_exec_redirects (void) ++dispose_fd_bitmap function 344 execute_cmd.c dispose_fd_bitmap (struct fd_bitmap *fdbp) ++dispose_function_def function 240 dispose_cmd.c dispose_function_def (FUNCTION_DEF *c) ++dispose_function_def_contents function 232 dispose_cmd.c dispose_function_def_contents (FUNCTION_DEF *c) ++dispose_mail_file function 228 mailcheck.c dispose_mail_file (FILEINFO *mf) ++dispose_partial_redirects function 535 execute_cmd.c dispose_partial_redirects (void) ++dispose_redirects function 307 dispose_cmd.c dispose_redirects (REDIRECT *list) ++dispose_saved_dollar_vars function 5563 variables.c dispose_saved_dollar_vars (void) ++dispose_temporary_env function 4582 variables.c dispose_temporary_env (sh_free_func_t *pushf) ++dispose_used_env_vars function 4609 variables.c dispose_used_env_vars (void) ++dispose_var_context function 5128 variables.c dispose_var_context (VAR_CONTEXT *vc) ++dispose_variable function 3713 variables.c dispose_variable (SHELL_VAR *var) ++dispose_variable_value function 3696 variables.c dispose_variable_value (SHELL_VAR *var) ++dispose_word function 248 dispose_cmd.c dispose_word (WORD_DESC *w) ++dispose_word_array function 291 dispose_cmd.c dispose_word_array (char **array) ++dispose_word_desc function 256 dispose_cmd.c dispose_word_desc (WORD_DESC *w) ++dispose_words function 264 dispose_cmd.c dispose_words (WORD_LIST *list) ++dist_version variable 36 version.c const char * const dist_version = DISTVERSION; ++division variable 38 /usr/local/src/bash/bash-20230914/builtins/let.def *, /, % multiplication, division, remainder ++do_assignment function 3640 subst.c do_assignment (char *string) ++do_assignment_internal function 3512 subst.c do_assignment_internal (const WORD_DESC *word, int expand) ++do_assignment_no_expand function 3660 subst.c do_assignment_no_expand (char *string) ++do_assignment_statements function 12990 subst.c do_assignment_statements (WORD_LIST *varlist, char *command, int is_nullcmd) ++do_chop function 132 /usr/local/src/bash/bash-20230914/builtins/mapfile.def do_chop(char *line, unsigned char delim) ++do_compound_assignment function 3426 subst.c do_compound_assignment (const char *name, char *value, int flags) ++do_piping function 6243 execute_cmd.c do_piping (int pipe_in, int pipe_out) ++do_redirection_internal function 759 redir.c do_redirection_internal (REDIRECT *redirect, int flags, char **fnp) ++do_redirections function 236 redir.c do_redirections (REDIRECT *list, int flags) ++do_version variable 218 shell.c static int do_version; /* Display interesting version info. */ ++do_word_assignment function 3651 subst.c do_word_assignment (const WORD_DESC *word, int flags) ++docname member 133 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *docname; /* Possible name for documentation string. */ ++docname_handler function 863 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c docname_handler (char *self, DEF_FILE *defs, char *arg) ++document_name macro 225 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define document_name(b) ((b)->docname ? (b)->docname : (b)->name) ++documentation_file variable 79 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c FILE *documentation_file = (FILE *)NULL; ++dogetopts function 159 /usr/local/src/bash/bash-20230914/builtins/getopts.def dogetopts (int argc, char **argv) ++dollar_arg_stack variable 5433 variables.c static struct saved_dollar_vars *dollar_arg_stack = (struct saved_dollar_vars *)NULL; ++dollar_arg_stack_index variable 5435 variables.c static int dollar_arg_stack_index; ++dollar_arg_stack_slots variable 5434 variables.c static size_t dollar_arg_stack_slots; ++dollar_dollar_pid variable 164 variables.c pid_t dollar_dollar_pid; ++dollar_vars variable 159 variables.c char *dollar_vars[10]; ++dollar_vars_changed function 440 /usr/local/src/bash/bash-20230914/builtins/common.c dollar_vars_changed (void) ++dont_save_function_defs variable 193 bashhist.c int dont_save_function_defs; ++dot_found_in_search variable 78 findcmd.c int dot_found_in_search = 0; ++dot_in_path variable 323 bashline.c static int dot_in_path = 0; ++double_quotes_inhibit_history_expansion variable 108 bashhist.c int double_quotes_inhibit_history_expansion = 0; ++down member 39 variables.h struct var_context *down; /* down towards global context */ ++draino function 2392 jobs.c draino (int fd, int ospeed) ++dstack struct 58 parser.h struct dstack { ++dump_po_strings variable 230 shell.c int dump_po_strings; /* Dump strings in $"..." in po format */ ++dump_translatable_strings variable 229 shell.c int dump_translatable_strings; /* Dump strings in $"...", don't execute. */ ++dump_word_flags function 387 subst.c dump_word_flags (int flags) ++dup_error function 6235 execute_cmd.c dup_error (int oldd, int newd) ++duplicate_buffered_stream function 320 input.c duplicate_buffered_stream (int fd1, int fd2) ++dyn_load_builtin function 326 /usr/local/src/bash/bash-20230914/builtins/enable.def dyn_load_builtin (WORD_LIST *list, int flags, char *filename) ++dyn_unload_builtin function 538 /usr/local/src/bash/bash-20230914/builtins/enable.def dyn_unload_builtin (char *name) ++dynamic_complete_history function 3696 bashline.c dynamic_complete_history (int count, int key) ++dynamic_value member 86 variables.h sh_var_value_func_t *dynamic_value; /* Function called to return a `dynamic' ++echo_builtin function 110 /usr/local/src/bash/bash-20230914/builtins/echo.def echo_builtin (WORD_LIST *list) ++echo_command_at_execute variable 88 flags.c int echo_command_at_execute = 0; ++echo_input_at_read member 210 shell.h int echo_input_at_read; ++echo_input_at_read variable 83 flags.c int echo_input_at_read = 0; ++edit_and_execute_command function 937 bashline.c edit_and_execute_command (int count, int c, int editing_mode, const char *edit_command) ++edit_line function 1212 /usr/local/src/bash/bash-20230914/builtins/read.def edit_line (char *p, char *itext, unsigned char delim, int keep_completion_func) ++eflag variable 72 /usr/local/src/bash/bash-20230914/builtins/cd.def static int eflag; /* file scope so bindpwd() can see it */ ++egid member 152 shell.h gid_t gid, egid, savegid; ++element struct 173 command.h typedef struct element { ++element variable 38 /usr/local/src/bash/bash-20230914/builtins/reserved.def assumed. For each element in WORDS, NAME is set to that element, and ++element_back macro 138 array.h #define element_back(ae) ((ae)->prev) ++element_forw macro 137 array.h #define element_forw(ae) ((ae)->next) ++element_index macro 134 array.h #define element_index(ae) ((ae)->ind) ++element_state struct 40 arrayfunc.h typedef struct element_state ++element_value macro 133 array.h #define element_value(ae) ((ae)->value) ++elements member 36 array.h struct array_element **elements; ++elif_clause label 1158 parse.y elif_clause: ELIF compound_list THEN compound_list ++emacs_edit_and_execute_command function 1021 bashline.c emacs_edit_and_execute_command (int count, int key) ++emacs_std_cmd_xmap variable 4381 bashline.c static Keymap emacs_std_cmd_xmap; ++enable_builtin function 109 /usr/local/src/bash/bash-20230914/builtins/enable.def enable_builtin (WORD_LIST *list) ++enable_history_list variable 92 bashhist.c int enable_history_list = -1; /* value for `set -o history' */ ++enable_hostname_completion function 378 bashline.c enable_hostname_completion (int on_or_off) ++enable_shell_command function 291 /usr/local/src/bash/bash-20230914/builtins/enable.def enable_shell_command (char *name, int disable_p) ++end member 190 jobs.h PROCESS *end; ++end_handler function 953 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c end_handler (char *self, DEF_FILE *defs, char *arg) ++end_job_control function 4979 jobs.c end_job_control (void) ++end_unwind_frame macro 46 unwind_prot.h #define end_unwind_frame() ++eof_encountered member 185 shell.h int eof_encountered; ++eof_token member 181 shell.h int eof_token; ++eol_lookahead member 186 shell.h int eol_lookahead; ++equality variable 42 /usr/local/src/bash/bash-20230914/builtins/let.def ==, != equality, inequality ++ere_char function 149 pathexp.c ere_char (int c) ++err_badarraysub function 440 error.c err_badarraysub (const char *s) ++err_readonly function 453 error.c err_readonly (const char *s) ++err_unboundvar function 447 error.c err_unboundvar (const char *s) ++errexit_flag variable 56 flags.c int errexit_flag = 0; ++error_directory variable 105 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *error_directory = (char *)NULL; ++error_prolog function 74 error.c error_prolog (int print_lineno) ++error_trace_mode variable 152 flags.c int error_trace_mode = 0; ++esacs_needed member 214 shell.h int esacs_needed; ++euid member 151 shell.h uid_t uid, euid, saveuid; ++eval_arith_for_expr function 3075 execute_cmd.c eval_arith_for_expr (WORD_LIST *l, int *okp) ++eval_builtin function 49 /usr/local/src/bash/bash-20230914/builtins/eval.def eval_builtin (WORD_LIST *list) ++evalbuf variable 177 expr.c static procenv_t evalbuf; ++evalerror function 1508 expr.c evalerror (const char *msg) ++evalexp function 403 expr.c evalexp (const char *expr, int flags, int *validp) ++evalnest variable 307 execute_cmd.c int evalnest = 0; ++evalnest_max variable 308 execute_cmd.c int evalnest_max = EVALNEST_MAX; ++evalstring function 800 /usr/local/src/bash/bash-20230914/builtins/evalstring.c evalstring (char *string, const char *from_file, int flags) ++exec_argv0 variable 292 shell.c char *exec_argv0; ++exec_builtin function 99 /usr/local/src/bash/bash-20230914/builtins/exec.def exec_builtin (WORD_LIST *list) ++exec_name_should_ignore function 98 findcmd.c exec_name_should_ignore (const char *name) ++exec_redirection_undo_list variable 233 execute_cmd.c REDIRECT *exec_redirection_undo_list = (REDIRECT *)NULL; ++execignore variable 82 findcmd.c static struct ignorevar execignore = ++execstate struct 40 execute_cmd.h struct execstate ++executable_completion function 1925 bashline.c executable_completion (const char *filename, int searching_path) ++executable_file function 214 findcmd.c executable_file (const char *file) ++executable_or_directory function 233 findcmd.c executable_or_directory (const char *file) ++execute_arith_command function 3802 execute_cmd.c execute_arith_command (ARITH_COM *arith_command) ++execute_arith_for_command function 3131 execute_cmd.c execute_arith_for_command (ARITH_FOR_COM *arith_for_command) ++execute_array_command function 277 eval.c execute_array_command (ARRAY *a, void *v) ++execute_builtin function 4904 execute_cmd.c execute_builtin (sh_builtin_func_t *builtin, WORD_LIST *words, int flags, int subshell) ++execute_builtin_or_function function 5493 execute_cmd.c execute_builtin_or_function (WORD_LIST *words, ++execute_case_command function 3553 execute_cmd.c execute_case_command (CASE_COM *case_command) ++execute_command function 425 execute_cmd.c execute_command (COMMAND *command) ++execute_command_internal function 604 execute_cmd.c execute_command_internal (COMMAND *command, int asynchronous, int pipe_in, int pipe_out, struct fd_bitmap *fds_to_close) ++execute_cond_command function 4047 execute_cmd.c execute_cond_command (COND_COM *cond_command) ++execute_cond_node function 3890 execute_cmd.c execute_cond_node (COND_COM *cond) ++execute_connection function 2727 execute_cmd.c execute_connection (COMMAND *command, int asynchronous, int pipe_in, int pipe_out, struct fd_bitmap *fds_to_close) ++execute_coproc function 2411 execute_cmd.c execute_coproc (COMMAND *command, int pipe_in, int pipe_out, struct fd_bitmap *fds_to_close) ++execute_disk_command function 5654 execute_cmd.c execute_disk_command (WORD_LIST *words, REDIRECT *redirects, char *command_line, ++execute_env_file function 1092 shell.c execute_env_file (char *env_file) ++execute_for_command function 2904 execute_cmd.c execute_for_command (FOR_COM *for_command) ++execute_function function 5101 execute_cmd.c execute_function (SHELL_VAR *var, WORD_LIST *words, int flags, struct fd_bitmap *fds_to_close, int async, int subshell) ++execute_if_command function 3771 execute_cmd.c execute_if_command (IF_COM *if_command) ++execute_in_subshell function 1531 execute_cmd.c execute_in_subshell (COMMAND *command, int asynchronous, int pipe_in, int pipe_out, struct fd_bitmap *fds_to_close) ++execute_intern_function function 6170 execute_cmd.c execute_intern_function (WORD_DESC *name, FUNCTION_DEF *funcdef) ++execute_list_with_replacements function 177 /usr/local/src/bash/bash-20230914/builtins/jobs.def execute_list_with_replacements (WORD_LIST *list) ++execute_null_command function 4112 execute_cmd.c execute_null_command (REDIRECT *redirects, int pipe_in, int pipe_out, int async) ++execute_pipeline function 2537 execute_cmd.c execute_pipeline (COMMAND *command, int asynchronous, int pipe_in, int pipe_out, struct fd_bitmap *fds_to_close) ++execute_prompt_command function 297 eval.c execute_prompt_command (void) ++execute_select_command function 3411 execute_cmd.c execute_select_command (SELECT_COM *select_command) ++execute_shell_function function 5352 execute_cmd.c execute_shell_function (SHELL_VAR *var, WORD_LIST *words) ++execute_shell_script function 5882 execute_cmd.c execute_shell_script (char *sample, int sample_len, ++execute_simple_command function 4373 execute_cmd.c execute_simple_command (SIMPLE_COM *simple_command, int pipe_in, int pipe_out, int async, struct fd_bitmap *fds_to_close) ++execute_subshell_builtin_or_function function 5376 execute_cmd.c execute_subshell_builtin_or_function (WORD_LIST *words, REDIRECT *redirects, ++execute_until_command function 3694 execute_cmd.c execute_until_command (WHILE_COM *while_command) ++execute_while_command function 3687 execute_cmd.c execute_while_command (WHILE_COM *while_command) ++execute_while_or_until function 3705 execute_cmd.c execute_while_or_until (WHILE_COM *while_command, int type) ++executing variable 174 shell.c int executing = 0; ++executing_builtin variable 237 execute_cmd.c int executing_builtin = 0; ++executing_command_builtin variable 264 execute_cmd.c int executing_command_builtin = 0; ++executing_funsub variable 196 subst.c int executing_funsub = 0; ++executing_line_number function 392 execute_cmd.c executing_line_number (void) ++exist variable 36 /usr/local/src/bash/bash-20230914/builtins/getopts.def shell variable $name, initializing name if it does not exist, and ++exit_builtin function 55 /usr/local/src/bash/bash-20230914/builtins/exit.def exit_builtin (WORD_LIST *list) ++exit_immediately_on_error variable 57 flags.c int exit_immediately_on_error = 0; ++exit_or_logout function 93 /usr/local/src/bash/bash-20230914/builtins/exit.def exit_or_logout (WORD_LIST *list) ++exit_shell function 975 shell.c exit_shell (int s) ++exp member 315 command.h WORD_LIST *exp; ++exp0 function 1013 expr.c exp0 (void) ++exp_builtin function 112 /usr/local/src/bash/bash-20230914/builtins/let.def exp_builtin (WORD_LIST *list) ++exp_jump_to_top_level function 12247 subst.c exp_jump_to_top_level (int v) ++expaddsub function 853 expr.c expaddsub (void) ++expaliases_flag variable 156 /usr/local/src/bash/bash-20230914/builtins/shopt.def int expaliases_flag = 0; ++expand_aliases member 209 shell.h int expand_aliases; ++expand_amble function 276 braces.c expand_amble (char *text, size_t tlen, int flags) ++expand_and_print_history function 442 /usr/local/src/bash/bash-20230914/builtins/history.def expand_and_print_history (WORD_LIST *list) ++expand_and_quote_assoc_word function 1028 arrayfunc.c expand_and_quote_assoc_word (char *w, int type) ++expand_and_quote_kvpair_word function 674 arrayfunc.c expand_and_quote_kvpair_word (const char *w) ++expand_arith_string function 3969 subst.c expand_arith_string (char *string, int quoted) ++expand_array_subscript function 10962 subst.c expand_array_subscript (const char *string, size_t *sindex, int quoted, int flags) ++expand_assignment_string_to_string function 3869 subst.c expand_assignment_string_to_string (char *string, int quoted) ++expand_compound_array_assignment function 554 arrayfunc.c expand_compound_array_assignment (SHELL_VAR *var, char *value, int flags) ++expand_compound_assignment_word function 12685 subst.c expand_compound_assignment_word (WORD_LIST *tlist, int atype) ++expand_declaration_argument function 12744 subst.c expand_declaration_argument (WORD_LIST *tlist, WORD_LIST *wcmd) ++expand_histignore_pattern function 1025 bashhist.c expand_histignore_pattern (char *pat) ++expand_no_split_dollar_star variable 230 subst.c static int expand_no_split_dollar_star = 0; ++expand_once_flag variable 126 /usr/local/src/bash/bash-20230914/builtins/shopt.def int expand_once_flag; ++expand_oneword function 12632 subst.c expand_oneword (char *value, int atype) ++expand_param_error variable 222 subst.c static char expand_param_error, expand_param_fatal, expand_param_unset; ++expand_param_fatal variable 222 subst.c static char expand_param_error, expand_param_fatal, expand_param_unset; ++expand_param_unset variable 222 subst.c static char expand_param_error, expand_param_fatal, expand_param_unset; ++expand_prompt_string function 4389 subst.c expand_prompt_string (const char *string, int quoted, int wflags) ++expand_seqterm function 459 braces.c expand_seqterm (char *text, size_t tlen) ++expand_string function 4521 subst.c expand_string (const char *string, int quoted) ++expand_string_assignment function 4345 subst.c expand_string_assignment (const char *string, int quoted) ++expand_string_dollar_quote function 4121 subst.c expand_string_dollar_quote (const char *string, int flags) ++expand_string_for_pat function 4495 subst.c expand_string_for_pat (const char *string, int quoted, int *dollar_at_p, int *expanded_p) ++expand_string_for_patsub function 3938 subst.c expand_string_for_patsub (char *string, int quoted) ++expand_string_for_rhs function 4450 subst.c expand_string_for_rhs (const char *string, int quoted, int op, int pflags, int *dollar_at_p, int *expanded_p) ++expand_string_if_necessary function 3796 subst.c expand_string_if_necessary (char *string, int quoted, EXPFUNC *func) ++expand_string_internal function 4297 subst.c expand_string_internal (const char *string, int quoted) ++expand_string_leave_quoted function 4428 subst.c expand_string_leave_quoted (const char *string, int quoted) ++expand_string_to_string function 3857 subst.c expand_string_to_string (char *string, int quoted) ++expand_string_to_string_internal function 3836 subst.c expand_string_to_string_internal (char *string, int quoted, EXPFUNC *func) ++expand_string_unsplit function 4320 subst.c expand_string_unsplit (const char *string, int quoted) ++expand_string_unsplit_to_string function 3863 subst.c expand_string_unsplit_to_string (char *string, int quoted) ++expand_subscript_string function 10918 subst.c expand_subscript_string (const char *string, int quoted) ++expand_wdesc_error variable 221 subst.c static WORD_DESC expand_wdesc_error, expand_wdesc_fatal; ++expand_wdesc_fatal variable 221 subst.c static WORD_DESC expand_wdesc_error, expand_wdesc_fatal; ++expand_word function 4543 subst.c expand_word (WORD_DESC *word, int quoted) ++expand_word_error variable 220 subst.c static WORD_LIST expand_word_error, expand_word_fatal; ++expand_word_fatal variable 220 subst.c static WORD_LIST expand_word_error, expand_word_fatal; ++expand_word_internal function 11056 subst.c expand_word_internal (WORD_DESC *word, int quoted, int isexp, int *contains_dollar_at, int *expanded_something) ++expand_word_leave_quoted function 4569 subst.c expand_word_leave_quoted (WORD_DESC *word, int quoted) ++expand_word_list_internal function 13066 subst.c expand_word_list_internal (WORD_LIST *list, int eflags) ++expand_word_unsplit function 4557 subst.c expand_word_unsplit (WORD_DESC *word, int quoted) ++expand_words function 12385 subst.c expand_words (WORD_LIST *list) ++expand_words_no_vars function 12393 subst.c expand_words_no_vars (WORD_LIST *list) ++expand_words_shellexp function 12399 subst.c expand_words_shellexp (WORD_LIST *list) ++expandable_redirection_filename function 271 redir.c expandable_redirection_filename (REDIRECT *redirect) ++expanding_redir variable 88 redir.c int expanding_redir; ++expassign function 498 expr.c expassign (void) ++expband function 759 expr.c expband (void) ++expbor function 721 expr.c expbor (void) ++expbxor function 740 expr.c expbxor (void) ++expcomma function 483 expr.c expcomma (void) ++expcompare function 799 expr.c expcompare (void) ++expcond function 617 expr.c expcond (void) ++expecting_in member 215 shell.h int expecting_in; ++expeq function 777 expr.c expeq (void) ++expland function 693 expr.c expland (void) ++explor function 665 expr.c explor (void) ++expmuldiv function 876 expr.c expmuldiv (void) ++export_builtin function 76 /usr/local/src/bash/bash-20230914/builtins/setattr.def export_builtin (WORD_LIST *list) ++export_env variable 176 variables.c char **export_env = (char **)NULL; ++export_env_index variable 177 variables.c static int export_env_index; ++export_env_size variable 178 variables.c static size_t export_env_size; ++export_environment_candidate function 4298 variables.c export_environment_candidate (SHELL_VAR *var) ++exportable_function_name function 383 general.c exportable_function_name (const char *string) ++exported_p macro 138 variables.h #define exported_p(var) ((((var)->attributes) & (att_exported))) ++exportstr member 85 variables.h char *exportstr; /* String for the environment. */ ++exppower function 953 expr.c exppower (void) ++expr function 175 test.c expr (void) ++expr_bind_array_element function 368 expr.c expr_bind_array_element (const char *tok, arrayind_t ind, const char *rhs) ++expr_bind_variable function 324 expr.c expr_bind_variable (const char *lhs, const char *rhs) ++expr_depth variable 226 expr.c static int expr_depth; /* Location in the stack. */ ++expr_skipsubscript function 348 expr.c expr_skipsubscript (char *vp, char *cp) ++expr_stack variable 225 expr.c static EXPR_CONTEXT **expr_stack; ++expr_stack_size variable 227 expr.c static size_t expr_stack_size; /* Number of slots already allocated. */ ++expr_streval function 1137 expr.c expr_streval (char *tok, int e, struct lvalue *lvalue) ++expr_unwind function 305 expr.c expr_unwind (void) ++expression member 161 expr.c char *expression, *tp, *lasttp; ++expression variable 168 expr.c static char *expression; /* The current expression */ ++expshift function 829 expr.c expshift (void) ++expunary function 978 expr.c expunary (void) ++ext_glob_chars macro 41 syntax.h # define ext_glob_chars "@*+?!" ++ext_glob_chars macro 43 syntax.h # define ext_glob_chars "" ++extended_glob variable 56 pathexp.c int extended_glob = EXTGLOB_DEFAULT; ++extern_filename variable 111 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *extern_filename = (char *)NULL; ++extglob_flag variable 152 /usr/local/src/bash/bash-20230914/builtins/shopt.def int extglob_flag = EXTGLOB_DEFAULT; ++extract_arithmetic_subst function 1290 subst.c extract_arithmetic_subst (const char *string, size_t *sindex) ++extract_array_assignment_list function 1320 subst.c extract_array_assignment_list (const char *string, size_t *sindex) ++extract_colon_unit function 1013 general.c extract_colon_unit (char *string, int *p_index) ++extract_command_subst function 1251 subst.c extract_command_subst (const char *string, size_t *sindex, int xflags) ++extract_delimited_string function 1345 subst.c extract_delimited_string (const char *string, size_t *sindex, char *opener, char *alt_opener, char *closer, int flags) ++extract_dollar_brace_string function 1810 subst.c extract_dollar_brace_string (const char *string, size_t *sindex, int quoted, int flags) ++extract_function_subst function 1270 subst.c extract_function_subst (const char *string, size_t *sindex, int quoted, int xflags) ++extract_heredoc_dolbrace_string function 1523 subst.c extract_heredoc_dolbrace_string (const char *string, size_t *sindex, int quoted, int flags) ++extract_info function 517 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c extract_info (char *filename, FILE *structfile, FILE *externfile) ++extract_process_subst function 1300 subst.c extract_process_subst (const char *string, char *starter, size_t *sindex, int xflags) ++extract_string_error variable 223 subst.c static char extract_string_error, extract_string_fatal; ++extract_string_fatal variable 223 subst.c static char extract_string_error, extract_string_fatal; ++f member 71 variables.h COMMAND *f; /* function */ ++fail_glob_expansion variable 189 subst.c int fail_glob_expansion; ++fails variable 808 /usr/local/src/bash/bash-20230914/builtins/set.def Without options, unset first tries to unset a variable, and if that fails, ++false_builtin function 71 /usr/local/src/bash/bash-20230914/builtins/colon.def false_builtin (WORD_LIST *ignore) ++false_case member 298 command.h COMMAND *false_case; /* What to do if the test returned zero. */ ++fapply function 4244 variables.c fapply (sh_var_map_func_t *func) ++fatal_error function 191 error.c fatal_error (const char *format, ...) ++fatal_error function 468 hashlib.c fatal_error (const char *format, ...) ++fatal_error function 1043 array.c fatal_error(const char *s, ...) ++fc_addhist function 773 /usr/local/src/bash/bash-20230914/builtins/fc.def fc_addhist (char *line) ++fc_builtin function 190 /usr/local/src/bash/bash-20230914/builtins/fc.def fc_builtin (WORD_LIST *list) ++fc_dosubs function 733 /usr/local/src/bash/bash-20230914/builtins/fc.def fc_dosubs (char *command, REPL *subs) ++fc_execute_file function 354 /usr/local/src/bash/bash-20230914/builtins/evalfile.c fc_execute_file (const char *filename) ++fc_gethist function 670 /usr/local/src/bash/bash-20230914/builtins/fc.def fc_gethist (char *command, HIST_ENTRY **hlist, int mode) ++fc_gethnum function 567 /usr/local/src/bash/bash-20230914/builtins/fc.def fc_gethnum (char *command, HIST_ENTRY **hlist, int mode) ++fc_number function 548 /usr/local/src/bash/bash-20230914/builtins/fc.def fc_number (WORD_LIST *list) ++fc_readline function 690 /usr/local/src/bash/bash-20230914/builtins/fc.def fc_readline (FILE *stream) ++fc_replhist function 752 /usr/local/src/bash/bash-20230914/builtins/fc.def fc_replhist (char *command) ++fd member 119 /usr/local/src/bash/bash-20230914/builtins/read.def int fd; ++fd_berror function 473 input.c fd_berror (int fd) ++fd_bitmap struct 139 shell.h struct fd_bitmap { ++fd_is_bash_input function 224 input.c fd_is_bash_input (int fd) ++fd_is_seekable macro 369 input.c #define fd_is_seekable(fd) (lseek ((fd), 0L, SEEK_CUR) >= 0) ++fd_ispipe function 594 general.c fd_ispipe (int fd) ++fd_to_buffered_stream function 375 input.c fd_to_buffered_stream (int fd) ++fg_bg function 136 /usr/local/src/bash/bash-20230914/builtins/fg_bg.def fg_bg (WORD_LIST *list, int foreground) ++fg_builtin function 59 /usr/local/src/bash/bash-20230914/builtins/fg_bg.def fg_builtin (WORD_LIST *list) ++fifo_list variable 5844 subst.c static struct temp_fifo *fifo_list = (struct temp_fifo *)NULL; ++fifo_list_size variable 5846 subst.c static int fifo_list_size; ++fifos_pending function 6052 subst.c fifos_pending (void) ++fifos_pending function 6158 subst.c fifos_pending (void) ++fignore variable 2976 bashline.c static struct ignorevar fignore = ++file member 53 /usr/local/src/bash/bash-20230914/lib/malloc/table.h const char *file; ++file member 68 /usr/local/src/bash/bash-20230914/lib/malloc/table.h const char *file; ++file member 73 input.h FILE *file; ++file member 5840 subst.c char *file; ++file variable 42 /usr/local/src/bash/bash-20230914/builtins/type.def `function', `builtin', `file' or `', if NAME is an alias, ++file variable 43 /usr/local/src/bash/bash-20230914/builtins/type.def shell reserved word, shell function, shell builtin, disk file, ++file_access_date_changed function 285 mailcheck.c file_access_date_changed (int i) ++file_error function 126 error.c file_error (const char *filename) ++file_error function 980 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c file_error (char *filename) ++file_exists function 764 general.c file_exists (const char *fn) ++file_has_grown function 305 mailcheck.c file_has_grown (int i) ++file_isdir function 772 general.c file_isdir (const char *fn) ++file_iswdir function 780 general.c file_iswdir (const char *fn) ++file_mod_date_changed function 262 mailcheck.c file_mod_date_changed (int i) ++file_size member 57 mailcheck.c off_t file_size; ++file_status function 113 findcmd.c file_status (const char *name) ++file_to_lose_on variable 68 findcmd.c static char *file_to_lose_on; ++filecomp function 308 test.c filecomp (const char *s, const char *t, int op) ++filename member 141 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *filename; /* The name of the input def file. */ ++filename member 156 command.h WORD_DESC *filename; /* filename to redirect to. */ ++filename_bstab variable 319 bashline.c static char filename_bstab[256]; ++filename_completion_ignore function 3098 bashline.c filename_completion_ignore (char **names) ++filter_comments function 678 bashhist.c filter_comments (char *line) ++filter_stringlist function 276 pcomplete.c filter_stringlist (STRINGLIST *sl, char *filterpat, const char *text) ++filterpat member 39 pcomplete.h char *filterpat; ++find_absolute_program function 519 findcmd.c find_absolute_program (const char *name, int flags) ++find_alias function 81 alias.c find_alias (const char *name) ++find_cmd_end function 1470 bashline.c find_cmd_end (int end) ++find_cmd_name function 1479 bashline.c find_cmd_name (int start, int *sp, int *ep) ++find_cmd_start function 1422 bashline.c find_cmd_start (int start) ++find_compact function 157 /usr/local/src/bash/bash-20230914/builtins/complete.def find_compact (char *name) ++find_compopt function 168 /usr/local/src/bash/bash-20230914/builtins/complete.def find_compopt (char *name) ++find_directive function 488 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c find_directive (char *directive) ++find_flag function 211 flags.c find_flag (int name) ++find_function function 2461 variables.c find_function (const char *name) ++find_function_def function 2469 variables.c find_function_def (const char *name) ++find_global_variable function 2311 variables.c find_global_variable (const char *name) ++find_global_variable_last_nameref function 2085 variables.c find_global_variable_last_nameref (const char *name, int vflags) ++find_global_variable_noref function 2333 variables.c find_global_variable_noref (const char *name) ++find_in_path function 701 findcmd.c find_in_path (const char *name, char *path_list, int flags) ++find_in_path_element function 539 findcmd.c find_in_path_element (const char *name, char *path, int flags, size_t name_len, struct stat *dotinfop, int *rflagsp) ++find_index_by_pid function 187 nojobs.c find_index_by_pid (pid_t pid) ++find_index_in_alist function 88 stringlib.c find_index_in_alist (char *string, STRING_INT_ALIST *alist, int flags) ++find_job function 1744 jobs.c find_job (pid_t pid, int alive_only, PROCESS **procp) ++find_last_pid function 2516 jobs.c find_last_pid (int job, int block) ++find_last_proc function 2497 jobs.c find_last_proc (int job, int block) ++find_mail_file function 123 mailcheck.c find_mail_file (const char *file) ++find_minus_o_option function 252 /usr/local/src/bash/bash-20230914/builtins/set.def find_minus_o_option (char *name) ++find_nameref_at_context function 2109 variables.c find_nameref_at_context (SHELL_VAR *v, VAR_CONTEXT *vc) ++find_or_make_array_variable function 451 arrayfunc.c find_or_make_array_variable (const char *name, int flags) ++find_path_file function 258 findcmd.c find_path_file (const char *name) ++find_pid_in_pipeline function 1675 jobs.c find_pid_in_pipeline (pid_t pid, PROCESS *pipeline, int alive_only) ++find_pipeline function 1697 jobs.c find_pipeline (pid_t pid, int alive_only, int *jobp) ++find_proc_slot function 170 nojobs.c find_proc_slot (pid_t pid) ++find_process function 1731 jobs.c find_process (pid_t pid, int alive_only, int *jobp) ++find_procsub_child function 5997 subst.c find_procsub_child (pid_t pid) ++find_procsub_child function 6226 subst.c find_procsub_child (pid_t pid) ++find_shell_builtin function 866 /usr/local/src/bash/bash-20230914/builtins/common.c find_shell_builtin (const char *name) ++find_shell_variable function 2346 variables.c find_shell_variable (const char *name) ++find_shopt function 437 /usr/local/src/bash/bash-20230914/builtins/shopt.def find_shopt (char *name) ++find_special_builtin function 883 /usr/local/src/bash/bash-20230914/builtins/common.c find_special_builtin (const char *name) ++find_special_var function 5773 variables.c find_special_var (const char *name) ++find_status_by_pid function 201 nojobs.c find_status_by_pid (pid_t pid) ++find_string_in_alist function 51 stringlib.c find_string_in_alist (char *string, STRING_INT_ALIST *alist, int flags) ++find_tempenv_variable function 4437 variables.c find_tempenv_variable (const char *name) ++find_termsig_by_pid function 225 nojobs.c find_termsig_by_pid (pid_t pid) ++find_token_in_alist function 75 stringlib.c find_token_in_alist (int token, STRING_INT_ALIST *alist, int flags) ++find_user_command function 247 findcmd.c find_user_command (const char *name) ++find_user_command_in_path function 623 findcmd.c find_user_command_in_path (const char *name, char *path_list, int flags, int *rflagsp) ++find_user_command_internal function 299 findcmd.c find_user_command_internal (const char *name, int flags) ++find_variable function 1634 expr.c SHELL_VAR *find_variable () { return 0;} ++find_variable function 2369 variables.c find_variable (const char *name) ++find_variable_for_assignment function 2422 variables.c find_variable_for_assignment (const char *name) ++find_variable_internal function 1969 variables.c find_variable_internal (const char *name, int flags) ++find_variable_last_nameref function 2057 variables.c find_variable_last_nameref (const char *name, int vflags) ++find_variable_last_nameref_context function 2167 variables.c find_variable_last_nameref_context (SHELL_VAR *v, VAR_CONTEXT *vc, VAR_CONTEXT **nvcp) ++find_variable_nameref function 2017 variables.c find_variable_nameref (SHELL_VAR *v) ++find_variable_nameref_context function 2139 variables.c find_variable_nameref_context (SHELL_VAR *v, VAR_CONTEXT *vc, VAR_CONTEXT **nvcp) ++find_variable_nameref_for_assignment function 2217 variables.c find_variable_nameref_for_assignment (const char *name, int flags) ++find_variable_nameref_for_create function 2188 variables.c find_variable_nameref_for_create (const char *name, int flags) ++find_variable_no_invisible function 2396 variables.c find_variable_no_invisible (const char *name) ++find_variable_noref function 2446 variables.c find_variable_noref (const char *name) ++find_variable_notempenv function 2293 variables.c find_variable_notempenv (const char *name) ++find_variable_tempenv function 2274 variables.c find_variable_tempenv (const char *name) ++findbrk function 73 xmalloc.c findbrk (void) ++first member 231 command.h COMMAND *first; /* Pointer to the first command. */ ++first_index member 34 array.h arrayind_t first_index; ++first_pending_trap function 628 trap.c first_pending_trap (void) ++first_ten member 5428 variables.c char **first_ten; ++fix_arrayref_words function 4275 execute_cmd.c fix_arrayref_words (WORD_LIST *words) ++fix_assignment_words function 4189 execute_cmd.c fix_assignment_words (WORD_LIST *words) ++flags member 30 hashcmd.h int flags; ++flags member 31 alias.h char flags; ++flags member 37 variables.h int flags; ++flags member 51 /usr/local/src/bash/bash-20230914/lib/malloc/table.h char flags; ++flags member 56 builtins.h int flags; /* One of the #defines above. */ ++flags member 58 mailcheck.c int flags; ++flags member 88 pathexp.h int flags; ++flags member 90 pcomplete.h int flags; ++flags member 103 nojobs.c int flags; ++flags member 126 jobs.h int flags; /* Flags word: J_NOTIFIED, J_FOREGROUND, or J_JOBCONTROL. */ ++flags member 133 command.h int flags; /* Flags associated with this word. */ ++flags member 136 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c int flags; /* Flags for this builtin. */ ++flags member 165 command.h int flags; /* Flag value for `open'. */ ++flags member 199 command.h int flags; /* Flags controlling execution environment. */ ++flags member 247 command.h int flags; ++flags member 252 command.h int flags; /* See description of CMD flags. */ ++flags member 260 command.h int flags; /* See description of CMD flags. */ ++flags member 271 command.h int flags; ++flags member 283 command.h int flags; /* See description of CMD flags. */ ++flags member 295 command.h int flags; /* See description of CMD flags. */ ++flags member 303 command.h int flags; /* See description of CMD flags. */ ++flags member 313 command.h int flags; ++flags member 329 command.h int flags; ++flags member 338 command.h int flags; /* See description of CMD flags. */ ++flags member 347 command.h int flags; /* See description of CMD flags. */ ++flags member 362 command.h int flags; ++flags member 383 command.h int flags; ++flags_alist struct 35 flags.h struct flags_alist { ++flatten function 4188 variables.c flatten (HASH_TABLE *var_hash_table, sh_var_map_func_t *func, VARLIST *vlist, int flags) ++floatmax_t typedef 213 /usr/local/src/bash/bash-20230914/builtins/printf.def typedef long double floatmax_t; ++floatmax_t typedef 218 /usr/local/src/bash/bash-20230914/builtins/printf.def typedef double floatmax_t; ++flush_eltstate function 324 arrayfunc.c flush_eltstate (array_eltstate_t *estatep) ++flush_temporary_env function 4640 variables.c flush_temporary_env (void) ++for_com struct 259 command.h typedef struct for_com { ++for_command label 880 parse.y for_command: FOR WORD newline_list DO compound_list DONE ++force_append_history variable 159 bashhist.c int force_append_history; ++force_execute_file function 338 /usr/local/src/bash/bash-20230914/builtins/evalfile.c force_execute_file (const char *fname, int force_noninteractive) ++force_fignore variable 292 bashline.c int force_fignore = 1; ++forced_interactive variable 95 flags.c int forced_interactive = 0; ++found variable 44 /usr/local/src/bash/bash-20230914/builtins/type.def or not found, respectively ++fpurge macro 246 externs.h # define fpurge _bash_fpurge ++free_alias_data function 158 alias.c free_alias_data (PTR_T data) ++free_buffered_stream function 408 input.c free_buffered_stream (BUFFERED_STREAM *bp) ++free_builtin function 657 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c free_builtin (BUILTIN_DESC *builtin) ++free_defs function 679 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c free_defs (DEF_FILE *defs) ++free_dollar_vars function 5464 variables.c free_dollar_vars (void) ++free_lvalue function 1131 expr.c free_lvalue (struct lvalue *lv) ++free_mail_files function 237 mailcheck.c free_mail_files (void) ++free_progcomp function 127 pcomplib.c free_progcomp (PTR_T data) ++free_safely macro 654 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define free_safely(x) if (x) free (x) ++free_saved_dollar_vars function 5476 variables.c free_saved_dollar_vars (char **args) ++free_trap_command function 868 trap.c free_trap_command (int sig) ++free_trap_string function 1367 trap.c free_trap_string (int sig) ++free_trap_strings function 1344 trap.c free_trap_strings (void) ++free_variable_hash_data function 4005 variables.c free_variable_hash_data (PTR_T data) ++freeze_jobs_list function 1014 nojobs.c freeze_jobs_list (void) ++freeze_jobs_list function 4891 jobs.c freeze_jobs_list (void) ++from_return_trap variable 313 execute_cmd.c volatile int from_return_trap = 0; ++full_pathname function 886 general.c full_pathname (char *file) ++func member 52 /usr/local/src/bash/bash-20230914/lib/malloc/table.h const char *func; ++func_array_state struct 27 execute_cmd.h struct func_array_state ++funcname member 36 pcomplete.h char *funcname; ++funcname_a member 29 execute_cmd.h ARRAY *funcname_a; ++funcname_v member 30 execute_cmd.h SHELL_VAR *funcname_v; ++funcnest variable 304 execute_cmd.c int funcnest = 0; ++funcnest_max variable 305 execute_cmd.c int funcnest_max = 0; ++function member 55 builtins.h sh_builtin_func_t *function; /* The address of the invoked function. */ ++function member 131 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *function; /* The name of the function to call. */ ++function member 461 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c mk_handler_func_t *function; ++function member 5672 variables.c sh_sv_func_t *function; ++function variable 35 /usr/local/src/bash/bash-20230914/builtins/declare.def -g create global variables when used in a shell function; otherwise ++function variable 37 /usr/local/src/bash/bash-20230914/builtins/type.def builtin, or function, and returns the name of the disk file ++function variable 42 /usr/local/src/bash/bash-20230914/builtins/type.def `function', `builtin', `file' or `', if NAME is an alias, ++function variable 43 /usr/local/src/bash/bash-20230914/builtins/type.def shell reserved word, shell function, shell builtin, disk file, ++function_body label 1017 parse.y function_body: shell_command ++function_cell macro 167 variables.h #define function_cell(var) (COMMAND *)((var)->value) ++function_def label 1007 parse.y function_def: WORD '(' ')' newline_list function_body ++function_def struct 346 command.h typedef struct function_def { ++function_handler function 841 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c function_handler (char *self, DEF_FILE *defs, char *arg) ++function_line_number variable 273 execute_cmd.c static int function_line_number; ++function_misc_cleanup function 5083 execute_cmd.c function_misc_cleanup (void) ++function_p macro 141 variables.h #define function_p(var) ((((var)->attributes) & (att_function))) ++function_substitute function 6872 subst.c function_substitute (char *string, int quoted, int flags) ++function_trace_mode variable 149 flags.c int function_trace_mode = 0; ++functions variable 33 /usr/local/src/bash/bash-20230914/builtins/type.def includes aliases, builtins, and functions, if and only if ++funsub label 1067 parse.y funsub: DOLBRACE compound_list '}' ++g_list struct 122 general.h typedef struct g_list { ++garglist variable 234 subst.c static WORD_LIST *garglist = (WORD_LIST *)NULL; ++garglist variable 236 /usr/local/src/bash/bash-20230914/builtins/printf.def static WORD_LIST *garglist, *orig_arglist; ++gen_action_completions function 787 pcomplete.c gen_action_completions (COMPSPEC *cs, const char *text) ++gen_command_matches function 1156 pcomplete.c gen_command_matches (COMPSPEC *cs, const char *cmd, const char *text, ++gen_compspec_completions function 1251 pcomplete.c gen_compspec_completions (COMPSPEC *cs, const char *cmd, const char *word, ++gen_globpat_matches function 849 pcomplete.c gen_globpat_matches (COMPSPEC *cs, const char *text) ++gen_matches_from_itemlist function 657 pcomplete.c gen_matches_from_itemlist (ITEMLIST *itp, const char *text) ++gen_progcomp_completions function 1492 pcomplete.c gen_progcomp_completions (const char *ocmd, const char *cmd, const char *word, ++gen_shell_function_matches function 1046 pcomplete.c gen_shell_function_matches (COMPSPEC *cs, const char *cmd, const char *text, ++gen_wordlist_matches function 863 pcomplete.c gen_wordlist_matches (COMPSPEC *cs, const char *text) ++genindex member 97 pcomplete.h int genindex; /* index of item last handed to completion code */ ++genlist member 96 pcomplete.h STRINGLIST *genlist; /* for handing to the completion code one item at a time */ ++get_alias_value function 94 alias.c get_alias_value (const char *name) ++get_aliasvar function 1784 variables.c get_aliasvar (SHELL_VAR *self) ++get_all_original_signals function 904 trap.c get_all_original_signals (void) ++get_arg function 739 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c get_arg (char *for_whom, DEF_FILE *defs, char *string) ++get_array_value function 1656 arrayfunc.c get_array_value (const char *s, int flags, array_eltstate_t *estatep) ++get_bash_argv0 function 1526 variables.c get_bash_argv0 (SHELL_VAR *var) ++get_bash_command function 1564 variables.c get_bash_command (SHELL_VAR *var) ++get_bash_name function 782 variables.c get_bash_name (void) ++get_bashargcv function 1662 variables.c get_bashargcv (SHELL_VAR *self) ++get_bashpid function 1517 variables.c get_bashpid (SHELL_VAR *var) ++get_buffered_stream function 467 input.c get_buffered_stream (int fd) ++get_cmd_xmap_from_edit_mode function 4627 bashline.c get_cmd_xmap_from_edit_mode (void) ++get_cmd_xmap_from_keymap function 4646 bashline.c get_cmd_xmap_from_keymap (Keymap kmap) ++get_comp_wordbreaks function 1593 variables.c get_comp_wordbreaks (SHELL_VAR *var) ++get_current_flags function 314 flags.c get_current_flags (void) ++get_current_options function 332 /usr/local/src/bash/bash-20230914/builtins/set.def get_current_options (void) ++get_current_user_info function 1859 shell.c get_current_user_info (void) ++get_directory_stack function 645 /usr/local/src/bash/bash-20230914/builtins/pushd.def get_directory_stack (int flags) ++get_dirstack function 1625 variables.c get_dirstack (SHELL_VAR *self) ++get_dirstack_element function 622 /usr/local/src/bash/bash-20230914/builtins/pushd.def get_dirstack_element (intmax_t ind, int sign) ++get_dirstack_from_string function 596 /usr/local/src/bash/bash-20230914/builtins/pushd.def get_dirstack_from_string (char *string) ++get_dirstack_index function 573 /usr/local/src/bash/bash-20230914/builtins/pushd.def get_dirstack_index (intmax_t ind, int sign, int *indexp) ++get_dollar_var_value function 3695 subst.c get_dollar_var_value (intmax_t ind) ++get_edit_mode function 448 /usr/local/src/bash/bash-20230914/builtins/set.def get_edit_mode (char *name) ++get_epochrealtime function 1503 variables.c get_epochrealtime (SHELL_VAR *var) ++get_epochseconds function 1494 variables.c get_epochseconds (SHELL_VAR *var) ++get_exitstat function 510 /usr/local/src/bash/bash-20230914/builtins/common.c get_exitstat (WORD_LIST *list) ++get_func member 193 /usr/local/src/bash/bash-20230914/builtins/set.def setopt_get_func_t *get_func; ++get_funcname function 1808 variables.c get_funcname (SHELL_VAR *self) ++get_group_array function 1349 general.c get_group_array (int *ngp) ++get_group_list function 1317 general.c get_group_list (int *ngp) ++get_groupset function 1643 variables.c get_groupset (SHELL_VAR *self) ++get_hashcmd function 1714 variables.c get_hashcmd (SHELL_VAR *self) ++get_histcmd function 1574 variables.c get_histcmd (SHELL_VAR *var) ++get_hostname_list function 860 bashline.c get_hostname_list (void) ++get_job_by_jid macro 92 jobs.h #define get_job_by_jid(ind) (jobs[(ind)]) ++get_job_by_name function 623 /usr/local/src/bash/bash-20230914/builtins/common.c get_job_by_name (const char *name, int flags) ++get_job_by_pid function 998 nojobs.c get_job_by_pid (pid_t pid, int block, PROCESS **ignore) ++get_job_by_pid function 1782 jobs.c get_job_by_pid (pid_t pid, int block, PROCESS **procp) ++get_job_spec function 677 /usr/local/src/bash/bash-20230914/builtins/common.c get_job_spec (WORD_LIST *list) ++get_lineno function 1468 variables.c get_lineno (SHELL_VAR *var) ++get_locale_var function 341 locale.c get_locale_var (const char *var) ++get_minus_o_opts function 319 /usr/local/src/bash/bash-20230914/builtins/set.def get_minus_o_opts (void) ++get_monoseconds function 1371 variables.c get_monoseconds (SHELL_VAR *self) ++get_name_for_error function 90 error.c get_name_for_error (void) ++get_next_path_element function 322 findcmd.c get_next_path_element (char *path_list, int *path_index_pointer) ++get_numeric_arg function 476 /usr/local/src/bash/bash-20230914/builtins/common.c get_numeric_arg (WORD_LIST *list, int fatal, intmax_t *count) ++get_original_signal function 896 trap.c get_original_signal (int sig) ++get_original_tty_job_signals function 601 nojobs.c get_original_tty_job_signals (void) ++get_original_tty_job_signals function 2342 jobs.c get_original_tty_job_signals (void) ++get_pid_flags function 307 nojobs.c get_pid_flags (pid_t pid) ++get_posix_options function 138 general.c get_posix_options (char *bitmap) ++get_random function 1438 variables.c get_random (SHELL_VAR *var) ++get_random_number function 1418 variables.c get_random_number (void) ++get_seconds function 1344 variables.c get_seconds (SHELL_VAR *var) ++get_self function 1252 variables.c get_self (SHELL_VAR *self) ++get_shopt_options function 761 /usr/local/src/bash/bash-20230914/builtins/shopt.def get_shopt_options (void) ++get_string_value function 1637 expr.c char *get_string_value () { return 0; } ++get_string_value function 2501 variables.c get_string_value (const char *name) ++get_subshell function 1488 variables.c get_subshell (SHELL_VAR *var) ++get_termsig function 241 nojobs.c get_termsig (WAIT status) ++get_tty_state function 931 nojobs.c get_tty_state (void) ++get_tty_state function 2422 jobs.c get_tty_state (void) ++get_urandom function 1447 variables.c get_urandom (SHELL_VAR *var) ++get_var_and_type function 8407 subst.c get_var_and_type (char *varname, char *value, array_eltstate_t *estatep, int quoted, int flags, ++get_variable_value function 2481 variables.c get_variable_value (SHELL_VAR *var) ++get_word_from_string function 3253 subst.c get_word_from_string (char **stringp, char *separators, char **endptr) ++get_working_directory function 580 /usr/local/src/bash/bash-20230914/builtins/common.c get_working_directory (const char *for_whom) ++getc_with_restart function 72 input.c getc_with_restart (FILE *stream) ++getchr function 1314 /usr/local/src/bash/bash-20230914/builtins/printf.def getchr (void) ++getcoprocbyname function 2068 execute_cmd.c getcoprocbyname (const char *name) ++getcoprocbypid function 2055 execute_cmd.c getcoprocbypid (pid_t pid) ++getdouble function 1430 /usr/local/src/bash/bash-20230914/builtins/printf.def getdouble (void) ++getfloatmax function 1457 /usr/local/src/bash/bash-20230914/builtins/printf.def getfloatmax (void) ++getifs function 12171 subst.c getifs (void) ++getint function 1340 /usr/local/src/bash/bash-20230914/builtins/printf.def getint (void) ++getinterp function 5850 execute_cmd.c getinterp (char *sample, int sample_len, int *endp) ++getintmax function 1364 /usr/local/src/bash/bash-20230914/builtins/printf.def getintmax (void) ++getnow function 57 /usr/local/src/bash/bash-20230914/include/posixtime.h getnow(void) ++getopts_bind_variable function 113 /usr/local/src/bash/bash-20230914/builtins/getopts.def getopts_bind_variable (char *name, char *value) ++getopts_builtin function 310 /usr/local/src/bash/bash-20230914/builtins/getopts.def getopts_builtin (WORD_LIST *list) ++getopts_reset function 96 /usr/local/src/bash/bash-20230914/builtins/getopts.def getopts_reset (int newind) ++getopts_unbind_variable function 103 /usr/local/src/bash/bash-20230914/builtins/getopts.def getopts_unbind_variable (char *name) ++getpagesize macro 26 /usr/local/src/bash/bash-20230914/lib/malloc/getpagesize.h # define getpagesize() sysconf(_SC_PAGESIZE) ++getpagesize macro 29 /usr/local/src/bash/bash-20230914/lib/malloc/getpagesize.h # define getpagesize() sysconf(_SC_PAGE_SIZE) ++getpagesize macro 39 /usr/local/src/bash/bash-20230914/lib/malloc/getpagesize.h # define getpagesize() PAGESIZE ++getpagesize macro 42 /usr/local/src/bash/bash-20230914/lib/malloc/getpagesize.h # define getpagesize() EXEC_PAGESIZE ++getpagesize macro 48 /usr/local/src/bash/bash-20230914/lib/malloc/getpagesize.h # define getpagesize() (NBPG * CLSIZE) ++getpagesize macro 51 /usr/local/src/bash/bash-20230914/lib/malloc/getpagesize.h # define getpagesize() NBPC ++getpagesize macro 59 /usr/local/src/bash/bash-20230914/lib/malloc/getpagesize.h # define getpagesize() 4096 /* Just punt and use reasonable value */ ++getpatspec function 5597 subst.c getpatspec (int c, const char *value) ++getpattern function 5614 subst.c getpattern (char *value, int quoted, int expandpat) ++getpgid macro 138 jobs.c # define getpgid(p) getpgrp () ++getpgid macro 140 jobs.c # define getpgid(p) getpgrp (p) ++getstr function 1327 /usr/local/src/bash/bash-20230914/builtins/printf.def getstr (void) ++getter member 82 input.h sh_cget_func_t *getter; ++getuintmax function 1399 /usr/local/src/bash/bash-20230914/builtins/printf.def getuintmax (void) ++getwidechar function 1544 /usr/local/src/bash/bash-20230914/builtins/printf.def getwidechar (void) ++getwidestr function 1515 /usr/local/src/bash/bash-20230914/builtins/printf.def getwidestr (size_t *lenp) ++gid member 152 shell.h gid_t gid, egid, savegid; ++give_terminal_to function 964 nojobs.c give_terminal_to (pid_t pgrp, int force) ++give_terminal_to function 4606 jobs.c give_terminal_to (pid_t pgrp, int force) ++given variable 30 /usr/local/src/bash/bash-20230914/builtins/shopt.def OPTNAMEs are given, with an indication of whether or not each is set. ++glob_char_p function 174 pathexp.c glob_char_p (const char *s) ++glob_complete_word function 3891 bashline.c glob_complete_word (const char *text, int state) ++glob_dot_filenames variable 53 pathexp.c int glob_dot_filenames; ++glob_expand_word_list function 12405 subst.c glob_expand_word_list (WORD_LIST *tlist, int eflags) ++glob_findtype function 705 pathexp.c glob_findtype (char *t) ++glob_name_is_acceptable function 517 pathexp.c glob_name_is_acceptable (const char *name) ++glob_nullstat variable 702 pathexp.c static struct globstat glob_nullstat = { -1, { -1, -1 }, { -1, -1 }, { -1, -1 }, -1 }; ++glob_sorttype variable 674 pathexp.c static int glob_sorttype = SORT_NONE; ++glob_star variable 59 pathexp.c int glob_star = 0; ++global_command variable 115 shell.c COMMAND *global_command = (COMMAND *)NULL; ++global_error_list variable 33 list.c GENERIC_LIST global_error_list; ++global_variables variable 119 variables.c VAR_CONTEXT *global_variables = (VAR_CONTEXT *)NULL; ++globignore variable 483 pathexp.c static struct ignorevar globignore = ++globorig variable 3888 bashline.c static char *globorig; ++globpat member 32 pcomplete.h char *globpat; ++globsort_blockscmp function 787 pathexp.c globsort_blockscmp (struct globsort_t *g1, struct globsort_t *g2) ++globsort_buildarray function 793 pathexp.c globsort_buildarray (char **array, size_t len) ++globsort_namecmp function 749 pathexp.c globsort_namecmp (char **s1, char **s2) ++globsort_sizecmp function 755 pathexp.c globsort_sizecmp (struct globsort_t *g1, struct globsort_t *g2) ++globsort_sortarray function 826 pathexp.c globsort_sortarray (struct globsort_t *garray, size_t len) ++globsort_sortbyname function 820 pathexp.c globsort_sortbyname (char **results) ++globsort_t struct 697 pathexp.c struct globsort_t { ++globsort_timecmp function 761 pathexp.c globsort_timecmp (struct globsort_t *g1, struct globsort_t *g2) ++globstat struct 689 pathexp.c struct globstat { ++globtext variable 3887 bashline.c static char *globtext; ++gnu_error_format variable 71 error.c int gnu_error_format = 0; ++got_character label 5564 parse.y got_character: ++got_escaped_character label 5572 parse.y got_escaped_character: ++got_token label 5592 parse.y got_token: ++got_tty_state variable 927 nojobs.c static int got_tty_state; ++group_array variable 1229 general.c static GETGROUPS_T *group_array = (GETGROUPS_T *)NULL; ++group_com struct 356 command.h typedef struct group_com { ++group_command label 1146 parse.y group_command: '{' compound_list '}' ++group_command_nesting variable 133 print_cmd.c static int group_command_nesting; ++group_member function 1289 general.c group_member (gid_t gid) ++growth_rate member 124 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c int growth_rate; /* How fast to grow. */ ++gs_charindex member 70 /usr/local/src/bash/bash-20230914/builtins/getopt.h int gs_charindex; ++gs_curopt member 68 /usr/local/src/bash/bash-20230914/builtins/getopt.h int gs_curopt; ++gs_flags member 71 /usr/local/src/bash/bash-20230914/builtins/getopt.h int gs_flags; ++gs_nextchar member 69 /usr/local/src/bash/bash-20230914/builtins/getopt.h char *gs_nextchar; ++gs_optarg member 66 /usr/local/src/bash/bash-20230914/builtins/getopt.h char *gs_optarg; ++gs_optind member 67 /usr/local/src/bash/bash-20230914/builtins/getopt.h int gs_optind; ++h member 73 variables.h HASH_TABLE *h; /* associative array */ ++hack_braces_completion function 163 bracecomp.c hack_braces_completion (char **names) ++handle member 59 builtins.h char *handle; /* for future use */ ++handlers variable 473 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c HANDLER_ENTRY handlers[] = { ++hangup_all_jobs function 1649 jobs.c hangup_all_jobs (void) ++harry_len variable 3619 bashline.c static size_t harry_len; ++harry_size variable 3618 bashline.c static size_t harry_size; ++hash_bucket function 228 hashlib.c hash_bucket (const char *string, HASH_TABLE *table) ++hash_builtin function 81 /usr/local/src/bash/bash-20230914/builtins/hash.def hash_builtin (WORD_LIST *list) ++hash_copy function 174 hashlib.c hash_copy (HASH_TABLE *table, sh_string_func_t *cpdata) ++hash_create function 62 hashlib.c hash_create (int buckets) ++hash_dispose function 388 hashlib.c hash_dispose (HASH_TABLE *table) ++hash_flush function 356 hashlib.c hash_flush (HASH_TABLE *table, sh_free_func_t *free_data) ++hash_grow function 154 hashlib.c hash_grow (HASH_TABLE *table) ++hash_insert function 318 hashlib.c hash_insert (char *string, HASH_TABLE *table, int flags) ++hash_items macro 66 hashlib.h #define hash_items(bucket, table) \ ++hash_lookup function 1935 variables.c hash_lookup (const char *name, HASH_TABLE *hashed_vars) ++hash_pstats function 415 hashlib.c hash_pstats (HASH_TABLE *table, char *name) ++hash_rehash function 123 hashlib.c hash_rehash (HASH_TABLE *table, int nsize) ++hash_remove function 287 hashlib.c hash_remove (const char *string, HASH_TABLE *table, int flags) ++hash_search function 238 hashlib.c hash_search (const char *string, HASH_TABLE *table, int flags) ++hash_shrink function 164 hashlib.c hash_shrink (HASH_TABLE *table) ++hash_size function 83 hashlib.c hash_size (HASH_TABLE *table) ++hash_string function 208 hashlib.c hash_string (const char *s) ++hash_table struct 38 hashlib.h typedef struct hash_table { ++hash_walk function 397 hashlib.c hash_walk (HASH_TABLE *table, hash_wfunc *func) ++hash_wfunc typedef 44 hashlib.h typedef int hash_wfunc (BUCKET_CONTENTS *); ++hashed_filenames variable 38 hashcmd.c HASH_TABLE *hashed_filenames = (HASH_TABLE *)NULL; ++hashing_enabled variable 116 flags.c int hashing_enabled = 1; ++have_devfd variable 194 shell.c int have_devfd = HAVE_DEV_FD; ++have_devfd variable 196 shell.c int have_devfd = 0; ++have_unwind_protects function 165 unwind_prot.c have_unwind_protects (void) ++hc_erasedups function 725 bashhist.c hc_erasedups (char *line) ++head member 38 array.h struct array_element *head; ++head member 69 unwind_prot.c } head; ++head member 172 jobs.h ps_index_t head; ++head member 189 jobs.h PROCESS *head; ++head member 1821 execute_cmd.c struct cpelement *head; ++help_builtin function 92 /usr/local/src/bash/bash-20230914/builtins/help.def help_builtin (WORD_LIST *list) ++helpfile_directory variable 101 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *helpfile_directory; ++here_doc_eof member 168 command.h char *here_doc_eof; /* The word that appeared in <data) ++histdata macro 333 /usr/local/src/bash/bash-20230914/builtins/history.def #define histdata(i) (hlist[(i)]->data) ++histexp_flag variable 122 flags.c int histexp_flag = 0; ++histignore variable 76 bashhist.c static struct ignorevar histignore = ++histignore_item_func function 989 bashhist.c histignore_item_func (struct ign *ign) ++histline macro 142 /usr/local/src/bash/bash-20230914/builtins/fc.def #define histline(i) (hlist[(i)]->line) ++histline macro 332 /usr/local/src/bash/bash-20230914/builtins/history.def #define histline(i) (hlist[(i)]->line) ++history_and_alias_expand_line function 2848 bashline.c history_and_alias_expand_line (int count, int ignore) ++history_builtin function 110 /usr/local/src/bash/bash-20230914/builtins/history.def history_builtin (WORD_LIST *list) ++history_completion_array variable 3617 bashline.c static char **history_completion_array = (char **)NULL; ++history_completion_generator function 3668 bashline.c history_completion_generator (const char *hint_text, int state) ++history_control variable 169 bashhist.c int history_control; ++history_expand_line function 2805 bashline.c history_expand_line (int count, int ignore) ++history_expand_line_internal function 2669 bashline.c history_expand_line_internal (char *line) ++history_expansion variable 121 flags.c int history_expansion = HISTEXPAND_DEFAULT; ++history_expansion_inhibited member 198 shell.h int history_expansion_inhibited; ++history_expansion_inhibited variable 106 bashhist.c int history_expansion_inhibited; ++history_expansion_p function 543 bashhist.c history_expansion_p (char *line) ++history_lines_in_file variable 101 bashhist.c int history_lines_in_file; ++history_lines_this_session variable 98 bashhist.c int history_lines_this_session; ++history_number function 967 bashhist.c history_number (void) ++history_reediting variable 183 bashhist.c int history_reediting; ++history_should_ignore function 1043 bashhist.c history_should_ignore (char *line) ++histtime function 336 /usr/local/src/bash/bash-20230914/builtins/history.def histtime (HIST_ENTRY *hlist, const char *histtimefmt) ++home_dir member 155 shell.h char *home_dir; ++hostname_completion_function function 2529 bashline.c hostname_completion_function (const char *text, int state) ++hostname_list variable 748 bashline.c static char **hostname_list = (char **)NULL; ++hostname_list_initialized variable 757 bashline.c int hostname_list_initialized = 0; ++hostname_list_length variable 754 bashline.c static size_t hostname_list_length; ++hostname_list_size variable 751 bashline.c static size_t hostname_list_size; ++hostnames_matching function 883 bashline.c hostnames_matching (const char *text) ++hup_on_exit variable 147 shell.c int hup_on_exit = 0; ++i member 70 variables.h intmax_t i; /* int value */ ++if_com struct 294 command.h typedef struct if_com { ++if_command label 1128 parse.y if_command: IF compound_list THEN compound_list FI ++ifs_cmap variable 157 subst.c unsigned char ifs_cmap[UCHAR_MAX + 1]; ++ifs_firstc variable 161 subst.c unsigned char ifs_firstc[MB_LEN_MAX]; ++ifs_firstc variable 164 subst.c unsigned char ifs_firstc; ++ifs_firstc_len variable 162 subst.c size_t ifs_firstc_len; ++ifs_firstchar function 2849 subst.c ifs_firstchar (int *lenp) ++ifs_is_null variable 158 subst.c int ifs_is_set, ifs_is_null; ++ifs_is_set variable 158 subst.c int ifs_is_set, ifs_is_null; ++ifs_value variable 156 subst.c char *ifs_value; ++ifs_var variable 155 subst.c SHELL_VAR *ifs_var; ++ifs_whitesep macro 3100 subst.c #define ifs_whitesep(c) ((sh_style_split || separators == 0) ? spctabnl (c) \ ++ifs_whitespace macro 3097 subst.c #define ifs_whitespace(c) ISSPACE(c) ++ifsname macro 222 variables.h #define ifsname(s) ((s)[0] == 'I' && (s)[1] == 'F' && (s)[2] == 'S' && (s)[3] == '\0') ++ign struct 85 pathexp.h struct ign { ++ignore member 230 command.h int ignore; /* Unused; simplifies make_command (). */ ++ignore member 357 command.h int ignore; /* See description of CMD flags. */ ++ignore_glob_matches function 585 pathexp.c ignore_glob_matches (char **names) ++ignore_globbed_names function 550 pathexp.c ignore_globbed_names (char **names, sh_ignore_func_t *name_func) ++ignore_signal function 977 trap.c ignore_signal (int sig) ++ignore_tty_job_signals function 571 nojobs.c ignore_tty_job_signals (void) ++ignore_tty_job_signals function 2310 jobs.c ignore_tty_job_signals (void) ++ignores member 95 pathexp.h struct ign *ignores; /* Store the ignore strings here */ ++ignorevar struct 93 pathexp.h struct ignorevar { ++importable_function_name function 371 general.c importable_function_name (const char *string, size_t len) ++imported_p macro 154 variables.h #define imported_p(var) ((((var)->attributes) & (att_imported))) ++include_filename variable 115 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *include_filename = (char *)NULL; ++ind member 44 array.h arrayind_t ind; ++ind member 44 arrayfunc.h arrayind_t ind; ++ind member 154 expr.c intmax_t ind; /* array index if not -1 */ ++indent function 1444 print_cmd.c indent (int amount) ++indent function 3273 execute_cmd.c indent (int from, int to) ++indentation variable 52 print_cmd.c static int indentation; ++indentation_amount variable 53 print_cmd.c static int indentation_amount = 4; ++indentation_size variable 1441 print_cmd.c static size_t indentation_size; ++indentation_string variable 1440 print_cmd.c static char *indentation_string; ++indirection_level variable 180 shell.c int indirection_level = 0; ++indirection_level_string function 443 print_cmd.c indirection_level_string (void) ++indirection_string variable 136 print_cmd.c static char *indirection_string = 0; ++indirection_stringsiz variable 137 print_cmd.c static size_t indirection_stringsiz = 0; ++inherit_errexit variable 168 subst.c int inherit_errexit = 0; ++inhibit_functions variable 89 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c int inhibit_functions = 0; ++inhibit_production variable 85 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c int inhibit_production = 0; ++init member 273 command.h WORD_LIST *init; ++init_bash_argv function 5580 variables.c init_bash_argv (void) ++init_dynamic_array_var function 1261 variables.c init_dynamic_array_var (char *name, sh_var_value_func_t *getfunc, sh_var_assign_func_t *setfunc, int attrs) ++init_dynamic_assoc_var function 1275 variables.c init_dynamic_assoc_var (char *name, sh_var_value_func_t *getfunc, sh_var_assign_func_t *setfunc, int attrs) ++init_eltstate function 312 arrayfunc.c init_eltstate (array_eltstate_t *estatep) ++init_funcname_var function 1833 variables.c init_funcname_var (void) ++init_interactive function 1812 shell.c init_interactive (void) ++init_interactive_script function 1845 shell.c init_interactive_script (void) ++init_itemlist_from_varlist function 376 pcomplete.c init_itemlist_from_varlist (ITEMLIST *itp, SVFUNC *svfunc) ++init_job_stats function 371 jobs.c init_job_stats (void) ++init_lvalue function 1113 expr.c init_lvalue (struct lvalue *lv) ++init_mail_dates function 252 mailcheck.c init_mail_dates (void) ++init_mail_file function 154 mailcheck.c init_mail_file (int i) ++init_noninteractive function 1827 shell.c init_noninteractive (void) ++init_seconds_var function 1355 variables.c init_seconds_var (void) ++init_unix_command_map function 4611 bashline.c init_unix_command_map (void) ++init_variable function 2739 variables.c init_variable (SHELL_VAR *entry) ++initialize_aliases function 72 alias.c initialize_aliases (void) ++initialize_bashopts function 891 /usr/local/src/bash/bash-20230914/builtins/shopt.def initialize_bashopts (int no_bashopts) ++initialize_dynamic_variables function 1850 variables.c initialize_dynamic_variables (void) ++initialize_flags function 372 flags.c initialize_flags (void) ++initialize_group_array function 1236 general.c initialize_group_array (void) ++initialize_hostname_list function 761 bashline.c initialize_hostname_list (void) ++initialize_itemlist function 218 pcomplete.c initialize_itemlist (ITEMLIST *itp) ++initialize_job_control function 405 nojobs.c initialize_job_control (int force) ++initialize_job_control function 4339 jobs.c initialize_job_control (int force) ++initialize_job_signals function 416 nojobs.c initialize_job_signals (void) ++initialize_job_signals function 4557 jobs.c initialize_job_signals (void) ++initialize_readline function 451 bashline.c initialize_readline (void) ++initialize_shell_builtins function 905 /usr/local/src/bash/bash-20230914/builtins/common.c initialize_shell_builtins (void) ++initialize_shell_level function 900 variables.c initialize_shell_level (void) ++initialize_shell_options function 613 /usr/local/src/bash/bash-20230914/builtins/set.def initialize_shell_options (int no_shellopts) ++initialize_shell_variables function 367 variables.c initialize_shell_variables (char **env, int privmode) ++initialize_siglist function 41 siglist.c initialize_siglist (void) ++initialize_subshell function 5932 execute_cmd.c initialize_subshell (void) ++initialize_traps function 154 trap.c initialize_traps (void) ++inline macro 60 /usr/local/src/bash/bash-20230914/include/stdc.h # define inline ++input_line member 224 shell.h char *input_line; ++input_line_index member 225 shell.h size_t input_line_index; ++input_line_len member 227 shell.h size_t input_line_len; ++input_line_size member 226 shell.h size_t input_line_size; ++input_line_terminator member 184 shell.h int input_line_terminator; ++input_property member 229 shell.h char *input_property; ++input_propsize member 230 shell.h size_t input_propsize; ++input_tty macro 69 nojobs.c #define input_tty() (shell_tty != -1) ? shell_tty : fileno (stderr) ++input_tty macro 2418 jobs.c #define input_tty() (shell_tty != -1) ? shell_tty : fileno (stderr) ++inputunit label 422 parse.y inputunit: simple_list simple_list_terminator ++inside_function_def variable 124 print_cmd.c static int inside_function_def; ++instruction member 166 command.h enum r_instruction instruction; /* What to do with the information. */ ++int_value member 249 shell.c int *int_value; ++integer_expected_error function 159 test.c integer_expected_error (char *pch) ++integer_p macro 142 variables.h #define integer_p(var) ((((var)->attributes) & (att_integer))) ++interactive variable 140 shell.c int interactive = 0; ++interactive_comments variable 126 flags.c int interactive_comments = 1; ++interactive_shell variable 143 shell.c int interactive_shell = 0; ++internal_debug function 255 error.c internal_debug (const char *format, ...) ++internal_error function 207 error.c internal_error (const char *format, ...) ++internal_error function 791 braces.c internal_error (char *format, char *arg1, char *arg2) ++internal_getopt function 51 /usr/local/src/bash/bash-20230914/builtins/bashgetopt.c internal_getopt(WORD_LIST *list, char *opts) ++internal_inform function 238 error.c internal_inform (const char *format, ...) ++internal_warning function 222 error.c internal_warning (const char *format, ...) ++internal_warning function 474 hashlib.c internal_warning (const char *format, ...) ++interrupt_execution variable 241 execute_cmd.c int interrupt_execution = 0; ++interrupt_immediately variable 452 hashlib.c int interrupt_immediately = 0; ++interrupt_immediately variable 1034 array.c int interrupt_immediately = 0; ++invalid_completion function 1518 bashline.c invalid_completion (const char *text, int ind) ++invalid_env variable 128 variables.c HASH_TABLE *invalid_env = (HASH_TABLE *)NULL; ++invalidate_cached_quoted_dollar_at function 11023 subst.c invalidate_cached_quoted_dollar_at (void) ++invisible_p macro 151 variables.h #define invisible_p(var) ((((var)->attributes) & (att_invisible))) ++ipow function 937 expr.c ipow (intmax_t base, intmax_t exp) ++is_arithop function 1268 expr.c is_arithop (int c) ++is_arrayvar_builtin function 1598 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c is_arrayvar_builtin (char *name) ++is_assignment_builtin function 1580 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c is_assignment_builtin (char *name) ++is_directory function 227 findcmd.c is_directory (const char *file) ++is_dirname function 4358 execute_cmd.c is_dirname (char *pathname) ++is_localvar_builtin function 1586 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c is_localvar_builtin (char *name) ++is_multiop function 1242 expr.c is_multiop (int c) ++is_posix_builtin function 1592 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c is_posix_builtin (char *name) ++is_special_builtin function 1574 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c is_special_builtin (char *name) ++isblank macro 103 syntax.h # define isblank(x) ((x) == ' ' || (x) == '\t') ++isifs macro 362 subst.h #define isifs(c) (ifs_cmap[(unsigned char)(c)] != 0) ++islocalsep macro 3250 subst.c #define islocalsep(c) (local_cmap[(unsigned char)(c)] != 0) ++isolate_sequence function 4668 bashline.c isolate_sequence (char *string, int ind, int need_dquote, int *startp) ++issep macro 3091 subst.c #define issep(c) \ ++issyntype macro 80 syntax.h #define issyntype(c, t) ((sh_syntaxtab[(unsigned char)(c)] & (t)) != 0) ++it_aliases variable 155 pcomplete.c ITEMLIST it_aliases = { 0, it_init_aliases, (STRINGLIST *)0 }; ++it_arrayvars variable 156 pcomplete.c ITEMLIST it_arrayvars = { LIST_DYNAMIC, it_init_arrayvars, (STRINGLIST *)0 }; ++it_bindings variable 157 pcomplete.c ITEMLIST it_bindings = { 0, it_init_bindings, (STRINGLIST *)0 }; ++it_builtins variable 158 pcomplete.c ITEMLIST it_builtins = { 0, it_init_builtins, (STRINGLIST *)0 }; ++it_commands variable 159 pcomplete.c ITEMLIST it_commands = { LIST_DYNAMIC }; /* unused */ ++it_directories variable 160 pcomplete.c ITEMLIST it_directories = { LIST_DYNAMIC }; /* unused */ ++it_disabled variable 161 pcomplete.c ITEMLIST it_disabled = { 0, it_init_disabled, (STRINGLIST *)0 }; ++it_enabled variable 162 pcomplete.c ITEMLIST it_enabled = { 0, it_init_enabled, (STRINGLIST *)0 }; ++it_exports variable 163 pcomplete.c ITEMLIST it_exports = { LIST_DYNAMIC, it_init_exported, (STRINGLIST *)0 }; ++it_files variable 164 pcomplete.c ITEMLIST it_files = { LIST_DYNAMIC }; /* unused */ ++it_functions variable 165 pcomplete.c ITEMLIST it_functions = { 0, it_init_functions, (STRINGLIST *)0 }; ++it_groups variable 168 pcomplete.c ITEMLIST it_groups = { LIST_DYNAMIC }; /* unused */ ++it_helptopics variable 166 pcomplete.c ITEMLIST it_helptopics = { 0, it_init_helptopics, (STRINGLIST *)0 }; ++it_hostnames variable 167 pcomplete.c ITEMLIST it_hostnames = { LIST_DYNAMIC, it_init_hostnames, (STRINGLIST *)0 }; ++it_init_aliases function 346 pcomplete.c it_init_aliases (ITEMLIST *itp) ++it_init_arrayvars function 400 pcomplete.c it_init_arrayvars (ITEMLIST *itp) ++it_init_bindings function 411 pcomplete.c it_init_bindings (ITEMLIST *itp) ++it_init_builtins function 429 pcomplete.c it_init_builtins (ITEMLIST *itp) ++it_init_disabled function 465 pcomplete.c it_init_disabled (ITEMLIST *itp) ++it_init_enabled function 446 pcomplete.c it_init_enabled (ITEMLIST *itp) ++it_init_exported function 484 pcomplete.c it_init_exported (ITEMLIST *itp) ++it_init_functions function 491 pcomplete.c it_init_functions (ITEMLIST *itp) ++it_init_helptopics function 500 pcomplete.c it_init_helptopics (ITEMLIST *itp) ++it_init_hostnames function 516 pcomplete.c it_init_hostnames (ITEMLIST *itp) ++it_init_joblist function 530 pcomplete.c it_init_joblist (ITEMLIST *itp, int jstate) ++it_init_jobs function 570 pcomplete.c it_init_jobs (ITEMLIST *itp) ++it_init_keywords function 588 pcomplete.c it_init_keywords (ITEMLIST *itp) ++it_init_running function 576 pcomplete.c it_init_running (ITEMLIST *itp) ++it_init_setopts function 626 pcomplete.c it_init_setopts (ITEMLIST *itp) ++it_init_shopts function 639 pcomplete.c it_init_shopts (ITEMLIST *itp) ++it_init_signals function 606 pcomplete.c it_init_signals (ITEMLIST *itp) ++it_init_stopped function 582 pcomplete.c it_init_stopped (ITEMLIST *itp) ++it_init_variables function 619 pcomplete.c it_init_variables (ITEMLIST *itp) ++it_jobs variable 169 pcomplete.c ITEMLIST it_jobs = { LIST_DYNAMIC, it_init_jobs, (STRINGLIST *)0 }; ++it_keywords variable 170 pcomplete.c ITEMLIST it_keywords = { 0, it_init_keywords, (STRINGLIST *)0 }; ++it_running variable 171 pcomplete.c ITEMLIST it_running = { LIST_DYNAMIC, it_init_running, (STRINGLIST *)0 }; ++it_services variable 172 pcomplete.c ITEMLIST it_services = { LIST_DYNAMIC }; /* unused */ ++it_setopts variable 173 pcomplete.c ITEMLIST it_setopts = { 0, it_init_setopts, (STRINGLIST *)0 }; ++it_shopts variable 174 pcomplete.c ITEMLIST it_shopts = { 0, it_init_shopts, (STRINGLIST *)0 }; ++it_signals variable 175 pcomplete.c ITEMLIST it_signals = { 0, it_init_signals, (STRINGLIST *)0 }; ++it_stopped variable 176 pcomplete.c ITEMLIST it_stopped = { LIST_DYNAMIC, it_init_stopped, (STRINGLIST *)0 }; ++it_users variable 177 pcomplete.c ITEMLIST it_users = { LIST_DYNAMIC }; /* unused */ ++it_variables variable 178 pcomplete.c ITEMLIST it_variables = { LIST_DYNAMIC, it_init_variables, (STRINGLIST *)0 }; ++item_func member 98 pathexp.h sh_iv_item_func_t *item_func; /* Called when each item is parsed from $`varname' */ ++itos function 1672 expr.c itos (intmax_t n) ++itrace function 359 error.c itrace (const char *format, ...) ++j_cleanup member 129 jobs.h sh_vptrfunc_t *j_cleanup; /* Cleanup function to call when job marked JDEAD */ ++j_current member 151 jobs.h int j_current; /* current job */ ++j_firstj member 147 jobs.h int j_firstj; /* first (oldest) job allocated */ ++j_jobslots member 145 jobs.h int j_jobslots; /* total size of jobs array */ ++j_lastasync member 155 jobs.h JOB *j_lastasync; /* last async job allocated by stop_pipeline */ ++j_lastj member 146 jobs.h int j_lastj; /* last (newest) job allocated */ ++j_lastmade member 154 jobs.h JOB *j_lastmade; /* last job allocated by stop_pipeline */ ++j_ndead member 149 jobs.h int j_ndead; /* number of JDEAD jobs in jobs array */ ++j_njobs member 148 jobs.h int j_njobs; /* number of non-NULL jobs in jobs array */ ++j_previous member 152 jobs.h int j_previous; /* previous job */ ++j_strsignal function 776 nojobs.c j_strsignal (int s) ++j_strsignal function 1818 jobs.c j_strsignal (int s) ++job struct 121 jobs.h typedef struct job { ++job_control variable 94 nojobs.c int job_control = 0; ++job_control variable 220 jobs.c int job_control = 1; ++job_control_active_p function 1043 nojobs.c job_control_active_p (void) ++job_control_active_p function 4992 jobs.c job_control_active_p (void) ++job_exit_signal function 2813 jobs.c job_exit_signal (int job) ++job_exit_status function 2807 jobs.c job_exit_status (int job) ++job_killed_by_signal function 2819 jobs.c job_killed_by_signal (int job) ++job_last_running function 3383 jobs.c job_last_running (int job) ++job_last_stopped function 3375 jobs.c job_last_stopped (int job) ++job_signal_status function 2756 jobs.c job_signal_status (int job) ++job_working_directory function 403 jobs.c job_working_directory (void) ++jobs variable 181 jobs.c JOB **jobs = (JOB **)NULL; ++jobs_builtin function 83 /usr/local/src/bash/bash-20230914/builtins/jobs.def jobs_builtin (WORD_LIST *list) ++jobs_list_frozen variable 345 jobs.c static int jobs_list_frozen; ++jobs_list_frozen_status function 1031 nojobs.c jobs_list_frozen_status (void) ++jobs_list_frozen_status function 4917 jobs.c jobs_list_frozen_status (void) ++jobs_m_flag variable 91 flags.c int jobs_m_flag = 0; ++jobstats struct 134 jobs.h struct jobstats { ++js variable 173 jobs.c struct jobstats js = { -1L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NO_JOB, NO_JOB, 0, 0 }; ++just_one_command variable 73 flags.c int just_one_command = 0; ++key member 32 hashlib.h char *key; /* What we look up. */ ++key member 45 arrayfunc.h char *key; /* can be allocated memory */ ++khash member 34 hashlib.h unsigned int khash; /* What key hashes to */ ++kill_all_local_variables function 3986 variables.c kill_all_local_variables (void) ++kill_builtin function 85 /usr/local/src/bash/bash-20230914/builtins/kill.def kill_builtin (WORD_LIST *list) ++kill_current_pipeline function 1668 jobs.c kill_current_pipeline (void) ++kill_error function 265 /usr/local/src/bash/bash-20230914/builtins/kill.def kill_error (pid_t pid, int e) ++kill_pid function 913 nojobs.c kill_pid (pid_t pid, int signal, int group) ++kill_pid function 3634 jobs.c kill_pid (pid_t pid, int sig, int group) ++killpg macro 55 nojobs.c # define killpg(pg, sig) kill(-(pg),(sig)) ++kvpair_assignment_p function 668 arrayfunc.c kvpair_assignment_p (WORD_LIST *l) ++lambdafunc variable 6869 subst.c static SHELL_VAR lambdafunc = { ".bash.lambda", 0, 0, 0, 0, 0, 0 }; ++lang variable 71 locale.c static char *lang; ++last_asynchronous_pid variable 78 nojobs.c volatile pid_t last_asynchronous_pid = NO_PID; ++last_asynchronous_pid variable 214 jobs.c volatile pid_t last_asynchronous_pid = NO_PID; ++last_command_exit_signal variable 220 execute_cmd.c int last_command_exit_signal; ++last_command_exit_value member 202 shell.h int last_command_exit_value; ++last_command_exit_value variable 216 execute_cmd.c volatile int last_command_exit_value; ++last_command_subst_pid variable 150 subst.c pid_t last_command_subst_pid = NO_PID; ++last_command_subst_status variable 152 subst.c int last_command_subst_status = 0; ++last_context_searched variable 188 variables.c static VAR_CONTEXT *last_context_searched; ++last_history_entry function 1003 bashhist.c last_history_entry (void) ++last_history_line function 1014 bashhist.c last_history_line (void) ++last_ignoreval member 97 pathexp.h char *last_ignoreval; /* Last value of variable - cached for speed */ ++last_made_pid variable 77 nojobs.c volatile pid_t last_made_pid = NO_PID; ++last_made_pid variable 211 jobs.c volatile pid_t last_made_pid = NO_PID; ++last_procsub_child variable 232 jobs.c PROCESS *last_procsub_child = (PROCESS *)NULL; ++last_random_value variable 1396 variables.c int last_random_value; ++last_shell_builtin member 206 shell.h sh_builtin_func_t *last_shell_builtin, *this_shell_builtin; ++last_shell_builtin variable 69 /usr/local/src/bash/bash-20230914/builtins/common.c sh_builtin_func_t *last_shell_builtin = (sh_builtin_func_t *)NULL; ++last_table_searched variable 187 variables.c static HASH_TABLE *last_table_searched; /* hash_lookup sets this */ ++last_time_mail_checked variable 68 mailcheck.c static time_t last_time_mail_checked = 0; ++lastlval variable 183 expr.c static struct lvalue lastlval = {0, 0, 0, -1}; ++lastpipe_opt variable 315 execute_cmd.c int lastpipe_opt = 0; ++lastref member 39 array.h struct array_element *lastref; ++lasttok member 160 expr.c int curtok, lasttok; ++lasttok variable 172 expr.c static int lasttok; /* the previous token */ ++lasttp member 161 expr.c char *expression, *tp, *lasttp; ++lasttp variable 170 expr.c static char *lasttp; /* pointer to last token position */ ++lbreak variable 51 xmalloc.c static PTR_T lbreak; ++lc_all variable 67 locale.c static char *lc_all; ++lcommand member 38 pcomplete.h char *lcommand; ++lcurrent variable 47 /usr/local/src/bash/bash-20230914/builtins/bashgetopt.c WORD_LIST *lcurrent = (WORD_LIST *)NULL; ++ld member 76 variables.h long double ld; /* long double */ ++left member 333 command.h struct cond_com *left, *right; ++legal_alias_name function 396 general.c legal_alias_name (const char *string, int flags) ++legal_identifier function 281 general.c legal_identifier (const char *name) ++legal_number function 242 general.c legal_number (const char *string, intmax_t *result) ++legal_variable_char macro 113 general.h #define legal_variable_char(c) (ISALNUM(c) || c == '_') ++legal_variable_starter macro 112 general.h #define legal_variable_starter(c) (ISALPHA(c) || (c == '_')) ++len member 87 pathexp.h size_t len; ++let_builtin function 83 /usr/local/src/bash/bash-20230914/builtins/let.def let_builtin (WORD_LIST *list) ++letter member 190 /usr/local/src/bash/bash-20230914/builtins/set.def int letter; ++lhead variable 46 /usr/local/src/bash/bash-20230914/builtins/bashgetopt.c static WORD_LIST *lhead = (WORD_LIST *)NULL; ++line member 54 /usr/local/src/bash/bash-20230914/lib/malloc/table.h int line; ++line member 69 /usr/local/src/bash/bash-20230914/lib/malloc/table.h int line; ++line member 200 command.h int line; /* line number the command starts on */ ++line member 253 command.h int line; /* line number the `case' keyword appears on */ ++line member 261 command.h int line; /* line number the `for' keyword appears on */ ++line member 272 command.h int line; /* generally used for error messages */ ++line member 284 command.h int line; /* line number the `select' keyword appears on */ ++line member 314 command.h int line; ++line member 330 command.h int line; ++line member 339 command.h int line; /* line number the command starts on */ ++line member 348 command.h int line; /* Line number the function def starts on. */ ++line member 363 command.h int line; ++line_error function 968 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c line_error (DEF_FILE *defs, char *format, char *arg1, char *arg2) ++line_isblank function 521 general.c line_isblank (const char *line) ++line_number member 143 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c int line_number; /* The current line number. */ ++line_number_for_err_trap variable 284 execute_cmd.c int line_number_for_err_trap; ++lineno_a member 33 execute_cmd.h ARRAY *lineno_a; ++lineno_v member 34 execute_cmd.h SHELL_VAR *lineno_v; ++lines member 142 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c ARRAY *lines; /* The contents of the file. */ ++links variable 107 /usr/local/src/bash/bash-20230914/builtins/cd.def The default is to follow symbolic links, as if `-L' were specified. ++list member 97 variables.h SHELL_VAR **list; ++list0 label 1218 parse.y list0: list1 '\n' newline_list ++list1 label 1230 parse.y list1: list1 AND_AND newline_list list1 ++list_all_jobs function 2067 jobs.c list_all_jobs (int format) ++list_append function 85 list.c list_append (GENERIC_LIST *head, GENERIC_LIST *tail) ++list_dequote_escapes function 4717 subst.c list_dequote_escapes (WORD_LIST *list) ++list_getter member 91 pcomplete.h int (*list_getter) (struct _list_of_items *); /* function to call to get the list */ ++list_hashed_filename_targets function 273 /usr/local/src/bash/bash-20230914/builtins/hash.def list_hashed_filename_targets (WORD_LIST *list, int fmt) ++list_len member 99 variables.h size_t list_len; /* current number of entries */ ++list_length function 75 list.c list_length (GENERIC_LIST *list) ++list_minus_o_opts function 293 /usr/local/src/bash/bash-20230914/builtins/set.def list_minus_o_opts (int mode, int reusable) ++list_one_job function 2044 jobs.c list_one_job (JOB *job, int format, int ignore, int job_index) ++list_optarg variable 41 /usr/local/src/bash/bash-20230914/builtins/bashgetopt.c char *list_optarg; ++list_optflags variable 42 /usr/local/src/bash/bash-20230914/builtins/bashgetopt.c int list_optflags; ++list_optopt variable 43 /usr/local/src/bash/bash-20230914/builtins/bashgetopt.c int list_optopt; ++list_opttype variable 44 /usr/local/src/bash/bash-20230914/builtins/bashgetopt.c int list_opttype; ++list_quote_escapes function 4652 subst.c list_quote_escapes (WORD_LIST *list) ++list_remove function 109 list.c list_remove (GENERIC_LIST **list, sh_gcp_func_t *comparer, char *arg) ++list_remove_pattern function 5670 subst.c list_remove_pattern (WORD_LIST *list, char *pattern, int patspec, int itype, int quoted) ++list_rest_of_args function 3678 subst.c list_rest_of_args (void) ++list_reverse function 59 list.c list_reverse (GENERIC_LIST *list) ++list_reverse function 1097 array.c list_reverse (GENERIC_LIST *list) ++list_running_jobs function 2058 jobs.c list_running_jobs (int format) ++list_shopt_o_options function 544 /usr/local/src/bash/bash-20230914/builtins/shopt.def list_shopt_o_options (WORD_LIST *list, int flags) ++list_shopts function 494 /usr/local/src/bash/bash-20230914/builtins/shopt.def list_shopts (WORD_LIST *list, int flags) ++list_size member 98 variables.h size_t list_size; /* allocated size */ ++list_some_builtins function 267 /usr/local/src/bash/bash-20230914/builtins/enable.def list_some_builtins (int filter) ++list_some_o_options function 579 /usr/local/src/bash/bash-20230914/builtins/shopt.def list_some_o_options (int mode, int flags) ++list_some_shopts function 530 /usr/local/src/bash/bash-20230914/builtins/shopt.def list_some_shopts (int mode, int flags) ++list_stopped_jobs function 2051 jobs.c list_stopped_jobs (int format) ++list_string function 1079 array.c list_string(char *s, char *t, int i) ++list_string function 3104 subst.c list_string (char *string, char *separators, int quoted) ++list_terminator label 1260 parse.y list_terminator:'\n' ++list_transform function 8658 subst.c list_transform (int xc, SHELL_VAR *v, WORD_LIST *list, int itype, int quoted) ++list_walk function 38 list.c list_walk (GENERIC_LIST *list, sh_glist_func_t *function) ++literal_history variable 155 bashhist.c int literal_history; ++load_history function 320 bashhist.c load_history (void) ++local_and_exported function 4306 variables.c local_and_exported (SHELL_VAR *var) ++local_bufused variable 66 input.c static int local_index = 0, local_bufused = 0; ++local_dlclose function 527 /usr/local/src/bash/bash-20230914/builtins/enable.def local_dlclose (void *handle) ++local_exported_variables function 4318 variables.c local_exported_variables (void) ++local_index variable 66 input.c static int local_index = 0, local_bufused = 0; ++local_p macro 143 variables.h #define local_p(var) ((((var)->attributes) & (att_local))) ++localbuf variable 65 input.c static char localbuf[1024]; ++locale_decpoint function 650 locale.c locale_decpoint (void) ++locale_decpoint function 660 locale.c locale_decpoint (void) ++locale_decpoint macro 51 bashintl.h # define locale_decpoint() '.' ++locale_decpoint macro 658 locale.c # undef locale_decpoint ++locale_expand function 528 locale.c locale_expand (const char *string, int start, int end, int lineno, size_t *lenp) ++locale_isblank macro 585 locale.c #define locale_isblank(c) \ ++locale_isutf8 function 613 locale.c locale_isutf8 (char *lspec) ++locale_mb_cur_max variable 53 locale.c int locale_mb_cur_max; /* value of MB_CUR_MAX for current locale (LC_CTYPE) */ ++locale_setblanks function 591 locale.c locale_setblanks (void) ++locale_shiftstates variable 54 locale.c int locale_shiftstates = 0; ++locale_utf8locale variable 52 locale.c int locale_utf8locale; ++localetrans function 423 locale.c localetrans (const char *string, int len, size_t *lenp) ++localvar_builtins variable 167 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *localvar_builtins[] = ++localvar_inherit variable 142 variables.c int localvar_inherit = 0; ++localvar_unset variable 147 variables.c int localvar_unset = 0; ++location member 81 input.h INPUT_STREAM location; ++lock member 1824 execute_cmd.c int lock; ++login_shell variable 135 shell.c int login_shell = 0; ++logout_builtin function 79 /usr/local/src/bash/bash-20230914/builtins/exit.def logout_builtin (WORD_LIST *list) ++long_args variable 251 shell.c } long_args[] = { ++long_doc member 57 builtins.h char * const *long_doc; /* NULL terminated array of strings. */ ++longdoc member 134 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c ARRAY *longdoc; /* The long documentation for this builtin. */ ++loop_level variable 52 /usr/local/src/bash/bash-20230914/builtins/break.def int loop_level = 0; ++loptend variable 48 /usr/local/src/bash/bash-20230914/builtins/bashgetopt.c WORD_LIST *loptend; /* Points to the first non-option argument in the list */ ++lowercase_p macro 147 variables.h #define lowercase_p(var) ((((var)->attributes) & (att_lowercase))) ++lval member 165 expr.c struct lvalue lval; ++lvalue struct 149 expr.c struct lvalue ++ma_table struct 67 /usr/local/src/bash/bash-20230914/lib/malloc/table.h typedef struct ma_table { ++ma_table_t typedef 71 /usr/local/src/bash/bash-20230914/lib/malloc/table.h } ma_table_t; ++mail_warning variable 71 mailcheck.c int mail_warning; ++mailfiles variable 62 mailcheck.c static FILEINFO **mailfiles = (FILEINFO **)NULL; ++mailfiles_count variable 65 mailcheck.c static int mailfiles_count; ++main function 231 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c main (int argc, char **argv) ++main function 284 /usr/local/src/bash/bash-20230914/builtins/getopt.c main (int argc, char **argv) ++main function 366 shell.c main (int argc, char **argv) ++main function 479 hashlib.c main (int c, char **v) ++main function 797 braces.c main (int c, char **v) ++main function 1140 array.c main(int c, char **v) ++main function 1641 expr.c main (int argc, char **argv) ++make_absolute function 840 general.c make_absolute (const char *string, const char *dot_path) ++make_arith_command function 388 make_cmd.c make_arith_command (WORD_LIST *exp) ++make_arith_for_command function 240 make_cmd.c make_arith_for_command (WORD_LIST *exprs, COMMAND *action, int lineno) ++make_arith_for_expr function 221 make_cmd.c make_arith_for_expr (char *s) ++make_array_variable_value function 166 arrayfunc.c make_array_variable_value (SHELL_VAR *entry, arrayind_t ind, const char *key, const char *value, int flags) ++make_bare_simple_command function 452 make_cmd.c make_bare_simple_command (int line) ++make_bare_word function 83 make_cmd.c make_bare_word (const char *string) ++make_bare_word function 1057 array.c make_bare_word (const char *s) ++make_buffered_stream function 180 input.c make_buffered_stream (int fd, char *buffer, size_t bufsize) ++make_builtin_argv function 333 /usr/local/src/bash/bash-20230914/builtins/common.c make_builtin_argv (WORD_LIST *list, int *ip) ++make_case_command function 325 make_cmd.c make_case_command (WORD_DESC *word, PATTERN_LIST *clauses, int lineno) ++make_child function 473 nojobs.c make_child (char *command, int flags) ++make_child function 2078 jobs.c make_child (char *command, int flags) ++make_command function 164 make_cmd.c make_command (enum command_type type, SIMPLE_COM *pointer) ++make_command_string function 152 print_cmd.c make_command_string (COMMAND *command) ++make_command_string_internal function 176 print_cmd.c make_command_string_internal (COMMAND *command) ++make_cond_command function 431 make_cmd.c make_cond_command (COND_COM *cond_node) ++make_cond_node function 414 make_cmd.c make_cond_node (int type, WORD_DESC *op, struct cond_com *left, struct cond_com *right) ++make_coproc_command function 785 make_cmd.c make_coproc_command (char *name, COMMAND *command) ++make_default_mailpath function 345 mailcheck.c make_default_mailpath (void) ++make_dev_fd_filename function 6302 subst.c make_dev_fd_filename (int fd) ++make_env_array_from_var_list function 4787 variables.c make_env_array_from_var_list (SHELL_VAR **vars) ++make_for_command function 203 make_cmd.c make_for_command (WORD_DESC *name, WORD_LIST *map_list, COMMAND *action, int lineno) ++make_for_or_select function 189 make_cmd.c make_for_or_select (enum command_type type, WORD_DESC *name, WORD_LIST *map_list, COMMAND *action, int lineno) ++make_func_export_array function 4879 variables.c make_func_export_array (void) ++make_funcname_visible function 1818 variables.c make_funcname_visible (int on_or_off) ++make_function_def function 726 make_cmd.c make_function_def (WORD_DESC *name, COMMAND *command, int lineno, int lstart) ++make_group_command function 315 make_cmd.c make_group_command (COMMAND *command) ++make_here_document function 512 make_cmd.c make_here_document (REDIRECT *temp, int lineno) ++make_if_command function 351 make_cmd.c make_if_command (COMMAND *test, COMMAND *true_case, COMMAND *false_case) ++make_internal_declare function 12590 subst.c make_internal_declare (char *word, char *option, char *cmd) ++make_local_array_variable function 2804 variables.c make_local_array_variable (const char *name, int flags) ++make_local_assoc_variable function 2857 variables.c make_local_assoc_variable (const char *name, int flags) ++make_local_variable function 2571 variables.c make_local_variable (const char *name, int flags) ++make_login_shell variable 219 shell.c static int make_login_shell; /* Make this shell be a `-bash' shell. */ ++make_named_pipe function 6064 subst.c make_named_pipe (void) ++make_new_array_variable function 2790 variables.c make_new_array_variable (const char *name) ++make_new_assoc_variable function 2843 variables.c make_new_assoc_variable (const char *name) ++make_new_variable function 2771 variables.c make_new_variable (const char *name, HASH_TABLE *table) ++make_pattern_list function 338 make_cmd.c make_pattern_list (WORD_LIST *patterns, COMMAND *action) ++make_quoted_char function 4736 subst.c make_quoted_char (int c) ++make_redirection function 641 make_cmd.c make_redirection (REDIRECTEE source, enum r_instruction instruction, REDIRECTEE dest_and_filename, int flags) ++make_select_command function 209 make_cmd.c make_select_command (WORD_DESC *name, WORD_LIST *map_list, COMMAND *action, int lineno) ++make_simple_command function 475 make_cmd.c make_simple_command (ELEMENT element, COMMAND *command, int line) ++make_subshell_command function 773 make_cmd.c make_subshell_command (COMMAND *command) ++make_until_command function 382 make_cmd.c make_until_command (COMMAND *test, COMMAND *action) ++make_until_or_while function 364 make_cmd.c make_until_or_while (enum command_type which, COMMAND *test, COMMAND *action) ++make_var_export_array function 4858 variables.c make_var_export_array (VAR_CONTEXT *vcxt) ++make_variable_value function 2897 variables.c make_variable_value (SHELL_VAR *var, const char *value, int flags) ++make_vers_array function 1016 variables.c make_vers_array (void) ++make_while_command function 376 make_cmd.c make_while_command (COMMAND *test, COMMAND *action) ++make_word function 132 make_cmd.c make_word (const char *string) ++make_word_flags function 101 make_cmd.c make_word_flags (WORD_DESC *w, const char *string) ++make_word_from_token function 141 make_cmd.c make_word_from_token (int token) ++make_word_list function 152 make_cmd.c make_word_list (WORD_DESC *word, WORD_LIST *wlink) ++make_word_list function 1068 array.c make_word_list(WORD_DESC *x, WORD_LIST *l) ++making_children function 419 jobs.c making_children (void) ++makunbound function 3905 variables.c makunbound (const char *name, VAR_CONTEXT *vc) ++malloc_trace_at_exit variable 305 shell.c int malloc_trace_at_exit = 0; ++map_list member 263 command.h WORD_LIST *map_list; /* The things to map over. This is never NULL. */ ++map_list member 286 command.h WORD_LIST *map_list; /* The things to map over. This is never NULL. */ ++map_over function 4140 variables.c map_over (sh_var_map_func_t *function, VAR_CONTEXT *vc) ++map_over_aliases function 215 alias.c map_over_aliases (sh_alias_map_func_t *function) ++map_over_funcs function 4164 variables.c map_over_funcs (sh_var_map_func_t *function) ++map_over_jobs function 1572 jobs.c map_over_jobs (sh_job_map_func_t *func, int arg1, int arg2) ++mapfile function 142 /usr/local/src/bash/bash-20230914/builtins/mapfile.def mapfile (int fd, long line_count_goal, long origin, long nskip, long callback_quantum, ++mapfile_builtin function 223 /usr/local/src/bash/bash-20230914/builtins/mapfile.def mapfile_builtin (WORD_LIST *list) ++mapfile_builtin function 345 /usr/local/src/bash/bash-20230914/builtins/mapfile.def mapfile_builtin (WORD_LIST *list) ++mark_all_jobs_as_dead function 4760 jobs.c mark_all_jobs_as_dead (void) ++mark_dead_jobs_as_notified function 333 nojobs.c mark_dead_jobs_as_notified (int force) ++mark_dead_jobs_as_notified function 4786 jobs.c mark_dead_jobs_as_notified (int force) ++mark_modified_vars variable 47 flags.c int mark_modified_vars = 0; ++match_ignore_case variable 262 execute_cmd.c int match_ignore_case = 0; ++match_pattern function 5556 subst.c match_pattern (char *string, char *pat, int mtype, char **sp, char **ep) ++match_upattern function 5261 subst.c match_upattern (char *string, char *pat, int mtype, char **sp, char **ep) ++match_wpattern function 5416 subst.c match_wpattern (wchar_t *wstring, char **indices, size_t wstrlen, wchar_t *wpat, ++max macro 140 input.c # undef max ++max macro 142 input.c #define max(a, b) (((a) > (b)) ? (a) : (b)) ++max_index member 31 array.h arrayind_t max_index; ++maxgroups variable 1226 general.c static int ngroups, maxgroups; ++maxpath_param_h macro 34 /usr/local/src/bash/bash-20230914/include/maxpath.h # define maxpath_param_h ++maxquad variable 94 /usr/local/src/bash/bash-20230914/include/typemax.h static const unsigned long long int maxquad = ULLONG_MAX; ++maxvals variable 1204 execute_cmd.c static const int maxvals[] = { 1, 10, 100, 1000, 10000, 100000, 10000000 }; ++maybe_add_history function 759 bashhist.c maybe_add_history (char *line) ++maybe_append_history function 449 bashhist.c maybe_append_history (char *filename) ++maybe_call_trap_handler function 1545 trap.c maybe_call_trap_handler (int sig) ++maybe_execute_file function 323 /usr/local/src/bash/bash-20230914/builtins/evalfile.c maybe_execute_file (const char *fname, int force_noninteractive) ++maybe_give_terminal_to function 4646 jobs.c maybe_give_terminal_to (pid_t opgrp, pid_t npgrp, int flags) ++maybe_make_export_env function 5002 variables.c maybe_make_export_env (void) ++maybe_make_readline_line function 2711 bashline.c maybe_make_readline_line (const char *new_line) ++maybe_make_restricted function 1271 shell.c maybe_make_restricted (char *name) ++maybe_restore_tilde function 3231 bashline.c maybe_restore_tilde (char *val, char *directory_part) ++maybe_save_shell_history function 487 bashhist.c maybe_save_shell_history (void) ++mb_getcharlens function 5018 subst.c mb_getcharlens (const char *string, int len) ++mb_substring function 8889 subst.c mb_substring (const char *string, int s, int e) ++mem member 49 /usr/local/src/bash/bash-20230914/lib/malloc/table.h PTR_T mem; ++member macro 60 general.h # define member(c, s) ((c) ? ((char *)mbschr ((s), (c)) != (char *)NULL) : 0) ++memory_error_and_abort function 1021 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c memory_error_and_abort (void) ++merge_function_temporary_env function 4633 variables.c merge_function_temporary_env (void) ++merge_temporary_env function 4624 variables.c merge_temporary_env (void) ++messages variable 54 /usr/local/src/bash/bash-20230914/builtins/getopts.def printing of error messages, even if the first character of ++min macro 144 input.c # undef min ++min macro 146 input.c #define min(a, b) ((a) > (b) ? (b) : (a)) ++minus variable 35 /usr/local/src/bash/bash-20230914/builtins/let.def -, + unary minus, plus ++minus_o_option_value function 263 /usr/local/src/bash/bash-20230914/builtins/set.def minus_o_option_value (char *name) ++mk_env_string function 4657 variables.c mk_env_string (const char *name, const char *value, int attributes) ++mk_handler_func_t typedef 456 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c typedef int mk_handler_func_t (char *, DEF_FILE *, char *); ++mk_msgstr function 479 locale.c mk_msgstr (char *string, int *foundnlp) ++mkdashname function 88 /usr/local/src/bash/bash-20230914/builtins/exec.def mkdashname (char *name) ++mkfmt function 1210 execute_cmd.c mkfmt (char *buf, int prec, int lng, time_t sec, long sec_fraction) ++mklong function 1292 /usr/local/src/bash/bash-20230914/builtins/printf.def mklong (char *str, char *modifiers, size_t mlen) ++mkseq function 349 braces.c mkseq (intmax_t start, intmax_t end, intmax_t incr, int type, int width) ++mod_time member 56 mailcheck.c time_t mod_time; ++most_recent_job_in_state function 3351 jobs.c most_recent_job_in_state (int job, JOB_STATE state) ++move_to_high_fd function 662 general.c move_to_high_fd (int fd, int check_new, int maxfd) ++mr_table struct 48 /usr/local/src/bash/bash-20230914/lib/malloc/table.h typedef struct mr_table { ++mr_table_t typedef 56 /usr/local/src/bash/bash-20230914/lib/malloc/table.h } mr_table_t; ++msg member 54 mailcheck.c char *msg; ++mtime macro 442 mailcheck.c #define mtime mailfiles[i]->mod_time ++mtime macro 464 mailcheck.c #undef mtime ++mtime member 691 pathexp.c struct timespec mtime; ++multiplication variable 38 /usr/local/src/bash/bash-20230914/builtins/let.def *, /, % multiplication, division, remainder ++must_be_building function 753 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c must_be_building (char *directive, DEF_FILE *defs) ++n_shell_variables function 4976 variables.c n_shell_variables (void) ++nalloc member 55 /usr/local/src/bash/bash-20230914/lib/malloc/table.h int nalloc, nfree; ++nalloc member 70 /usr/local/src/bash/bash-20230914/lib/malloc/table.h int nalloc; ++nalloc member 173 jobs.h ps_index_t nalloc; ++name member 29 alias.h char *name; ++name member 35 variables.h char *name; /* empty or NULL means global context */ ++name member 36 flags.h char name; ++name member 53 mailcheck.c char *name; ++name member 54 builtins.h char *name; /* The name that the user types. */ ++name member 80 input.h char *name; ++name member 83 variables.h char *name; /* Symbol that the user types. */ ++name member 130 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *name; /* The name of this builtin. */ ++name member 176 /usr/local/src/bash/bash-20230914/builtins/shopt.def char *name; ++name member 189 /usr/local/src/bash/bash-20230914/builtins/set.def char *name; ++name member 247 shell.c const char *name; ++name member 262 command.h WORD_DESC *name; /* The variable name to get mapped over. */ ++name member 285 command.h WORD_DESC *name; /* The variable name to get mapped over. */ ++name member 349 command.h WORD_DESC *name; /* The name of the function. */ ++name member 384 command.h char *name; ++name member 698 pathexp.c char *name; ++name member 5671 variables.c char *name; ++name_and_function struct 5670 variables.c struct name_and_function { ++name_cell macro 163 variables.h #define name_cell(var) ((var)->name) ++name_is_acceptable function 3075 bashline.c name_is_acceptable (const char *name) ++named_function_string function 1347 print_cmd.c named_function_string (char *name, COMMAND *command, int flags) ++nameref_cell macro 170 variables.h #define nameref_cell(var) ((var)->value) /* so it can change later */ ++nameref_invalid_value variable 184 variables.c SHELL_VAR nameref_invalid_value; ++nameref_maxloop_value variable 185 variables.c static SHELL_VAR nameref_maxloop_value; ++nameref_p macro 149 variables.h #define nameref_p(var) ((((var)->attributes) & (att_nameref))) ++nameref_transform_name function 2251 variables.c nameref_transform_name (const char *name, int flags) ++nbuckets member 40 hashlib.h int nbuckets; /* How many buckets does this table have. */ ++nbuffers variable 156 input.c static int nbuffers; ++nc member 52 /usr/local/src/bash/bash-20230914/include/ocache.h int nc; /* number of cache entries */ ++ncoalesce member 80 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int ncoalesce[NBUCKETS]; ++ncoalesce member 103 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int ncoalesce; ++ncoproc member 1823 execute_cmd.c int ncoproc; ++need_here_doc member 211 shell.h int need_here_doc; ++nentries member 41 hashlib.h int nentries; /* How many entries does this table have. */ ++new_fd_bitmap function 325 execute_cmd.c new_fd_bitmap (int size) ++new_shell_variable function 2757 variables.c new_shell_variable (const char *name) ++new_var_context function 5110 variables.c new_var_context (char *name, int flags) ++newline function 1432 print_cmd.c newline (char *string) ++newline variable 42 /usr/local/src/bash/bash-20230914/builtins/echo.def newline, on the standard output. ++newline_list label 1274 parse.y newline_list: ++next member 31 hashlib.h struct bucket_contents *next; /* Link to next hashed key in this bucket. */ ++next member 47 array.h struct array_element *next, *prev; ++next member 66 jobs.h struct process *next; /* Next process in the pipeline. A circular chain. */ ++next member 67 unwind_prot.c union uwp *next; ++next member 76 jobs.h struct pipeline_saver *next; ++next member 123 general.h struct g_list *next; ++next member 136 /usr/local/src/bash/bash-20230914/builtins/fc.def struct repl *next; ++next member 138 command.h struct word_list *next; ++next member 162 command.h struct redirect *next; /* Next element, or NULL. */ ++next member 244 command.h struct pattern_list *next; /* Clause to try in case this one failed. */ ++next member 1814 execute_cmd.c struct cpelement *next; ++next_alias_char label 2660 parse.y next_alias_char: ++next_pending_trap function 617 trap.c next_pending_trap (int start) ++nextchar variable 66 /usr/local/src/bash/bash-20230914/builtins/getopt.c static char *nextchar; ++nfds variable 6089 subst.c static int nfds; ++nfifo variable 5845 subst.c static int nfifo; ++nfre member 68 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nfre; ++nfree member 55 /usr/local/src/bash/bash-20230914/lib/malloc/table.h int nalloc, nfree; ++nfree member 97 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nfree; ++ngroups variable 1226 general.c static int ngroups, maxgroups; ++nlesscore member 66 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nlesscore[NBUCKETS]; ++nlesscore member 101 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nlesscore; ++nmal member 67 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nmal; ++nmal member 99 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nmal; ++nmalloc member 63 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nmalloc[NBUCKETS]; ++nmmap member 81 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nmmap; ++nmmap member 104 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nmmap; /* currently unused */ ++nmorecore member 65 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nmorecore[NBUCKETS]; ++nmorecore member 100 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nmorecore; ++no_args function 139 /usr/local/src/bash/bash-20230914/builtins/common.c no_args (WORD_LIST *list) ++no_empty_command_completion variable 287 bashline.c int no_empty_command_completion; ++no_exit_on_failed_exec variable 83 /usr/local/src/bash/bash-20230914/builtins/exec.def int no_exit_on_failed_exec; ++no_line_editing variable 224 shell.c int no_line_editing = 0; /* non-zero -> don't do fancy line editing. */ ++no_line_editing variable 226 shell.c int no_line_editing = 1; /* can't have line editing without readline */ ++no_longjmp_on_fatal_error variable 182 subst.c int no_longjmp_on_fatal_error = 0; ++no_options function 152 /usr/local/src/bash/bash-20230914/builtins/common.c no_options (WORD_LIST *list) ++no_profile variable 217 shell.c static int no_profile; /* Don't execute .profile */ ++no_rc variable 216 shell.c static int no_rc; /* Don't execute ~/.bashrc */ ++no_symbolic_links variable 102 flags.c int no_symbolic_links = 0; ++noassign_p macro 153 variables.h #define noassign_p(var) ((((var)->attributes) & (att_noassign))) ++noclobber variable 76 flags.c int noclobber = 0; ++noclobber_open function 647 redir.c noclobber_open (const char *filename, int flags, int mode, enum r_instruction ri) ++noeval member 164 expr.c int noeval; ++noeval variable 115 test.c static int noeval; ++noeval variable 176 expr.c static int noeval; /* set to 1 if no assignment to be done */ ++nofree_p macro 156 variables.h #define nofree_p(var) ((((var)->attributes) & (att_nofree))) ++nohup_all_jobs function 4718 jobs.c nohup_all_jobs (int running_only) ++nohup_job function 1433 jobs.c nohup_job (int job_index) ++non_unsettable_p macro 152 variables.h #define non_unsettable_p(var) ((((var)->attributes) & (att_nounset))) ++noquote_glob_filename function 461 pathexp.c noquote_glob_filename (char *pathname) ++not_escape label 6476 parse.y not_escape: ++notify_and_cleanup function 3327 jobs.c notify_and_cleanup (void) ++notify_of_job_status function 4201 jobs.c notify_of_job_status (void) ++notsyntype macro 81 syntax.h #define notsyntype(c,t) ((sh_syntaxtab[(unsigned char)(c)] & (t)) == 0) ++npid member 175 jobs.h int npid; ++nproc member 191 jobs.h int nproc; ++nrcopy member 70 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nrcopy; ++nrealloc member 69 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nrealloc; ++nrecurse member 71 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nrecurse; ++nsbrk member 72 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nsbrk; ++nsplit member 78 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nsplit[NBUCKETS]; ++nsplit member 102 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nsplit; ++ntable variable 450 hashlib.c HASH_TABLE *table, *ntable; ++null_array_assign function 1243 variables.c null_array_assign (SHELL_VAR *self, char *value, arrayind_t ind, char *key) ++null_assign function 1236 variables.c null_assign (SHELL_VAR *self, char *value, arrayind_t unused, char *key) ++nullcmd_terminator label 1268 parse.y nullcmd_terminator: list_terminator ++nullstr variable 3886 execute_cmd.c static char * const nullstr = ""; ++num_elements member 32 array.h arrayind_t num_elements; ++num_fifos function 6058 subst.c num_fifos (void) ++num_fifos function 6164 subst.c num_fifos (void) ++num_ignores member 96 pathexp.h int num_ignores; /* How many are there? */ ++num_posix_options function 132 general.c num_posix_options (void) ++number variable 31 /usr/local/src/bash/bash-20230914/builtins/umask.def If MODE begins with a digit, it is interpreted as an octal number; ++number_of_args function 417 /usr/local/src/bash/bash-20230914/builtins/common.c number_of_args (void) ++nused member 98 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int nused; ++o_options variable 194 /usr/local/src/bash/bash-20230914/builtins/set.def } o_options[] = { ++objcache struct 49 /usr/local/src/bash/bash-20230914/include/ocache.h typedef struct objcache { ++ocache_alloc macro 84 /usr/local/src/bash/bash-20230914/include/ocache.h #define ocache_alloc(c, otype, r) \ ++ocache_create macro 56 /usr/local/src/bash/bash-20230914/include/ocache.h #define ocache_create(c, otype, n) \ ++ocache_destroy macro 64 /usr/local/src/bash/bash-20230914/include/ocache.h #define ocache_destroy(c) \ ++ocache_flush macro 73 /usr/local/src/bash/bash-20230914/include/ocache.h #define ocache_flush(c, otype) \ ++ocache_free macro 97 /usr/local/src/bash/bash-20230914/include/ocache.h #define ocache_free(c, otype, r) \ ++off variable 179 /usr/local/src/bash/bash-20230914/builtins/set.def static const char * const off = "off"; ++off variable 277 /usr/local/src/bash/bash-20230914/builtins/shopt.def static const char * const off = "off"; ++offsetof macro 43 unwind_prot.c # define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ++old_attempted_completion_function variable 1176 /usr/local/src/bash/bash-20230914/builtins/read.def static rl_completion_func_t *old_attempted_completion_function = 0; ++old_cont variable 61 /usr/local/src/bash/bash-20230914/builtins/suspend.def static SigHandler *old_cont; ++old_cont variable 336 jobs.c static SigHandler *old_cont = (SigHandler *)SIG_DFL; ++old_delim_ctype variable 1265 /usr/local/src/bash/bash-20230914/builtins/read.def static int old_delim_ctype; ++old_delim_func variable 1266 /usr/local/src/bash/bash-20230914/builtins/read.def static rl_command_func_t *old_delim_func; ++old_newline_ctype variable 1267 /usr/local/src/bash/bash-20230914/builtins/read.def static int old_newline_ctype; ++old_newline_func variable 1268 /usr/local/src/bash/bash-20230914/builtins/read.def static rl_command_func_t *old_newline_func; ++old_rl_startup_hook variable 321 bashline.c static rl_hook_func_t *old_rl_startup_hook = (rl_hook_func_t *)NULL; ++old_sigint_handler variable 737 nojobs.c static SigHandler *old_sigint_handler = INVALID_SIGNAL_HANDLER; ++old_sigint_handler variable 2665 jobs.c static SigHandler *old_sigint_handler = INVALID_SIGNAL_HANDLER; ++old_startup_hook variable 1177 /usr/local/src/bash/bash-20230914/builtins/read.def static rl_hook_func_t *old_startup_hook; ++old_tstp variable 335 jobs.c static SigHandler *old_tstp, *old_ttou, *old_ttin; ++old_ttin variable 335 jobs.c static SigHandler *old_tstp, *old_ttou, *old_ttin; ++old_ttou variable 335 jobs.c static SigHandler *old_tstp, *old_ttou, *old_ttin; ++on variable 31 /usr/local/src/bash/bash-20230914/builtins/read.def word to the second NAME, and so on, with any leftover words assigned to ++on variable 178 /usr/local/src/bash/bash-20230914/builtins/set.def static const char * const on = "on"; ++on variable 276 /usr/local/src/bash/bash-20230914/builtins/shopt.def static const char * const on = "on"; ++only_documentation variable 82 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c int only_documentation = 0; ++op member 332 command.h WORD_DESC *op; ++opaque member 79 variables.h void *opaque; /* opaque data for future use */ ++open_buffered_stream function 397 input.c open_buffered_stream (char *file) ++open_files function 557 execute_cmd.c open_files (void) ++open_helpfile function 207 /usr/local/src/bash/bash-20230914/builtins/help.def open_helpfile (const char *name) ++open_redir_file function 739 /usr/local/src/bash/bash-20230914/builtins/evalstring.c open_redir_file (REDIRECT *r, char **fnp) ++open_shell_script function 1565 shell.c open_shell_script (char *script_name) ++operator variable 49 /usr/local/src/bash/bash-20230914/builtins/let.def conditional operator ++optflag member 142 /usr/local/src/bash/bash-20230914/builtins/complete.def unsigned long optflag; ++optflags variable 208 flags.c char optflags[NUM_SHELL_FLAGS+4] = { '+' }; ++optimize_cat_file function 6634 subst.c optimize_cat_file (REDIRECT *r, int quoted, int flags, int *flagp) ++optimize_connection_fork function 144 /usr/local/src/bash/bash-20230914/builtins/evalstring.c optimize_connection_fork (COMMAND *command) ++optimize_shell_function function 176 /usr/local/src/bash/bash-20230914/builtins/evalstring.c optimize_shell_function (COMMAND *command) ++optimize_subshell_command function 158 /usr/local/src/bash/bash-20230914/builtins/evalstring.c optimize_subshell_command (COMMAND *command) ++optimized_assignment function 3021 variables.c optimized_assignment (SHELL_VAR *entry, const char *value, int aflags) ++options member 31 pcomplete.h unsigned long options; ++optname member 141 /usr/local/src/bash/bash-20230914/builtins/complete.def const char * const optname; ++or function 189 test.c or (void) ++or variable 35 /usr/local/src/bash/bash-20230914/builtins/complete.def -r remove a completion specification for each NAME, or, if no ++or variable 791 /usr/local/src/bash/bash-20230914/builtins/complete.def Modify the completion options for each NAME, or, if no NAMEs are supplied, ++orig_arglist variable 236 /usr/local/src/bash/bash-20230914/builtins/printf.def static WORD_LIST *garglist, *orig_arglist; ++original_pgrp variable 198 jobs.c pid_t original_pgrp = NO_PID; ++original_signals variable 99 trap.c SigHandler *original_signals[NSIG]; ++output member 145 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c FILE *output; /* Open file stream for PRODUCTION. */ ++output variable 33 /usr/local/src/bash/bash-20230914/builtins/printf.def characters, which are simply copied to standard output; character escape ++output variable 34 /usr/local/src/bash/bash-20230914/builtins/printf.def sequences, which are converted and copied to the standard output; and ++output_cpp_line_info variable 505 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c int output_cpp_line_info = 0; ++param_expand function 10331 subst.c param_expand (char *string, size_t *sindex, int quoted, ++parameter_brace_casemod function 9467 subst.c parameter_brace_casemod (char *varname, char *value, array_eltstate_t *estatep, ++parameter_brace_expand function 9644 subst.c parameter_brace_expand (char *string, size_t *indexp, int quoted, int pflags, int *quoted_dollar_atp, int *contains_dollar_at) ++parameter_brace_expand_error function 8093 subst.c parameter_brace_expand_error (char *name, char *value, int check_null) ++parameter_brace_expand_indir function 7762 subst.c parameter_brace_expand_indir (char *name, int var_is_special, int quoted, int pflags, int *quoted_dollar_atp, int *contains_dollar_at) ++parameter_brace_expand_length function 8135 subst.c parameter_brace_expand_length (char *name) ++parameter_brace_expand_rhs function 7845 subst.c parameter_brace_expand_rhs (char *name, char *value, ++parameter_brace_expand_word function 7534 subst.c parameter_brace_expand_word (char *name, int var_is_special, int quoted, int pflags, array_eltstate_t *estatep) ++parameter_brace_find_indir function 7718 subst.c parameter_brace_find_indir (char *name, int var_is_special, int quoted, int find_nameref) ++parameter_brace_patsub function 9229 subst.c parameter_brace_patsub (char *varname, char *value, array_eltstate_t *estatep, ++parameter_brace_remove_pattern function 5735 subst.c parameter_brace_remove_pattern (char *varname, char *value, ++parameter_brace_substring function 8917 subst.c parameter_brace_substring (char *varname, char *value, array_eltstate_t *estatep, ++parameter_brace_transform function 8790 subst.c parameter_brace_transform (char *varname, char *value, array_eltstate_t *estatep, ++parameter_list_remove_pattern function 5692 subst.c parameter_list_remove_pattern (int itype, char *pattern, int patspec, int quoted) ++parameter_list_transform function 8687 subst.c parameter_list_transform (int xc, int itype, int quoted) ++parse_and_execute function 305 /usr/local/src/bash/bash-20230914/builtins/evalstring.c parse_and_execute (char *string, const char *from_file, int flags) ++parse_and_execute_cleanup function 208 /usr/local/src/bash/bash-20230914/builtins/evalstring.c parse_and_execute_cleanup (int old_running_trap) ++parse_and_execute_level variable 64 /usr/local/src/bash/bash-20230914/builtins/evalstring.c int parse_and_execute_level = 0; ++parse_bashopts function 871 /usr/local/src/bash/bash-20230914/builtins/shopt.def parse_bashopts (char *value) ++parse_command function 329 eval.c parse_command (void) ++parse_dollar_word label 4055 parse.y parse_dollar_word: ++parse_long_options function 829 shell.c parse_long_options (char **argv, int arg_start, int arg_end) ++parse_mailpath_spec function 321 mailcheck.c parse_mailpath_spec (char *str) ++parse_prologue function 228 /usr/local/src/bash/bash-20230914/builtins/evalstring.c parse_prologue (char *string, int flags, char *tag) ++parse_shell_options function 882 shell.c parse_shell_options (char **argv, int arg_start, int arg_end) ++parse_shellopts function 599 /usr/local/src/bash/bash-20230914/builtins/set.def parse_shellopts (char *value) ++parse_string function 615 /usr/local/src/bash/bash-20230914/builtins/evalstring.c parse_string (char *string, const char *from_file, int flags, COMMAND **cmdp, char **endp) ++parse_symbolic_mode function 208 /usr/local/src/bash/bash-20230914/builtins/umask.def parse_symbolic_mode (char *mode, mode_t initial_bits) ++parser_error function 300 error.c parser_error (int lineno, const char *format, ...) ++parser_state member 176 shell.h int parser_state; ++parserblank macro 78 syntax.h #define parserblank(c) ((c) == ' ' || (c) == '\t') ++pat member 137 /usr/local/src/bash/bash-20230914/builtins/fc.def char *pat; ++pat_subst function 1111 array.c pat_subst(char *s, char *t, char *u, int i) ++pat_subst function 9051 subst.c pat_subst (char *string, char *pat, char *rep, int mflags) ++patch_level variable 37 version.c const int patch_level = PATCHLEVEL; ++patcomp function 374 test.c patcomp (char *string, char *pat, int op) ++path member 29 hashcmd.h char *path; /* The full pathname of the file. */ ++path_dot_or_dotdot function 788 general.c path_dot_or_dotdot (const char *string) ++path_value function 266 findcmd.c path_value (const char *pathvar, int use_tempenv) ++pathdata macro 36 hashcmd.h #define pathdata(x) ((PATH_DATA *)(x)->data) ++patsub_replacement variable 193 subst.c int patsub_replacement = PATSUB_REPLACE_DEFAULT; ++pattern label 1195 parse.y pattern: WORD ++pattern_list label 1171 parse.y pattern_list: newline_list pattern ')' compound_list ++pattern_list struct 243 command.h typedef struct pattern_list { ++patterns member 245 command.h WORD_LIST *patterns; /* Linked list of patterns to test. */ ++pcomp_curcmd variable 181 pcomplete.c const char *pcomp_curcmd; ++pcomp_curcs variable 180 pcomplete.c COMPSPEC *pcomp_curcs; ++pcomp_curtxt variable 182 pcomplete.c const char *pcomp_curtxt; ++pcomp_filename_completion_function function 693 pcomplete.c pcomp_filename_completion_function (const char *text, int state) ++pcomp_ind variable 185 pcomplete.c int pcomp_ind; ++pcomp_line variable 184 pcomplete.c char *pcomp_line; ++pcomp_set_compspec_options function 1481 pcomplete.c pcomp_set_compspec_options (COMPSPEC *cs, int flags, int set_or_unset) ++pcomp_set_readline_variables function 1457 pcomplete.c pcomp_set_readline_variables (int flags, int nval) ++pending_traps variable 109 trap.c int pending_traps[NSIG]; ++perform_hostname_completion variable 284 bashline.c int perform_hostname_completion = 1; ++pflag member 80 /usr/local/src/bash/bash-20230914/builtins/complete.def int pflag; ++pgrp member 124 jobs.h pid_t pgrp; /* The process ID of the process group (necessary). */ ++pgrp_pipe variable 207 jobs.c int pgrp_pipe[2] = { -1, -1 }; ++phash_create function 43 hashcmd.c phash_create (void) ++phash_flush function 57 hashcmd.c phash_flush (void) ++phash_freedata function 50 hashcmd.c phash_freedata (PTR_T data) ++phash_insert function 93 hashcmd.c phash_insert (char *filename, char *full_path, int check_dot, int found) ++phash_remove function 65 hashcmd.c phash_remove (const char *filename) ++phash_search function 126 hashcmd.c phash_search (const char *filename) ++pid member 42 execute_cmd.h pid_t pid; ++pid member 67 jobs.h pid_t pid; /* Process ID. */ ++pid member 101 nojobs.c pid_t pid; ++pid member 165 jobs.h pid_t pid; ++pid member 182 jobs.h pid_t pid; ++pid_list variable 116 nojobs.c static struct proc_status *pid_list = (struct proc_status *)NULL; ++pid_list_size variable 117 nojobs.c static int pid_list_size; ++pidstat struct 161 jobs.h struct pidstat { ++pidstat_table variable 175 jobs.c ps_index_t pidstat_table[PIDSTAT_TABLE_SZ]; ++pipe member 123 jobs.h PROCESS *pipe; /* The pipeline of processes that make up this job. */ ++pipe_read function 5047 jobs.c pipe_read (int *pp) ++pipefail_opt variable 157 flags.c int pipefail_opt = 0; ++pipeline label 1415 parse.y pipeline: pipeline '|' newline_list pipeline ++pipeline member 74 jobs.h struct process *pipeline; ++pipeline_command label 1352 parse.y pipeline_command: pipeline ++pipeline_pgrp variable 201 jobs.c pid_t pipeline_pgrp = (pid_t)0; ++pipeline_saver struct 73 jobs.h struct pipeline_saver { ++pipestatus member 204 shell.h ARRAY *pipestatus; ++place_keywords_in_env variable 65 flags.c int place_keywords_in_env = 0; ++plus variable 35 /usr/local/src/bash/bash-20230914/builtins/let.def -, + unary minus, plus ++pointer_to_int macro 49 general.h #define pointer_to_int(x) (int)((char *)x - (char *)0) ++polite_directory_format function 908 general.c polite_directory_format (char *name) ++pop_alias label 2729 parse.y pop_alias: ++pop_args function 5627 variables.c pop_args (void) ++pop_context function 5509 variables.c pop_context (void *ignore) ++pop_dollar_vars function 5541 variables.c pop_dollar_vars (void) ++pop_scope function 5386 variables.c pop_scope (void *is_special) ++pop_var_context function 5282 variables.c pop_var_context (void) ++popd_builtin function 318 /usr/local/src/bash/bash-20230914/builtins/pushd.def popd_builtin (WORD_LIST *list) ++popd_doc variable 730 /usr/local/src/bash/bash-20230914/builtins/pushd.def char * const popd_doc[] = { ++popd_struct variable 760 /usr/local/src/bash/bash-20230914/builtins/pushd.def struct builtin popd_struct = { ++popexp function 284 expr.c popexp (void) ++pos variable 112 test.c static int pos; /* The offset of the current argument in ARGV. */ ++pos_params function 3733 subst.c pos_params (const char *string, int start, int end, int quoted, int pflags) ++pos_params_assignment function 8591 subst.c pos_params_assignment (WORD_LIST *list, int itype, int quoted) ++pos_params_modcase function 9427 subst.c pos_params_modcase (char *string, char *pat, int modop, int mflags) ++pos_params_pat_subst function 9189 subst.c pos_params_pat_subst (char *string, char *pat, char *rep, int mflags) ++posix_builtins variable 173 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *posix_builtins[] = ++posix_edit_macros function 1028 bashline.c posix_edit_macros (int count, int key) ++posix_initialize function 103 general.c posix_initialize (int on) ++posix_mode_var member 89 general.c int *posix_mode_var; ++posix_readline_initialize function 349 bashline.c posix_readline_initialize (int on_or_off) ++posix_variable_assignment_error function 12972 subst.c posix_variable_assignment_error (int force_exit) ++posix_vars variable 90 general.c } posix_vars[] = ++posixly_correct variable 238 shell.c int posixly_correct = 1; /* Non-zero means posix.2 superset. */ ++posixly_correct variable 240 shell.c int posixly_correct = 0; /* Non-zero means posix.2 superset. */ ++posixtest function 816 test.c posixtest (void) ++posparam_count variable 161 variables.c int posparam_count = 0; ++pre_process_line function 561 bashhist.c pre_process_line (char *line, int print_changes, int addit) ++precs variable 1203 execute_cmd.c static const int precs[] = { 0, 100000, 10000, 1000, 100, 10, 1 }; ++prefix member 34 pcomplete.h char *prefix; ++preproc_filterpat function 262 pcomplete.c preproc_filterpat (const char *pat, const char *text) ++pretty_print_job function 2000 jobs.c pretty_print_job (int job_index, int format, FILE *stream) ++pretty_print_loop function 207 eval.c pretty_print_loop (void) ++pretty_print_mode variable 235 shell.c int pretty_print_mode = 0; /* pretty-print a shell script */ ++prev member 47 array.h struct array_element *next, *prev; ++previous_option_value variable 181 /usr/local/src/bash/bash-20230914/builtins/set.def static int previous_option_value; ++print_alias function 229 /usr/local/src/bash/bash-20230914/builtins/alias.def print_alias (alias_t *alias, int flags) ++print_all_completions function 625 /usr/local/src/bash/bash-20230914/builtins/complete.def print_all_completions (void) ++print_all_shell_variables function 506 /usr/local/src/bash/bash-20230914/builtins/set.def print_all_shell_variables (void) ++print_arg function 537 /usr/local/src/bash/bash-20230914/builtins/complete.def print_arg (const char *arg, const char *flag, int quote) ++print_arith_command function 833 print_cmd.c print_arith_command (WORD_LIST *arith_cmd_list) ++print_arith_for_command function 623 print_cmd.c print_arith_for_command (ARITH_FOR_COM *arith_for_command) ++print_array function 1133 array.c print_array(ARRAY *a) ++print_array_assignment function 1237 arrayfunc.c print_array_assignment (SHELL_VAR *var, int quoted) ++print_assignment function 1102 variables.c print_assignment (SHELL_VAR *var) ++print_assoc_assignment function 1255 arrayfunc.c print_assoc_assignment (SHELL_VAR *var, int quoted) ++print_case_clauses function 738 print_cmd.c print_case_clauses (PATTERN_LIST *clauses) ++print_case_command function 728 print_cmd.c print_case_command (CASE_COM *case_command) ++print_case_command_head function 714 print_cmd.c print_case_command_head (CASE_COM *case_command) ++print_cmd_completions function 631 /usr/local/src/bash/bash-20230914/builtins/complete.def print_cmd_completions (WORD_LIST *list) ++print_cmd_name function 551 /usr/local/src/bash/bash-20230914/builtins/complete.def print_cmd_name (const char *cmd) ++print_command function 141 print_cmd.c print_command (COMMAND *command) ++print_compactions function 521 /usr/local/src/bash/bash-20230914/builtins/complete.def print_compactions (unsigned long acts) ++print_compitem function 613 /usr/local/src/bash/bash-20230914/builtins/complete.def print_compitem (BUCKET_CONTENTS *item) ++print_compoptions function 509 /usr/local/src/bash/bash-20230914/builtins/complete.def print_compoptions (unsigned long copts, int full) ++print_compopts function 602 /usr/local/src/bash/bash-20230914/builtins/complete.def print_compopts (const char *cmd, COMPSPEC *cs, int full) ++print_comsub function 164 print_cmd.c print_comsub (COMMAND *command) ++print_cond_command function 887 print_cmd.c print_cond_command (COND_COM *cond) ++print_cond_node function 843 print_cmd.c print_cond_node (COND_COM *cond) ++print_deferred_heredocs function 1015 print_cmd.c print_deferred_heredocs (const char *cstring) ++print_dev_fd_list function 6285 subst.c print_dev_fd_list (void) ++print_element function 1123 array.c print_element(ARRAY_ELEMENT *ae) ++print_for_command function 606 print_cmd.c print_for_command (FOR_COM *for_command) ++print_for_command_head function 590 print_cmd.c print_for_command_head (FOR_COM *for_command) ++print_formatted_time function 1302 execute_cmd.c print_formatted_time (FILE *fp, char *format, ++print_func_list function 1085 variables.c print_func_list (SHELL_VAR **list) ++print_function_def function 1285 print_cmd.c print_function_def (FUNCTION_DEF *func) ++print_group_command function 676 print_cmd.c print_group_command (GROUP_COM *group_command) ++print_hash_info function 239 /usr/local/src/bash/bash-20230914/builtins/hash.def print_hash_info (BUCKET_CONTENTS *item) ++print_hashed_commands function 261 /usr/local/src/bash/bash-20230914/builtins/hash.def print_hashed_commands (int fmt) ++print_heredoc_bodies function 994 print_cmd.c print_heredoc_bodies (REDIRECT *heredocs) ++print_heredoc_body function 1105 print_cmd.c print_heredoc_body (REDIRECT *redirect) ++print_heredoc_header function 1080 print_cmd.c print_heredoc_header (REDIRECT *redirect) ++print_heredocs function 980 print_cmd.c print_heredocs (REDIRECT *heredocs) ++print_if_command function 798 print_cmd.c print_if_command (IF_COM *if_command) ++print_index_and_element function 3257 execute_cmd.c print_index_and_element (int len, int ind, WORD_LIST *list) ++print_job function 2036 jobs.c print_job (JOB *job, int format, int state, int job_index) ++print_minus_o_option function 284 /usr/local/src/bash/bash-20230914/builtins/set.def print_minus_o_option (char *name, int value, int pflag) ++print_one_completion function 574 /usr/local/src/bash/bash-20230914/builtins/complete.def print_one_completion (char *cmd, COMPSPEC *cs) ++print_pipeline function 1902 jobs.c print_pipeline (PROCESS *p, int job_index, int format, FILE *stream) ++print_portable_hash_info function 246 /usr/local/src/bash/bash-20230914/builtins/hash.def print_portable_hash_info (BUCKET_CONTENTS *item) ++print_redirection function 1112 print_cmd.c print_redirection (REDIRECT *redirect) ++print_redirection_list function 1032 print_cmd.c print_redirection_list (REDIRECT *redirects) ++print_rlimtype function 193 general.c print_rlimtype (RLIMTYPE n, int addnl) ++print_rlimtype macro 134 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define print_rlimtype(num, nl) printf ("%ld%s", num, nl ? "\n" : "") ++print_select_command function 660 print_cmd.c print_select_command (SELECT_COM *select_command) ++print_select_command_head function 644 print_cmd.c print_select_command_head (SELECT_COM *select_command) ++print_select_list function 3291 execute_cmd.c print_select_list (WORD_LIST *list, int list_len, int max_elem_len, int indices_len) ++print_shopt function 483 /usr/local/src/bash/bash-20230914/builtins/shopt.def print_shopt (char *name, int val, int flags) ++print_simple_command function 964 print_cmd.c print_simple_command (SIMPLE_COM *simple_command) ++print_symbolic_umask function 148 /usr/local/src/bash/bash-20230914/builtins/umask.def print_symbolic_umask (mode_t um) ++print_unix_command function 4585 bashline.c print_unix_command (const char *kseq, const char *value, int readable, const char *prefix) ++print_unix_command_map function 4594 bashline.c print_unix_command_map (void) ++print_until_command function 768 print_cmd.c print_until_command (WHILE_COM *while_command) ++print_until_or_while function 774 print_cmd.c print_until_or_while (WHILE_COM *while_command, char *which) ++print_unwind_protect_tags function 334 unwind_prot.c print_unwind_protect_tags (void) ++print_var_function function 1158 variables.c print_var_function (SHELL_VAR *var) ++print_var_list function 1072 variables.c print_var_list (SHELL_VAR **list) ++print_var_value function 1132 variables.c print_var_value (SHELL_VAR *var, int quote) ++print_while_command function 762 print_cmd.c print_while_command (WHILE_COM *while_command) ++print_word_list function 387 print_cmd.c print_word_list (WORD_LIST *list, char *separator) ++printable_filename function 995 general.c printable_filename (char *fn, int flags) ++printable_job_status function 1832 jobs.c printable_job_status (int j, PROCESS *p, int format) ++printf_builtin function 264 /usr/local/src/bash/bash-20230914/builtins/printf.def printf_builtin (WORD_LIST *list) ++printf_erange function 800 /usr/local/src/bash/bash-20230914/builtins/printf.def printf_erange (char *s) ++printing_comsub variable 128 print_cmd.c static int printing_comsub; ++printing_connection variable 127 print_cmd.c static int printing_connection; ++printstr function 816 /usr/local/src/bash/bash-20230914/builtins/printf.def printstr (char *fmt, char *string, int len, int fieldwidth, int precision) ++printwidestr function 926 /usr/local/src/bash/bash-20230914/builtins/printf.def printwidestr (char *fmt, wchar_t *wstring, size_t len, int fieldwidth, int precision) ++privileged_mode variable 141 flags.c int privileged_mode = 0; ++proc member 5841 subst.c pid_t proc; ++proc_status struct 100 nojobs.c struct proc_status { ++procchain struct 188 jobs.h struct procchain { ++procenv_t macro 29 /usr/local/src/bash/bash-20230914/include/posixjmp.h # define procenv_t sigjmp_buf ++procenv_t macro 37 /usr/local/src/bash/bash-20230914/include/posixjmp.h # define procenv_t jmp_buf ++process struct 65 jobs.h typedef struct process { ++process_exit_signal function 2739 jobs.c process_exit_signal (WAIT status) ++process_exit_status function 214 nojobs.c process_exit_status (WAIT status) ++process_exit_status function 2745 jobs.c process_exit_status (WAIT status) ++process_substitute function 6331 subst.c process_substitute (char *string, int open_for_read_in_child) ++processes_in_job function 1234 jobs.c processes_in_job (int job) ++procstat struct 181 jobs.h struct procstat { ++procsub_add function 996 jobs.c procsub_add (PROCESS *p) ++procsub_clear function 1099 jobs.c procsub_clear (void) ++procsub_delete function 1033 jobs.c procsub_delete (pid_t pid) ++procsub_free function 989 jobs.c procsub_free (PROCESS *p) ++procsub_prune function 1119 jobs.c procsub_prune (void) ++procsub_search function 1018 jobs.c procsub_search (pid_t pid) ++procsub_waitall function 1085 jobs.c procsub_waitall (void) ++procsub_waitpid function 1070 jobs.c procsub_waitpid (pid_t pid) ++procsubs variable 178 jobs.c struct procchain procsubs = { 0, 0, 0 }; ++produces_handler function 922 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c produces_handler (char *self, DEF_FILE *defs, char *arg) ++production member 144 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *production; /* The name of the production file. */ ++prog_complete_matches variable 229 bashline.c static char **prog_complete_matches; ++prog_complete_return function 1501 bashline.c prog_complete_return (const char *text, int matchnum) ++prog_completes variable 44 pcomplib.c HASH_TABLE *prog_completes = (HASH_TABLE *)NULL; ++prog_completion_enabled variable 148 pcomplete.c int prog_completion_enabled = 1; ++progcomp_alias variable 151 pcomplete.c int progcomp_alias = 0; /* unavailable to user code for now */ ++progcomp_create function 114 pcomplib.c progcomp_create (void) ++progcomp_debug variable 145 pcomplete.c static int progcomp_debug = 0; ++progcomp_dispose function 143 pcomplib.c progcomp_dispose (void) ++progcomp_flush function 136 pcomplib.c progcomp_flush (void) ++progcomp_insert function 171 pcomplib.c progcomp_insert (char *cmd, COMPSPEC *cs) ++progcomp_remove function 151 pcomplib.c progcomp_remove (const char *cmd) ++progcomp_search function 193 pcomplib.c progcomp_search (const char *cmd) ++progcomp_size function 121 pcomplib.c progcomp_size (void) ++progcomp_walk function 212 pcomplib.c progcomp_walk (hash_wfunc *pfunc) ++programmable_completions function 1553 pcomplete.c programmable_completions (const char *cmd, const char *word, ++programming_error function 132 error.c programming_error (const char *format, ...) ++programming_error function 462 hashlib.c programming_error (const char *format, ...) ++programming_error function 1050 array.c programming_error(const char *s, ...) ++prompt_string_pointer member 192 shell.h char **prompt_string_pointer; ++propagate_p macro 160 variables.h #define propagate_p(var) ((((var)->attributes) & (att_propagate))) ++propagate_temp_var function 4559 variables.c propagate_temp_var (PTR_T data) ++protected_mode variable 233 shell.c int protected_mode = 0; /* No command substitution with --wordexp */ ++ps_index_t typedef 159 jobs.h typedef pid_t ps_index_t; ++pshash_delindex function 861 jobs.c pshash_delindex (ps_index_t psi) ++pshash_getbucket function 810 jobs.c pshash_getbucket (pid_t pid) ++pstatuses variable 311 jobs.c static int *pstatuses; /* list of pipeline statuses */ ++push_args function 5602 variables.c push_args (WORD_LIST *list) ++push_builtin_var function 5271 variables.c push_builtin_var (PTR_T data) ++push_context function 5498 variables.c push_context (char *name, int is_subshell, HASH_TABLE *tempvars) ++push_dollar_vars function 5520 variables.c push_dollar_vars (void) ++push_exported_var function 5352 variables.c push_exported_var (PTR_T data) ++push_func_var function 5262 variables.c push_func_var (PTR_T data) ++push_history function 406 /usr/local/src/bash/bash-20230914/builtins/history.def push_history (WORD_LIST *list) ++push_posix_temp_var function 4450 variables.c push_posix_temp_var (PTR_T data) ++push_posix_tempvar_internal function 5196 variables.c push_posix_tempvar_internal (SHELL_VAR *var, int isbltin) ++push_scope function 5346 variables.c push_scope (int flags, HASH_TABLE *tmpvars) ++push_temp_var function 4508 variables.c push_temp_var (PTR_T data) ++push_to_readline variable 693 bashline.c static char *push_to_readline = (char *)NULL; ++push_var_context function 5152 variables.c push_var_context (char *name, int flags, HASH_TABLE *tempvars) ++pushd_builtin function 173 /usr/local/src/bash/bash-20230914/builtins/pushd.def pushd_builtin (WORD_LIST *list) ++pushd_directory_list variable 152 /usr/local/src/bash/bash-20230914/builtins/pushd.def static char **pushd_directory_list = (char **)NULL; ++pushd_doc variable 705 /usr/local/src/bash/bash-20230914/builtins/pushd.def char * const pushd_doc[] = { ++pushd_error function 516 /usr/local/src/bash/bash-20230914/builtins/pushd.def pushd_error (int offset, char *arg) ++pushd_struct variable 751 /usr/local/src/bash/bash-20230914/builtins/pushd.def struct builtin pushd_struct = { ++pushed_strings member 218 shell.h void *pushed_strings; ++pushexp function 260 expr.c pushexp (void) ++put_command_name_into_env function 5095 variables.c put_command_name_into_env (char *command_name) ++putx function 4392 bashline.c putx(int c) ++pwd_builtin function 458 /usr/local/src/bash/bash-20230914/builtins/cd.def pwd_builtin (WORD_LIST *list) ++q variable 43 /usr/local/src/bash/bash-20230914/builtins/printf.def %Q like %q, but apply any precision to the unquoted argument before ++qsort_alias_compare function 244 alias.c qsort_alias_compare (alias_t **as1, alias_t **as2) ++qsort_var_comp function 4218 variables.c qsort_var_comp (SHELL_VAR **var1, SHELL_VAR **var2) ++query_bindings function 338 /usr/local/src/bash/bash-20230914/builtins/bind.def query_bindings (char *name) ++queue_sigchld variable 80 nojobs.c static int queue_sigchld; /* dummy declaration */ ++queue_sigchld variable 318 jobs.c static int queue_sigchld; ++queue_sigchld_trap function 710 trap.c queue_sigchld_trap (int nchild) ++quote_array_assignment_chars function 1106 arrayfunc.c quote_array_assignment_chars (WORD_LIST *list) ++quote_assign function 935 arrayfunc.c quote_assign (const char *string) ++quote_char macro 302 alias.c #define quote_char(c) (((c) == '\'') || ((c) == '"')) ++quote_compound_array_list function 1080 arrayfunc.c quote_compound_array_list (WORD_LIST *list, int type) ++quote_compound_array_word function 981 arrayfunc.c quote_compound_array_word (char *w, int type) ++quote_escapes function 4640 subst.c quote_escapes (const char *string) ++quote_escapes_internal function 4608 subst.c quote_escapes_internal (const char *string, int flags) ++quote_globbing_chars function 404 pathexp.c quote_globbing_chars (const char *string) ++quote_list function 4846 subst.c quote_list (WORD_LIST *list) ++quote_rhs function 4646 subst.c quote_rhs (const char *string) ++quote_string function 1117 array.c quote_string(char *s) ++quote_string function 4759 subst.c quote_string (const char *string) ++quote_string_for_globbing function 213 pathexp.c quote_string_for_globbing (const char *pathname, int qflags) ++quote_string_for_repl function 3879 subst.c quote_string_for_repl (const char *string, int flags) ++quote_word_break_chars function 4117 bashline.c quote_word_break_chars (char *text) ++quoted_strchr function 619 subst.c quoted_strchr (char *s, int c, int flags) ++quoted_strlen function 592 subst.c quoted_strlen (char *s) ++quoted_substring function 551 subst.c quoted_substring (char *string, int start, int end) ++r_append_err_and_out enumerator 35 command.h r_append_err_and_out ++r_appending_to enumerator 30 command.h r_appending_to, r_reading_until, r_reading_string, ++r_close_this enumerator 32 command.h r_close_this, r_err_and_out, r_input_output, r_output_force, ++r_deblank_reading_until enumerator 31 command.h r_duplicating_input, r_duplicating_output, r_deblank_reading_until, ++r_duplicating_input enumerator 31 command.h r_duplicating_input, r_duplicating_output, r_deblank_reading_until, ++r_duplicating_input_word enumerator 33 command.h r_duplicating_input_word, r_duplicating_output_word, ++r_duplicating_output enumerator 31 command.h r_duplicating_input, r_duplicating_output, r_deblank_reading_until, ++r_duplicating_output_word enumerator 33 command.h r_duplicating_input_word, r_duplicating_output_word, ++r_err_and_out enumerator 32 command.h r_close_this, r_err_and_out, r_input_output, r_output_force, ++r_input_direction enumerator 29 command.h r_output_direction, r_input_direction, r_inputa_direction, ++r_input_output enumerator 32 command.h r_close_this, r_err_and_out, r_input_output, r_output_force, ++r_inputa_direction enumerator 29 command.h r_output_direction, r_input_direction, r_inputa_direction, ++r_instruction enum 28 command.h enum r_instruction { ++r_move_input enumerator 34 command.h r_move_input, r_move_output, r_move_input_word, r_move_output_word, ++r_move_input_word enumerator 34 command.h r_move_input, r_move_output, r_move_input_word, r_move_output_word, ++r_move_output enumerator 34 command.h r_move_input, r_move_output, r_move_input_word, r_move_output_word, ++r_move_output_word enumerator 34 command.h r_move_input, r_move_output, r_move_input_word, r_move_output_word, ++r_output_direction enumerator 29 command.h r_output_direction, r_input_direction, r_inputa_direction, ++r_output_force enumerator 32 command.h r_close_this, r_err_and_out, r_input_output, r_output_force, ++r_reading_string enumerator 30 command.h r_appending_to, r_reading_until, r_reading_string, ++r_reading_until enumerator 30 command.h r_appending_to, r_reading_until, r_reading_string, ++raw_job_exit_status function 2777 jobs.c raw_job_exit_status (int job) ++rd variable 116 redir.c static REDIRECTEE rd; ++rd_token function 425 alias.c rd_token (char *string, int start) ++re_edit function 534 bashhist.c re_edit (char *text) ++read_builtin function 212 /usr/local/src/bash/bash-20230914/builtins/read.def read_builtin (WORD_LIST *list) ++read_builtin_timeout function 190 /usr/local/src/bash/bash-20230914/builtins/read.def read_builtin_timeout (int fd) ++read_but_dont_execute variable 70 flags.c int read_but_dont_execute = 0; ++read_command function 367 eval.c read_command (void) ++read_comsub function 6650 subst.c read_comsub (int fd, int quoted, int flags, int *rflag) ++read_from_stdin variable 298 shell.c int read_from_stdin; /* -s flag supplied */ ++read_mbchar function 1101 /usr/local/src/bash/bash-20230914/builtins/read.def read_mbchar (int fd, char *string, int ind, int ch, int unbuffered) ++read_octal function 550 /usr/local/src/bash/bash-20230914/builtins/common.c read_octal (char *string) ++read_timeout variable 144 /usr/local/src/bash/bash-20230914/builtins/read.def sh_timer *read_timeout; ++read_tty_cleanup function 1163 /usr/local/src/bash/bash-20230914/builtins/read.def read_tty_cleanup (void) ++read_tty_modified function 1170 /usr/local/src/bash/bash-20230914/builtins/read.def read_tty_modified (void) ++reader_loop function 57 eval.c reader_loop (void) ++reading variable 146 /usr/local/src/bash/bash-20230914/builtins/read.def static int reading, tty_modified; ++reading_shell_script variable 163 shell.c int reading_shell_script = 0; ++readline_get_char_offset function 4402 bashline.c readline_get_char_offset (int ind) ++readline_set_char_offset function 4420 bashline.c readline_set_char_offset (int ind, int *varp) ++readonly_builtin function 106 /usr/local/src/bash/bash-20230914/builtins/setattr.def readonly_builtin (WORD_LIST *list) ++readonly_p macro 139 variables.h #define readonly_p(var) ((((var)->attributes) & (att_readonly))) ++readtok function 1302 expr.c readtok (void) ++realloc_jobs_list function 1276 jobs.c realloc_jobs_list (void) ++really_add_history function 958 bashhist.c really_add_history (char *line) ++really_munge_braces function 65 bracecomp.c really_munge_braces (char **array, int real_start, int real_end, int gcd_zero) ++reap_dead_jobs function 397 nojobs.c reap_dead_jobs (void) ++reap_dead_jobs function 3341 jobs.c reap_dead_jobs (void) ++reap_procsubs function 6027 subst.c reap_procsubs (void) ++reap_procsubs function 6260 subst.c reap_procsubs (void) ++reap_some_procsubs function 6017 subst.c reap_some_procsubs (int max) ++reap_some_procsubs function 6250 subst.c reap_some_procsubs (int max) ++reap_zombie_children function 430 nojobs.c reap_zombie_children (void) ++redir_open function 696 redir.c redir_open (char *filename, int flags, int mode, enum r_instruction ri) ++redir_special_open function 589 redir.c redir_special_open (int spec, char *filename, int flags, int mode, enum r_instruction ri) ++redir_stack member 219 shell.h REDIRECT *redir_stack[HEREDOC_MAX]; ++redir_varassign function 1394 redir.c redir_varassign (REDIRECT *redir, int fd) ++redir_varvalue function 1410 redir.c redir_varvalue (REDIRECT *redir) ++redirect member 175 command.h REDIRECT *redirect; ++redirect struct 161 command.h typedef struct redirect { ++redirectee member 167 command.h REDIRECTEE redirectee; /* File descriptor or filename */ ++redirection label 519 parse.y redirection: '>' WORD ++redirection_error function 134 redir.c redirection_error (REDIRECT *temp, int error, char *fn) ++redirection_expand function 297 redir.c redirection_expand (WORD_DESC *word) ++redirection_list label 803 parse.y redirection_list: redirection ++redirection_undo_list variable 228 execute_cmd.c REDIRECT *redirection_undo_list = (REDIRECT *)NULL; ++redirector member 163 command.h REDIRECTEE redirector; /* Descriptor or varname to be redirected. */ ++redirects member 201 command.h REDIRECT *redirects; /* Special redirects for FOR CASE, etc. */ ++redirects member 342 command.h REDIRECT *redirects; /* Redirections to perform. */ ++refcount member 29 pcomplete.h int refcount; ++regen_p macro 157 variables.h #define regen_p(var) ((((var)->attributes) & (att_regenerate))) ++reinit_special_variables function 5815 variables.c reinit_special_variables (void) ++reinit_trap function 1475 trap.c reinit_trap (int sig) ++release_status variable 40 version.c const char * const release_status = RELSTATUS; ++release_status variable 42 version.c const char * const release_status = (char *)0; ++remainder variable 38 /usr/local/src/bash/bash-20230914/builtins/let.def *, /, % multiplication, division, remainder ++remember_args function 347 /usr/local/src/bash/bash-20230914/builtins/common.c remember_args (WORD_LIST *list, int destructive) ++remember_mail_dates function 366 mailcheck.c remember_mail_dates (void) ++remember_on_history member 197 shell.h int remember_on_history; ++remember_on_history variable 91 bashhist.c int remember_on_history = 0; ++remove_alias function 176 alias.c remove_alias (const char *name) ++remove_backslashes function 4034 subst.c remove_backslashes (const char *string) ++remove_cmd_completions function 492 /usr/local/src/bash/bash-20230914/builtins/complete.def remove_cmd_completions (WORD_LIST *list) ++remove_pattern function 5191 subst.c remove_pattern (char *param, char *pattern, int op) ++remove_quoted_escapes function 4898 subst.c remove_quoted_escapes (char *string) ++remove_quoted_ifs function 4917 subst.c remove_quoted_ifs (const char *string) ++remove_quoted_nulls function 4950 subst.c remove_quoted_nulls (char *string) ++remove_trailing_whitespace function 722 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c remove_trailing_whitespace (char *string) ++remove_unwind_protect function 142 unwind_prot.c remove_unwind_protect (void) ++remove_unwind_protect_internal function 204 unwind_prot.c remove_unwind_protect_internal (void) ++remove_upattern function 5055 subst.c remove_upattern (char *param, char *pattern, int op) ++remove_wpattern function 5126 subst.c remove_wpattern (wchar_t *wparam, size_t wstrlen, wchar_t *wpattern, int op) ++rename function 1605 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c rename (char *from, char *to) ++rep member 138 /usr/local/src/bash/bash-20230914/builtins/fc.def char *rep; ++repl struct 135 /usr/local/src/bash/bash-20230914/builtins/fc.def typedef struct repl { ++report_error function 170 error.c report_error (const char *format, ...) ++reset_completer_word_break_chars function 370 bashline.c reset_completer_word_break_chars (void) ++reset_current function 3451 jobs.c reset_current (void) ++reset_eol_delim function 1299 /usr/local/src/bash/bash-20230914/builtins/read.def reset_eol_delim (void *ignore) ++reset_internal_getopt function 188 /usr/local/src/bash/bash-20230914/builtins/bashgetopt.c reset_internal_getopt (void) ++reset_job_indices function 1155 jobs.c reset_job_indices (void) ++reset_local_contexts function 5332 variables.c reset_local_contexts (void) ++reset_locale_vars function 364 locale.c reset_locale_vars (void) ++reset_mail_files function 206 mailcheck.c reset_mail_files (void) ++reset_mail_timer function 115 mailcheck.c reset_mail_timer (void) ++reset_option_defaults function 1804 shell.c reset_option_defaults (void) ++reset_or_restore_signal_handlers function 1411 trap.c reset_or_restore_signal_handlers (sh_resetsig_func_t *reset) ++reset_shell_flags function 338 flags.c reset_shell_flags (void) ++reset_shell_options function 641 /usr/local/src/bash/bash-20230914/builtins/set.def reset_shell_options (void) ++reset_shopt_options function 353 /usr/local/src/bash/bash-20230914/builtins/shopt.def reset_shopt_options (void) ++reset_signal function 1376 trap.c reset_signal (int sig) ++reset_signal_handlers function 1458 trap.c reset_signal_handlers (void) ++reset_timeout function 165 /usr/local/src/bash/bash-20230914/builtins/read.def reset_timeout (void) ++resetpwd function 183 /usr/local/src/bash/bash-20230914/builtins/cd.def resetpwd (char *caller) ++resetxattr function 239 /usr/local/src/bash/bash-20230914/builtins/cd.def resetxattr (void) ++rest member 5429 variables.c WORD_LIST *rest; ++rest_of_args variable 160 variables.c WORD_LIST *rest_of_args = (WORD_LIST *)NULL; ++restart_job_control function 5000 jobs.c restart_job_control (void) ++restore_bash_trapsig function 313 trap.c restore_bash_trapsig (char *oldval) ++restore_default_signal function 924 trap.c restore_default_signal (int sig) ++restore_directory_hook function 3323 bashline.c restore_directory_hook (rl_icppfunc_t *hookf) ++restore_dollar_vars function 5455 variables.c restore_dollar_vars (char **args) ++restore_funcarray_state function 5060 execute_cmd.c restore_funcarray_state (struct func_array_state *fa) ++restore_original_signals function 1467 trap.c restore_original_signals (void) ++restore_pgrp_pipe function 5081 jobs.c restore_pgrp_pipe (int *p) ++restore_pipeline function 495 jobs.c restore_pipeline (int discard) ++restore_pipestatus_array function 6310 variables.c restore_pipestatus_array (ARRAY *a) ++restore_sigint_handler function 740 nojobs.c restore_sigint_handler (void) ++restore_sigint_handler function 2682 jobs.c restore_sigint_handler (void) ++restore_signal function 1394 trap.c restore_signal (int sig) ++restore_stdin function 2506 execute_cmd.c restore_stdin (int s) ++restore_stdout function 6788 subst.c restore_stdout (int fd) ++restore_tilde function 3175 bashline.c restore_tilde (const char *val, char *directory_part) ++restore_traps function 1490 trap.c restore_traps (void) ++restore_variable function 261 unwind_prot.c restore_variable (void *arg) ++restrict macro 56 /usr/local/src/bash/bash-20230914/include/stdc.h # define restrict __restrict ++restrict macro 69 /usr/local/src/bash/bash-20230914/include/stdc.h # define restrict ++restricted variable 133 flags.c int restricted = 0; /* currently restricted */ ++restricted_shell variable 134 flags.c int restricted_shell = 0; /* shell was started in restricted mode. */ ++retain_fifos variable 244 execute_cmd.c int retain_fifos = 0; ++retcode_name_buffer variable 347 jobs.c static char retcode_name_buffer[64]; ++return_catch variable 213 execute_cmd.c procenv_t return_catch; ++return_catch_flag variable 211 execute_cmd.c int return_catch_flag; ++return_catch_value variable 212 execute_cmd.c int return_catch_value; ++return_zero function 3159 bashline.c return_zero (const char *name) ++returns variable 30 /usr/local/src/bash/bash-20230914/builtins/caller.def Without EXPR, returns "$line $filename". With EXPR, returns ++returns variable 64 /usr/local/src/bash/bash-20230914/builtins/let.def If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise. ++retval variable 237 /usr/local/src/bash/bash-20230914/builtins/printf.def static int retval; ++rflag member 81 /usr/local/src/bash/bash-20230914/builtins/complete.def int rflag; ++rflags member 164 command.h int rflags; /* Private flags for this redirection */ ++right member 333 command.h struct cond_com *left, *right; ++run_callback function 108 /usr/local/src/bash/bash-20230914/builtins/mapfile.def run_callback (const char *callback, unsigned int curindex, const char *curline) ++run_debug_trap function 1243 trap.c run_debug_trap (void) ++run_error_trap function 1299 trap.c run_error_trap (void) ++run_exit_trap function 1012 trap.c run_exit_trap (void) ++run_interrupt_trap function 1327 trap.c run_interrupt_trap (int will_throw) ++run_one_command function 1450 shell.c run_one_command (char *command) ++run_pending_traps function 328 trap.c run_pending_traps (void) ++run_return_trap function 1306 trap.c run_return_trap (void) ++run_shopt_alist function 2089 shell.c run_shopt_alist (void) ++run_sigchld_trap function 4153 jobs.c run_sigchld_trap (int nchild) ++run_startup_files function 1106 shell.c run_startup_files (void) ++run_trap_cleanup function 1080 trap.c run_trap_cleanup (int sig) ++run_unwind_frame function 127 unwind_prot.c run_unwind_frame (char *tag) ++run_unwind_protects function 150 unwind_prot.c run_unwind_protects (void) ++run_unwind_protects_internal function 217 unwind_prot.c run_unwind_protects_internal (void) ++run_wordexp function 1374 shell.c run_wordexp (char *words) ++running member 69 jobs.h int running; /* Non-zero if this process is running. */ ++running_in_background variable 96 nojobs.c int running_in_background = 0; /* can't tell without job control */ ++running_in_background variable 223 jobs.c int running_in_background = 0; ++running_setuid variable 212 shell.c static int running_setuid; ++running_trap variable 115 trap.c int running_trap; ++running_trap variable 453 hashlib.c int running_trap = 0; ++running_under_emacs variable 190 shell.c int running_under_emacs; ++s member 69 variables.h char *s; /* string value */ ++same_file function 633 general.c same_file (const char *path1, const char *path2, struct stat *stp1, struct stat *stp2) ++save_bash_argv function 5590 variables.c save_bash_argv (void) ++save_bash_input function 238 input.c save_bash_input (int fd, int new_fd) ++save_bash_trapsig function 297 trap.c save_bash_trapsig (void) ++save_builtin function 1057 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c save_builtin (BUILTIN_DESC *builtin) ++save_directory_hook function 3304 bashline.c save_directory_hook (void) ++save_dollar_vars function 5440 variables.c save_dollar_vars (void) ++save_history function 427 bashhist.c save_history (void) ++save_pgrp_pipe function 5072 jobs.c save_pgrp_pipe (int *p, int clear) ++save_pipeline function 478 jobs.c save_pipeline (int clear) ++save_pipestatus_array function 6295 variables.c save_pipestatus_array (void) ++save_posix_options function 151 general.c save_posix_options (void) ++save_posix_options macro 149 general.c #undef save_posix_options ++save_proc_status function 971 jobs.c save_proc_status (pid_t pid, int status) ++saved_builtins variable 150 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c ARRAY *saved_builtins = (ARRAY *)NULL; ++saved_dollar_vars struct 5427 variables.c struct saved_dollar_vars { ++saved_pipeline variable 339 jobs.c static struct pipeline_saver *saved_pipeline; ++saved_posix_vars variable 100 general.c static char *saved_posix_vars = 0; ++savegid member 152 shell.h gid_t gid, egid, savegid; ++savestring macro 56 general.h # define savestring(x) (char *)strcpy (xmalloc (1 + strlen (x)), (x)) ++savestring macro 65 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x)) ++saveuid member 151 shell.h uid_t uid, euid, saveuid; ++sccs_version variable 44 version.c const char * const sccs_version = SCCSVERSION; ++scope member 36 variables.h int scope; /* 0 means global context */ ++search_for_command function 348 findcmd.c search_for_command (const char *pathname, int flags) ++second member 232 command.h COMMAND *second; /* Pointer to the second command. */ ++seconds_value_assigned variable 1325 variables.c static intmax_t seconds_value_assigned; ++seeded_subshell variable 1397 variables.c static int seeded_subshell = 0; ++seen variable 48 /usr/local/src/bash/bash-20230914/builtins/getopts.def silent mode, and an invalid option is seen, getopts places '?' into ++select_com struct 282 command.h typedef struct select_com { ++select_command label 948 parse.y select_command: SELECT WORD newline_list DO compound_list DONE ++select_query function 3342 execute_cmd.c select_query (WORD_LIST *list, int list_len, char *prompt, int print_menu) ++self_delimiting macro 291 alias.c #define self_delimiting(character) (member ((character), " \t\n\r;|&()")) ++semicolon function 1457 print_cmd.c semicolon (void) ++send_pwd_to_eterm function 262 eval.c send_pwd_to_eterm (void) ++separate_helpfiles variable 93 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c int separate_helpfiles = 0; ++separate_out_assignments function 12274 subst.c separate_out_assignments (WORD_LIST *tlist) ++sequences variable 34 /usr/local/src/bash/bash-20230914/builtins/printf.def sequences, which are converted and copied to the standard output; and ++set_argv0 function 1554 variables.c set_argv0 (void) ++set_array_expand function 917 /usr/local/src/bash/bash-20230914/builtins/shopt.def set_array_expand (char *option_name, int mode) ++set_auto_export macro 186 variables.h #define set_auto_export(var) \ ++set_bash_input function 1721 shell.c set_bash_input (void) ++set_bash_input_fd function 214 input.c set_bash_input_fd (int fd) ++set_bash_trapsig function 307 trap.c set_bash_trapsig (int sig) ++set_bashopts function 812 /usr/local/src/bash/bash-20230914/builtins/shopt.def set_bashopts (void) ++set_buffered_stream function 456 input.c set_buffered_stream (int fd, BUFFERED_STREAM *bp) ++set_builtin function 661 /usr/local/src/bash/bash-20230914/builtins/set.def set_builtin (WORD_LIST *list) ++set_compatibility_level function 647 /usr/local/src/bash/bash-20230914/builtins/shopt.def set_compatibility_level (char *option_name, int mode) ++set_compatibility_opts function 699 /usr/local/src/bash/bash-20230914/builtins/shopt.def set_compatibility_opts (void) ++set_context function 5143 variables.c set_context (SHELL_VAR *var) ++set_current_flags function 327 flags.c set_current_flags (const char *bitmap) ++set_current_job function 3391 jobs.c set_current_job (int job) ++set_current_options function 358 /usr/local/src/bash/bash-20230914/builtins/set.def set_current_options (const char *bitmap) ++set_debug_trap function 730 trap.c set_debug_trap (const char *command) ++set_default_lang function 326 locale.c set_default_lang (void) ++set_default_locale function 83 locale.c set_default_locale (void) ++set_default_locale_vars function 108 locale.c set_default_locale_vars (void) ++set_directory_hook function 3289 bashline.c set_directory_hook (void) ++set_dirstack_element function 633 /usr/local/src/bash/bash-20230914/builtins/pushd.def set_dirstack_element (intmax_t ind, int sign, char *value) ++set_dollar_vars_changed function 452 /usr/local/src/bash/bash-20230914/builtins/common.c set_dollar_vars_changed (void) ++set_dollar_vars_unchanged function 446 /usr/local/src/bash/bash-20230914/builtins/common.c set_dollar_vars_unchanged (void) ++set_edit_mode function 422 /usr/local/src/bash/bash-20230914/builtins/set.def set_edit_mode (int on_or_off, char *option_name) ++set_element_value macro 145 array.h #define set_element_value(ae, val) ((ae)->value = (val)) ++set_eol_delim function 1273 /usr/local/src/bash/bash-20230914/builtins/read.def set_eol_delim (int c) ++set_error_trap function 748 trap.c set_error_trap (const char *command) ++set_exit_status function 1059 shell.c set_exit_status (int s) ++set_expand_once function 1048 /usr/local/src/bash/bash-20230914/builtins/common.c set_expand_once (int nval, int uwp) ++set_filename_bstab function 4238 bashline.c set_filename_bstab (const char *string) ++set_filename_quote_chars function 4213 bashline.c set_filename_quote_chars (int expchar, int nextch, int closer) ++set_first_index macro 148 array.h #define set_first_index(a, i) ((a)->first_index = (i)) ++set_func member 178 /usr/local/src/bash/bash-20230914/builtins/shopt.def shopt_set_func_t *set_func; ++set_func member 192 /usr/local/src/bash/bash-20230914/builtins/set.def setopt_set_func_t *set_func; ++set_func_auto_export function 4075 variables.c set_func_auto_export (const char *name) ++set_func_read_only function 4053 variables.c set_func_read_only (const char *name) ++set_home_var function 750 variables.c set_home_var (void) ++set_if_not function 2556 variables.c set_if_not (const char *name, const char *value) ++set_ignoreeof function 390 /usr/local/src/bash/bash-20230914/builtins/set.def set_ignoreeof (int on_or_off, char *option_name) ++set_impossible_sigchld_trap function 699 trap.c set_impossible_sigchld_trap (void) ++set_int_value function 1293 variables.c set_int_value (SHELL_VAR *var, intmax_t value, int flags) ++set_itemlist_dirty function 212 pcomplete.c set_itemlist_dirty (ITEMLIST *it) ++set_itext function 1194 /usr/local/src/bash/bash-20230914/builtins/read.def set_itext (void) ++set_job_control function 4925 jobs.c set_job_control (int arg) ++set_job_running function 3485 jobs.c set_job_running (int job) ++set_job_status_and_cleanup function 3950 jobs.c set_job_status_and_cleanup (int job) ++set_jobs_list_frozen function 1026 nojobs.c set_jobs_list_frozen (int s) ++set_jobs_list_frozen function 4911 jobs.c set_jobs_list_frozen (int s) ++set_lang function 309 locale.c set_lang (const char *var, const char *value) ++set_locale_var function 181 locale.c set_locale_var (const char *var, const char *value) ++set_login_shell function 754 /usr/local/src/bash/bash-20230914/builtins/shopt.def set_login_shell (char *option_name, int mode) ++set_machine_vars function 725 variables.c set_machine_vars (void) ++set_max_index macro 151 array.h #define set_max_index(a, i) ((a)->max_index = (i)) ++set_maxchild function 5011 jobs.c set_maxchild (int nchild) ++set_minus_o_option function 476 /usr/local/src/bash/bash-20230914/builtins/set.def set_minus_o_option (int on_or_off, char *option_name) ++set_new_line_discipline function 4502 jobs.c set_new_line_discipline (int tty) ++set_num_elements macro 152 array.h #define set_num_elements(a, n) ((a)->num_elements = (n)) ++set_option_defaults function 1796 shell.c set_option_defaults (void) ++set_or_show_attributes function 121 /usr/local/src/bash/bash-20230914/builtins/setattr.def set_or_show_attributes (WORD_LIST *list, int attribute, int nodefs) ++set_original_signal function 913 trap.c set_original_signal (int sig, SigHandler *handler) ++set_pid_flags function 281 nojobs.c set_pid_flags (pid_t pid, int flags) ++set_pid_status function 251 nojobs.c set_pid_status (pid_t pid, WAIT status) ++set_pipestatus_array function 6206 variables.c set_pipestatus_array (int *ps, int nproc) ++set_pipestatus_from_exit function 6328 variables.c set_pipestatus_from_exit (int s) ++set_posix_mode function 403 /usr/local/src/bash/bash-20230914/builtins/set.def set_posix_mode (int on_or_off, char *option_name) ++set_posix_options function 157 general.c set_posix_options (const char *bitmap) ++set_ppid function 976 variables.c set_ppid (void) ++set_procsub_status function 6008 subst.c set_procsub_status (int ind, pid_t pid, int status) ++set_procsub_status function 6241 subst.c set_procsub_status (int ind, pid_t pid, int status) ++set_pwd function 913 variables.c set_pwd (void) ++set_readline_timeout function 1258 /usr/local/src/bash/bash-20230914/builtins/read.def set_readline_timeout (sh_timer *t, time_t sec, long usec) ++set_restricted_shell function 740 /usr/local/src/bash/bash-20230914/builtins/shopt.def set_restricted_shell (char *option_name, int mode) ++set_return_trap function 766 trap.c set_return_trap (const char *command) ++set_shell_name function 1761 shell.c set_shell_name (char *argv0) ++set_shell_var function 765 variables.c set_shell_var (void) ++set_shellopts function 531 /usr/local/src/bash/bash-20230914/builtins/set.def set_shellopts (void) ++set_shellopts_after_change function 604 /usr/local/src/bash/bash-20230914/builtins/shopt.def set_shellopts_after_change (char *option_name, int mode) ++set_shopt_o_options function 587 /usr/local/src/bash/bash-20230914/builtins/shopt.def set_shopt_o_options (int mode, WORD_LIST *list, int quiet) ++set_sigchld_handler function 5038 jobs.c set_sigchld_handler (void) ++set_sigchld_trap function 677 trap.c set_sigchld_trap (const char *command_string) ++set_sigint_handler function 789 trap.c set_sigint_handler (void) ++set_sigint_trap function 779 trap.c set_sigint_trap (const char *command) ++set_signal function 824 trap.c set_signal (int sig, const char *string) ++set_signal_async_ignored function 1618 trap.c set_signal_async_ignored (int sig) ++set_signal_handler macro 43 sig.h # define set_signal_handler(sig, handler) (SigHandler *)signal (sig, handler) ++set_signal_hard_ignored function 1605 trap.c set_signal_hard_ignored (int sig) ++set_signal_ignored function 1612 trap.c set_signal_ignored (int sig) ++set_string_value function 1306 variables.c set_string_value (SHELL_VAR *var, const char *value, int flags) ++set_trap_state function 535 trap.c set_trap_state (int sig) ++set_tty_state function 948 nojobs.c set_tty_state (void) ++set_tty_state function 2459 jobs.c set_tty_state (void) ++set_up_new_line function 2729 bashline.c set_up_new_line (char *new_line) ++set_var_attribute function 580 /usr/local/src/bash/bash-20230914/builtins/setattr.def set_var_attribute (char *name, int attribute, int undo) ++set_var_auto_export function 4065 variables.c set_var_auto_export (char *name) ++set_var_read_only function 4041 variables.c set_var_read_only (char *name) ++set_waitlist function 333 /usr/local/src/bash/bash-20230914/builtins/wait.def set_waitlist (WORD_LIST *list) ++set_working_directory function 609 /usr/local/src/bash/bash-20230914/builtins/common.c set_working_directory (const char *name) ++setifs function 12119 subst.c setifs (SHELL_VAR *v) ++setjmp_nosigs macro 31 /usr/local/src/bash/bash-20230914/include/posixjmp.h # define setjmp_nosigs(x) sigsetjmp((x), 0) ++setjmp_nosigs macro 39 /usr/local/src/bash/bash-20230914/include/posixjmp.h # define setjmp_nosigs setjmp ++setjmp_sigs macro 32 /usr/local/src/bash/bash-20230914/include/posixjmp.h # define setjmp_sigs(x) sigsetjmp((x), 1) ++setjmp_sigs macro 40 /usr/local/src/bash/bash-20230914/include/posixjmp.h # define setjmp_sigs setjmp ++setjstatus function 4124 jobs.c setjstatus (int j) ++setlocale macro 47 bashintl.h # define setlocale(cat, loc) ++setopt_get_func_t typedef 159 /usr/local/src/bash/bash-20230914/builtins/set.def typedef int setopt_get_func_t (char *); ++setopt_set_func_t typedef 158 /usr/local/src/bash/bash-20230914/builtins/set.def typedef int setopt_set_func_t (int, char *); ++setpgid macro 353 jobs.c #define setpgid(pid, pgrp) setpgrp (pid, pgrp) ++setpwd function 118 /usr/local/src/bash/bash-20230914/builtins/cd.def setpwd (char *dirname) ++setup_async_signals function 5600 execute_cmd.c setup_async_signals (void) ++setup_exec_ignore function 92 findcmd.c setup_exec_ignore (const char *varname) ++setup_glob_ignore function 496 pathexp.c setup_glob_ignore (const char *name) ++setup_globsort function 714 pathexp.c setup_globsort (const char *varname) ++setup_history_ignore function 997 bashhist.c setup_history_ignore (const char *varname) ++setup_ignore_patterns function 616 pathexp.c setup_ignore_patterns (struct ignorevar *ivp) ++sh_ae_map_func_t typedef 53 array.h typedef int sh_ae_map_func_t (ARRAY_ELEMENT *, void *); ++sh_alias_map_func_t typedef 51 alias.c typedef int sh_alias_map_func_t (alias_t *); ++sh_allocerr function 147 xmalloc.c sh_allocerr (const char *func, size_t bytes, char *file, int line) ++sh_assign_func_t typedef 225 general.h typedef int sh_assign_func_t (const char *); ++sh_badjob function 257 /usr/local/src/bash/bash-20230914/builtins/common.c sh_badjob (const char *s) ++sh_badopt variable 81 /usr/local/src/bash/bash-20230914/builtins/getopt.c int sh_badopt = 0; ++sh_badpid function 229 /usr/local/src/bash/bash-20230914/builtins/common.c sh_badpid (const char *s) ++sh_builtin_func_t typedef 231 general.h typedef int sh_builtin_func_t (WORD_LIST *); /* sh_wlist_func_t */ ++sh_cget_func_t typedef 26 input.h typedef int sh_cget_func_t (void); /* sh_ivoidfunc_t */ ++sh_charindex variable 67 /usr/local/src/bash/bash-20230914/builtins/getopt.c static int sh_charindex; ++sh_chkwrite function 308 /usr/local/src/bash/bash-20230914/builtins/common.c sh_chkwrite (int s) ++sh_closepipe function 745 general.c sh_closepipe (int *pv) ++sh_coproc variable 1842 execute_cmd.c Coproc sh_coproc = { 0, NO_PID, -1, -1, 0, 0, 0, 0, 0 }; ++sh_cunget_func_t typedef 27 input.h typedef int sh_cunget_func_t (int); /* sh_intfunc_t */ ++sh_curopt variable 57 /usr/local/src/bash/bash-20230914/builtins/getopt.c static int sh_curopt; ++sh_erange function 247 /usr/local/src/bash/bash-20230914/builtins/common.c sh_erange (const char *s, const char *desc) ++sh_exit function 1029 shell.c sh_exit (int s) ++sh_free_func_t typedef 220 general.h typedef void sh_free_func_t (PTR_T); /* sh_vptrfunc_t */ ++sh_gcp_func_t typedef 210 general.h typedef int sh_gcp_func_t (GENERIC_LIST *, char *); ++sh_get_env_value function 2511 variables.c sh_get_env_value (const char *v) ++sh_get_home_dir function 742 variables.c sh_get_home_dir (void) ++sh_getopt function 114 /usr/local/src/bash/bash-20230914/builtins/getopt.c sh_getopt (int argc, char *const *argv, const char *optstring) ++sh_getopt_alloc_istate function 223 /usr/local/src/bash/bash-20230914/builtins/getopt.c sh_getopt_alloc_istate () ++sh_getopt_dispose_istate function 232 /usr/local/src/bash/bash-20230914/builtins/getopt.c sh_getopt_dispose_istate (sh_getopt_state_t *gs) ++sh_getopt_restore_istate function 255 /usr/local/src/bash/bash-20230914/builtins/getopt.c sh_getopt_restore_istate (sh_getopt_state_t *state) ++sh_getopt_restore_state function 216 /usr/local/src/bash/bash-20230914/builtins/getopt.c sh_getopt_restore_state (char **argv) ++sh_getopt_save_istate function 238 /usr/local/src/bash/bash-20230914/builtins/getopt.c sh_getopt_save_istate (void) ++sh_getopt_state struct 64 /usr/local/src/bash/bash-20230914/builtins/getopt.h typedef struct sh_getopt_state ++sh_getopt_state_t typedef 72 /usr/local/src/bash/bash-20230914/builtins/getopt.h } sh_getopt_state_t; ++sh_glist_func_t typedef 209 general.h typedef int sh_glist_func_t (GENERIC_LIST *); ++sh_icpfunc_t typedef 196 general.h typedef int sh_icpfunc_t (char *); ++sh_icppfunc_t typedef 197 general.h typedef int sh_icppfunc_t (char **); ++sh_ignore_func_t typedef 223 general.h typedef int sh_ignore_func_t (const char *); /* sh_icpfunc_t */ ++sh_imaxabs macro 123 /usr/local/src/bash/bash-20230914/include/typemax.h # define sh_imaxabs(x) (((x) >= 0) ? (x) : -(x)) ++sh_input_line_state_t typedef 232 shell.h } sh_input_line_state_t; ++sh_intfunc_t typedef 194 general.h typedef int sh_intfunc_t (int); ++sh_invalidid function 203 /usr/local/src/bash/bash-20230914/builtins/common.c sh_invalidid (const char *s) ++sh_invalidnum function 209 /usr/local/src/bash/bash-20230914/builtins/common.c sh_invalidnum (const char *s) ++sh_invalidopt function 191 /usr/local/src/bash/bash-20230914/builtins/common.c sh_invalidopt (const char *s) ++sh_invalidoptname function 197 /usr/local/src/bash/bash-20230914/builtins/common.c sh_invalidoptname (const char *s) ++sh_invalidsig function 223 /usr/local/src/bash/bash-20230914/builtins/common.c sh_invalidsig (const char *s) ++sh_iptrfunc_t typedef 198 general.h typedef int sh_iptrfunc_t (PTR_T); ++sh_iv_item_func_t typedef 91 pathexp.h typedef int sh_iv_item_func_t (struct ign *); ++sh_ivoidfunc_t typedef 195 general.h typedef int sh_ivoidfunc_t (void); ++sh_job_map_func_t typedef 163 jobs.c typedef int sh_job_map_func_t (JOB *, int, int, int); ++sh_load_func_t typedef 228 general.h typedef int sh_load_func_t (char *); ++sh_longjmp macro 35 /usr/local/src/bash/bash-20230914/include/posixjmp.h # define sh_longjmp(x, n) siglongjmp((x), (n)) ++sh_longjmp macro 43 /usr/local/src/bash/bash-20230914/include/posixjmp.h # define sh_longjmp(x, n) longjmp((x), (n)) ++sh_msg_func_t typedef 214 general.h typedef int sh_msg_func_t (const char *, ...); /* printf(3)-like */ ++sh_needarg function 171 /usr/local/src/bash/bash-20230914/builtins/common.c sh_needarg (const char *s) ++sh_neednumarg function 177 /usr/local/src/bash/bash-20230914/builtins/common.c sh_neednumarg (const char *s) ++sh_noassign function 241 /usr/local/src/bash/bash-20230914/builtins/common.c sh_noassign (const char *s) ++sh_nojobs function 263 /usr/local/src/bash/bash-20230914/builtins/common.c sh_nojobs (const char *s) ++sh_notbuiltin function 284 /usr/local/src/bash/bash-20230914/builtins/common.c sh_notbuiltin (const char *s) ++sh_notfound function 183 /usr/local/src/bash/bash-20230914/builtins/common.c sh_notfound (const char *s) ++sh_obj_cache_t typedef 53 /usr/local/src/bash/bash-20230914/include/ocache.h } sh_obj_cache_t; ++sh_openpipe function 731 general.c sh_openpipe (int *pv) ++sh_optarg variable 39 /usr/local/src/bash/bash-20230914/builtins/getopt.c char *sh_optarg = 0; ++sh_opterr variable 72 /usr/local/src/bash/bash-20230914/builtins/getopt.c int sh_opterr = 1; ++sh_optind variable 54 /usr/local/src/bash/bash-20230914/builtins/getopt.c int sh_optind = 0; ++sh_optopt variable 78 /usr/local/src/bash/bash-20230914/builtins/getopt.c int sh_optopt = '?'; ++sh_parser_state_t typedef 220 shell.h } sh_parser_state_t; ++sh_readonly function 235 /usr/local/src/bash/bash-20230914/builtins/common.c sh_readonly (const char *s) ++sh_resetsig_func_t typedef 221 general.h typedef void sh_resetsig_func_t (int); /* sh_vintfunc_t */ ++sh_restricted function 274 /usr/local/src/bash/bash-20230914/builtins/common.c sh_restricted (const char *s) ++sh_set_lines_and_columns function 1046 variables.c sh_set_lines_and_columns (int lines, int cols) ++sh_setclexec function 581 general.c sh_setclexec (int fd) ++sh_sortglob function 855 pathexp.c sh_sortglob (char **results) ++sh_string_func_t typedef 212 general.h typedef char *sh_string_func_t (char *); /* like savestring, et al. */ ++sh_sv_func_t typedef 219 general.h typedef void sh_sv_func_t (const char *); ++sh_ttyerror function 299 /usr/local/src/bash/bash-20230914/builtins/common.c sh_ttyerror (int set) ++sh_unload_func_t typedef 229 general.h typedef void sh_unload_func_t (char *); ++sh_unset_nodelay_mode function 551 general.c sh_unset_nodelay_mode (int fd) ++sh_uwfunc_t typedef 30 unwind_prot.h typedef void sh_uwfunc_t (void *); ++sh_validfd function 588 general.c sh_validfd (int fd) ++sh_var_assign_func_t typedef 65 variables.h typedef struct variable *sh_var_assign_func_t (struct variable *, char *, arrayind_t, char *); ++sh_var_map_func_t typedef 234 variables.h typedef int sh_var_map_func_t (SHELL_VAR *); ++sh_var_value_func_t typedef 64 variables.h typedef struct variable *sh_var_value_func_t (struct variable *); ++sh_vcpfunc_t typedef 202 general.h typedef void sh_vcpfunc_t (char *); ++sh_vcppfunc_t typedef 203 general.h typedef void sh_vcppfunc_t (char **); ++sh_vintfunc_t typedef 201 general.h typedef void sh_vintfunc_t (int); ++sh_vmsg_func_t typedef 215 general.h typedef void sh_vmsg_func_t (const char *, ...); /* printf(3)-like */ ++sh_voidfunc_t typedef 200 general.h typedef void sh_voidfunc_t (void); ++sh_vptrfunc_t typedef 204 general.h typedef void sh_vptrfunc_t (PTR_T); ++sh_wassign_func_t typedef 226 general.h typedef int sh_wassign_func_t (const WORD_DESC *, int); ++sh_wdesc_func_t typedef 206 general.h typedef int sh_wdesc_func_t (WORD_DESC *); ++sh_wlist_func_t typedef 207 general.h typedef int sh_wlist_func_t (WORD_LIST *); ++sh_wrerror function 290 /usr/local/src/bash/bash-20230914/builtins/common.c sh_wrerror (void) ++sh_xfree function 196 xmalloc.c sh_xfree (PTR_T string, char *file, int line) ++sh_xmalloc function 158 xmalloc.c sh_xmalloc (size_t bytes, char *file, int line) ++sh_xrealloc function 177 xmalloc.c sh_xrealloc (PTR_T pointer, size_t bytes, char *file, int line) ++shell member 154 shell.h char *shell; /* shell from the password file */ ++shell variable 28 /usr/local/src/bash/bash-20230914/builtins/eval.def Combine ARGs into a single string, use the result as input to the shell, ++shell_break_chars macro 30 syntax.h #define shell_break_chars "()<>;&| \t\n" ++shell_builtin_compare function 892 /usr/local/src/bash/bash-20230914/builtins/common.c shell_builtin_compare (const struct builtin *sbp1, const struct builtin *sbp2) ++shell_command label 850 parse.y shell_command: for_command ++shell_comment function 657 bashhist.c shell_comment (char *line) ++shell_compatibility_level variable 50 version.c int shell_compatibility_level = DEFAULT_COMPAT_LEVEL; ++shell_control_structure function 454 execute_cmd.c shell_control_structure (enum command_type type) ++shell_environment variable 171 shell.c char **shell_environment; ++shell_execve function 6007 execute_cmd.c shell_execve (char *command, char **args, char **env) ++shell_exp_chars macro 35 syntax.h # define shell_exp_chars "$<>" ++shell_exp_chars macro 37 syntax.h # define shell_exp_chars "$" ++shell_expand_line function 2885 bashline.c shell_expand_line (int count, int ignore) ++shell_expand_word_list function 12881 subst.c shell_expand_word_list (WORD_LIST *tlist, int eflags) ++shell_flags variable 165 flags.c const struct flags_alist shell_flags[] = { ++shell_function_defs variable 133 variables.c HASH_TABLE *shell_function_defs = (HASH_TABLE *)NULL; ++shell_functions variable 126 variables.c HASH_TABLE *shell_functions = (HASH_TABLE *)NULL; ++shell_glob_chars macro 45 syntax.h #define shell_glob_chars "*?[]^" ++shell_glob_filename function 431 pathexp.c shell_glob_filename (const char *pathname, int qflags) ++shell_initialize function 1895 shell.c shell_initialize (void) ++shell_initialized variable 112 shell.c int shell_initialized = 0; ++shell_is_restricted function 1251 shell.c shell_is_restricted (char *name) ++shell_level variable 171 variables.c int shell_level = 0; ++shell_ltchars variable 2372 jobs.c static struct ltchars shell_ltchars; ++shell_meta_chars macro 29 syntax.h #define shell_meta_chars "()<>;&|" ++shell_name variable 183 shell.c char *shell_name = (char *)NULL; ++shell_pgrp variable 192 jobs.c pid_t shell_pgrp = NO_PID; ++shell_quote_chars macro 32 syntax.h #define shell_quote_chars "\"`'" ++shell_reinitialize function 1975 shell.c shell_reinitialize (void) ++shell_reinitialized variable 307 shell.c static int shell_reinitialized = 0; ++shell_script_filename variable 303 shell.c char *shell_script_filename; /* shell script */ ++shell_start_time variable 186 shell.c time_t shell_start_time; ++shell_tchars variable 2371 jobs.c static struct tchars shell_tchars; ++shell_tty variable 87 nojobs.c int shell_tty = -1; ++shell_tty variable 189 jobs.c int shell_tty = -1; ++shell_tty_info variable 926 nojobs.c static TTYSTRUCT shell_tty_info; ++shell_tty_info variable 2368 jobs.c static TTYSTRUCT shell_tty_info; ++shell_variables variable 122 variables.c VAR_CONTEXT *shell_variables = (VAR_CONTEXT *)NULL; ++shell_version_string function 60 version.c shell_version_string (void) ++shellblank macro 76 syntax.h #define shellblank(c) (sh_syntaxtab[(unsigned char)(c)] & CBLANK) ++shellbreak macro 72 syntax.h #define shellbreak(c) (sh_syntaxtab[(unsigned char)(c)] & CSHBRK) ++shellexp macro 84 syntax.h # define shellexp(c) ((c) == '$' || (c) == '<' || (c) == '>') ++shellexp macro 86 syntax.h # define shellexp(c) ((c) == '$') ++shellmeta macro 71 syntax.h #define shellmeta(c) (sh_syntaxtab[(unsigned char)(c)] & CSHMETA) ++shellquote macro 73 syntax.h #define shellquote(c) (sh_syntaxtab[(unsigned char)(c)] & CQUOTE) ++shellstart variable 187 shell.c struct timeval shellstart; ++shellxquote macro 74 syntax.h #define shellxquote(c) (sh_syntaxtab[(unsigned char)(c)] & CXQUOTE) ++shift_args function 385 /usr/local/src/bash/bash-20230914/builtins/common.c shift_args (int times) ++shift_builtin function 57 /usr/local/src/bash/bash-20230914/builtins/shift.def shift_builtin (WORD_LIST *list) ++shifts variable 40 /usr/local/src/bash/bash-20230914/builtins/let.def <<, >> left and right bitwise shifts ++shopt_alist variable 311 shell.c static STRING_INT_ALIST *shopt_alist; ++shopt_builtin function 295 /usr/local/src/bash/bash-20230914/builtins/shopt.def shopt_builtin (WORD_LIST *list) ++shopt_compat31 variable 162 /usr/local/src/bash/bash-20230914/builtins/shopt.def static int shopt_compat31; ++shopt_compat32 variable 163 /usr/local/src/bash/bash-20230914/builtins/shopt.def static int shopt_compat32; ++shopt_compat40 variable 164 /usr/local/src/bash/bash-20230914/builtins/shopt.def static int shopt_compat40; ++shopt_compat41 variable 165 /usr/local/src/bash/bash-20230914/builtins/shopt.def static int shopt_compat41; ++shopt_compat42 variable 166 /usr/local/src/bash/bash-20230914/builtins/shopt.def static int shopt_compat42; ++shopt_compat43 variable 167 /usr/local/src/bash/bash-20230914/builtins/shopt.def static int shopt_compat43; ++shopt_compat44 variable 168 /usr/local/src/bash/bash-20230914/builtins/shopt.def static int shopt_compat44; ++shopt_enable_hostname_completion function 640 /usr/local/src/bash/bash-20230914/builtins/shopt.def shopt_enable_hostname_completion (char *option_name, int mode) ++shopt_error function 448 /usr/local/src/bash/bash-20230914/builtins/shopt.def shopt_error (char *s) ++shopt_ind variable 312 shell.c static int shopt_ind = 0, shopt_len = 0; ++shopt_len variable 312 shell.c static int shopt_ind = 0, shopt_len = 0; ++shopt_listopt function 793 /usr/local/src/bash/bash-20230914/builtins/shopt.def shopt_listopt (char *name, int reusable) ++shopt_login_shell variable 161 /usr/local/src/bash/bash-20230914/builtins/shopt.def static int shopt_login_shell; ++shopt_set_complete_direxpand function 729 /usr/local/src/bash/bash-20230914/builtins/shopt.def shopt_set_complete_direxpand (char *option_name, int mode) ++shopt_set_debug_mode function 611 /usr/local/src/bash/bash-20230914/builtins/shopt.def shopt_set_debug_mode (char *option_name, int mode) ++shopt_set_expaliases function 623 /usr/local/src/bash/bash-20230914/builtins/shopt.def shopt_set_expaliases (char *option_name, int mode) ++shopt_set_extglob function 631 /usr/local/src/bash/bash-20230914/builtins/shopt.def shopt_set_extglob (char *option_name, int mode) ++shopt_set_func_t typedef 170 /usr/local/src/bash/bash-20230914/builtins/shopt.def typedef int shopt_set_func_t (char *, int); ++shopt_setopt function 781 /usr/local/src/bash/bash-20230914/builtins/shopt.def shopt_setopt (char *name, int mode) ++shopt_vars variable 179 /usr/local/src/bash/bash-20230914/builtins/shopt.def } shopt_vars[] = { ++short_doc member 58 builtins.h const char *short_doc; /* Short version of documentation. */ ++short_doc_handler function 880 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c short_doc_handler (char *self, DEF_FILE *defs, char *arg) ++shortdoc member 132 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *shortdoc; /* The short documentation for this builtin. */ ++should_expand function 974 bashhist.c should_expand (char *s) ++should_ignore_glob_matches function 510 pathexp.c should_ignore_glob_matches (void) ++should_optimize_fork function 106 /usr/local/src/bash/bash-20230914/builtins/evalstring.c should_optimize_fork (COMMAND *command, int subshell) ++should_suppress_fork function 122 /usr/local/src/bash/bash-20230914/builtins/evalstring.c should_suppress_fork (COMMAND *command) ++shouldexp_filterpat function 244 pcomplete.c shouldexp_filterpat (char *s) ++shouldexp_replacement function 9019 subst.c shouldexp_replacement (const char *s) ++show_all_var_attributes function 349 /usr/local/src/bash/bash-20230914/builtins/setattr.def show_all_var_attributes (int v, int nodefs) ++show_builtin_command_help function 495 /usr/local/src/bash/bash-20230914/builtins/help.def show_builtin_command_help (void) ++show_desc function 246 /usr/local/src/bash/bash-20230914/builtins/help.def show_desc (char *name, int i) ++show_func_attributes function 562 /usr/local/src/bash/bash-20230914/builtins/setattr.def show_func_attributes (char *name, int nodefs) ++show_local_var_attributes function 376 /usr/local/src/bash/bash-20230914/builtins/setattr.def show_local_var_attributes (int v, int nodefs) ++show_localname_attributes function 542 /usr/local/src/bash/bash-20230914/builtins/setattr.def show_localname_attributes (char *name, int nodefs) ++show_longdoc function 224 /usr/local/src/bash/bash-20230914/builtins/help.def show_longdoc (int i) ++show_manpage function 283 /usr/local/src/bash/bash-20230914/builtins/help.def show_manpage (char *name, int i) ++show_name_attributes function 526 /usr/local/src/bash/bash-20230914/builtins/setattr.def show_name_attributes (char *name, int nodefs) ++show_shell_usage function 2027 shell.c show_shell_usage (FILE *fp, int extra) ++show_shell_version function 83 version.c show_shell_version (int extended) ++show_var_attributes function 471 /usr/local/src/bash/bash-20230914/builtins/setattr.def show_var_attributes (SHELL_VAR *var, int pattr, int nodefs) ++showing_function_line variable 278 execute_cmd.c static int showing_function_line; ++showtrap function 287 /usr/local/src/bash/bash-20230914/builtins/trap.def showtrap (int i, int show_default) ++sigaddset macro 71 sig.h # define sigaddset(set, sig) *(set) |= sigmask (sig) ++sigalrm function 157 /usr/local/src/bash/bash-20230914/builtins/read.def sigalrm (int s) ++sigchld variable 317 jobs.c static int sigchld; ++sigchld_handler function 3708 jobs.c sigchld_handler (int sig) ++sigcont_sighandler function 4578 jobs.c sigcont_sighandler (int sig) ++sigdelset macro 74 sig.h # define sigdelset(set, sig) *(set) &= ~sigmask (sig) ++sigemptyset macro 65 sig.h # define sigemptyset(set) (*(set) = 0) ++sigfillset macro 68 sig.h # define sigfillset(set) (*set) = sigmask (NSIG) - 1 ++sighandler macro 34 sig.h #define sighandler void ++siginterrupt function 453 nojobs.c siginterrupt (int sig, int flag) ++siginterrupt macro 59 nojobs.c # define siginterrupt(sig, code) ++sigismember macro 77 sig.h # define sigismember(set, sig) ((*(set) & sigmask (sig)) != 0) ++sigmask macro 53 sig.h # define sigmask(x) (1 << ((x)-1)) ++sigmodes variable 76 trap.c static int sigmodes[BASH_NSIG]; ++signal_in_progress function 1631 trap.c signal_in_progress (int sig) ++signal_is_async_ignored function 1625 trap.c signal_is_async_ignored (int sig) ++signal_is_hard_ignored function 1599 trap.c signal_is_hard_ignored (int sig) ++signal_is_ignored function 1593 trap.c signal_is_ignored (int sig) ++signal_is_pending function 1581 trap.c signal_is_pending (int sig) ++signal_is_special function 1587 trap.c signal_is_special (int sig) ++signal_is_trapped function 456 hashlib.c signal_is_trapped (int s) ++signal_is_trapped function 1037 array.c signal_is_trapped(int s) ++signal_is_trapped function 1575 trap.c signal_is_trapped (int sig) ++signal_name function 219 trap.c signal_name (int sig) ++signal_object_p macro 55 trap.h #define signal_object_p(x,f) (decode_signal (x,f) != NO_SIG) ++signed macro 50 /usr/local/src/bash/bash-20230914/include/stdc.h # define signed __signed ++signed macro 63 /usr/local/src/bash/bash-20230914/include/stdc.h # define signed ++sigstop_sighandler function 4589 jobs.c sigstop_sighandler (int sig) ++sigsuspend macro 81 sig.h # define sigsuspend(set) sigpause (*(set)) ++simple_com struct 337 command.h typedef struct simple_com { ++simple_command label 818 parse.y simple_command: simple_command_element ++simple_command_element label 791 parse.y simple_command_element: WORD ++simple_list label 1284 parse.y simple_list: simple_list1 ++simple_list1 label 1334 parse.y simple_list1: simple_list1 AND_AND newline_list simple_list1 ++simple_list_terminator label 1254 parse.y simple_list_terminator: '\n' ++sindex member 122 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c int sindex; /* Current location in array. */ ++single_longdoc_strings variable 97 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c int single_longdoc_strings = 1; ++singlequote_translations variable 56 locale.c int singlequote_translations = 0; /* single-quote output of $"..." */ ++size member 50 /usr/local/src/bash/bash-20230914/lib/malloc/table.h size_t size; ++size member 58 unwind_prot.c int size; ++size member 121 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c int size; /* Number of slots allocated to array. */ ++size member 140 shell.h int size; ++size member 690 pathexp.c off_t size; ++skip_double_quoted function 1005 subst.c skip_double_quoted (const char *string, size_t slen, size_t sind, int flags) ++skip_matched_pair function 2071 subst.c skip_matched_pair (const char *string, int start, int open, int close, int flags) ++skip_single_quoted function 1118 subst.c skip_single_quoted (const char *string, size_t slen, size_t sind, int flags) ++skip_this_indent variable 125 print_cmd.c static int skip_this_indent; ++skip_to_delim function 2184 subst.c skip_to_delim (const char *string, int start, const char *delims, int flags) ++skip_to_histexp function 2362 subst.c skip_to_histexp (const char *string, int start, const char *delims, int flags) ++skiparith function 8254 subst.c skiparith (char *substr, int delim) ++skipquotes function 313 alias.c skipquotes (char *string, int start) ++skipsubscript function 2171 subst.c skipsubscript (const char *string, int start, int flags) ++skipws function 340 alias.c skipws (char *string, int start) ++slashify_in_here_document macro 27 syntax.h #define slashify_in_here_document "\\`$" ++slashify_in_quotes macro 26 syntax.h #define slashify_in_quotes "\\`$\"\n" ++slist member 93 pcomplete.h STRINGLIST *slist; ++snarf_hosts_from_file function 794 bashline.c snarf_hosts_from_file (const char *filename) ++sort_aliases function 255 alias.c sort_aliases (alias_t **array) ++sort_variables function 4212 variables.c sort_variables (SHELL_VAR **array) ++sorttypes variable 676 pathexp.c static STRING_INT_ALIST sorttypes[] = { ++source_a member 31 execute_cmd.h ARRAY *source_a; ++source_builtin function 116 /usr/local/src/bash/bash-20230914/builtins/source.def source_builtin (WORD_LIST *list) ++source_file function 367 /usr/local/src/bash/bash-20230914/builtins/evalfile.c source_file (const char *filename, int sflags) ++source_file member 351 command.h char *source_file; /* file in which function was defined, if any */ ++source_searches_cwd variable 90 /usr/local/src/bash/bash-20230914/builtins/source.def int source_searches_cwd = 1; ++source_uses_path variable 86 /usr/local/src/bash/bash-20230914/builtins/source.def int source_uses_path = 1; ++source_v member 32 execute_cmd.h SHELL_VAR *source_v; ++sourced_env variable 209 shell.c static int sourced_env; ++sourced_logout variable 52 /usr/local/src/bash/bash-20230914/builtins/exit.def static int sourced_logout; ++sourcelevel variable 73 /usr/local/src/bash/bash-20230914/builtins/evalfile.c int sourcelevel = 0; ++sourcenest variable 310 execute_cmd.c int sourcenest = 0; ++sourcenest_max variable 311 execute_cmd.c int sourcenest_max = SOURCENEST_MAX; ++sp variable 39 /usr/local/src/bash/bash-20230914/builtins/bashgetopt.c static int sp; ++spacesep variable 66 array.c static char *spacesep = " "; ++spctabnl macro 117 general.h #define spctabnl(c) ((c) == ' ' || (c) == '\t' || (c) == '\n') ++special_builtin_failed variable 268 execute_cmd.c static int special_builtin_failed; ++special_builtins variable 153 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *special_builtins[] = ++special_vars variable 5675 variables.c static struct name_and_function special_vars[] = { ++specialvar_p macro 155 variables.h #define specialvar_p(var) ((((var)->attributes) & (att_special))) ++specifications variable 35 /usr/local/src/bash/bash-20230914/builtins/printf.def format specifications, each of which causes printing of the next successive ++split_at_delims function 2601 subst.c split_at_delims (const char *string, int slen, const char *delims, int sentinel, int flags, int *nwp, int *cwp) ++split_ignorespec function 594 pathexp.c split_ignorespec (char *s, int *ip) ++split_kvpair_assignments variable 620 arrayfunc.c int split_kvpair_assignments = 0; ++ssh_reading_startup_files variable 165 shell.c int ssh_reading_startup_files = 0; ++st member 699 pathexp.c struct globstat st; ++st_bstream enumerator 29 input.h enum stream_type {st_none, st_stdin, st_stream, st_string, st_bstream}; ++st_none enumerator 29 input.h enum stream_type {st_none, st_stdin, st_stream, st_string, st_bstream}; ++st_stdin enumerator 29 input.h enum stream_type {st_none, st_stdin, st_stream, st_string, st_bstream}; ++st_stream enumerator 29 input.h enum stream_type {st_none, st_stdin, st_stream, st_string, st_bstream}; ++st_string enumerator 29 input.h enum stream_type {st_none, st_stdin, st_stream, st_string, st_bstream}; ++stack variable 30 /usr/local/src/bash/bash-20230914/builtins/pushd.def the stack, making the new top of the stack the current working ++stack variable 63 /usr/local/src/bash/bash-20230914/builtins/pushd.def the top directory from the stack, and changes to the new top directory. ++start_debugger function 1540 shell.c start_debugger (void) ++start_job function 3509 jobs.c start_job (int job, int foreground) ++start_pipeline function 520 jobs.c start_pipeline (void) ++start_pipeline function 978 nojobs.c start_pipeline (void) ++startup_state variable 162 shell.c int startup_state = 0; ++stat_mtime function 296 test.c stat_mtime (const char *fn, struct stat *st, struct timespec *ts) ++state member 125 jobs.h JOB_STATE state; /* The state that this job is in. */ ++static_shell_name variable 1531 variables.c static char *static_shell_name = 0; ++statsize variable 312 jobs.c static int statsize; ++status member 68 jobs.h WAIT status; /* The status of this command as returned by wait. */ ++status member 102 nojobs.c int status; /* Exit status of PID or 128 + fatal signal number */ ++status member 166 jobs.h bits16_t status; /* only 8 bits really needed */ ++status member 183 jobs.h bits16_t status; ++stdin_redir variable 199 execute_cmd.c int stdin_redir; ++stdin_redirection function 1348 redir.c stdin_redirection (enum r_instruction ri, int redirector) ++stdin_redirects function 1382 redir.c stdin_redirects (REDIRECT *redirs) ++step member 275 command.h WORD_LIST *step; ++stop_making_children function 429 jobs.c stop_making_children (void) ++stop_making_children function 984 nojobs.c stop_making_children (void) ++stop_pipeline function 550 jobs.c stop_pipeline (int async, COMMAND *deferred) ++stop_pipeline function 971 nojobs.c stop_pipeline (int async, COMMAND *ignore) ++storage member 170 jobs.h struct pidstat *storage; /* storage arena */ ++str_firstdiff function 274 stringlib.c str_firstdiff (const char *s, const char *t) ++str_lastsame function 287 stringlib.c str_lastsame (const char *old, const char *new) ++strcreplace function 178 stringlib.c strcreplace (const char *string, int c, const char *text, int flags) ++stream_type enum 29 input.h enum stream_type {st_none, st_stdin, st_stream, st_string, st_bstream}; ++strescape function 331 error.c strescape (const char *str) ++string member 74 input.h char *string; ++string variable 31 /usr/local/src/bash/bash-20230914/builtins/fc.def string, which means the most recent command beginning with that ++string_extract function 782 subst.c string_extract (const char *string, size_t *sindex, const char *charlist, int flags) ++string_extract_double_quoted function 843 subst.c string_extract_double_quoted (const char *string, size_t *sindex, int flags) ++string_extract_single_quoted function 1079 subst.c string_extract_single_quoted (const char *string, size_t *sindex, int allowesc) ++string_extract_verbatim function 1139 subst.c string_extract_verbatim (const char *string, size_t slen, size_t *sindex, char *charlist, int flags) ++string_gcd function 48 bracecomp.c string_gcd (char *s1, char *s2) ++string_list function 2839 subst.c string_list (WORD_LIST *list) ++string_list_dollar_at function 2942 subst.c string_list_dollar_at (WORD_LIST *list, int quoted, int flags) ++string_list_dollar_star function 2887 subst.c string_list_dollar_star (WORD_LIST *list, int quoted, int flags) ++string_list_internal function 2788 subst.c string_list_internal (WORD_LIST *list, char *sep) ++string_list_pos_params function 3015 subst.c string_list_pos_params (int pchar, WORD_LIST *list, int quoted, int pflags) ++string_quote_removal function 12010 subst.c string_quote_removal (const char *string, int quoted) ++string_rest_of_args function 3716 subst.c string_rest_of_args (int dollar_star) ++string_to_rlimtype function 173 general.c string_to_rlimtype (char *s) ++string_to_rlimtype macro 133 /usr/local/src/bash/bash-20230914/builtins/ulimit.def # define string_to_rlimtype(s) strtol(s, (char **)NULL, 10) ++string_transform function 8605 subst.c string_transform (int xc, SHELL_VAR *v, char *s) ++string_var_assignment function 8523 subst.c string_var_assignment (SHELL_VAR *v, char *s) ++strip_leading function 240 stringlib.c strip_leading (char *string) ++strip_trailing function 260 stringlib.c strip_trailing (char *string, int len, int newlines_only) ++strip_trailing_ifs_whitespace function 3352 subst.c strip_trailing_ifs_whitespace (char *string, char *separators, int saw_escape) ++strip_whitespace function 711 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c strip_whitespace (char *string) ++strlong function 1535 expr.c strlong (char *num) ++strsignal macro 37 siglist.h # define strsignal(sig) (char *)sys_siglist[sig] ++strsub function 134 stringlib.c strsub (const char *string, const char *pat, const char *rep, int global) ++strtofltmax macro 216 /usr/local/src/bash/bash-20230914/builtins/printf.def # define strtofltmax strtold ++strtofltmax macro 221 /usr/local/src/bash/bash-20230914/builtins/printf.def # define strtofltmax strtod ++struct_filename variable 108 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *struct_filename = (char *)NULL; ++structfile_footer variable 1119 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *structfile_footer[] = { ++structfile_header variable 1077 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c char *structfile_header[] = { ++stupidly_hack_special_variables function 5795 variables.c stupidly_hack_special_variables (const char *name) ++su_shell variable 206 shell.c static int su_shell; ++sub_append_string function 735 subst.c sub_append_string (char *source, char *target, size_t *indx, size_t *size) ++subexpr function 445 expr.c subexpr (const char *expr) ++subshell label 1050 parse.y subshell: '(' compound_list ')' ++subshell_argc variable 288 shell.c int subshell_argc; ++subshell_argv variable 289 shell.c char **subshell_argv; ++subshell_com struct 361 command.h typedef struct subshell_com { ++subshell_env member 43 execute_cmd.h int subshell_env; ++subshell_environment variable 253 execute_cmd.c int subshell_environment; ++subshell_envp variable 290 shell.c char **subshell_envp; ++subshell_exit function 1044 shell.c subshell_exit (int s) ++subshell_level variable 256 execute_cmd.c int subshell_level = 0; ++subshell_top_level variable 287 shell.c procenv_t subshell_top_level; ++subst_assign_varlist variable 178 subst.c WORD_LIST *subst_assign_varlist = (WORD_LIST *)NULL; ++substring function 118 stringlib.c substring (const char *string, int start, int end) ++subtraction variable 39 /usr/local/src/bash/bash-20230914/builtins/let.def +, - addition, subtraction ++subtype member 43 arrayfunc.h short subtype; /* `*', `@', or something else */ ++successfully variable 100 /usr/local/src/bash/bash-20230914/builtins/cd.def directory cannot be determined successfully, exit with ++suffix member 35 pcomplete.h char *suffix; ++supplied variable 36 /usr/local/src/bash/bash-20230914/builtins/complete.def NAMEs are supplied, all completion specifications ++supplied variable 791 /usr/local/src/bash/bash-20230914/builtins/complete.def Modify the completion options for each NAME, or, if no NAMEs are supplied, ++suppress_debug_trap_verbose variable 132 trap.c int suppress_debug_trap_verbose = 0; ++suspend_builtin function 80 /usr/local/src/bash/bash-20230914/builtins/suspend.def suspend_builtin (WORD_LIST *list) ++suspend_continue function 68 /usr/local/src/bash/bash-20230914/builtins/suspend.def suspend_continue (int sig) ++sv member 77 unwind_prot.c } sv; ++sv_childmax function 6427 variables.c sv_childmax (const char *name) ++sv_comp_wordbreaks function 5899 variables.c sv_comp_wordbreaks (const char *name) ++sv_compare function 5763 variables.c sv_compare (struct name_and_function *sv1, struct name_and_function *sv2) ++sv_execignore function 5877 variables.c sv_execignore (const char *name) ++sv_funcnest function 5861 variables.c sv_funcnest (const char *name) ++sv_globignore function 5884 variables.c sv_globignore (const char *name) ++sv_globsort function 5892 variables.c sv_globsort (const char *name) ++sv_histchars function 6058 variables.c sv_histchars (const char *name) ++sv_histignore function 6020 variables.c sv_histignore (const char *name) ++sv_history_control function 6027 variables.c sv_history_control (const char *name) ++sv_histsize function 5981 variables.c sv_histsize (const char *name) ++sv_histtimefmt function 6083 variables.c sv_histtimefmt (const char *name) ++sv_home function 5966 variables.c sv_home (const char *name) ++sv_hostfile function 5919 variables.c sv_hostfile (const char *name) ++sv_ifs function 5825 variables.c sv_ifs (const char *name) ++sv_ignoreeof function 6120 variables.c sv_ignoreeof (const char *name) ++sv_locale function 6187 variables.c sv_locale (const char *name) ++sv_mail function 5845 variables.c sv_mail (const char *name) ++sv_opterr function 6163 variables.c sv_opterr (const char *name) ++sv_optind function 6136 variables.c sv_optind (const char *name) ++sv_path function 5835 variables.c sv_path (const char *name) ++sv_shcompat function 6375 variables.c sv_shcompat (const char *name) ++sv_strict_posix function 6172 variables.c sv_strict_posix (const char *name) ++sv_terminal function 5912 variables.c sv_terminal (const char *name) ++sv_tz function 6098 variables.c sv_tz (const char *name) ++sv_winsize function 5935 variables.c sv_winsize (const char *name) ++sv_xtracefd function 6339 variables.c sv_xtracefd (const char *name) ++symbolic_umask function 353 /usr/local/src/bash/bash-20230914/builtins/umask.def symbolic_umask (WORD_LIST *list) ++sync_buffered_stream function 547 input.c sync_buffered_stream (int bfd) ++sys_error function 275 error.c sys_error (const char *format, ...) ++sys_siglist macro 27 siglist.h # define sys_siglist _sys_siglist ++sys_siglist variable 38 siglist.c char *sys_siglist[NSIG]; ++syslog_history variable 819 bashhist.c int syslog_history = SYSLOG_SHOPT; ++syslog_history variable 821 bashhist.c int syslog_history = 1; ++table member 40 variables.h HASH_TABLE *table; /* variables at this scope */ ++table variable 450 hashlib.c HASH_TABLE *table, *ntable; ++tabsize variable 3220 execute_cmd.c static int LINES, COLS, tabsize; ++tail member 1822 execute_cmd.c struct cpelement *tail; ++tbcoalesce member 79 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int tbcoalesce; ++tbsplit member 77 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int tbsplit; ++tcgetpgrp function 357 jobs.c tcgetpgrp (int fd) ++tcsetpgrp macro 354 jobs.c #define tcsetpgrp(fd, pgrp) ioctl ((fd), TIOCSPGRP, &(pgrp)) ++tcsh_magic_space function 2826 bashline.c tcsh_magic_space (int count, int ignore) ++tcwd macro 144 /usr/local/src/bash/bash-20230914/builtins/cd.def #define tcwd the_current_working_directory ++tcwd macro 147 /usr/local/src/bash/bash-20230914/builtins/cd.def #undef tcwd ++tcwd macro 484 /usr/local/src/bash/bash-20230914/builtins/cd.def #define tcwd the_current_working_directory ++tcwd macro 499 /usr/local/src/bash/bash-20230914/builtins/cd.def #undef tcwd ++tdir variable 903 general.c static char tdir[PATH_MAX]; ++temp_fifo struct 5839 subst.c struct temp_fifo { ++tempenv_assign_error variable 155 variables.c int tempenv_assign_error; ++temporary_env variable 151 variables.c HASH_TABLE *temporary_env = (HASH_TABLE *)NULL; ++tempvar_list variable 4442 variables.c char **tempvar_list; ++tempvar_p macro 159 variables.h #define tempvar_p(var) ((((var)->attributes) & (att_tempvar))) ++term function 244 test.c term (void) ++terminal_pgrp variable 195 jobs.c pid_t terminal_pgrp = NO_PID; ++terminate_current_pipeline function 1606 jobs.c terminate_current_pipeline (void) ++terminate_stopped_jobs function 1631 jobs.c terminate_stopped_jobs (void) ++termsave variable 148 /usr/local/src/bash/bash-20230914/builtins/read.def static struct ttsave termsave; ++tescape function 1045 /usr/local/src/bash/bash-20230914/builtins/printf.def tescape (char *estart, char *cp, int *lenp, int *sawc) ++test member 274 command.h WORD_LIST *test; ++test member 296 command.h COMMAND *test; /* Thing to test. */ ++test member 304 command.h COMMAND *test; /* Thing to test. */ ++test_binop function 685 test.c test_binop (char *op) ++test_builtin function 134 /usr/local/src/bash/bash-20230914/builtins/test.def test_builtin (WORD_LIST *list) ++test_command function 887 test.c test_command (int margc, char **margv) ++test_error_return variable 106 test.c static int test_error_return; ++test_exit macro 107 test.c #define test_exit(val) \ ++test_exit_buf variable 105 test.c static procenv_t test_exit_buf; ++test_for_canon_directory function 3130 bashline.c test_for_canon_directory (const char *name) ++test_for_directory function 3117 bashline.c test_for_directory (const char *name) ++test_syntax_error function 140 test.c test_syntax_error (char *format, char *arg) ++test_unop function 738 test.c test_unop (char *op) ++the_current_maintainer variable 69 error.c const char * const the_current_maintainer = MAINTAINER; ++the_current_working_directory variable 577 /usr/local/src/bash/bash-20230914/builtins/common.c char *the_current_working_directory = (char *)NULL; ++the_pipeline variable 217 jobs.c PROCESS *the_pipeline = (PROCESS *)NULL; ++the_printed_command variable 105 print_cmd.c char *the_printed_command = (char *)NULL; ++the_printed_command_except_trap variable 208 execute_cmd.c char *the_printed_command_except_trap; ++the_printed_command_resize function 1555 print_cmd.c the_printed_command_resize (size_t length) ++the_printed_command_size variable 106 print_cmd.c size_t the_printed_command_size = 0; ++this_command_name variable 203 execute_cmd.c char *this_command_name; ++this_shell_builtin member 206 shell.h sh_builtin_func_t *last_shell_builtin, *this_shell_builtin; ++this_shell_builtin variable 70 /usr/local/src/bash/bash-20230914/builtins/common.c sh_builtin_func_t *this_shell_builtin = (sh_builtin_func_t *)NULL; ++this_shell_function variable 259 execute_cmd.c SHELL_VAR *this_shell_function; ++three_arguments function 780 test.c three_arguments (void) ++tilde_initialize function 1097 general.c tilde_initialize (void) ++time_command function 1386 execute_cmd.c time_command (COMMAND *command, int asynchronous, int pipe_in, int pipe_out, struct fd_bitmap *fds_to_close) ++time_to_check_mail function 88 mailcheck.c time_to_check_mail (void) ++timerclear macro 66 /usr/local/src/bash/bash-20230914/include/posixtime.h # define timerclear(tvp) do { (tvp)->tv_sec = 0; (tvp)->tv_usec = 0; } while (0) ++timercmp macro 72 /usr/local/src/bash/bash-20230914/include/posixtime.h # define timercmp(a, b, CMP) \ ++timerisset macro 69 /usr/local/src/bash/bash-20230914/include/posixtime.h # define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) ++timerisunset macro 79 /usr/local/src/bash/bash-20230914/include/posixtime.h # define timerisunset(tvp) ((tvp)->tv_sec == 0 && (tvp)->tv_usec == 0) ++timerset macro 82 /usr/local/src/bash/bash-20230914/include/posixtime.h # define timerset(tvp, s, u) do { tvp->tv_sec = s; tvp->tv_usec = u; } while (0) ++times_builtin function 65 /usr/local/src/bash/bash-20230914/builtins/times.def times_builtin (WORD_LIST *list) ++times_found member 35 hashlib.h int times_found; /* Number of times this item has been found. */ ++timespec label 1444 parse.y timespec: TIME ++timeval struct 44 /usr/local/src/bash/bash-20230914/include/posixtime.h struct timeval ++tmalloc member 64 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h int tmalloc[NBUCKETS]; ++tmmap member 82 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h bits32_t tmmap; ++tms struct 38 /usr/local/src/bash/bash-20230914/include/systimes.h struct tms ++tms_cstime member 44 /usr/local/src/bash/bash-20230914/include/systimes.h clock_t tms_cstime; /* System CPU time of dead children. */ ++tms_cutime member 43 /usr/local/src/bash/bash-20230914/include/systimes.h clock_t tms_cutime; /* User CPU time of dead children. */ ++tms_stime member 41 /usr/local/src/bash/bash-20230914/include/systimes.h clock_t tms_stime; /* System CPU time. */ ++tms_utime member 40 /usr/local/src/bash/bash-20230914/include/systimes.h clock_t tms_utime; /* User CPU time. */ ++toggle_shopts function 454 /usr/local/src/bash/bash-20230914/builtins/shopt.def toggle_shopts (int mode, WORD_LIST *list, int quiet) ++token member 130 general.h int token; ++token member 179 shell.h char *token; ++token_buffer_size member 180 shell.h size_t token_buffer_size; ++token_char macro 418 alias.c #define token_char(c) (!((whitespace (string[i]) || self_delimiting (string[i])))) ++token_state member 177 shell.h int *token_state; ++tokenize_array_reference function 1286 arrayfunc.c tokenize_array_reference (const char *name, int flags, char **subp) ++tokstr member 151 expr.c char *tokstr; /* possibly-rewritten lvalue if not NULL */ ++tokstr member 163 expr.c char *tokstr; ++tokstr variable 174 expr.c static char *tokstr; /* current token string */ ++tokval member 152 expr.c intmax_t tokval; /* expression evaluated value */ ++tokval member 162 expr.c intmax_t tokval; ++tokval variable 175 expr.c static intmax_t tokval; /* current token value */ ++tokvar member 153 expr.c SHELL_VAR *tokvar; /* variable described by array or var reference */ ++tokword label 3693 parse.y tokword: ++top_level variable 1639 expr.c procenv_t top_level; ++totfds variable 6090 subst.c static int totfds; /* The highest possible number of open files. */ ++tp member 161 expr.c char *expression, *tp, *lasttp; ++tp variable 169 expr.c static char *tp; /* token lexical position */ ++trace function 378 error.c trace (const char *format, ...) ++trace_p macro 145 variables.h #define trace_p(var) ((((var)->attributes) & (att_trace))) ++trap_builtin function 113 /usr/local/src/bash/bash-20230914/builtins/trap.def trap_builtin (WORD_LIST *list) ++trap_handler function 543 trap.c trap_handler (int sig) ++trap_handler_string function 202 trap.c trap_handler_string (int sig) ++trap_if_untrapped function 723 trap.c trap_if_untrapped (int sig, const char *command) ++trap_list variable 106 trap.c char *trap_list[BASH_NSIG]; ++trap_return_context variable 121 trap.c int trap_return_context; ++trap_saved_exit_value variable 124 trap.c int trap_saved_exit_value; ++trap_to_sighandler function 812 trap.c trap_to_sighandler (int sig) ++trapped_signal_received variable 129 trap.c int trapped_signal_received; ++trim_pathname function 930 general.c trim_pathname (char *name, int maxlen) ++true_case member 297 command.h COMMAND *true_case; /* What to do if the test returned non-zero. */ ++tsbrk member 73 /usr/local/src/bash/bash-20230914/lib/malloc/mstats.h bits32_t tsbrk; ++ttsave struct 117 /usr/local/src/bash/bash-20230914/builtins/read.def struct ttsave ++ttspeeds variable 2385 jobs.c static int ttspeeds[] = ++tty_modified variable 146 /usr/local/src/bash/bash-20230914/builtins/read.def static int reading, tty_modified; ++ttyrestore function 1150 /usr/local/src/bash/bash-20230914/builtins/read.def ttyrestore (struct ttsave *ttp) ++tv_sec member 46 /usr/local/src/bash/bash-20230914/include/posixtime.h time_t tv_sec; ++tv_usec member 47 /usr/local/src/bash/bash-20230914/include/posixtime.h long int tv_usec; ++tvlist_ind variable 4443 variables.c int tvlist_ind; ++tw variable 247 /usr/local/src/bash/bash-20230914/builtins/printf.def static intmax_t tw; ++two_arguments function 758 test.c two_arguments (void) ++type member 42 arrayfunc.h short type; /* assoc or indexed, says which fields are valid */ ++type member 79 input.h enum stream_type type; ++type member 198 command.h enum command_type type; /* FOR CASE WHILE IF CONNECTION or SIMPLE. */ ++type member 248 shell.c int type; ++type member 331 command.h int type; ++type_builtin function 108 /usr/local/src/bash/bash-20230914/builtins/type.def type_builtin (WORD_LIST *list) ++uid member 151 shell.h uid_t uid, euid, saveuid; ++uidget function 1298 shell.c uidget (void) ++uidset function 990 variables.c uidset (void) ++umask_builtin function 76 /usr/local/src/bash/bash-20230914/builtins/umask.def umask_builtin (WORD_LIST *list) ++unalias_builtin function 173 /usr/local/src/bash/bash-20230914/builtins/alias.def unalias_builtin (WORD_LIST *list) ++unary_advance macro 168 test.c #define unary_advance() do { advance (1); ++pos; } while (0) ++unary_operator function 477 test.c unary_operator (void) ++unary_test function 516 test.c unary_test (char *op, char *arg, int flags) ++unbind_args function 1533 shell.c unbind_args (void) ++unbind_array_element function 1139 arrayfunc.c unbind_array_element (SHELL_VAR *var, char *sub, int flags) ++unbind_command function 369 /usr/local/src/bash/bash-20230914/builtins/bind.def unbind_command (char *name) ++unbind_compfunc_variables function 980 pcomplete.c unbind_compfunc_variables (void *exported) ++unbind_func function 3827 variables.c unbind_func (const char *name) ++unbind_function_def function 3857 variables.c unbind_function_def (const char *name) ++unbind_global_variable function 3776 variables.c unbind_global_variable (const char *name) ++unbind_global_variable_noref function 3796 variables.c unbind_global_variable_noref (const char *name) ++unbind_keyseq function 385 /usr/local/src/bash/bash-20230914/builtins/bind.def unbind_keyseq (char *seq) ++unbind_nameref function 3753 variables.c unbind_nameref (const char *name) ++unbind_readline_variables function 4453 bashline.c unbind_readline_variables (void) ++unbind_unix_command function 4778 bashline.c unbind_unix_command (char *kseq) ++unbind_variable function 3734 variables.c unbind_variable (const char *name) ++unbind_variable_noref function 3765 variables.c unbind_variable_noref (const char *name) ++unbound_vars_is_error variable 80 flags.c int unbound_vars_is_error = 0; ++unclosed_pair function 2549 subst.c unclosed_pair (char *string, int eindex, char *openstr) ++undo_partial_redirects function 506 execute_cmd.c undo_partial_redirects (void) ++undoablefd function 740 redir.c undoablefd (int fd) ++unfreeze_jobs_list function 1020 nojobs.c unfreeze_jobs_list (void) ++unfreeze_jobs_list function 4901 jobs.c unfreeze_jobs_list (void) ++ungetc_with_restart function 119 input.c ungetc_with_restart (int c, FILE *stream) ++ungetter member 83 input.h sh_cunget_func_t *ungetter; ++unlink_all_fifos function 5948 subst.c unlink_all_fifos (void) ++unlink_all_fifos function 6195 subst.c unlink_all_fifos (void) ++unlink_fifo function 5894 subst.c unlink_fifo (int i) ++unlink_fifo function 6170 subst.c unlink_fifo (int fd) ++unlink_fifo_list function 5906 subst.c unlink_fifo_list (void) ++unlink_fifo_list function 6181 subst.c unlink_fifo_list (void) ++unquoted_glob_pattern_p function 66 pathexp.c unquoted_glob_pattern_p (char *string) ++unquoted_member function 642 subst.c unquoted_member (int character, const char *string) ++unquoted_substring function 681 subst.c unquoted_substring (const char *substr, const char *string) ++unquoted_tilde_word function 1143 general.c unquoted_tilde_word (const char *s) ++unset variable 50 /usr/local/src/bash/bash-20230914/builtins/getopts.def is placed in NAME, OPTARG is unset, and a diagnostic message is ++unset_bash_input function 1744 shell.c unset_bash_input (int check_zero) ++unset_builtin function 830 /usr/local/src/bash/bash-20230914/builtins/set.def unset_builtin (WORD_LIST *list) ++unset_pid_flags function 294 nojobs.c unset_pid_flags (pid_t pid, int flags) ++unset_waitlist function 368 /usr/local/src/bash/bash-20230914/builtins/wait.def unset_waitlist (void) ++unwind_frame_discard_internal function 234 unwind_prot.c unwind_frame_discard_internal (char *tag) ++unwind_frame_run_internal function 269 unwind_prot.c unwind_frame_run_internal (char *tag) ++unwind_protect_int macro 54 unwind_prot.h #define unwind_protect_int unwind_protect_var ++unwind_protect_jmp_buf macro 58 unwind_prot.h #define unwind_protect_jmp_buf unwind_protect_var ++unwind_protect_list variable 89 unwind_prot.c static UNWIND_ELT *unwind_protect_list = (UNWIND_ELT *)NULL; ++unwind_protect_mem function 325 unwind_prot.c unwind_protect_mem (char *var, int size) ++unwind_protect_mem_internal function 304 unwind_prot.c unwind_protect_mem_internal (void *var, int size) ++unwind_protect_pointer macro 57 unwind_prot.h #define unwind_protect_pointer unwind_protect_var ++unwind_protect_short macro 55 unwind_prot.h #define unwind_protect_short unwind_protect_var ++unwind_protect_string macro 56 unwind_prot.h #define unwind_protect_string unwind_protect_var ++unwind_protect_tag_on_stack function 171 unwind_prot.c unwind_protect_tag_on_stack (const char *tag) ++unwind_protect_var macro 49 unwind_prot.h #define unwind_protect_var(X) unwind_protect_mem ((char *)&(X), sizeof (X)) ++up member 38 variables.h struct var_context *up; /* previous function calls */ ++update_export_env_inplace function 5082 variables.c update_export_env_inplace (char *env_prefix, int preflen, char *value) ++update_mail_file function 162 mailcheck.c update_mail_file (int i) ++uppercase_p macro 146 variables.h #define uppercase_p(var) ((((var)->attributes) & (att_uppercase))) ++user_attrs macro 117 variables.h #define user_attrs (att_exported|att_readonly|att_integer|att_local|att_trace|att_uppercase|att_lowercase|att_capcase|att_nameref) ++user_command_matches function 437 findcmd.c user_command_matches (const char *name, int flags, int state) ++user_info struct 150 shell.h struct user_info { ++user_name member 153 shell.h char *user_name; ++uw_anonclose function 6806 subst.c uw_anonclose (void *fdesc) ++uw_bashline_reset_event_hook function 1188 /usr/local/src/bash/bash-20230914/builtins/read.def uw_bashline_reset_event_hook (void *ignore) ++uw_cleanup_redirects function 494 execute_cmd.c uw_cleanup_redirects (void *list) ++uw_close function 379 execute_cmd.c uw_close (void *fd) ++uw_close_fd_bitmap function 373 execute_cmd.c uw_close_fd_bitmap (void *fdbp) ++uw_dispose_command function 208 dispose_cmd.c uw_dispose_command (void *command) ++uw_dispose_fd_bitmap function 351 execute_cmd.c uw_dispose_fd_bitmap (void *fdbp) ++uw_dispose_redirects function 500 execute_cmd.c uw_dispose_redirects (void *list) ++uw_dispose_words function 282 dispose_cmd.c uw_dispose_words (void *list) ++uw_function_misc_cleanup function 5095 execute_cmd.c uw_function_misc_cleanup (void *ignore) ++uw_lastpipe_cleanup function 2531 execute_cmd.c uw_lastpipe_cleanup (void *s) ++uw_maybe_pop_dollar_vars function 99 /usr/local/src/bash/bash-20230914/builtins/source.def uw_maybe_pop_dollar_vars (void *ignore) ++uw_maybe_restore_getopt_state function 5043 execute_cmd.c uw_maybe_restore_getopt_state (void *arg) ++uw_maybe_set_debug_trap function 742 trap.c uw_maybe_set_debug_trap (void *command) ++uw_maybe_set_error_trap function 760 trap.c uw_maybe_set_error_trap (void *command) ++uw_maybe_set_return_trap function 772 trap.c uw_maybe_set_return_trap (void *command) ++uw_maybe_set_sigchld_trap function 689 trap.c uw_maybe_set_sigchld_trap (void *command_string) ++uw_merge_temporary_env function 2524 execute_cmd.c uw_merge_temporary_env (void *ignore) ++uw_parser_restore_alias function 100 /usr/local/src/bash/bash-20230914/builtins/evalstring.c uw_parser_restore_alias (void *x) ++uw_pop_args function 5649 variables.c uw_pop_args (void *ignore) ++uw_pop_stream function 94 /usr/local/src/bash/bash-20230914/builtins/evalstring.c uw_pop_stream (void *x) ++uw_pop_var_context function 6770 subst.c uw_pop_var_context (void *ignore) ++uw_reset_attempted_completion_function function 1181 /usr/local/src/bash/bash-20230914/builtins/read.def uw_reset_attempted_completion_function (void *cp) ++uw_reset_locals function 1275 print_cmd.c uw_reset_locals (void *ignore) ++uw_reset_timeout function 177 /usr/local/src/bash/bash-20230914/builtins/read.def uw_reset_timeout (void *ignore) ++uw_restore_errexit function 6828 subst.c uw_restore_errexit (void *eflag) ++uw_restore_funcarray_state function 5076 execute_cmd.c uw_restore_funcarray_state (void *fa) ++uw_restore_lastcom function 81 /usr/local/src/bash/bash-20230914/builtins/evalstring.c uw_restore_lastcom (void *x) ++uw_restore_lineno function 385 execute_cmd.c uw_restore_lineno (void *line) ++uw_restore_parser_state function 4441 bashline.c uw_restore_parser_state (void *ps) ++uw_restore_pipeline function 6822 subst.c uw_restore_pipeline (void *discard) ++uw_restore_pipestatus_array function 6780 subst.c uw_restore_pipestatus_array (void *a) ++uw_restore_signal_mask function 548 execute_cmd.c uw_restore_signal_mask (void *set) ++uw_restore_stdin function 2518 execute_cmd.c uw_restore_stdin (void *s) ++uw_restore_stdout function 6800 subst.c uw_restore_stdout (void *fd) ++uw_rl_set_signals function 4447 bashline.c uw_rl_set_signals (void *ignore) ++uw_set_current_prompt_level function 88 /usr/local/src/bash/bash-20230914/builtins/evalstring.c uw_set_current_prompt_level (void *x) ++uw_set_error_trap function 754 trap.c uw_set_error_trap (void *command) ++uw_set_history_remembering function 73 /usr/local/src/bash/bash-20230914/builtins/evalstring.c uw_set_history_remembering (void *ignore) ++uw_set_verbose_flag function 170 /usr/local/src/bash/bash-20230914/builtins/fc.def uw_set_verbose_flag (void *ignore) ++uw_ttyrestore function 1157 /usr/local/src/bash/bash-20230914/builtins/read.def uw_ttyrestore (void *ttp) ++uw_unbind_readline_variables function 4463 bashline.c uw_unbind_readline_variables (void *ignore) ++uw_unbind_variable function 6816 subst.c uw_unbind_variable (void *name) ++uw_unlink function 176 /usr/local/src/bash/bash-20230914/builtins/fc.def uw_unlink (void *fn) ++uwcache variable 94 unwind_prot.c sh_obj_cache_t uwcache = {0, 0, 0}; ++uwp union 65 unwind_prot.c typedef union uwp { ++uwp_head member 71 unwind_prot.c struct uwp_head uwp_head; ++uwp_head member 75 unwind_prot.c struct uwp_head uwp_head; ++uwp_head struct 66 unwind_prot.c struct uwp_head { ++uwp_init function 105 unwind_prot.c uwp_init (void) ++uwpalloc macro 100 unwind_prot.c #define uwpalloc(elt) ocache_alloc (uwcache, UNWIND_ELT, elt) ++uwpfree macro 101 unwind_prot.c #define uwpfree(elt) ocache_free (uwcache, UNWIND_ELT, elt) ++v member 72 unwind_prot.c void *v; ++v member 76 unwind_prot.c SAVED_VAR v; ++v member 78 variables.h struct variable *v; /* possible indirect variable use */ ++val member 86 pathexp.h char *val; ++valid_array_reference function 1346 arrayfunc.c valid_array_reference (const char *name, int flags) ++valid_brace_expansion_word function 7454 subst.c valid_brace_expansion_word (const char *name, int var_is_special) ++valid_exportstr function 4746 variables.c valid_exportstr (SHELL_VAR *v) ++valid_function_name function 412 general.c valid_function_name (const char *name, int flags) ++valid_function_word function 432 general.c valid_function_word (WORD_DESC *word, int flags) ++valid_length_expression function 8121 subst.c valid_length_expression (const char *name) ++valid_nameref_value function 303 general.c valid_nameref_value (const char *name, int flags) ++valid_parameter_transform function 8765 subst.c valid_parameter_transform (const char *xform) ++validate_inherited_value function 2542 variables.c validate_inherited_value (SHELL_VAR *var, int type) ++value member 30 alias.h char *value; ++value member 37 flags.h int *value; ++value member 45 array.h char *value; ++value member 46 arrayfunc.h char *value; ++value member 84 variables.h char *value; /* Value that is returned. */ ++value member 177 /usr/local/src/bash/bash-20230914/builtins/shopt.def int *value; ++value member 225 command.h } value; ++value variable 49 /usr/local/src/bash/bash-20230914/builtins/history.def if HISTFILE has a value, that is used. If FILENAME is not supplied ++value_cell macro 166 variables.h #define value_cell(var) ((var)->value) ++values variable 58 /usr/local/src/bash/bash-20230914/builtins/getopts.def are supplied as ARG values, they are parsed instead. ++vapply function 4231 variables.c vapply (sh_var_map_func_t *func) ++var_attribute_string function 402 /usr/local/src/bash/bash-20230914/builtins/setattr.def var_attribute_string (SHELL_VAR *var, int pattr, char *flags) ++var_context struct 34 variables.h typedef struct var_context { ++var_isnull macro 176 variables.h #define var_isnull(var) ((var)->value && *(var)->value == 0) ++var_isset macro 174 variables.h #define var_isset(var) ((var)->value != 0) ++var_isunset macro 175 variables.h #define var_isunset(var) ((var)->value == 0) ++var_lookup function 1948 variables.c var_lookup (const char *name, VAR_CONTEXT *vcontext) ++var_sametype function 2523 variables.c var_sametype (SHELL_VAR *v1, SHELL_VAR *v2) ++var_setarray macro 181 variables.h #define var_setarray(var, arr) ((var)->value = (char *)(arr)) ++var_setassoc macro 182 variables.h #define var_setassoc(var, arr) ((var)->value = (char *)(arr)) ++var_setfunc macro 180 variables.h #define var_setfunc(var, func) ((var)->value = (char *)(func)) ++var_setref macro 183 variables.h #define var_setref(var, str) ((var)->value = (str)) ++var_setvalue macro 179 variables.h #define var_setvalue(var, str) ((var)->value = (str)) ++varassign_redir_autoclose variable 89 redir.c int varassign_redir_autoclose = 0; ++variable member 57 unwind_prot.c char *variable; ++variable member 191 /usr/local/src/bash/bash-20230914/builtins/set.def int *variable; ++variable struct 82 variables.h typedef struct variable { ++variable variable 808 /usr/local/src/bash/bash-20230914/builtins/set.def Without options, unset first tries to unset a variable, and if that fails, ++variable_completion_function function 2471 bashline.c variable_completion_function (const char *text, int state) ++variable_context variable 138 variables.c int variable_context = 0; ++variable_in_context function 4324 variables.c variable_in_context (SHELL_VAR *var) ++varname member 94 pathexp.h char *varname; /* FIGNORE, GLOBIGNORE, or EXECIGNORE */ ++vbadd function 1231 /usr/local/src/bash/bash-20230914/builtins/printf.def vbadd (char *buf, int blen) ++vblen variable 245 /usr/local/src/bash/bash-20230914/builtins/printf.def static int vblen; ++vbprintf function 1260 /usr/local/src/bash/bash-20230914/builtins/printf.def vbprintf (const char *format, ...) ++vbsize variable 244 /usr/local/src/bash/bash-20230914/builtins/printf.def static size_t vbsize; ++vbuf variable 243 /usr/local/src/bash/bash-20230914/builtins/printf.def static char *vbuf, *vname; ++vc_haslocals macro 59 variables.h #define vc_haslocals(vc) (((vc)->flags & VC_HASLOCAL) != 0) ++vc_hastmpvars macro 60 variables.h #define vc_hastmpvars(vc) (((vc)->flags & VC_HASTMPVAR) != 0) ++vc_isbltnenv macro 54 variables.h #define vc_isbltnenv(vc) (((vc)->flags & VC_BLTNENV) != 0) ++vc_isfuncenv macro 53 variables.h #define vc_isfuncenv(vc) (((vc)->flags & VC_FUNCENV) != 0) ++vc_istempenv macro 55 variables.h #define vc_istempenv(vc) (((vc)->flags & (VC_TEMPFLAGS)) == VC_TEMPENV) ++vc_istempscope macro 57 variables.h #define vc_istempscope(vc) (((vc)->flags & (VC_TEMPENV|VC_BLTNENV)) != 0) ++verbatim_pwd variable 454 /usr/local/src/bash/bash-20230914/builtins/cd.def static int verbatim_pwd; ++verbose_flag variable 84 flags.c int verbose_flag = 0; ++verify_substring_values function 8273 subst.c verify_substring_values (SHELL_VAR *v, char *value, char *substr, int vtype, ++vflag variable 241 /usr/local/src/bash/bash-20230914/builtins/printf.def static int vflag = 0; ++vi variable 39 /usr/local/src/bash/bash-20230914/builtins/bind.def emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, ++vi_edit_and_execute_command function 1011 bashline.c vi_edit_and_execute_command (int count, int key) ++vi_insert_cmd_xmap variable 4383 bashline.c static Keymap vi_insert_cmd_xmap; ++vi_movement_cmd_xmap variable 4384 bashline.c static Keymap vi_movement_cmd_xmap; ++vi_tab_binding variable 344 bashline.c static rl_command_func_t *vi_tab_binding = rl_complete; ++visible_and_exported function 4289 variables.c visible_and_exported (SHELL_VAR *var) ++visible_array_vars function 4372 variables.c visible_array_vars (SHELL_VAR *var) ++visible_var function 4269 variables.c visible_var (SHELL_VAR *var) ++visible_variable_in_context function 4330 variables.c visible_variable_in_context (SHELL_VAR *var) ++vlist_add function 4119 variables.c vlist_add (VARLIST *vlist, SHELL_VAR *var, int flags) ++vlist_alloc function 4092 variables.c vlist_alloc (size_t nentries) ++vlist_realloc function 4106 variables.c vlist_realloc (VARLIST *vlist, size_t n) ++vname variable 243 /usr/local/src/bash/bash-20230914/builtins/printf.def static char *vbuf, *vname; ++volatile macro 53 /usr/local/src/bash/bash-20230914/include/stdc.h # define volatile __volatile ++volatile macro 66 /usr/local/src/bash/bash-20230914/include/stdc.h # define volatile ++w_Coredump member 35 /usr/local/src/bash/bash-20230914/include/unionwait.h w_Coredump : 1, /* core dump indicator */ ++w_Coredump member 65 /usr/local/src/bash/bash-20230914/include/unionwait.h unsigned w_Coredump : 1; /* core dump indicator */ ++w_Fill1 member 37 /usr/local/src/bash/bash-20230914/include/unionwait.h w_Fill1 : 16; /* high 16 bits unused */ ++w_Fill1 member 63 /usr/local/src/bash/bash-20230914/include/unionwait.h unsigned short w_Fill1 : 16; /* high 16 bits unused */ ++w_Fill2 member 48 /usr/local/src/bash/bash-20230914/include/unionwait.h w_Fill2 : 16; /* high 16 bits unused */ ++w_Fill2 member 74 /usr/local/src/bash/bash-20230914/include/unionwait.h unsigned short w_Fill2 : 16; /* high 16 bits unused */ ++w_Retcode member 36 /usr/local/src/bash/bash-20230914/include/unionwait.h w_Retcode : 8, /* exit code if w_termsig==0 */ ++w_Retcode member 64 /usr/local/src/bash/bash-20230914/include/unionwait.h unsigned w_Retcode : 8; /* exit code if w_termsig==0 */ ++w_S member 49 /usr/local/src/bash/bash-20230914/include/unionwait.h } w_S; ++w_S member 77 /usr/local/src/bash/bash-20230914/include/unionwait.h } w_S; ++w_Stopsig member 47 /usr/local/src/bash/bash-20230914/include/unionwait.h w_Stopsig : 8, /* actually zero on XENIX */ ++w_Stopsig member 75 /usr/local/src/bash/bash-20230914/include/unionwait.h unsigned w_Stopsig : 8; /* signal that stopped us */ ++w_Stopval member 46 /usr/local/src/bash/bash-20230914/include/unionwait.h w_Stopval : 8, /* == W_STOPPED if stopped */ ++w_Stopval member 76 /usr/local/src/bash/bash-20230914/include/unionwait.h unsigned w_Stopval : 8; /* == W_STOPPED if stopped */ ++w_T member 38 /usr/local/src/bash/bash-20230914/include/unionwait.h } w_T; ++w_T member 67 /usr/local/src/bash/bash-20230914/include/unionwait.h } w_T; ++w_Termsig member 34 /usr/local/src/bash/bash-20230914/include/unionwait.h w_Termsig : 7, /* termination signal */ ++w_Termsig member 66 /usr/local/src/bash/bash-20230914/include/unionwait.h unsigned w_Termsig : 7; /* termination signal */ ++w_coredump macro 83 /usr/local/src/bash/bash-20230914/include/unionwait.h #define w_coredump w_T.w_Coredump ++w_retcode macro 84 /usr/local/src/bash/bash-20230914/include/unionwait.h #define w_retcode w_T.w_Retcode ++w_status member 28 /usr/local/src/bash/bash-20230914/include/unionwait.h int w_status; /* used in syscall */ ++w_status member 58 /usr/local/src/bash/bash-20230914/include/unionwait.h int w_status; /* used in syscall */ ++w_stopsig macro 86 /usr/local/src/bash/bash-20230914/include/unionwait.h #define w_stopsig w_S.w_Stopsig ++w_stopval macro 85 /usr/local/src/bash/bash-20230914/include/unionwait.h #define w_stopval w_S.w_Stopval ++w_termsig macro 82 /usr/local/src/bash/bash-20230914/include/unionwait.h #define w_termsig w_T.w_Termsig ++wait union 26 /usr/local/src/bash/bash-20230914/include/unionwait.h union wait ++wait union 56 /usr/local/src/bash/bash-20230914/include/unionwait.h union wait ++wait_builtin function 111 /usr/local/src/bash/bash-20230914/builtins/wait.def wait_builtin (WORD_LIST *list) ++wait_for function 793 nojobs.c wait_for (pid_t pid, int flags) ++wait_for function 2851 jobs.c wait_for (pid_t pid, int flags) ++wait_for_any_job function 3236 jobs.c wait_for_any_job (int flags, struct procstat *ps) ++wait_for_background_pids function 683 nojobs.c wait_for_background_pids (struct procstat *ps) ++wait_for_background_pids function 2593 jobs.c wait_for_background_pids (struct procstat *ps) ++wait_for_job function 3184 jobs.c wait_for_job (int job, int flags, struct procstat *ps) ++wait_for_single_pid function 628 nojobs.c wait_for_single_pid (pid_t pid, int flags) ++wait_for_single_pid function 2533 jobs.c wait_for_single_pid (pid_t pid, int flags) ++wait_intr_buf variable 90 /usr/local/src/bash/bash-20230914/builtins/wait.def procenv_t wait_intr_buf; ++wait_intr_flag variable 91 /usr/local/src/bash/bash-20230914/builtins/wait.def int wait_intr_flag; ++wait_sigint_cleanup function 731 nojobs.c wait_sigint_cleanup (void) ++wait_sigint_cleanup function 2674 jobs.c wait_sigint_cleanup (void) ++wait_sigint_handler function 753 nojobs.c wait_sigint_handler (int sig) ++wait_sigint_handler function 2696 jobs.c wait_sigint_handler (int sig) ++wait_sigint_received variable 118 nojobs.c static int wait_sigint_received; ++wait_sigint_received variable 2667 jobs.c static int wait_sigint_received; ++wait_signal_received variable 127 trap.c int wait_signal_received; ++waitchld function 3730 jobs.c waitchld (pid_t wpid, int block) ++waiting_for_child variable 81 nojobs.c int waiting_for_child; ++waiting_for_child variable 2670 jobs.c int waiting_for_child; ++want_initial_help variable 220 shell.c static int want_initial_help; /* --help option */ ++want_pending_command variable 299 shell.c int want_pending_command; /* -c flag supplied */ ++was_heredoc variable 126 print_cmd.c static int was_heredoc; ++wd member 122 jobs.h char *wd; /* The working directory at time of invocation. */ ++wdcache variable 52 make_cmd.c sh_obj_cache_t wdcache = {0, 0, 0}; ++wdispcolumn function 394 /usr/local/src/bash/bash-20230914/builtins/help.def wdispcolumn (int i, char *buf, size_t bufsize, int width, int height) ++which_set_flags function 294 flags.c which_set_flags (void) ++while_com struct 302 command.h typedef struct while_com { ++whitespace macro 64 general.h #define whitespace(c) (((c) == ' ') || ((c) == '\t')) ++whitespace macro 66 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c #define whitespace(c) (((c) == ' ') || ((c) == '\t')) ++width member 123 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c int width; /* Size of each element. */ ++winsize_assignment variable 181 variables.c static int winsize_assignment; /* currently assigning to LINES or COLUMNS */ ++with_input_from_buffered_stream function 589 input.c with_input_from_buffered_stream (int bfd, char *name) ++without_job_control function 991 nojobs.c without_job_control (void) ++without_job_control function 4963 jobs.c without_job_control (void) ++wlcache variable 53 make_cmd.c sh_obj_cache_t wlcache = {0, 0, 0}; ++wlist_walk function 47 list.c wlist_walk (WORD_LIST *words, sh_icpfunc_t *function) ++word macro 25 bashtypes.h # define word __word ++word macro 31 bashtypes.h # undef word ++word member 129 general.h char *word; ++word member 132 command.h char *word; /* Zero terminated string. */ ++word member 139 command.h WORD_DESC *word; ++word member 174 command.h WORD_DESC *word; ++word member 254 command.h WORD_DESC *word; /* The thing to test. */ ++word variable 43 /usr/local/src/bash/bash-20230914/builtins/type.def shell reserved word, shell function, shell builtin, disk file, ++word_desc struct 131 command.h typedef struct word_desc { ++word_list label 513 parse.y word_list: WORD ++word_list struct 137 command.h typedef struct word_list { ++word_list_remove_quoted_nulls function 4998 subst.c word_list_remove_quoted_nulls (WORD_LIST *list) ++word_list_split function 12200 subst.c word_list_split (WORD_LIST *list) ++word_split function 12180 subst.c word_split (WORD_DESC *w, char *ifs_chars) ++wordexp_only variable 232 shell.c int wordexp_only = 0; /* Do word expansion only */ ++words member 33 pcomplete.h char *words; ++words member 340 command.h WORD_LIST *words; /* The program name, the arguments, ++write_builtins function 1175 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c write_builtins (DEF_FILE *defs, FILE *structfile, FILE *externfile) ++write_documentation function 1394 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c write_documentation (FILE *stream, char **documentation, int indentation, int flags) ++write_dummy_declarations function 1316 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c write_dummy_declarations (FILE *stream, ARRAY *builtins) ++write_endifs function 1369 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c write_endifs (FILE *stream, char **defines) ++write_file_footers function 1160 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c write_file_footers (FILE *structfile, FILE *externfile) ++write_file_headers function 1134 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c write_file_headers (FILE *structfile, FILE *externfile) ++write_helpfiles function 1522 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c write_helpfiles (ARRAY *builtins) ++write_ifdefs function 1340 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c write_ifdefs (FILE *stream, char **defines) ++write_longdocs function 1279 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c write_longdocs (FILE *stream, ARRAY *builtins) ++xattrfd variable 74 /usr/local/src/bash/bash-20230914/builtins/cd.def static int xattrfd = -1; ++xattrflag variable 73 /usr/local/src/bash/bash-20230914/builtins/cd.def static int xattrflag; /* O_XATTR support for openat */ ++xbcopy function 305 stringlib.c xbcopy (const void *s, void *d, size_t n) ++xfree function 137 xmalloc.c xfree (PTR_T string) ++xmalloc function 97 xmalloc.c xmalloc (size_t bytes) ++xmalloc function 779 braces.c xmalloc(size_t n) ++xmalloc function 995 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c xmalloc (size_t bytes) ++xmalloc function 1623 expr.c xmalloc (size_t n) ++xprintf function 1577 print_cmd.c xprintf (const char *format, ...) ++xrealloc function 116 xmalloc.c xrealloc (PTR_T pointer, size_t bytes) ++xrealloc function 785 braces.c xrealloc(void *p, size_t n) ++xrealloc function 1005 /usr/local/src/bash/bash-20230914/builtins/mkbuiltins.c xrealloc (void *pointer, size_t bytes) ++xrealloc function 1629 expr.c xrealloc (void *s, size_t n) ++xtrace_fd variable 109 print_cmd.c int xtrace_fd = -1; ++xtrace_fdchk function 434 print_cmd.c xtrace_fdchk (int fd) ++xtrace_fp variable 110 print_cmd.c FILE *xtrace_fp = 0; ++xtrace_init function 413 print_cmd.c xtrace_init (void) ++xtrace_print_arith_cmd function 948 print_cmd.c xtrace_print_arith_cmd (WORD_LIST *list) ++xtrace_print_assignment function 512 print_cmd.c xtrace_print_assignment (char *name, char *value, int assign_list, int xflags) ++xtrace_print_case_command_head function 720 print_cmd.c xtrace_print_case_command_head (CASE_COM *case_command) ++xtrace_print_cond_term function 918 print_cmd.c xtrace_print_cond_term (int type, int invert, WORD_DESC *op, char *arg1, char *arg2) ++xtrace_print_for_command_head function 597 print_cmd.c xtrace_print_for_command_head (FOR_COM *for_command) ++xtrace_print_select_command_head function 651 print_cmd.c xtrace_print_select_command_head (SELECT_COM *select_command) ++xtrace_print_word_list function 547 print_cmd.c xtrace_print_word_list (WORD_LIST *list, int xtflags) ++xtrace_reset function 419 print_cmd.c xtrace_reset (void) ++xtrace_set function 393 print_cmd.c xtrace_set (int fd, FILE *fp) ++zerojs variable 172 jobs.c static struct jobstats zerojs = { -1L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NO_JOB, NO_JOB, 0, 0 }; diff --git a/bash-5.2-patch-17.patch b/bash-5.2-patch-17.patch new file mode 100644 index 0000000..1e8c25f --- /dev/null +++ b/bash-5.2-patch-17.patch @@ -0,0 +1,23 @@ +diff --git a/builtins/evalfile.c b/builtins/evalfile.c +--- a/builtins/evalfile.c ++++ b/builtins/evalfile.c +@@ -266,7 +266,7 @@ file_error_and_exit: + #endif + + /* set the flags to be passed to parse_and_execute */ +- pflags = SEVAL_RESETLINE; ++ pflags = SEVAL_RESETLINE|SEVAL_NOOPTIMIZE; + pflags |= (flags & FEVAL_HISTORY) ? 0 : SEVAL_NOHIST; + + if (flags & FEVAL_BUILTIN) +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 16 ++#define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash-5.2-patch-18.patch b/bash-5.2-patch-18.patch new file mode 100644 index 0000000..b04fb29 --- /dev/null +++ b/bash-5.2-patch-18.patch @@ -0,0 +1,2634 @@ +diff --git a/parse.y b/parse.y +--- a/parse.y ++++ b/parse.y +@@ -452,6 +452,21 @@ inputunit: simple_list simple_list_terminator + YYABORT; + } + } ++ | error YYEOF ++ { ++ global_command = (COMMAND *)NULL; ++ if (last_command_exit_value == 0) ++ last_command_exit_value = EX_BADUSAGE; /* force error return */ ++ if (interactive && parse_and_execute_level == 0) ++ { ++ handle_eof_input_unit (); ++ YYACCEPT; ++ } ++ else ++ { ++ YYABORT; ++ } ++ } + | yacc_EOF + { + /* Case of EOF seen by itself. Do ignoreeof or +@@ -2897,9 +2912,9 @@ yylex () + + if (current_token < 0) + #if defined (YYERRCODE) && !defined (YYUNDEF) +- current_token = YYERRCODE; ++ current_token = EOF_Reached ? YYEOF : YYERRCODE; + #else +- current_token = YYerror; ++ current_token = EOF_Reached ? YYEOF : YYUNDEF; + #endif + + return (current_token); +@@ -3694,6 +3709,7 @@ parse_matched_pair (qc, open, close, lenp, flags) + free (ret); + parser_error (start_lineno, _("unexpected EOF while looking for matching `%c'"), close); + EOF_Reached = 1; /* XXX */ ++ parser_state |= PST_NOERROR; /* avoid redundant error message */ + return (&matched_pair_error); + } + +@@ -4156,6 +4172,7 @@ parse_comsub (qc, open, close, lenp, flags) + expand_aliases = ps.expand_aliases; + + /* yyparse() has already called yyerror() and reset_parser() */ ++ parser_state |= PST_NOERROR; + return (&matched_pair_error); + } + else if (r != 0) +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 17 ++#define PATCHLEVEL 18 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/y.tab.c b/y.tab.c +--- a/y.tab.c ++++ b/y.tab.c +@@ -992,7 +992,7 @@ union yyalloc + #endif /* !YYCOPY_NEEDED */ + + /* YYFINAL -- State number of the termination state. */ +-#define YYFINAL 121 ++#define YYFINAL 122 + /* YYLAST -- Last index in YYTABLE. */ + #define YYLAST 740 + +@@ -1001,9 +1001,9 @@ union yyalloc + /* YYNNTS -- Number of nonterminals. */ + #define YYNNTS 38 + /* YYNRULES -- Number of rules. */ +-#define YYNRULES 174 ++#define YYNRULES 175 + /* YYNSTATES -- Number of states. */ +-#define YYNSTATES 349 ++#define YYNSTATES 350 + + /* YYMAXUTOK -- Last valid token kind. */ + #define YYMAXUTOK 305 +@@ -1057,24 +1057,24 @@ static const yytype_int8 yytranslate[] = + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ + static const yytype_int16 yyrline[] = + { +- 0, 395, 395, 406, 414, 423, 438, 455, 465, 467, +- 471, 477, 483, 489, 495, 501, 507, 513, 519, 525, +- 531, 537, 543, 549, 555, 561, 568, 575, 582, 589, +- 596, 603, 609, 615, 621, 627, 633, 639, 645, 651, +- 657, 663, 669, 675, 681, 687, 693, 699, 705, 711, +- 717, 723, 729, 735, 743, 745, 747, 751, 755, 766, +- 768, 772, 774, 776, 792, 794, 798, 800, 802, 804, +- 806, 808, 810, 812, 814, 816, 818, 822, 827, 832, +- 837, 842, 847, 852, 857, 864, 870, 876, 882, 890, +- 895, 900, 905, 910, 915, 920, 925, 932, 937, 942, +- 949, 951, 953, 955, 959, 961, 992, 999, 1003, 1009, +- 1014, 1031, 1036, 1053, 1060, 1062, 1064, 1069, 1073, 1077, +- 1081, 1083, 1085, 1089, 1090, 1094, 1096, 1098, 1100, 1104, +- 1106, 1108, 1110, 1112, 1114, 1118, 1120, 1129, 1135, 1141, +- 1142, 1149, 1153, 1155, 1157, 1164, 1166, 1173, 1177, 1178, +- 1181, 1183, 1185, 1189, 1190, 1199, 1214, 1232, 1249, 1251, +- 1253, 1260, 1263, 1267, 1269, 1275, 1281, 1301, 1324, 1326, +- 1349, 1353, 1355, 1357, 1359 ++ 0, 395, 395, 406, 414, 423, 438, 455, 470, 480, ++ 482, 486, 492, 498, 504, 510, 516, 522, 528, 534, ++ 540, 546, 552, 558, 564, 570, 576, 583, 590, 597, ++ 604, 611, 618, 624, 630, 636, 642, 648, 654, 660, ++ 666, 672, 678, 684, 690, 696, 702, 708, 714, 720, ++ 726, 732, 738, 744, 750, 758, 760, 762, 766, 770, ++ 781, 783, 787, 789, 791, 807, 809, 813, 815, 817, ++ 819, 821, 823, 825, 827, 829, 831, 833, 837, 842, ++ 847, 852, 857, 862, 867, 872, 879, 885, 891, 897, ++ 905, 910, 915, 920, 925, 930, 935, 940, 947, 952, ++ 957, 964, 966, 968, 970, 974, 976, 1007, 1014, 1018, ++ 1024, 1029, 1046, 1051, 1068, 1075, 1077, 1079, 1084, 1088, ++ 1092, 1096, 1098, 1100, 1104, 1105, 1109, 1111, 1113, 1115, ++ 1119, 1121, 1123, 1125, 1127, 1129, 1133, 1135, 1144, 1150, ++ 1156, 1157, 1164, 1168, 1170, 1172, 1179, 1181, 1188, 1192, ++ 1193, 1196, 1198, 1200, 1204, 1205, 1214, 1229, 1247, 1264, ++ 1266, 1268, 1275, 1278, 1282, 1284, 1290, 1296, 1316, 1339, ++ 1341, 1364, 1368, 1370, 1372, 1374 + }; + #endif + +@@ -1119,7 +1119,7 @@ yysymbol_name (yysymbol_kind_t yysymbol) + } + #endif + +-#define YYPACT_NINF (-152) ++#define YYPACT_NINF (-125) + + #define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) +@@ -1133,41 +1133,41 @@ yysymbol_name (yysymbol_kind_t yysymbol) + STATE-NUM. */ + static const yytype_int16 yypact[] = + { +- 328, 80, -152, -11, -1, 3, -152, -152, 15, 637, +- -5, 433, 149, -28, -152, 187, 684, -152, 18, 28, +- 130, 38, 139, 50, 52, 60, 65, 74, -152, -152, +- -152, 89, 104, -152, -152, 97, -152, -152, 246, -152, +- 670, -152, -152, -152, -152, -152, -152, -152, -152, -152, +- -152, -152, -152, 146, 211, -152, 1, 433, -152, -152, +- 135, 484, -152, 59, 61, 90, 167, 171, 10, 71, +- 246, 670, 144, -152, -152, -152, -152, -152, 165, -152, +- 142, 179, 192, 140, 194, 160, 227, 245, 252, 253, +- 260, 261, 262, 162, 269, 178, 270, 272, 273, 274, +- 277, -152, -152, -152, -152, -152, -152, -152, -152, -152, +- -152, -152, -152, -152, -152, 168, 379, -152, -152, 173, +- 244, -152, -152, -152, -152, 670, -152, -152, -152, -152, +- -152, 535, 535, -152, -152, -152, -152, -152, -152, -152, +- 205, -152, 14, -152, 36, -152, -152, -152, -152, 84, +- -152, -152, -152, 249, 670, -152, 670, 670, -152, -152, +- -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, +- -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, +- -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, +- -152, -152, -152, -152, 484, 484, 203, 203, 586, 586, +- 145, -152, -152, -152, -152, -152, -152, 0, -152, 119, +- -152, 291, 248, 66, 88, -152, 119, -152, 296, 297, +- 35, -152, 670, 670, 35, -152, -152, 1, 1, -152, +- -152, -152, 306, 484, 484, 484, 484, 484, 305, 169, +- -152, 7, -152, -152, 302, -152, 131, -152, 265, -152, +- -152, -152, -152, -152, -152, 304, 131, -152, 266, -152, +- -152, -152, 35, -152, 313, 317, -152, -152, -152, 225, +- 225, 225, -152, -152, -152, -152, 206, 25, -152, -152, +- 307, -42, 319, 276, -152, -152, -152, 95, -152, 322, +- 283, 332, 284, -152, -152, 102, -152, -152, -152, -152, +- -152, -152, -152, -152, 45, 323, -152, -152, -152, 106, +- -152, -152, -152, -152, -152, -152, 109, -152, -152, 264, +- -152, -152, -152, 484, -152, -152, 333, 293, -152, -152, +- 338, 300, -152, -152, -152, 484, 345, 303, -152, -152, +- 346, 309, -152, -152, -152, -152, -152, -152, -152 ++ 329, 27, -125, 8, 81, 10, -125, -125, 16, 38, ++ 0, 434, -5, -16, -125, 670, 684, -125, 33, 43, ++ 62, 63, 71, 69, 94, 105, 108, 116, -125, -125, ++ -125, 125, 139, -125, -125, 111, -125, -125, 626, -125, ++ 648, -125, -125, -125, -125, -125, -125, -125, -125, -125, ++ -125, -125, -125, 5, -21, -125, -15, 434, -125, -125, ++ -125, 196, 485, -125, 157, 2, 180, 207, 222, 227, ++ 638, 626, 648, 224, -125, -125, -125, -125, -125, 219, ++ -125, 185, 223, 228, 140, 230, 161, 232, 233, 234, ++ 236, 241, 248, 249, 162, 250, 163, 251, 254, 256, ++ 257, 258, -125, -125, -125, -125, -125, -125, -125, -125, ++ -125, -125, -125, -125, -125, -125, 225, 380, -125, -125, ++ 229, 231, -125, -125, -125, -125, 648, -125, -125, -125, ++ -125, -125, 536, 536, -125, -125, -125, -125, -125, -125, ++ -125, 214, -125, -7, -125, 85, -125, -125, -125, -125, ++ 89, -125, -125, -125, 235, 648, -125, 648, 648, -125, ++ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, ++ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, ++ -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, ++ -125, -125, -125, -125, -125, 485, 485, 138, 138, 587, ++ 587, 17, -125, -125, -125, -125, -125, -125, 88, -125, ++ 122, -125, 274, 238, 100, 101, -125, 122, -125, 276, ++ 278, 260, -125, 648, 648, 260, -125, -125, -15, -15, ++ -125, -125, -125, 287, 485, 485, 485, 485, 485, 290, ++ 164, -125, 26, -125, -125, 285, -125, 131, -125, 242, ++ -125, -125, -125, -125, -125, -125, 288, 131, -125, 243, ++ -125, -125, -125, 260, -125, 297, 302, -125, -125, -125, ++ 152, 152, 152, -125, -125, -125, -125, 170, 61, -125, ++ -125, 281, -36, 293, 252, -125, -125, -125, 102, -125, ++ 298, 255, 300, 262, -125, -125, 103, -125, -125, -125, ++ -125, -125, -125, -125, -125, -33, 296, -125, -125, -125, ++ 110, -125, -125, -125, -125, -125, -125, 112, -125, -125, ++ 189, -125, -125, -125, 485, -125, -125, 310, 267, -125, ++ -125, 314, 275, -125, -125, -125, 485, 318, 277, -125, ++ -125, 320, 279, -125, -125, -125, -125, -125, -125, -125 + }; + + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. +@@ -1175,59 +1175,59 @@ static const yytype_int16 yypact[] = + means the default is an error. */ + static const yytype_uint8 yydefact[] = + { +- 0, 0, 153, 0, 0, 0, 153, 153, 0, 0, +- 0, 0, 171, 54, 55, 0, 0, 118, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 153, 4, +- 7, 0, 0, 153, 153, 0, 56, 59, 61, 170, +- 62, 66, 76, 70, 67, 64, 72, 3, 65, 71, +- 73, 74, 75, 0, 155, 162, 163, 0, 5, 6, +- 0, 0, 153, 153, 0, 153, 0, 0, 0, 54, +- 113, 109, 0, 151, 150, 152, 167, 164, 172, 173, ++ 0, 0, 154, 0, 0, 0, 154, 154, 0, 0, ++ 0, 0, 172, 55, 56, 0, 0, 119, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 154, 4, ++ 8, 0, 0, 154, 154, 0, 57, 60, 62, 171, ++ 63, 67, 77, 71, 68, 65, 73, 3, 66, 72, ++ 74, 75, 76, 0, 156, 163, 164, 0, 7, 5, ++ 6, 0, 0, 154, 154, 0, 154, 0, 0, 0, ++ 55, 114, 110, 0, 152, 151, 153, 168, 165, 173, ++ 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 16, 25, 40, 34, 49, 31, 43, 37, 46, +- 28, 52, 53, 22, 19, 0, 0, 10, 11, 0, +- 0, 1, 54, 60, 57, 63, 148, 149, 2, 153, +- 153, 156, 157, 153, 153, 166, 165, 153, 154, 137, +- 138, 147, 0, 153, 0, 153, 153, 153, 153, 0, +- 153, 153, 153, 153, 104, 102, 111, 110, 119, 174, +- 153, 18, 27, 42, 36, 51, 33, 45, 39, 48, +- 30, 24, 21, 14, 15, 17, 26, 41, 35, 50, +- 32, 44, 38, 47, 29, 23, 20, 12, 13, 107, +- 108, 117, 106, 58, 0, 0, 160, 161, 0, 0, +- 0, 153, 153, 153, 153, 153, 153, 0, 153, 0, +- 153, 0, 0, 0, 0, 153, 0, 153, 0, 0, +- 0, 153, 105, 112, 0, 158, 159, 169, 168, 153, +- 153, 114, 0, 0, 0, 140, 141, 139, 0, 123, +- 153, 0, 153, 153, 0, 8, 0, 153, 0, 87, +- 88, 153, 153, 153, 153, 0, 0, 153, 0, 68, +- 69, 103, 0, 100, 0, 0, 116, 142, 143, 144, +- 145, 146, 99, 129, 131, 133, 124, 0, 97, 135, +- 0, 0, 0, 0, 77, 9, 153, 0, 78, 0, +- 0, 0, 0, 89, 153, 0, 90, 101, 115, 153, +- 130, 132, 134, 98, 0, 0, 153, 79, 80, 0, +- 153, 153, 85, 86, 91, 92, 0, 153, 153, 120, +- 153, 136, 125, 126, 153, 153, 0, 0, 153, 153, +- 0, 0, 153, 122, 127, 128, 0, 0, 83, 84, +- 0, 0, 95, 96, 121, 81, 82, 93, 94 ++ 0, 0, 17, 26, 41, 35, 50, 32, 44, 38, ++ 47, 29, 53, 54, 23, 20, 0, 0, 11, 12, ++ 0, 0, 1, 55, 61, 58, 64, 149, 150, 2, ++ 154, 154, 157, 158, 154, 154, 167, 166, 154, 155, ++ 138, 139, 148, 0, 154, 0, 154, 154, 154, 154, ++ 0, 154, 154, 154, 154, 105, 103, 112, 111, 120, ++ 175, 154, 19, 28, 43, 37, 52, 34, 46, 40, ++ 49, 31, 25, 22, 15, 16, 18, 27, 42, 36, ++ 51, 33, 45, 39, 48, 30, 24, 21, 13, 14, ++ 108, 109, 118, 107, 59, 0, 0, 161, 162, 0, ++ 0, 0, 154, 154, 154, 154, 154, 154, 0, 154, ++ 0, 154, 0, 0, 0, 0, 154, 0, 154, 0, ++ 0, 0, 154, 106, 113, 0, 159, 160, 170, 169, ++ 154, 154, 115, 0, 0, 0, 141, 142, 140, 0, ++ 124, 154, 0, 154, 154, 0, 9, 0, 154, 0, ++ 88, 89, 154, 154, 154, 154, 0, 0, 154, 0, ++ 69, 70, 104, 0, 101, 0, 0, 117, 143, 144, ++ 145, 146, 147, 100, 130, 132, 134, 125, 0, 98, ++ 136, 0, 0, 0, 0, 78, 10, 154, 0, 79, ++ 0, 0, 0, 0, 90, 154, 0, 91, 102, 116, ++ 154, 131, 133, 135, 99, 0, 0, 154, 80, 81, ++ 0, 154, 154, 86, 87, 92, 93, 0, 154, 154, ++ 121, 154, 137, 126, 127, 154, 154, 0, 0, 154, ++ 154, 0, 0, 154, 123, 128, 129, 0, 0, 84, ++ 85, 0, 0, 96, 97, 122, 82, 83, 94, 95 + }; + + /* YYPGOTO[NTERM-NUM]. */ + static const yytype_int16 yypgoto[] = + { +- -152, -152, 112, -29, -14, -64, 360, -152, -8, -152, +- -152, -152, -152, -152, -151, -152, -152, -152, -152, -152, +- -152, -152, 13, -152, 136, -152, 98, -2, -152, 30, +- -152, -54, -26, -152, -123, 6, 78, -152 ++ -125, -125, 126, -25, -28, -65, 335, -125, -8, -125, ++ -125, -125, -125, -125, -96, -125, -125, -125, -125, -125, ++ -125, -125, 28, -125, 109, -125, 68, -2, -125, -11, ++ -125, -54, -26, -125, -124, 6, 34, -125 + }; + + /* YYDEFGOTO[NTERM-NUM]. */ + static const yytype_int16 yydefgoto[] = + { +- 0, 35, 246, 36, 37, 125, 38, 39, 40, 41, +- 42, 43, 44, 45, 155, 46, 47, 48, 49, 50, +- 51, 52, 232, 238, 239, 240, 281, 120, 139, 140, +- 128, 76, 61, 53, 54, 141, 56, 57 ++ 0, 35, 247, 36, 37, 126, 38, 39, 40, 41, ++ 42, 43, 44, 45, 156, 46, 47, 48, 49, 50, ++ 51, 52, 233, 239, 240, 241, 282, 121, 140, 141, ++ 129, 77, 62, 53, 54, 142, 56, 57 + }; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If +@@ -1235,157 +1235,157 @@ static const yytype_int16 yydefgoto[] = + number is the opposite. If YYTABLE_NINF, syntax error. */ + static const yytype_int16 yytable[] = + { +- 60, 71, 116, 135, 66, 67, 55, 157, 196, 197, +- 147, 124, 305, 2, 242, 62, 278, 77, 3, 306, +- 4, 5, 6, 7, 123, 63, 115, 72, 10, 65, +- 64, 119, 80, 279, 303, 206, 142, 144, 2, 149, +- 17, 68, 124, 3, 101, 4, 5, 6, 7, 133, +- 208, 279, 138, 10, 102, 134, 123, 209, 243, 138, +- 154, 156, 152, 136, 106, 17, 138, 280, 33, 261, +- 153, 225, 226, 263, 2, 145, 110, 138, 111, 3, +- 251, 4, 5, 6, 7, 280, 112, 138, 138, 10, +- 222, 113, 223, 33, 210, 34, 193, 121, 215, 305, +- 114, 17, 253, 194, 195, 216, 320, 198, 199, 310, +- 143, 297, 73, 74, 75, 117, 317, 207, 138, 146, +- 324, 213, 214, 328, 252, 124, 220, 124, 193, 33, +- 118, 34, 58, 59, 224, 200, 138, 55, 55, 137, +- 138, 148, 217, 211, 212, 245, 254, 138, 218, 219, +- 229, 230, 231, 311, 138, 247, 103, 285, 138, 104, +- 318, 138, 257, 158, 325, 107, 163, 329, 108, 164, +- 73, 74, 75, 78, 79, 233, 234, 235, 236, 237, +- 241, 150, 73, 74, 75, 151, 167, 105, 177, 168, +- 159, 178, 286, 193, 193, 262, 109, 165, 126, 127, +- 55, 55, 294, 160, 181, 161, 244, 182, 248, 273, +- 274, 275, 154, 255, 277, 258, 154, 169, 162, 179, +- 166, 287, 81, 82, 83, 84, 85, 264, 265, 189, +- 86, 295, 191, 87, 88, 183, 129, 130, 201, 202, +- 282, 283, 89, 90, 129, 130, 300, 301, 302, 289, +- 290, 291, 292, 170, 154, 203, 204, 205, 201, 202, +- 309, 131, 132, 267, 268, 269, 270, 271, 316, 332, +- 230, 171, 122, 14, 15, 16, 227, 228, 172, 173, +- 323, 18, 19, 20, 21, 22, 174, 175, 176, 23, +- 24, 25, 26, 27, 335, 180, 184, 319, 185, 186, +- 187, 31, 32, 188, 322, 192, 249, 250, 326, 327, +- 221, 259, 260, 266, 272, 330, 331, 284, 334, 293, +- 298, 299, 336, 337, 288, 296, 340, 341, 256, 1, +- 344, 2, 333, 279, 307, 308, 3, 312, 4, 5, +- 6, 7, 313, 315, 8, 9, 10, 314, 338, 321, +- 11, 12, 339, 342, 13, 14, 15, 16, 17, 343, +- 345, 347, 346, 18, 19, 20, 21, 22, 348, 70, +- 0, 23, 24, 25, 26, 27, 276, 28, 304, 0, +- 29, 30, 2, 31, 32, 0, 33, 3, 34, 4, +- 5, 6, 7, 0, 0, 8, 9, 10, 0, 0, +- 0, 11, 12, 0, 0, 13, 14, 15, 16, 17, ++ 61, 72, 117, 136, 67, 68, 55, 158, 197, 198, ++ 124, 148, 130, 131, 207, 125, 146, 78, 306, 79, ++ 80, 306, 230, 231, 232, 307, 116, 58, 321, 132, ++ 133, 120, 73, 134, 63, 279, 66, 143, 145, 135, ++ 150, 2, 69, 124, 81, 139, 3, 125, 4, 5, ++ 6, 7, 280, 74, 75, 76, 10, 127, 128, 102, ++ 147, 155, 157, 137, 70, 14, 15, 16, 17, 103, ++ 304, 226, 227, 18, 19, 20, 21, 22, 139, 59, ++ 60, 23, 24, 25, 26, 27, 281, 280, 104, 107, ++ 223, 105, 224, 31, 32, 111, 33, 108, 34, 209, ++ 109, 194, 243, 216, 195, 196, 210, 64, 199, 200, ++ 217, 122, 65, 139, 252, 254, 311, 318, 208, 106, ++ 112, 281, 214, 215, 325, 262, 329, 221, 110, 264, ++ 125, 113, 125, 194, 114, 225, 201, 139, 55, 55, ++ 139, 139, 115, 211, 212, 213, 244, 218, 246, 219, ++ 220, 118, 139, 139, 139, 139, 248, 286, 253, 255, ++ 312, 319, 139, 258, 139, 119, 164, 298, 326, 165, ++ 330, 130, 131, 74, 75, 76, 234, 235, 236, 237, ++ 238, 242, 74, 75, 76, 202, 203, 168, 178, 182, ++ 169, 179, 183, 287, 333, 231, 263, 166, 194, 194, ++ 138, 55, 55, 295, 274, 275, 276, 245, 144, 249, ++ 301, 302, 303, 155, 256, 278, 259, 155, 170, 180, ++ 184, 151, 288, 268, 269, 270, 271, 272, 265, 266, ++ 2, 149, 296, 228, 229, 3, 152, 4, 5, 6, ++ 7, 283, 284, 159, 160, 10, 161, 202, 203, 162, ++ 290, 291, 292, 293, 163, 155, 167, 17, 171, 172, ++ 173, 310, 174, 2, 204, 205, 206, 175, 3, 317, ++ 4, 5, 6, 7, 176, 177, 181, 185, 10, 153, ++ 186, 324, 187, 188, 189, 33, 190, 154, 192, 250, ++ 17, 260, 193, 261, 267, 336, 222, 251, 320, 273, ++ 285, 289, 297, 294, 299, 323, 300, 280, 308, 327, ++ 328, 309, 139, 313, 314, 315, 331, 332, 33, 335, ++ 34, 316, 322, 337, 338, 339, 340, 341, 342, 343, ++ 1, 345, 2, 346, 344, 348, 347, 3, 349, 4, ++ 5, 6, 7, 257, 71, 8, 9, 10, 334, 305, ++ 277, 11, 12, 0, 0, 13, 14, 15, 16, 17, + 0, 0, 0, 0, 18, 19, 20, 21, 22, 0, +- 0, 0, 23, 24, 25, 26, 27, 0, 0, 0, +- 0, 138, 0, 0, 31, 32, 2, 33, 0, 34, +- 190, 3, 0, 4, 5, 6, 7, 0, 0, 8, +- 9, 10, 0, 0, 0, 11, 12, 0, 0, 13, +- 14, 15, 16, 17, 0, 0, 0, 0, 18, 19, +- 20, 21, 22, 0, 0, 0, 23, 24, 25, 26, +- 27, 0, 0, 0, 73, 74, 75, 2, 31, 32, +- 0, 33, 3, 34, 4, 5, 6, 7, 0, 0, ++ 0, 0, 23, 24, 25, 26, 27, 0, 28, 0, ++ 0, 29, 30, 2, 31, 32, 0, 33, 3, 34, ++ 4, 5, 6, 7, 0, 0, 8, 9, 10, 0, ++ 0, 0, 11, 12, 0, 0, 13, 14, 15, 16, ++ 17, 0, 0, 0, 0, 18, 19, 20, 21, 22, ++ 0, 0, 0, 23, 24, 25, 26, 27, 0, 0, ++ 0, 0, 139, 0, 0, 31, 32, 2, 33, 0, ++ 34, 191, 3, 0, 4, 5, 6, 7, 0, 0, + 8, 9, 10, 0, 0, 0, 11, 12, 0, 0, + 13, 14, 15, 16, 17, 0, 0, 0, 0, 18, + 19, 20, 21, 22, 0, 0, 0, 23, 24, 25, +- 26, 27, 0, 0, 0, 0, 138, 0, 2, 31, ++ 26, 27, 0, 0, 0, 74, 75, 76, 2, 31, + 32, 0, 33, 3, 34, 4, 5, 6, 7, 0, + 0, 8, 9, 10, 0, 0, 0, 11, 12, 0, + 0, 13, 14, 15, 16, 17, 0, 0, 0, 0, + 18, 19, 20, 21, 22, 0, 0, 0, 23, 24, +- 25, 26, 27, 0, 0, 0, 0, 0, 0, 2, ++ 25, 26, 27, 0, 0, 0, 0, 139, 0, 2, + 31, 32, 0, 33, 3, 34, 4, 5, 6, 7, +- 0, 0, 8, 9, 10, 0, 0, 0, 0, 0, ++ 0, 0, 8, 9, 10, 0, 0, 0, 11, 12, + 0, 0, 13, 14, 15, 16, 17, 0, 0, 0, + 0, 18, 19, 20, 21, 22, 0, 0, 0, 23, +- 24, 25, 26, 27, 0, 0, 0, 0, 138, 0, ++ 24, 25, 26, 27, 0, 0, 0, 0, 0, 0, + 2, 31, 32, 0, 33, 3, 34, 4, 5, 6, +- 7, 0, 0, 0, 0, 10, 0, 0, 0, 0, +- 0, 0, 0, 69, 14, 15, 16, 17, 0, 0, ++ 7, 0, 0, 8, 9, 10, 0, 0, 0, 0, ++ 0, 0, 0, 13, 14, 15, 16, 17, 0, 0, + 0, 0, 18, 19, 20, 21, 22, 0, 0, 0, +- 23, 24, 25, 26, 27, 0, 0, 0, 0, 0, +- 0, 0, 31, 32, 0, 33, 0, 34, 15, 16, +- 0, 0, 0, 0, 0, 18, 19, 20, 21, 22, +- 0, 0, 0, 23, 24, 25, 26, 27, 0, 91, +- 92, 93, 94, 95, 0, 31, 32, 96, 0, 0, +- 97, 98, 0, 0, 0, 0, 0, 0, 0, 99, +- 100 ++ 23, 24, 25, 26, 27, 0, 0, 0, 0, 139, ++ 0, 2, 31, 32, 0, 33, 3, 34, 4, 5, ++ 6, 7, 123, 14, 15, 16, 10, 0, 0, 0, ++ 0, 18, 19, 20, 21, 22, 0, 0, 17, 23, ++ 24, 25, 26, 27, 0, 0, 15, 16, 0, 0, ++ 0, 31, 32, 18, 19, 20, 21, 22, 0, 0, ++ 0, 23, 24, 25, 26, 27, 33, 0, 34, 0, ++ 0, 0, 0, 31, 32, 82, 83, 84, 85, 86, ++ 0, 0, 0, 87, 0, 0, 88, 89, 0, 92, ++ 93, 94, 95, 96, 0, 90, 91, 97, 0, 0, ++ 98, 99, 0, 0, 0, 0, 0, 0, 0, 100, ++ 101 + }; + + static const yytype_int16 yycheck[] = + { +- 2, 9, 28, 57, 6, 7, 0, 71, 131, 132, +- 64, 40, 54, 3, 14, 26, 9, 11, 8, 61, +- 10, 11, 12, 13, 38, 26, 28, 32, 18, 26, +- 31, 33, 60, 26, 9, 21, 62, 63, 3, 65, +- 30, 26, 71, 8, 26, 10, 11, 12, 13, 48, +- 14, 26, 52, 18, 26, 54, 70, 21, 58, 52, +- 68, 69, 52, 57, 26, 30, 52, 60, 58, 220, +- 60, 194, 195, 224, 3, 14, 26, 52, 26, 8, +- 14, 10, 11, 12, 13, 60, 26, 52, 52, 18, +- 154, 26, 156, 58, 58, 60, 125, 0, 14, 54, +- 26, 30, 14, 129, 130, 21, 61, 133, 134, 14, +- 51, 262, 51, 52, 53, 26, 14, 143, 52, 58, +- 14, 147, 148, 14, 58, 154, 152, 156, 157, 58, +- 26, 60, 52, 53, 160, 137, 52, 131, 132, 4, +- 52, 51, 58, 145, 146, 26, 58, 52, 150, 151, +- 5, 6, 7, 58, 52, 209, 26, 26, 52, 29, +- 58, 52, 216, 19, 58, 26, 26, 58, 29, 29, +- 51, 52, 53, 24, 25, 201, 202, 203, 204, 205, +- 206, 14, 51, 52, 53, 14, 26, 57, 26, 29, +- 25, 29, 246, 222, 223, 221, 57, 57, 52, 53, +- 194, 195, 256, 61, 26, 26, 208, 29, 210, 40, +- 41, 42, 220, 215, 240, 217, 224, 57, 26, 57, +- 26, 247, 35, 36, 37, 38, 39, 229, 230, 61, +- 43, 257, 59, 46, 47, 57, 33, 34, 33, 34, +- 242, 243, 55, 56, 33, 34, 40, 41, 42, 251, +- 252, 253, 254, 26, 262, 50, 51, 52, 33, 34, +- 286, 50, 51, 233, 234, 235, 236, 237, 294, 5, +- 6, 26, 26, 27, 28, 29, 198, 199, 26, 26, +- 306, 35, 36, 37, 38, 39, 26, 26, 26, 43, +- 44, 45, 46, 47, 320, 26, 26, 299, 26, 26, +- 26, 55, 56, 26, 306, 61, 15, 59, 310, 311, +- 61, 15, 15, 7, 9, 317, 318, 15, 320, 15, +- 7, 4, 324, 325, 59, 59, 328, 329, 216, 1, +- 332, 3, 319, 26, 15, 59, 8, 15, 10, 11, +- 12, 13, 59, 59, 16, 17, 18, 15, 15, 26, +- 22, 23, 59, 15, 26, 27, 28, 29, 30, 59, +- 15, 15, 59, 35, 36, 37, 38, 39, 59, 9, +- -1, 43, 44, 45, 46, 47, 240, 49, 280, -1, +- 52, 53, 3, 55, 56, -1, 58, 8, 60, 10, +- 11, 12, 13, -1, -1, 16, 17, 18, -1, -1, +- -1, 22, 23, -1, -1, 26, 27, 28, 29, 30, ++ 2, 9, 28, 57, 6, 7, 0, 72, 132, 133, ++ 38, 65, 33, 34, 21, 40, 14, 11, 54, 24, ++ 25, 54, 5, 6, 7, 61, 28, 0, 61, 50, ++ 51, 33, 32, 48, 26, 9, 26, 63, 64, 54, ++ 66, 3, 26, 71, 60, 52, 8, 72, 10, 11, ++ 12, 13, 26, 51, 52, 53, 18, 52, 53, 26, ++ 58, 69, 70, 57, 26, 27, 28, 29, 30, 26, ++ 9, 195, 196, 35, 36, 37, 38, 39, 52, 52, ++ 53, 43, 44, 45, 46, 47, 60, 26, 26, 26, ++ 155, 29, 157, 55, 56, 26, 58, 26, 60, 14, ++ 29, 126, 14, 14, 130, 131, 21, 26, 134, 135, ++ 21, 0, 31, 52, 14, 14, 14, 14, 144, 57, ++ 26, 60, 148, 149, 14, 221, 14, 153, 57, 225, ++ 155, 26, 157, 158, 26, 161, 138, 52, 132, 133, ++ 52, 52, 26, 58, 146, 147, 58, 58, 26, 151, ++ 152, 26, 52, 52, 52, 52, 210, 26, 58, 58, ++ 58, 58, 52, 217, 52, 26, 26, 263, 58, 29, ++ 58, 33, 34, 51, 52, 53, 202, 203, 204, 205, ++ 206, 207, 51, 52, 53, 33, 34, 26, 26, 26, ++ 29, 29, 29, 247, 5, 6, 222, 57, 223, 224, ++ 4, 195, 196, 257, 40, 41, 42, 209, 51, 211, ++ 40, 41, 42, 221, 216, 241, 218, 225, 57, 57, ++ 57, 14, 248, 234, 235, 236, 237, 238, 230, 231, ++ 3, 51, 258, 199, 200, 8, 14, 10, 11, 12, ++ 13, 243, 244, 19, 25, 18, 61, 33, 34, 26, ++ 252, 253, 254, 255, 26, 263, 26, 30, 26, 26, ++ 26, 287, 26, 3, 50, 51, 52, 26, 8, 295, ++ 10, 11, 12, 13, 26, 26, 26, 26, 18, 52, ++ 26, 307, 26, 26, 26, 58, 61, 60, 59, 15, ++ 30, 15, 61, 15, 7, 321, 61, 59, 300, 9, ++ 15, 59, 59, 15, 7, 307, 4, 26, 15, 311, ++ 312, 59, 52, 15, 59, 15, 318, 319, 58, 321, ++ 60, 59, 26, 325, 326, 15, 59, 329, 330, 15, ++ 1, 333, 3, 15, 59, 15, 59, 8, 59, 10, ++ 11, 12, 13, 217, 9, 16, 17, 18, 320, 281, ++ 241, 22, 23, -1, -1, 26, 27, 28, 29, 30, + -1, -1, -1, -1, 35, 36, 37, 38, 39, -1, +- -1, -1, 43, 44, 45, 46, 47, -1, -1, -1, +- -1, 52, -1, -1, 55, 56, 3, 58, -1, 60, +- 61, 8, -1, 10, 11, 12, 13, -1, -1, 16, +- 17, 18, -1, -1, -1, 22, 23, -1, -1, 26, +- 27, 28, 29, 30, -1, -1, -1, -1, 35, 36, +- 37, 38, 39, -1, -1, -1, 43, 44, 45, 46, +- 47, -1, -1, -1, 51, 52, 53, 3, 55, 56, +- -1, 58, 8, 60, 10, 11, 12, 13, -1, -1, ++ -1, -1, 43, 44, 45, 46, 47, -1, 49, -1, ++ -1, 52, 53, 3, 55, 56, -1, 58, 8, 60, ++ 10, 11, 12, 13, -1, -1, 16, 17, 18, -1, ++ -1, -1, 22, 23, -1, -1, 26, 27, 28, 29, ++ 30, -1, -1, -1, -1, 35, 36, 37, 38, 39, ++ -1, -1, -1, 43, 44, 45, 46, 47, -1, -1, ++ -1, -1, 52, -1, -1, 55, 56, 3, 58, -1, ++ 60, 61, 8, -1, 10, 11, 12, 13, -1, -1, + 16, 17, 18, -1, -1, -1, 22, 23, -1, -1, + 26, 27, 28, 29, 30, -1, -1, -1, -1, 35, + 36, 37, 38, 39, -1, -1, -1, 43, 44, 45, +- 46, 47, -1, -1, -1, -1, 52, -1, 3, 55, ++ 46, 47, -1, -1, -1, 51, 52, 53, 3, 55, + 56, -1, 58, 8, 60, 10, 11, 12, 13, -1, + -1, 16, 17, 18, -1, -1, -1, 22, 23, -1, + -1, 26, 27, 28, 29, 30, -1, -1, -1, -1, + 35, 36, 37, 38, 39, -1, -1, -1, 43, 44, +- 45, 46, 47, -1, -1, -1, -1, -1, -1, 3, ++ 45, 46, 47, -1, -1, -1, -1, 52, -1, 3, + 55, 56, -1, 58, 8, 60, 10, 11, 12, 13, +- -1, -1, 16, 17, 18, -1, -1, -1, -1, -1, ++ -1, -1, 16, 17, 18, -1, -1, -1, 22, 23, + -1, -1, 26, 27, 28, 29, 30, -1, -1, -1, + -1, 35, 36, 37, 38, 39, -1, -1, -1, 43, +- 44, 45, 46, 47, -1, -1, -1, -1, 52, -1, ++ 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, + 3, 55, 56, -1, 58, 8, 60, 10, 11, 12, +- 13, -1, -1, -1, -1, 18, -1, -1, -1, -1, ++ 13, -1, -1, 16, 17, 18, -1, -1, -1, -1, + -1, -1, -1, 26, 27, 28, 29, 30, -1, -1, + -1, -1, 35, 36, 37, 38, 39, -1, -1, -1, +- 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, +- -1, -1, 55, 56, -1, 58, -1, 60, 28, 29, +- -1, -1, -1, -1, -1, 35, 36, 37, 38, 39, +- -1, -1, -1, 43, 44, 45, 46, 47, -1, 35, ++ 43, 44, 45, 46, 47, -1, -1, -1, -1, 52, ++ -1, 3, 55, 56, -1, 58, 8, 60, 10, 11, ++ 12, 13, 26, 27, 28, 29, 18, -1, -1, -1, ++ -1, 35, 36, 37, 38, 39, -1, -1, 30, 43, ++ 44, 45, 46, 47, -1, -1, 28, 29, -1, -1, ++ -1, 55, 56, 35, 36, 37, 38, 39, -1, -1, ++ -1, 43, 44, 45, 46, 47, 58, -1, 60, -1, ++ -1, -1, -1, 55, 56, 35, 36, 37, 38, 39, ++ -1, -1, -1, 43, -1, -1, 46, 47, -1, 35, + 36, 37, 38, 39, -1, 55, 56, 43, -1, -1, + 46, 47, -1, -1, -1, -1, -1, -1, -1, 55, + 56 +@@ -1400,82 +1400,82 @@ static const yytype_int8 yystos[] = + 37, 38, 39, 43, 44, 45, 46, 47, 49, 52, + 53, 55, 56, 58, 60, 63, 65, 66, 68, 69, + 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, +- 81, 82, 83, 95, 96, 97, 98, 99, 52, 53, +- 89, 94, 26, 26, 31, 26, 89, 89, 26, 26, +- 68, 70, 32, 51, 52, 53, 93, 97, 24, 25, +- 60, 35, 36, 37, 38, 39, 43, 46, 47, 55, +- 56, 35, 36, 37, 38, 39, 43, 46, 47, 55, +- 56, 26, 26, 26, 29, 57, 26, 26, 29, 57, +- 26, 26, 26, 26, 26, 89, 94, 26, 26, 89, +- 89, 0, 26, 66, 65, 67, 52, 53, 92, 33, +- 34, 50, 51, 48, 54, 93, 97, 4, 52, 90, +- 91, 97, 94, 51, 94, 14, 58, 93, 51, 94, +- 14, 14, 52, 60, 70, 76, 70, 67, 19, 25, +- 61, 26, 26, 26, 29, 57, 26, 26, 29, 57, +- 26, 26, 26, 26, 26, 26, 26, 26, 29, 57, +- 26, 26, 29, 57, 26, 26, 26, 26, 26, 61, +- 61, 59, 61, 65, 94, 94, 96, 96, 94, 94, +- 89, 33, 34, 50, 51, 52, 21, 94, 14, 21, +- 58, 89, 89, 94, 94, 14, 21, 58, 89, 89, +- 94, 61, 67, 67, 94, 96, 96, 98, 98, 5, +- 6, 7, 84, 94, 94, 94, 94, 94, 85, 86, +- 87, 94, 14, 58, 89, 26, 64, 93, 89, 15, +- 59, 14, 58, 14, 58, 89, 64, 93, 89, 15, +- 15, 76, 94, 76, 89, 89, 7, 91, 91, 91, +- 91, 91, 9, 40, 41, 42, 86, 94, 9, 26, +- 60, 88, 89, 89, 15, 26, 93, 94, 59, 89, +- 89, 89, 89, 15, 93, 94, 59, 76, 7, 4, +- 40, 41, 42, 9, 88, 54, 61, 15, 59, 94, +- 14, 58, 15, 59, 15, 59, 94, 14, 58, 89, +- 61, 26, 89, 94, 14, 58, 89, 89, 14, 58, +- 89, 89, 5, 84, 89, 94, 89, 89, 15, 59, +- 89, 89, 15, 59, 89, 15, 59, 15, 59 ++ 81, 82, 83, 95, 96, 97, 98, 99, 0, 52, ++ 53, 89, 94, 26, 26, 31, 26, 89, 89, 26, ++ 26, 68, 70, 32, 51, 52, 53, 93, 97, 24, ++ 25, 60, 35, 36, 37, 38, 39, 43, 46, 47, ++ 55, 56, 35, 36, 37, 38, 39, 43, 46, 47, ++ 55, 56, 26, 26, 26, 29, 57, 26, 26, 29, ++ 57, 26, 26, 26, 26, 26, 89, 94, 26, 26, ++ 89, 89, 0, 26, 66, 65, 67, 52, 53, 92, ++ 33, 34, 50, 51, 48, 54, 93, 97, 4, 52, ++ 90, 91, 97, 94, 51, 94, 14, 58, 93, 51, ++ 94, 14, 14, 52, 60, 70, 76, 70, 67, 19, ++ 25, 61, 26, 26, 26, 29, 57, 26, 26, 29, ++ 57, 26, 26, 26, 26, 26, 26, 26, 26, 29, ++ 57, 26, 26, 29, 57, 26, 26, 26, 26, 26, ++ 61, 61, 59, 61, 65, 94, 94, 96, 96, 94, ++ 94, 89, 33, 34, 50, 51, 52, 21, 94, 14, ++ 21, 58, 89, 89, 94, 94, 14, 21, 58, 89, ++ 89, 94, 61, 67, 67, 94, 96, 96, 98, 98, ++ 5, 6, 7, 84, 94, 94, 94, 94, 94, 85, ++ 86, 87, 94, 14, 58, 89, 26, 64, 93, 89, ++ 15, 59, 14, 58, 14, 58, 89, 64, 93, 89, ++ 15, 15, 76, 94, 76, 89, 89, 7, 91, 91, ++ 91, 91, 91, 9, 40, 41, 42, 86, 94, 9, ++ 26, 60, 88, 89, 89, 15, 26, 93, 94, 59, ++ 89, 89, 89, 89, 15, 93, 94, 59, 76, 7, ++ 4, 40, 41, 42, 9, 88, 54, 61, 15, 59, ++ 94, 14, 58, 15, 59, 15, 59, 94, 14, 58, ++ 89, 61, 26, 89, 94, 14, 58, 89, 89, 14, ++ 58, 89, 89, 5, 84, 89, 94, 89, 89, 15, ++ 59, 89, 89, 15, 59, 89, 15, 59, 15, 59 + }; + + /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ + static const yytype_int8 yyr1[] = + { +- 0, 62, 63, 63, 63, 63, 63, 63, 64, 64, +- 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, ++ 0, 62, 63, 63, 63, 63, 63, 63, 63, 64, ++ 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, +- 65, 65, 65, 65, 66, 66, 66, 67, 67, 68, +- 68, 69, 69, 69, 69, 69, 70, 70, 70, 70, +- 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, +- 71, 71, 71, 71, 71, 72, 72, 72, 72, 73, +- 73, 73, 73, 73, 73, 73, 73, 74, 74, 74, +- 75, 75, 75, 75, 76, 76, 77, 78, 78, 79, +- 79, 79, 79, 79, 80, 80, 80, 81, 82, 83, +- 84, 84, 84, 85, 85, 86, 86, 86, 86, 87, +- 87, 87, 87, 87, 87, 88, 88, 89, 89, 90, +- 90, 90, 91, 91, 91, 91, 91, 91, 92, 92, +- 93, 93, 93, 94, 94, 95, 95, 95, 96, 96, +- 96, 96, 96, 97, 97, 97, 97, 97, 98, 98, +- 98, 99, 99, 99, 99 ++ 65, 65, 65, 65, 65, 66, 66, 66, 67, 67, ++ 68, 68, 69, 69, 69, 69, 69, 70, 70, 70, ++ 70, 70, 70, 70, 70, 70, 70, 70, 71, 71, ++ 71, 71, 71, 71, 71, 71, 72, 72, 72, 72, ++ 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, ++ 74, 75, 75, 75, 75, 76, 76, 77, 78, 78, ++ 79, 79, 79, 79, 79, 80, 80, 80, 81, 82, ++ 83, 84, 84, 84, 85, 85, 86, 86, 86, 86, ++ 87, 87, 87, 87, 87, 87, 88, 88, 89, 89, ++ 90, 90, 90, 91, 91, 91, 91, 91, 91, 92, ++ 92, 93, 93, 93, 94, 94, 95, 95, 95, 96, ++ 96, 96, 96, 96, 97, 97, 97, 97, 97, 98, ++ 98, 98, 99, 99, 99, 99 + }; + + /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ + static const yytype_int8 yyr2[] = + { +- 0, 2, 2, 1, 1, 2, 2, 1, 1, 2, +- 2, 2, 3, 3, 3, 3, 2, 3, 3, 2, ++ 0, 2, 2, 1, 1, 2, 2, 2, 1, 1, ++ 2, 2, 2, 3, 3, 3, 3, 2, 3, 3, ++ 2, 3, 3, 2, 3, 3, 2, 3, 3, 2, + 3, 3, 2, 3, 3, 2, 3, 3, 2, 3, + 3, 2, 3, 3, 2, 3, 3, 2, 3, 3, +- 2, 3, 3, 2, 3, 3, 2, 3, 3, 2, +- 3, 3, 2, 2, 1, 1, 1, 1, 2, 1, +- 2, 1, 1, 2, 1, 1, 1, 1, 5, 5, +- 1, 1, 1, 1, 1, 1, 1, 6, 6, 7, +- 7, 10, 10, 9, 9, 7, 7, 5, 5, 6, +- 6, 7, 7, 10, 10, 9, 9, 6, 7, 6, +- 5, 6, 3, 5, 1, 2, 3, 3, 3, 2, +- 3, 3, 4, 2, 5, 7, 6, 3, 1, 3, +- 4, 6, 5, 1, 2, 4, 4, 5, 5, 2, +- 3, 2, 3, 2, 3, 1, 3, 2, 2, 3, +- 3, 3, 4, 4, 4, 4, 4, 1, 1, 1, +- 1, 1, 1, 0, 2, 1, 2, 2, 4, 4, +- 3, 3, 1, 1, 2, 2, 2, 2, 4, 4, +- 1, 1, 2, 2, 3 ++ 2, 3, 3, 2, 2, 1, 1, 1, 1, 2, ++ 1, 2, 1, 1, 2, 1, 1, 1, 1, 5, ++ 5, 1, 1, 1, 1, 1, 1, 1, 6, 6, ++ 7, 7, 10, 10, 9, 9, 7, 7, 5, 5, ++ 6, 6, 7, 7, 10, 10, 9, 9, 6, 7, ++ 6, 5, 6, 3, 5, 1, 2, 3, 3, 3, ++ 2, 3, 3, 4, 2, 5, 7, 6, 3, 1, ++ 3, 4, 6, 5, 1, 2, 4, 4, 5, 5, ++ 2, 3, 2, 3, 2, 3, 1, 3, 2, 2, ++ 3, 3, 3, 4, 4, 4, 4, 4, 1, 1, ++ 1, 1, 1, 1, 0, 2, 1, 2, 2, 4, ++ 4, 3, 3, 1, 1, 2, 2, 2, 2, 4, ++ 4, 1, 1, 2, 2, 3 + }; + + +@@ -2018,8 +2018,27 @@ yyreduce: + #line 2019 "y.tab.c" + break; + +- case 7: /* inputunit: yacc_EOF */ ++ case 7: /* inputunit: error $end */ + #line 456 "/usr/local/src/chet/src/bash/src/parse.y" ++ { ++ global_command = (COMMAND *)NULL; ++ if (last_command_exit_value == 0) ++ last_command_exit_value = EX_BADUSAGE; /* force error return */ ++ if (interactive && parse_and_execute_level == 0) ++ { ++ handle_eof_input_unit (); ++ YYACCEPT; ++ } ++ else ++ { ++ YYABORT; ++ } ++ } ++#line 2038 "y.tab.c" ++ break; ++ ++ case 8: /* inputunit: yacc_EOF */ ++#line 471 "/usr/local/src/chet/src/bash/src/parse.y" + { + /* Case of EOF seen by itself. Do ignoreeof or + not. */ +@@ -2027,495 +2046,495 @@ yyreduce: + handle_eof_input_unit (); + YYACCEPT; + } +-#line 2031 "y.tab.c" ++#line 2050 "y.tab.c" + break; + +- case 8: /* word_list: WORD */ +-#line 466 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 9: /* word_list: WORD */ ++#line 481 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[0].word), (WORD_LIST *)NULL); } +-#line 2037 "y.tab.c" ++#line 2056 "y.tab.c" + break; + +- case 9: /* word_list: word_list WORD */ +-#line 468 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 10: /* word_list: word_list WORD */ ++#line 483 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[0].word), (yyvsp[-1].word_list)); } +-#line 2043 "y.tab.c" ++#line 2062 "y.tab.c" + break; + +- case 10: /* redirection: '>' WORD */ +-#line 472 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 11: /* redirection: '>' WORD */ ++#line 487 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 1; + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); + } +-#line 2053 "y.tab.c" ++#line 2072 "y.tab.c" + break; + +- case 11: /* redirection: '<' WORD */ +-#line 478 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 12: /* redirection: '<' WORD */ ++#line 493 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 0; + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); + } +-#line 2063 "y.tab.c" ++#line 2082 "y.tab.c" + break; + +- case 12: /* redirection: NUMBER '>' WORD */ +-#line 484 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 13: /* redirection: NUMBER '>' WORD */ ++#line 499 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); + } +-#line 2073 "y.tab.c" ++#line 2092 "y.tab.c" + break; + +- case 13: /* redirection: NUMBER '<' WORD */ +-#line 490 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 14: /* redirection: NUMBER '<' WORD */ ++#line 505 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); + } +-#line 2083 "y.tab.c" ++#line 2102 "y.tab.c" + break; + +- case 14: /* redirection: REDIR_WORD '>' WORD */ +-#line 496 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 15: /* redirection: REDIR_WORD '>' WORD */ ++#line 511 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_output_direction, redir, REDIR_VARASSIGN); + } +-#line 2093 "y.tab.c" ++#line 2112 "y.tab.c" + break; + +- case 15: /* redirection: REDIR_WORD '<' WORD */ +-#line 502 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 16: /* redirection: REDIR_WORD '<' WORD */ ++#line 517 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_input_direction, redir, REDIR_VARASSIGN); + } +-#line 2103 "y.tab.c" ++#line 2122 "y.tab.c" + break; + +- case 16: /* redirection: GREATER_GREATER WORD */ +-#line 508 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 17: /* redirection: GREATER_GREATER WORD */ ++#line 523 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 1; + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); + } +-#line 2113 "y.tab.c" ++#line 2132 "y.tab.c" + break; + +- case 17: /* redirection: NUMBER GREATER_GREATER WORD */ +-#line 514 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 18: /* redirection: NUMBER GREATER_GREATER WORD */ ++#line 529 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); + } +-#line 2123 "y.tab.c" ++#line 2142 "y.tab.c" + break; + +- case 18: /* redirection: REDIR_WORD GREATER_GREATER WORD */ +-#line 520 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 19: /* redirection: REDIR_WORD GREATER_GREATER WORD */ ++#line 535 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_appending_to, redir, REDIR_VARASSIGN); + } +-#line 2133 "y.tab.c" ++#line 2152 "y.tab.c" + break; + +- case 19: /* redirection: GREATER_BAR WORD */ +-#line 526 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 20: /* redirection: GREATER_BAR WORD */ ++#line 541 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 1; + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); + } +-#line 2143 "y.tab.c" ++#line 2162 "y.tab.c" + break; + +- case 20: /* redirection: NUMBER GREATER_BAR WORD */ +-#line 532 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 21: /* redirection: NUMBER GREATER_BAR WORD */ ++#line 547 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); + } +-#line 2153 "y.tab.c" ++#line 2172 "y.tab.c" + break; + +- case 21: /* redirection: REDIR_WORD GREATER_BAR WORD */ +-#line 538 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 22: /* redirection: REDIR_WORD GREATER_BAR WORD */ ++#line 553 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_output_force, redir, REDIR_VARASSIGN); + } +-#line 2163 "y.tab.c" ++#line 2182 "y.tab.c" + break; + +- case 22: /* redirection: LESS_GREATER WORD */ +-#line 544 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 23: /* redirection: LESS_GREATER WORD */ ++#line 559 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 0; + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); + } +-#line 2173 "y.tab.c" ++#line 2192 "y.tab.c" + break; + +- case 23: /* redirection: NUMBER LESS_GREATER WORD */ +-#line 550 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 24: /* redirection: NUMBER LESS_GREATER WORD */ ++#line 565 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); + } +-#line 2183 "y.tab.c" ++#line 2202 "y.tab.c" + break; + +- case 24: /* redirection: REDIR_WORD LESS_GREATER WORD */ +-#line 556 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 25: /* redirection: REDIR_WORD LESS_GREATER WORD */ ++#line 571 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_input_output, redir, REDIR_VARASSIGN); + } +-#line 2193 "y.tab.c" ++#line 2212 "y.tab.c" + break; + +- case 25: /* redirection: LESS_LESS WORD */ +-#line 562 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 26: /* redirection: LESS_LESS WORD */ ++#line 577 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 0; + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); + push_heredoc ((yyval.redirect)); + } +-#line 2204 "y.tab.c" ++#line 2223 "y.tab.c" + break; + +- case 26: /* redirection: NUMBER LESS_LESS WORD */ +-#line 569 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 27: /* redirection: NUMBER LESS_LESS WORD */ ++#line 584 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); + push_heredoc ((yyval.redirect)); + } +-#line 2215 "y.tab.c" ++#line 2234 "y.tab.c" + break; + +- case 27: /* redirection: REDIR_WORD LESS_LESS WORD */ +-#line 576 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 28: /* redirection: REDIR_WORD LESS_LESS WORD */ ++#line 591 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); + push_heredoc ((yyval.redirect)); + } +-#line 2226 "y.tab.c" ++#line 2245 "y.tab.c" + break; + +- case 28: /* redirection: LESS_LESS_MINUS WORD */ +-#line 583 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 29: /* redirection: LESS_LESS_MINUS WORD */ ++#line 598 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 0; + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); + push_heredoc ((yyval.redirect)); + } +-#line 2237 "y.tab.c" ++#line 2256 "y.tab.c" + break; + +- case 29: /* redirection: NUMBER LESS_LESS_MINUS WORD */ +-#line 590 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 30: /* redirection: NUMBER LESS_LESS_MINUS WORD */ ++#line 605 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); + push_heredoc ((yyval.redirect)); + } +-#line 2248 "y.tab.c" ++#line 2267 "y.tab.c" + break; + +- case 30: /* redirection: REDIR_WORD LESS_LESS_MINUS WORD */ +-#line 597 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 31: /* redirection: REDIR_WORD LESS_LESS_MINUS WORD */ ++#line 612 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); + push_heredoc ((yyval.redirect)); + } +-#line 2259 "y.tab.c" ++#line 2278 "y.tab.c" + break; + +- case 31: /* redirection: LESS_LESS_LESS WORD */ +-#line 604 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 32: /* redirection: LESS_LESS_LESS WORD */ ++#line 619 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 0; + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); + } +-#line 2269 "y.tab.c" ++#line 2288 "y.tab.c" + break; + +- case 32: /* redirection: NUMBER LESS_LESS_LESS WORD */ +-#line 610 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 33: /* redirection: NUMBER LESS_LESS_LESS WORD */ ++#line 625 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); + } +-#line 2279 "y.tab.c" ++#line 2298 "y.tab.c" + break; + +- case 33: /* redirection: REDIR_WORD LESS_LESS_LESS WORD */ +-#line 616 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 34: /* redirection: REDIR_WORD LESS_LESS_LESS WORD */ ++#line 631 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_reading_string, redir, REDIR_VARASSIGN); + } +-#line 2289 "y.tab.c" ++#line 2308 "y.tab.c" + break; + +- case 34: /* redirection: LESS_AND NUMBER */ +-#line 622 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 35: /* redirection: LESS_AND NUMBER */ ++#line 637 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 0; + redir.dest = (yyvsp[0].number); + (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); + } +-#line 2299 "y.tab.c" ++#line 2318 "y.tab.c" + break; + +- case 35: /* redirection: NUMBER LESS_AND NUMBER */ +-#line 628 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 36: /* redirection: NUMBER LESS_AND NUMBER */ ++#line 643 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.dest = (yyvsp[0].number); + (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); + } +-#line 2309 "y.tab.c" ++#line 2328 "y.tab.c" + break; + +- case 36: /* redirection: REDIR_WORD LESS_AND NUMBER */ +-#line 634 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 37: /* redirection: REDIR_WORD LESS_AND NUMBER */ ++#line 649 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.dest = (yyvsp[0].number); + (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, REDIR_VARASSIGN); + } +-#line 2319 "y.tab.c" ++#line 2338 "y.tab.c" + break; + +- case 37: /* redirection: GREATER_AND NUMBER */ +-#line 640 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 38: /* redirection: GREATER_AND NUMBER */ ++#line 655 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 1; + redir.dest = (yyvsp[0].number); + (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); + } +-#line 2329 "y.tab.c" ++#line 2348 "y.tab.c" + break; + +- case 38: /* redirection: NUMBER GREATER_AND NUMBER */ +-#line 646 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 39: /* redirection: NUMBER GREATER_AND NUMBER */ ++#line 661 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.dest = (yyvsp[0].number); + (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); + } +-#line 2339 "y.tab.c" ++#line 2358 "y.tab.c" + break; + +- case 39: /* redirection: REDIR_WORD GREATER_AND NUMBER */ +-#line 652 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 40: /* redirection: REDIR_WORD GREATER_AND NUMBER */ ++#line 667 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.dest = (yyvsp[0].number); + (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, REDIR_VARASSIGN); + } +-#line 2349 "y.tab.c" ++#line 2368 "y.tab.c" + break; + +- case 40: /* redirection: LESS_AND WORD */ +-#line 658 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 41: /* redirection: LESS_AND WORD */ ++#line 673 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 0; + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); + } +-#line 2359 "y.tab.c" ++#line 2378 "y.tab.c" + break; + +- case 41: /* redirection: NUMBER LESS_AND WORD */ +-#line 664 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 42: /* redirection: NUMBER LESS_AND WORD */ ++#line 679 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); + } +-#line 2369 "y.tab.c" ++#line 2388 "y.tab.c" + break; + +- case 42: /* redirection: REDIR_WORD LESS_AND WORD */ +-#line 670 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 43: /* redirection: REDIR_WORD LESS_AND WORD */ ++#line 685 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, REDIR_VARASSIGN); + } +-#line 2379 "y.tab.c" ++#line 2398 "y.tab.c" + break; + +- case 43: /* redirection: GREATER_AND WORD */ +-#line 676 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 44: /* redirection: GREATER_AND WORD */ ++#line 691 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 1; + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); + } +-#line 2389 "y.tab.c" ++#line 2408 "y.tab.c" + break; + +- case 44: /* redirection: NUMBER GREATER_AND WORD */ +-#line 682 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 45: /* redirection: NUMBER GREATER_AND WORD */ ++#line 697 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); + } +-#line 2399 "y.tab.c" ++#line 2418 "y.tab.c" + break; + +- case 45: /* redirection: REDIR_WORD GREATER_AND WORD */ +-#line 688 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 46: /* redirection: REDIR_WORD GREATER_AND WORD */ ++#line 703 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, REDIR_VARASSIGN); + } +-#line 2409 "y.tab.c" ++#line 2428 "y.tab.c" + break; + +- case 46: /* redirection: GREATER_AND '-' */ +-#line 694 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 47: /* redirection: GREATER_AND '-' */ ++#line 709 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 1; + redir.dest = 0; + (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); + } +-#line 2419 "y.tab.c" ++#line 2438 "y.tab.c" + break; + +- case 47: /* redirection: NUMBER GREATER_AND '-' */ +-#line 700 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 48: /* redirection: NUMBER GREATER_AND '-' */ ++#line 715 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.dest = 0; + (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); + } +-#line 2429 "y.tab.c" ++#line 2448 "y.tab.c" + break; + +- case 48: /* redirection: REDIR_WORD GREATER_AND '-' */ +-#line 706 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 49: /* redirection: REDIR_WORD GREATER_AND '-' */ ++#line 721 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.dest = 0; + (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); + } +-#line 2439 "y.tab.c" ++#line 2458 "y.tab.c" + break; + +- case 49: /* redirection: LESS_AND '-' */ +-#line 712 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 50: /* redirection: LESS_AND '-' */ ++#line 727 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 0; + redir.dest = 0; + (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); + } +-#line 2449 "y.tab.c" ++#line 2468 "y.tab.c" + break; + +- case 50: /* redirection: NUMBER LESS_AND '-' */ +-#line 718 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 51: /* redirection: NUMBER LESS_AND '-' */ ++#line 733 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[-2].number); + redir.dest = 0; + (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); + } +-#line 2459 "y.tab.c" ++#line 2478 "y.tab.c" + break; + +- case 51: /* redirection: REDIR_WORD LESS_AND '-' */ +-#line 724 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 52: /* redirection: REDIR_WORD LESS_AND '-' */ ++#line 739 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[-2].word); + redir.dest = 0; + (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); + } +-#line 2469 "y.tab.c" ++#line 2488 "y.tab.c" + break; + +- case 52: /* redirection: AND_GREATER WORD */ +-#line 730 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 53: /* redirection: AND_GREATER WORD */ ++#line 745 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 1; + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_err_and_out, redir, 0); + } +-#line 2479 "y.tab.c" ++#line 2498 "y.tab.c" + break; + +- case 53: /* redirection: AND_GREATER_GREATER WORD */ +-#line 736 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 54: /* redirection: AND_GREATER_GREATER WORD */ ++#line 751 "/usr/local/src/chet/src/bash/src/parse.y" + { + source.dest = 1; + redir.filename = (yyvsp[0].word); + (yyval.redirect) = make_redirection (source, r_append_err_and_out, redir, 0); + } +-#line 2489 "y.tab.c" ++#line 2508 "y.tab.c" + break; + +- case 54: /* simple_command_element: WORD */ +-#line 744 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 55: /* simple_command_element: WORD */ ++#line 759 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.element).word = (yyvsp[0].word); (yyval.element).redirect = 0; } +-#line 2495 "y.tab.c" ++#line 2514 "y.tab.c" + break; + +- case 55: /* simple_command_element: ASSIGNMENT_WORD */ +-#line 746 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 56: /* simple_command_element: ASSIGNMENT_WORD */ ++#line 761 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.element).word = (yyvsp[0].word); (yyval.element).redirect = 0; } +-#line 2501 "y.tab.c" ++#line 2520 "y.tab.c" + break; + +- case 56: /* simple_command_element: redirection */ +-#line 748 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 57: /* simple_command_element: redirection */ ++#line 763 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.element).redirect = (yyvsp[0].redirect); (yyval.element).word = 0; } +-#line 2507 "y.tab.c" ++#line 2526 "y.tab.c" + break; + +- case 57: /* redirection_list: redirection */ +-#line 752 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 58: /* redirection_list: redirection */ ++#line 767 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.redirect) = (yyvsp[0].redirect); + } +-#line 2515 "y.tab.c" ++#line 2534 "y.tab.c" + break; + +- case 58: /* redirection_list: redirection_list redirection */ +-#line 756 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 59: /* redirection_list: redirection_list redirection */ ++#line 771 "/usr/local/src/chet/src/bash/src/parse.y" + { + register REDIRECT *t; + +@@ -2524,35 +2543,35 @@ yyreduce: + t->next = (yyvsp[0].redirect); + (yyval.redirect) = (yyvsp[-1].redirect); + } +-#line 2528 "y.tab.c" ++#line 2547 "y.tab.c" + break; + +- case 59: /* simple_command: simple_command_element */ +-#line 767 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 60: /* simple_command: simple_command_element */ ++#line 782 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_simple_command ((yyvsp[0].element), (COMMAND *)NULL); } +-#line 2534 "y.tab.c" ++#line 2553 "y.tab.c" + break; + +- case 60: /* simple_command: simple_command simple_command_element */ +-#line 769 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 61: /* simple_command: simple_command simple_command_element */ ++#line 784 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_simple_command ((yyvsp[0].element), (yyvsp[-1].command)); } +-#line 2540 "y.tab.c" ++#line 2559 "y.tab.c" + break; + +- case 61: /* command: simple_command */ +-#line 773 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 62: /* command: simple_command */ ++#line 788 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = clean_simple_command ((yyvsp[0].command)); } +-#line 2546 "y.tab.c" ++#line 2565 "y.tab.c" + break; + +- case 62: /* command: shell_command */ +-#line 775 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 63: /* command: shell_command */ ++#line 790 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 2552 "y.tab.c" ++#line 2571 "y.tab.c" + break; + +- case 63: /* command: shell_command redirection_list */ +-#line 777 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 64: /* command: shell_command redirection_list */ ++#line 792 "/usr/local/src/chet/src/bash/src/parse.y" + { + COMMAND *tc; + +@@ -2568,330 +2587,330 @@ yyreduce: + tc->redirects = (yyvsp[0].redirect); + (yyval.command) = (yyvsp[-1].command); + } +-#line 2572 "y.tab.c" ++#line 2591 "y.tab.c" + break; + +- case 64: /* command: function_def */ +-#line 793 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 65: /* command: function_def */ ++#line 808 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 2578 "y.tab.c" ++#line 2597 "y.tab.c" + break; + +- case 65: /* command: coproc */ +-#line 795 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 66: /* command: coproc */ ++#line 810 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 2584 "y.tab.c" ++#line 2603 "y.tab.c" + break; + +- case 66: /* shell_command: for_command */ +-#line 799 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 67: /* shell_command: for_command */ ++#line 814 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 2590 "y.tab.c" ++#line 2609 "y.tab.c" + break; + +- case 67: /* shell_command: case_command */ +-#line 801 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 68: /* shell_command: case_command */ ++#line 816 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 2596 "y.tab.c" ++#line 2615 "y.tab.c" + break; + +- case 68: /* shell_command: WHILE compound_list DO compound_list DONE */ +-#line 803 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 69: /* shell_command: WHILE compound_list DO compound_list DONE */ ++#line 818 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_while_command ((yyvsp[-3].command), (yyvsp[-1].command)); } +-#line 2602 "y.tab.c" ++#line 2621 "y.tab.c" + break; + +- case 69: /* shell_command: UNTIL compound_list DO compound_list DONE */ +-#line 805 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 70: /* shell_command: UNTIL compound_list DO compound_list DONE */ ++#line 820 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_until_command ((yyvsp[-3].command), (yyvsp[-1].command)); } +-#line 2608 "y.tab.c" ++#line 2627 "y.tab.c" + break; + +- case 70: /* shell_command: select_command */ +-#line 807 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 71: /* shell_command: select_command */ ++#line 822 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 2614 "y.tab.c" ++#line 2633 "y.tab.c" + break; + +- case 71: /* shell_command: if_command */ +-#line 809 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 72: /* shell_command: if_command */ ++#line 824 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 2620 "y.tab.c" ++#line 2639 "y.tab.c" + break; + +- case 72: /* shell_command: subshell */ +-#line 811 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 73: /* shell_command: subshell */ ++#line 826 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 2626 "y.tab.c" ++#line 2645 "y.tab.c" + break; + +- case 73: /* shell_command: group_command */ +-#line 813 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 74: /* shell_command: group_command */ ++#line 828 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 2632 "y.tab.c" ++#line 2651 "y.tab.c" + break; + +- case 74: /* shell_command: arith_command */ +-#line 815 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 75: /* shell_command: arith_command */ ++#line 830 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 2638 "y.tab.c" ++#line 2657 "y.tab.c" + break; + +- case 75: /* shell_command: cond_command */ +-#line 817 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 76: /* shell_command: cond_command */ ++#line 832 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 2644 "y.tab.c" ++#line 2663 "y.tab.c" + break; + +- case 76: /* shell_command: arith_for_command */ +-#line 819 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 77: /* shell_command: arith_for_command */ ++#line 834 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 2650 "y.tab.c" ++#line 2669 "y.tab.c" + break; + +- case 77: /* for_command: FOR WORD newline_list DO compound_list DONE */ +-#line 823 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 78: /* for_command: FOR WORD newline_list DO compound_list DONE */ ++#line 838 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2659 "y.tab.c" ++#line 2678 "y.tab.c" + break; + +- case 78: /* for_command: FOR WORD newline_list '{' compound_list '}' */ +-#line 828 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 79: /* for_command: FOR WORD newline_list '{' compound_list '}' */ ++#line 843 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2668 "y.tab.c" ++#line 2687 "y.tab.c" + break; + +- case 79: /* for_command: FOR WORD ';' newline_list DO compound_list DONE */ +-#line 833 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 80: /* for_command: FOR WORD ';' newline_list DO compound_list DONE */ ++#line 848 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2677 "y.tab.c" ++#line 2696 "y.tab.c" + break; + +- case 80: /* for_command: FOR WORD ';' newline_list '{' compound_list '}' */ +-#line 838 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 81: /* for_command: FOR WORD ';' newline_list '{' compound_list '}' */ ++#line 853 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2686 "y.tab.c" ++#line 2705 "y.tab.c" + break; + +- case 81: /* for_command: FOR WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE */ +-#line 843 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 82: /* for_command: FOR WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE */ ++#line 858 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2695 "y.tab.c" ++#line 2714 "y.tab.c" + break; + +- case 82: /* for_command: FOR WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' */ +-#line 848 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 83: /* for_command: FOR WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' */ ++#line 863 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2704 "y.tab.c" ++#line 2723 "y.tab.c" + break; + +- case 83: /* for_command: FOR WORD newline_list IN list_terminator newline_list DO compound_list DONE */ +-#line 853 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 84: /* for_command: FOR WORD newline_list IN list_terminator newline_list DO compound_list DONE */ ++#line 868 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2713 "y.tab.c" ++#line 2732 "y.tab.c" + break; + +- case 84: /* for_command: FOR WORD newline_list IN list_terminator newline_list '{' compound_list '}' */ +-#line 858 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 85: /* for_command: FOR WORD newline_list IN list_terminator newline_list '{' compound_list '}' */ ++#line 873 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2722 "y.tab.c" ++#line 2741 "y.tab.c" + break; + +- case 85: /* arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list DO compound_list DONE */ +-#line 865 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 86: /* arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list DO compound_list DONE */ ++#line 880 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[-5].word_list), (yyvsp[-1].command), arith_for_lineno); + if ((yyval.command) == 0) YYERROR; + if (word_top > 0) word_top--; + } +-#line 2732 "y.tab.c" ++#line 2751 "y.tab.c" + break; + +- case 86: /* arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list '{' compound_list '}' */ +-#line 871 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 87: /* arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list '{' compound_list '}' */ ++#line 886 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[-5].word_list), (yyvsp[-1].command), arith_for_lineno); + if ((yyval.command) == 0) YYERROR; + if (word_top > 0) word_top--; + } +-#line 2742 "y.tab.c" ++#line 2761 "y.tab.c" + break; + +- case 87: /* arith_for_command: FOR ARITH_FOR_EXPRS DO compound_list DONE */ +-#line 877 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 88: /* arith_for_command: FOR ARITH_FOR_EXPRS DO compound_list DONE */ ++#line 892 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[-3].word_list), (yyvsp[-1].command), arith_for_lineno); + if ((yyval.command) == 0) YYERROR; + if (word_top > 0) word_top--; + } +-#line 2752 "y.tab.c" ++#line 2771 "y.tab.c" + break; + +- case 88: /* arith_for_command: FOR ARITH_FOR_EXPRS '{' compound_list '}' */ +-#line 883 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 89: /* arith_for_command: FOR ARITH_FOR_EXPRS '{' compound_list '}' */ ++#line 898 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[-3].word_list), (yyvsp[-1].command), arith_for_lineno); + if ((yyval.command) == 0) YYERROR; + if (word_top > 0) word_top--; + } +-#line 2762 "y.tab.c" ++#line 2781 "y.tab.c" + break; + +- case 89: /* select_command: SELECT WORD newline_list DO compound_list DONE */ +-#line 891 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 90: /* select_command: SELECT WORD newline_list DO compound_list DONE */ ++#line 906 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2771 "y.tab.c" ++#line 2790 "y.tab.c" + break; + +- case 90: /* select_command: SELECT WORD newline_list '{' compound_list '}' */ +-#line 896 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 91: /* select_command: SELECT WORD newline_list '{' compound_list '}' */ ++#line 911 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[-4].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2780 "y.tab.c" ++#line 2799 "y.tab.c" + break; + +- case 91: /* select_command: SELECT WORD ';' newline_list DO compound_list DONE */ +-#line 901 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 92: /* select_command: SELECT WORD ';' newline_list DO compound_list DONE */ ++#line 916 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2789 "y.tab.c" ++#line 2808 "y.tab.c" + break; + +- case 92: /* select_command: SELECT WORD ';' newline_list '{' compound_list '}' */ +-#line 906 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 93: /* select_command: SELECT WORD ';' newline_list '{' compound_list '}' */ ++#line 921 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[-5].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2798 "y.tab.c" ++#line 2817 "y.tab.c" + break; + +- case 93: /* select_command: SELECT WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE */ +-#line 911 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 94: /* select_command: SELECT WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE */ ++#line 926 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2807 "y.tab.c" ++#line 2826 "y.tab.c" + break; + +- case 94: /* select_command: SELECT WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' */ +-#line 916 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 95: /* select_command: SELECT WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' */ ++#line 931 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[-8].word), REVERSE_LIST ((yyvsp[-5].word_list), WORD_LIST *), (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2816 "y.tab.c" ++#line 2835 "y.tab.c" + break; + +- case 95: /* select_command: SELECT WORD newline_list IN list_terminator newline_list DO compound_list DONE */ +-#line 921 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 96: /* select_command: SELECT WORD newline_list IN list_terminator newline_list DO compound_list DONE */ ++#line 936 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2825 "y.tab.c" ++#line 2844 "y.tab.c" + break; + +- case 96: /* select_command: SELECT WORD newline_list IN list_terminator newline_list '{' compound_list '}' */ +-#line 926 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 97: /* select_command: SELECT WORD newline_list IN list_terminator newline_list '{' compound_list '}' */ ++#line 941 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[-7].word), (WORD_LIST *)NULL, (yyvsp[-1].command), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2834 "y.tab.c" ++#line 2853 "y.tab.c" + break; + +- case 97: /* case_command: CASE WORD newline_list IN newline_list ESAC */ +-#line 933 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 98: /* case_command: CASE WORD newline_list IN newline_list ESAC */ ++#line 948 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[-4].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2843 "y.tab.c" ++#line 2862 "y.tab.c" + break; + +- case 98: /* case_command: CASE WORD newline_list IN case_clause_sequence newline_list ESAC */ +-#line 938 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 99: /* case_command: CASE WORD newline_list IN case_clause_sequence newline_list ESAC */ ++#line 953 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[-5].word), (yyvsp[-2].pattern), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2852 "y.tab.c" ++#line 2871 "y.tab.c" + break; + +- case 99: /* case_command: CASE WORD newline_list IN case_clause ESAC */ +-#line 943 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 100: /* case_command: CASE WORD newline_list IN case_clause ESAC */ ++#line 958 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[-4].word), (yyvsp[-1].pattern), word_lineno[word_top]); + if (word_top > 0) word_top--; + } +-#line 2861 "y.tab.c" ++#line 2880 "y.tab.c" + break; + +- case 100: /* function_def: WORD '(' ')' newline_list function_body */ +-#line 950 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 101: /* function_def: WORD '(' ')' newline_list function_body */ ++#line 965 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } +-#line 2867 "y.tab.c" ++#line 2886 "y.tab.c" + break; + +- case 101: /* function_def: FUNCTION WORD '(' ')' newline_list function_body */ +-#line 952 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 102: /* function_def: FUNCTION WORD '(' ')' newline_list function_body */ ++#line 967 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_function_def ((yyvsp[-4].word), (yyvsp[0].command), function_dstart, function_bstart); } +-#line 2873 "y.tab.c" ++#line 2892 "y.tab.c" + break; + +- case 102: /* function_def: FUNCTION WORD function_body */ +-#line 954 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 103: /* function_def: FUNCTION WORD function_body */ ++#line 969 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_function_def ((yyvsp[-1].word), (yyvsp[0].command), function_dstart, function_bstart); } +-#line 2879 "y.tab.c" ++#line 2898 "y.tab.c" + break; + +- case 103: /* function_def: FUNCTION WORD '\n' newline_list function_body */ +-#line 956 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 104: /* function_def: FUNCTION WORD '\n' newline_list function_body */ ++#line 971 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_function_def ((yyvsp[-3].word), (yyvsp[0].command), function_dstart, function_bstart); } +-#line 2885 "y.tab.c" ++#line 2904 "y.tab.c" + break; + +- case 104: /* function_body: shell_command */ +-#line 960 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 105: /* function_body: shell_command */ ++#line 975 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 2891 "y.tab.c" ++#line 2910 "y.tab.c" + break; + +- case 105: /* function_body: shell_command redirection_list */ +-#line 962 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 106: /* function_body: shell_command redirection_list */ ++#line 977 "/usr/local/src/chet/src/bash/src/parse.y" + { + COMMAND *tc; + +@@ -2920,45 +2939,45 @@ yyreduce: + tc->redirects = (yyvsp[0].redirect); + (yyval.command) = (yyvsp[-1].command); + } +-#line 2924 "y.tab.c" ++#line 2943 "y.tab.c" + break; + +- case 106: /* subshell: '(' compound_list ')' */ +-#line 993 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 107: /* subshell: '(' compound_list ')' */ ++#line 1008 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_subshell_command ((yyvsp[-1].command)); + (yyval.command)->flags |= CMD_WANT_SUBSHELL; + } +-#line 2933 "y.tab.c" ++#line 2952 "y.tab.c" + break; + +- case 107: /* comsub: DOLPAREN compound_list ')' */ +-#line 1000 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 108: /* comsub: DOLPAREN compound_list ')' */ ++#line 1015 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = (yyvsp[-1].command); + } +-#line 2941 "y.tab.c" ++#line 2960 "y.tab.c" + break; + +- case 108: /* comsub: DOLPAREN newline_list ')' */ +-#line 1004 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 109: /* comsub: DOLPAREN newline_list ')' */ ++#line 1019 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = (COMMAND *)NULL; + } +-#line 2949 "y.tab.c" ++#line 2968 "y.tab.c" + break; + +- case 109: /* coproc: COPROC shell_command */ +-#line 1010 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 110: /* coproc: COPROC shell_command */ ++#line 1025 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_coproc_command ("COPROC", (yyvsp[0].command)); + (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } +-#line 2958 "y.tab.c" ++#line 2977 "y.tab.c" + break; + +- case 110: /* coproc: COPROC shell_command redirection_list */ +-#line 1015 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 111: /* coproc: COPROC shell_command redirection_list */ ++#line 1030 "/usr/local/src/chet/src/bash/src/parse.y" + { + COMMAND *tc; + +@@ -2975,20 +2994,20 @@ yyreduce: + (yyval.command) = make_coproc_command ("COPROC", (yyvsp[-1].command)); + (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } +-#line 2979 "y.tab.c" ++#line 2998 "y.tab.c" + break; + +- case 111: /* coproc: COPROC WORD shell_command */ +-#line 1032 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 112: /* coproc: COPROC WORD shell_command */ ++#line 1047 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_coproc_command ((yyvsp[-1].word)->word, (yyvsp[0].command)); + (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } +-#line 2988 "y.tab.c" ++#line 3007 "y.tab.c" + break; + +- case 112: /* coproc: COPROC WORD shell_command redirection_list */ +-#line 1037 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 113: /* coproc: COPROC WORD shell_command redirection_list */ ++#line 1052 "/usr/local/src/chet/src/bash/src/parse.y" + { + COMMAND *tc; + +@@ -3005,245 +3024,245 @@ yyreduce: + (yyval.command) = make_coproc_command ((yyvsp[-2].word)->word, (yyvsp[-1].command)); + (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } +-#line 3009 "y.tab.c" ++#line 3028 "y.tab.c" + break; + +- case 113: /* coproc: COPROC simple_command */ +-#line 1054 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 114: /* coproc: COPROC simple_command */ ++#line 1069 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[0].command))); + (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } +-#line 3018 "y.tab.c" ++#line 3037 "y.tab.c" + break; + +- case 114: /* if_command: IF compound_list THEN compound_list FI */ +-#line 1061 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 115: /* if_command: IF compound_list THEN compound_list FI */ ++#line 1076 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[-3].command), (yyvsp[-1].command), (COMMAND *)NULL); } +-#line 3024 "y.tab.c" ++#line 3043 "y.tab.c" + break; + +- case 115: /* if_command: IF compound_list THEN compound_list ELSE compound_list FI */ +-#line 1063 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 116: /* if_command: IF compound_list THEN compound_list ELSE compound_list FI */ ++#line 1078 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[-5].command), (yyvsp[-3].command), (yyvsp[-1].command)); } +-#line 3030 "y.tab.c" ++#line 3049 "y.tab.c" + break; + +- case 116: /* if_command: IF compound_list THEN compound_list elif_clause FI */ +-#line 1065 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 117: /* if_command: IF compound_list THEN compound_list elif_clause FI */ ++#line 1080 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[-4].command), (yyvsp[-2].command), (yyvsp[-1].command)); } +-#line 3036 "y.tab.c" ++#line 3055 "y.tab.c" + break; + +- case 117: /* group_command: '{' compound_list '}' */ +-#line 1070 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 118: /* group_command: '{' compound_list '}' */ ++#line 1085 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_group_command ((yyvsp[-1].command)); } +-#line 3042 "y.tab.c" ++#line 3061 "y.tab.c" + break; + +- case 118: /* arith_command: ARITH_CMD */ +-#line 1074 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 119: /* arith_command: ARITH_CMD */ ++#line 1089 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_arith_command ((yyvsp[0].word_list)); } +-#line 3048 "y.tab.c" ++#line 3067 "y.tab.c" + break; + +- case 119: /* cond_command: COND_START COND_CMD COND_END */ +-#line 1078 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 120: /* cond_command: COND_START COND_CMD COND_END */ ++#line 1093 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[-1].command); } +-#line 3054 "y.tab.c" ++#line 3073 "y.tab.c" + break; + +- case 120: /* elif_clause: ELIF compound_list THEN compound_list */ +-#line 1082 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 121: /* elif_clause: ELIF compound_list THEN compound_list */ ++#line 1097 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[-2].command), (yyvsp[0].command), (COMMAND *)NULL); } +-#line 3060 "y.tab.c" ++#line 3079 "y.tab.c" + break; + +- case 121: /* elif_clause: ELIF compound_list THEN compound_list ELSE compound_list */ +-#line 1084 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 122: /* elif_clause: ELIF compound_list THEN compound_list ELSE compound_list */ ++#line 1099 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[-4].command), (yyvsp[-2].command), (yyvsp[0].command)); } +-#line 3066 "y.tab.c" ++#line 3085 "y.tab.c" + break; + +- case 122: /* elif_clause: ELIF compound_list THEN compound_list elif_clause */ +-#line 1086 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 123: /* elif_clause: ELIF compound_list THEN compound_list elif_clause */ ++#line 1101 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[-3].command), (yyvsp[-1].command), (yyvsp[0].command)); } +-#line 3072 "y.tab.c" ++#line 3091 "y.tab.c" + break; + +- case 124: /* case_clause: case_clause_sequence pattern_list */ +-#line 1091 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 125: /* case_clause: case_clause_sequence pattern_list */ ++#line 1106 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyvsp[0].pattern)->next = (yyvsp[-1].pattern); (yyval.pattern) = (yyvsp[0].pattern); } +-#line 3078 "y.tab.c" ++#line 3097 "y.tab.c" + break; + +- case 125: /* pattern_list: newline_list pattern ')' compound_list */ +-#line 1095 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 126: /* pattern_list: newline_list pattern ')' compound_list */ ++#line 1110 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (yyvsp[0].command)); } +-#line 3084 "y.tab.c" ++#line 3103 "y.tab.c" + break; + +- case 126: /* pattern_list: newline_list pattern ')' newline_list */ +-#line 1097 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 127: /* pattern_list: newline_list pattern ')' newline_list */ ++#line 1112 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (COMMAND *)NULL); } +-#line 3090 "y.tab.c" ++#line 3109 "y.tab.c" + break; + +- case 127: /* pattern_list: newline_list '(' pattern ')' compound_list */ +-#line 1099 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 128: /* pattern_list: newline_list '(' pattern ')' compound_list */ ++#line 1114 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (yyvsp[0].command)); } +-#line 3096 "y.tab.c" ++#line 3115 "y.tab.c" + break; + +- case 128: /* pattern_list: newline_list '(' pattern ')' newline_list */ +-#line 1101 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 129: /* pattern_list: newline_list '(' pattern ')' newline_list */ ++#line 1116 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[-2].word_list), (COMMAND *)NULL); } +-#line 3102 "y.tab.c" ++#line 3121 "y.tab.c" + break; + +- case 129: /* case_clause_sequence: pattern_list SEMI_SEMI */ +-#line 1105 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 130: /* case_clause_sequence: pattern_list SEMI_SEMI */ ++#line 1120 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.pattern) = (yyvsp[-1].pattern); } +-#line 3108 "y.tab.c" ++#line 3127 "y.tab.c" + break; + +- case 130: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_SEMI */ +-#line 1107 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 131: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_SEMI */ ++#line 1122 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } +-#line 3114 "y.tab.c" ++#line 3133 "y.tab.c" + break; + +- case 131: /* case_clause_sequence: pattern_list SEMI_AND */ +-#line 1109 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 132: /* case_clause_sequence: pattern_list SEMI_AND */ ++#line 1124 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyvsp[-1].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[-1].pattern); } +-#line 3120 "y.tab.c" ++#line 3139 "y.tab.c" + break; + +- case 132: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_AND */ +-#line 1111 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 133: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_AND */ ++#line 1126 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyvsp[-1].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } +-#line 3126 "y.tab.c" ++#line 3145 "y.tab.c" + break; + +- case 133: /* case_clause_sequence: pattern_list SEMI_SEMI_AND */ +-#line 1113 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 134: /* case_clause_sequence: pattern_list SEMI_SEMI_AND */ ++#line 1128 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyvsp[-1].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[-1].pattern); } +-#line 3132 "y.tab.c" ++#line 3151 "y.tab.c" + break; + +- case 134: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_SEMI_AND */ +-#line 1115 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 135: /* case_clause_sequence: case_clause_sequence pattern_list SEMI_SEMI_AND */ ++#line 1130 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyvsp[-1].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[-1].pattern)->next = (yyvsp[-2].pattern); (yyval.pattern) = (yyvsp[-1].pattern); } +-#line 3138 "y.tab.c" ++#line 3157 "y.tab.c" + break; + +- case 135: /* pattern: WORD */ +-#line 1119 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 136: /* pattern: WORD */ ++#line 1134 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[0].word), (WORD_LIST *)NULL); } +-#line 3144 "y.tab.c" ++#line 3163 "y.tab.c" + break; + +- case 136: /* pattern: pattern '|' WORD */ +-#line 1121 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 137: /* pattern: pattern '|' WORD */ ++#line 1136 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[0].word), (yyvsp[-2].word_list)); } +-#line 3150 "y.tab.c" ++#line 3169 "y.tab.c" + break; + +- case 137: /* compound_list: newline_list list0 */ +-#line 1130 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 138: /* compound_list: newline_list list0 */ ++#line 1145 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = (yyvsp[0].command); + if (need_here_doc && last_read_token == '\n') + gather_here_documents (); + } +-#line 3160 "y.tab.c" ++#line 3179 "y.tab.c" + break; + +- case 138: /* compound_list: newline_list list1 */ +-#line 1136 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 139: /* compound_list: newline_list list1 */ ++#line 1151 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = (yyvsp[0].command); + } +-#line 3168 "y.tab.c" ++#line 3187 "y.tab.c" + break; + +- case 140: /* list0: list1 '&' newline_list */ +-#line 1143 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 141: /* list0: list1 '&' newline_list */ ++#line 1158 "/usr/local/src/chet/src/bash/src/parse.y" + { + if ((yyvsp[-2].command)->type == cm_connection) + (yyval.command) = connect_async_list ((yyvsp[-2].command), (COMMAND *)NULL, '&'); + else + (yyval.command) = command_connect ((yyvsp[-2].command), (COMMAND *)NULL, '&'); + } +-#line 3179 "y.tab.c" ++#line 3198 "y.tab.c" + break; + +- case 142: /* list1: list1 AND_AND newline_list list1 */ +-#line 1154 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 143: /* list1: list1 AND_AND newline_list list1 */ ++#line 1169 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), AND_AND); } +-#line 3185 "y.tab.c" ++#line 3204 "y.tab.c" + break; + +- case 143: /* list1: list1 OR_OR newline_list list1 */ +-#line 1156 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 144: /* list1: list1 OR_OR newline_list list1 */ ++#line 1171 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), OR_OR); } +-#line 3191 "y.tab.c" ++#line 3210 "y.tab.c" + break; + +- case 144: /* list1: list1 '&' newline_list list1 */ +-#line 1158 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 145: /* list1: list1 '&' newline_list list1 */ ++#line 1173 "/usr/local/src/chet/src/bash/src/parse.y" + { + if ((yyvsp[-3].command)->type == cm_connection) + (yyval.command) = connect_async_list ((yyvsp[-3].command), (yyvsp[0].command), '&'); + else + (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '&'); + } +-#line 3202 "y.tab.c" ++#line 3221 "y.tab.c" + break; + +- case 145: /* list1: list1 ';' newline_list list1 */ +-#line 1165 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 146: /* list1: list1 ';' newline_list list1 */ ++#line 1180 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';'); } +-#line 3208 "y.tab.c" ++#line 3227 "y.tab.c" + break; + +- case 146: /* list1: list1 '\n' newline_list list1 */ +-#line 1167 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 147: /* list1: list1 '\n' newline_list list1 */ ++#line 1182 "/usr/local/src/chet/src/bash/src/parse.y" + { + if (parser_state & PST_CMDSUBST) + (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '\n'); + else + (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), ';'); + } +-#line 3219 "y.tab.c" ++#line 3238 "y.tab.c" + break; + +- case 147: /* list1: pipeline_command */ +-#line 1174 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 148: /* list1: pipeline_command */ ++#line 1189 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 3225 "y.tab.c" ++#line 3244 "y.tab.c" + break; + +- case 150: /* list_terminator: '\n' */ +-#line 1182 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 151: /* list_terminator: '\n' */ ++#line 1197 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.number) = '\n'; } +-#line 3231 "y.tab.c" ++#line 3250 "y.tab.c" + break; + +- case 151: /* list_terminator: ';' */ +-#line 1184 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 152: /* list_terminator: ';' */ ++#line 1199 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.number) = ';'; } +-#line 3237 "y.tab.c" ++#line 3256 "y.tab.c" + break; + +- case 152: /* list_terminator: yacc_EOF */ +-#line 1186 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 153: /* list_terminator: yacc_EOF */ ++#line 1201 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.number) = yacc_EOF; } +-#line 3243 "y.tab.c" ++#line 3262 "y.tab.c" + break; + +- case 155: /* simple_list: simple_list1 */ +-#line 1200 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 156: /* simple_list: simple_list1 */ ++#line 1215 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = (yyvsp[0].command); + if (need_here_doc) +@@ -3258,11 +3277,11 @@ INTERNAL_DEBUG (("LEGACY: parser: command substitution simple_list1 -> simple_li + YYACCEPT; + } + } +-#line 3262 "y.tab.c" ++#line 3281 "y.tab.c" + break; + +- case 156: /* simple_list: simple_list1 '&' */ +-#line 1215 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 157: /* simple_list: simple_list1 '&' */ ++#line 1230 "/usr/local/src/chet/src/bash/src/parse.y" + { + if ((yyvsp[-1].command)->type == cm_connection) + (yyval.command) = connect_async_list ((yyvsp[-1].command), (COMMAND *)NULL, '&'); +@@ -3280,11 +3299,11 @@ INTERNAL_DEBUG (("LEGACY: parser: command substitution simple_list1 '&' -> simpl + YYACCEPT; + } + } +-#line 3284 "y.tab.c" ++#line 3303 "y.tab.c" + break; + +- case 157: /* simple_list: simple_list1 ';' */ +-#line 1233 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 158: /* simple_list: simple_list1 ';' */ ++#line 1248 "/usr/local/src/chet/src/bash/src/parse.y" + { + (yyval.command) = (yyvsp[-1].command); + if (need_here_doc) +@@ -3299,72 +3318,72 @@ INTERNAL_DEBUG (("LEGACY: parser: command substitution simple_list1 ';' -> simpl + YYACCEPT; + } + } +-#line 3303 "y.tab.c" ++#line 3322 "y.tab.c" + break; + +- case 158: /* simple_list1: simple_list1 AND_AND newline_list simple_list1 */ +-#line 1250 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 159: /* simple_list1: simple_list1 AND_AND newline_list simple_list1 */ ++#line 1265 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), AND_AND); } +-#line 3309 "y.tab.c" ++#line 3328 "y.tab.c" + break; + +- case 159: /* simple_list1: simple_list1 OR_OR newline_list simple_list1 */ +-#line 1252 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 160: /* simple_list1: simple_list1 OR_OR newline_list simple_list1 */ ++#line 1267 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), OR_OR); } +-#line 3315 "y.tab.c" ++#line 3334 "y.tab.c" + break; + +- case 160: /* simple_list1: simple_list1 '&' simple_list1 */ +-#line 1254 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 161: /* simple_list1: simple_list1 '&' simple_list1 */ ++#line 1269 "/usr/local/src/chet/src/bash/src/parse.y" + { + if ((yyvsp[-2].command)->type == cm_connection) + (yyval.command) = connect_async_list ((yyvsp[-2].command), (yyvsp[0].command), '&'); + else + (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), '&'); + } +-#line 3326 "y.tab.c" ++#line 3345 "y.tab.c" + break; + +- case 161: /* simple_list1: simple_list1 ';' simple_list1 */ +-#line 1261 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 162: /* simple_list1: simple_list1 ';' simple_list1 */ ++#line 1276 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[-2].command), (yyvsp[0].command), ';'); } +-#line 3332 "y.tab.c" ++#line 3351 "y.tab.c" + break; + +- case 162: /* simple_list1: pipeline_command */ +-#line 1264 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 163: /* simple_list1: pipeline_command */ ++#line 1279 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 3338 "y.tab.c" ++#line 3357 "y.tab.c" + break; + +- case 163: /* pipeline_command: pipeline */ +-#line 1268 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 164: /* pipeline_command: pipeline */ ++#line 1283 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 3344 "y.tab.c" ++#line 3363 "y.tab.c" + break; + +- case 164: /* pipeline_command: BANG pipeline_command */ +-#line 1270 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 165: /* pipeline_command: BANG pipeline_command */ ++#line 1285 "/usr/local/src/chet/src/bash/src/parse.y" + { + if ((yyvsp[0].command)) + (yyvsp[0].command)->flags ^= CMD_INVERT_RETURN; /* toggle */ + (yyval.command) = (yyvsp[0].command); + } +-#line 3354 "y.tab.c" ++#line 3373 "y.tab.c" + break; + +- case 165: /* pipeline_command: timespec pipeline_command */ +-#line 1276 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 166: /* pipeline_command: timespec pipeline_command */ ++#line 1291 "/usr/local/src/chet/src/bash/src/parse.y" + { + if ((yyvsp[0].command)) + (yyvsp[0].command)->flags |= (yyvsp[-1].number); + (yyval.command) = (yyvsp[0].command); + } +-#line 3364 "y.tab.c" ++#line 3383 "y.tab.c" + break; + +- case 166: /* pipeline_command: timespec list_terminator */ +-#line 1282 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 167: /* pipeline_command: timespec list_terminator */ ++#line 1297 "/usr/local/src/chet/src/bash/src/parse.y" + { + ELEMENT x; + +@@ -3384,11 +3403,11 @@ INTERNAL_DEBUG (("LEGACY: parser: command substitution simple_list1 ';' -> simpl + token_to_read = ';'; + parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */ + } +-#line 3388 "y.tab.c" ++#line 3407 "y.tab.c" + break; + +- case 167: /* pipeline_command: BANG list_terminator */ +-#line 1302 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 168: /* pipeline_command: BANG list_terminator */ ++#line 1317 "/usr/local/src/chet/src/bash/src/parse.y" + { + ELEMENT x; + +@@ -3409,17 +3428,17 @@ INTERNAL_DEBUG (("LEGACY: parser: command substitution simple_list1 ';' -> simpl + token_to_read = ';'; + parser_state &= ~PST_REDIRLIST; /* make_simple_command sets this */ + } +-#line 3413 "y.tab.c" ++#line 3432 "y.tab.c" + break; + +- case 168: /* pipeline: pipeline '|' newline_list pipeline */ +-#line 1325 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 169: /* pipeline: pipeline '|' newline_list pipeline */ ++#line 1340 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|'); } +-#line 3419 "y.tab.c" ++#line 3438 "y.tab.c" + break; + +- case 169: /* pipeline: pipeline BAR_AND newline_list pipeline */ +-#line 1327 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 170: /* pipeline: pipeline BAR_AND newline_list pipeline */ ++#line 1342 "/usr/local/src/chet/src/bash/src/parse.y" + { + /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ + COMMAND *tc; +@@ -3442,41 +3461,41 @@ INTERNAL_DEBUG (("LEGACY: parser: command substitution simple_list1 ';' -> simpl + + (yyval.command) = command_connect ((yyvsp[-3].command), (yyvsp[0].command), '|'); + } +-#line 3446 "y.tab.c" ++#line 3465 "y.tab.c" + break; + +- case 170: /* pipeline: command */ +-#line 1350 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 171: /* pipeline: command */ ++#line 1365 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[0].command); } +-#line 3452 "y.tab.c" ++#line 3471 "y.tab.c" + break; + +- case 171: /* timespec: TIME */ +-#line 1354 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 172: /* timespec: TIME */ ++#line 1369 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE; } +-#line 3458 "y.tab.c" ++#line 3477 "y.tab.c" + break; + +- case 172: /* timespec: TIME TIMEOPT */ +-#line 1356 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 173: /* timespec: TIME TIMEOPT */ ++#line 1371 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } +-#line 3464 "y.tab.c" ++#line 3483 "y.tab.c" + break; + +- case 173: /* timespec: TIME TIMEIGN */ +-#line 1358 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 174: /* timespec: TIME TIMEIGN */ ++#line 1373 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } +-#line 3470 "y.tab.c" ++#line 3489 "y.tab.c" + break; + +- case 174: /* timespec: TIME TIMEOPT TIMEIGN */ +-#line 1360 "/usr/local/src/chet/src/bash/src/parse.y" ++ case 175: /* timespec: TIME TIMEOPT TIMEIGN */ ++#line 1375 "/usr/local/src/chet/src/bash/src/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } +-#line 3476 "y.tab.c" ++#line 3495 "y.tab.c" + break; + + +-#line 3480 "y.tab.c" ++#line 3499 "y.tab.c" + + default: break; + } +@@ -3669,7 +3688,7 @@ yyreturnlab: + return yyresult; + } + +-#line 1362 "/usr/local/src/chet/src/bash/src/parse.y" ++#line 1377 "/usr/local/src/chet/src/bash/src/parse.y" + + + /* Initial size to allocate for tokens, and the +@@ -5208,9 +5227,9 @@ yylex () + + if (current_token < 0) + #if defined (YYERRCODE) && !defined (YYUNDEF) +- current_token = YYERRCODE; ++ current_token = EOF_Reached ? YYEOF : YYERRCODE; + #else +- current_token = YYerror; ++ current_token = EOF_Reached ? YYEOF : YYUNDEF; + #endif + + return (current_token); +@@ -6005,6 +6024,7 @@ parse_matched_pair (qc, open, close, lenp, flags) + free (ret); + parser_error (start_lineno, _("unexpected EOF while looking for matching `%c'"), close); + EOF_Reached = 1; /* XXX */ ++ parser_state |= PST_NOERROR; /* avoid redundant error message */ + return (&matched_pair_error); + } + +@@ -6467,6 +6487,7 @@ parse_comsub (qc, open, close, lenp, flags) + expand_aliases = ps.expand_aliases; + + /* yyparse() has already called yyerror() and reset_parser() */ ++ parser_state |= PST_NOERROR; + return (&matched_pair_error); + } + else if (r != 0) diff --git a/bash-5.2-patch-19.patch b/bash-5.2-patch-19.patch new file mode 100644 index 0000000..03c3da1 --- /dev/null +++ b/bash-5.2-patch-19.patch @@ -0,0 +1,38 @@ +diff --git a/jobs.c b/jobs.c +--- a/jobs.c ++++ b/jobs.c +@@ -3077,9 +3077,13 @@ if (job == NO_JOB) + /* Don't modify terminal pgrp if we are running in background or a + subshell. Make sure subst.c:command_substitute uses the same + conditions to determine whether or not it should undo this and +- give the terminal to pipeline_pgrp. */ +- ++ give the terminal to pipeline_pgrp. We don't give the terminal ++ back to shell_pgrp if an async job in the background exits because ++ we never gave it to that job in the first place. An async job in ++ the foreground is one we started in the background and foregrounded ++ with `fg', and gave it the terminal. */ + if ((flags & JWAIT_NOTERM) == 0 && running_in_background == 0 && ++ (job == NO_JOB || IS_ASYNC (job) == 0 || IS_FOREGROUND (job)) && + (subshell_environment & (SUBSHELL_ASYNC|SUBSHELL_PIPE)) == 0) + give_terminal_to (shell_pgrp, 0); + } +@@ -3623,6 +3627,7 @@ start_job (job, foreground) + { + get_tty_state (); + save_stty = shell_tty_info; ++ jobs[job]->flags &= ~J_ASYNC; /* no longer async */ + /* Give the terminal to this job. */ + if (IS_JOBCONTROL (job)) + give_terminal_to (jobs[job]->pgrp, 0); +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 18 ++#define PATCHLEVEL 19 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash-5.2-patch-2.patch b/bash-5.2-patch-2.patch new file mode 100644 index 0000000..3c5ff0f --- /dev/null +++ b/bash-5.2-patch-2.patch @@ -0,0 +1,25 @@ +diff --git a/lib/readline/nls.c b/lib/readline/nls.c +--- a/lib/readline/nls.c ++++ b/lib/readline/nls.c +@@ -141,6 +141,10 @@ _rl_init_locale (void) + if (lspec == 0) + lspec = ""; + ret = setlocale (LC_CTYPE, lspec); /* ok, since it does not change locale */ ++ if (ret == 0 || *ret == 0) ++ ret = setlocale (LC_CTYPE, (char *)NULL); ++ if (ret == 0 || *ret == 0) ++ ret = RL_DEFAULT_LOCALE; + #else + ret = (lspec == 0 || *lspec == 0) ? RL_DEFAULT_LOCALE : lspec; + #endif +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 1 ++#define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash-5.2-patch-20.patch b/bash-5.2-patch-20.patch new file mode 100644 index 0000000..a21a155 --- /dev/null +++ b/bash-5.2-patch-20.patch @@ -0,0 +1,33 @@ +diff --git a/parse.y b/parse.y +--- a/parse.y ++++ b/parse.y +@@ -3150,6 +3150,7 @@ time_command_acceptable () + case TIME: /* time time pipeline */ + case TIMEOPT: /* time -p time pipeline */ + case TIMEIGN: /* time -p -- ... */ ++ case DOLPAREN: + return 1; + default: + return 0; +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 19 ++#define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/y.tab.c b/y.tab.c +--- a/y.tab.c ++++ b/y.tab.c +@@ -5465,6 +5465,7 @@ time_command_acceptable () + case TIME: /* time time pipeline */ + case TIMEOPT: /* time -p time pipeline */ + case TIMEIGN: /* time -p -- ... */ ++ case DOLPAREN: + return 1; + default: + return 0; diff --git a/bash-5.2-patch-21.patch b/bash-5.2-patch-21.patch new file mode 100644 index 0000000..44ab6d4 --- /dev/null +++ b/bash-5.2-patch-21.patch @@ -0,0 +1,32 @@ +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 20 ++#define PATCHLEVEL 21 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/subst.c b/subst.c +--- a/subst.c ++++ b/subst.c +@@ -1693,7 +1693,7 @@ extract_heredoc_dolbrace_string (string, sindex, quoted, flags) + t = extract_command_subst (string, &si, flags); + CHECK_STRING_OVERRUN (i, si, slen, c); + +- tlen = si - i - 1; ++ tlen = si - i - 2; + RESIZE_MALLOCED_BUFFER (result, result_index, tlen + 4, result_size, 64); + result[result_index++] = c; + result[result_index++] = LPAREN; +@@ -1713,7 +1713,7 @@ extract_heredoc_dolbrace_string (string, sindex, quoted, flags) + t = extract_process_subst (string, (string[i] == '<' ? "<(" : ">)"), &si, flags); + CHECK_STRING_OVERRUN (i, si, slen, c); + +- tlen = si - i - 1; ++ tlen = si - i - 2; + RESIZE_MALLOCED_BUFFER (result, result_index, tlen + 4, result_size, 64); + result[result_index++] = c; + result[result_index++] = LPAREN; diff --git a/bash-5.2-patch-22.patch b/bash-5.2-patch-22.patch new file mode 100644 index 0000000..be5306f --- /dev/null +++ b/bash-5.2-patch-22.patch @@ -0,0 +1,29 @@ +diff --git a/lib/readline/display.c b/lib/readline/display.c +--- a/lib/readline/display.c ++++ b/lib/readline/display.c +@@ -2683,11 +2683,8 @@ rl_forced_update_display (void) + register char *temp; + + if (visible_line) +- { +- temp = visible_line; +- while (*temp) +- *temp++ = '\0'; +- } ++ memset (visible_line, 0, line_size); ++ + rl_on_new_line (); + forced_display++; + (*rl_redisplay_function) (); +diff --git a/patchlevel.h b/patchlevel.h +index 1712b108..e5e8cabd 100644 +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 21 ++#define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash-5.2-patch-23.patch b/bash-5.2-patch-23.patch new file mode 100644 index 0000000..2d1d6a7 --- /dev/null +++ b/bash-5.2-patch-23.patch @@ -0,0 +1,38 @@ +diff --git a/builtins/declare.def b/builtins/declare.def +--- a/builtins/declare.def ++++ b/builtins/declare.def +@@ -420,11 +420,19 @@ declare_internal (list, local_var) + + if (local_var && variable_context && STREQ (name, "-")) + { ++ int o; ++ ++ o = localvar_inherit; ++ localvar_inherit = 0; + var = make_local_variable ("-", 0); +- FREE (value_cell (var)); /* just in case */ +- value = get_current_options (); +- var_setvalue (var, value); +- VSETATTR (var, att_invisible); ++ localvar_inherit = o; ++ ++ if (value_cell (var) == NULL) /* no duplicate instances */ ++ { ++ value = get_current_options (); ++ var_setvalue (var, value); ++ VSETATTR (var, att_invisible); ++ } + NEXT_VARIABLE (); + } + +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 22 ++#define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash-5.2-patch-24.patch b/bash-5.2-patch-24.patch new file mode 100644 index 0000000..641f024 --- /dev/null +++ b/bash-5.2-patch-24.patch @@ -0,0 +1,56 @@ +diff --git a/arrayfunc.c b/arrayfunc.c +--- a/arrayfunc.c ++++ b/arrayfunc.c +@@ -650,7 +650,7 @@ assign_assoc_from_kvlist (var, nlist, h, flags) + continue; + } + +- aval = expand_subscript_string (v, 0); ++ aval = expand_assignment_string_to_string (v, 0); + if (aval == 0) + { + aval = (char *)xmalloc (1); +@@ -842,7 +842,7 @@ assign_compound_array_list (var, nlist, flags) + /* See above; we need to expand the value here */ + if (assoc_p (var)) + { +- val = expand_subscript_string (val, 0); ++ val = expand_assignment_string_to_string (val, 0); + if (val == 0) + { + val = (char *)xmalloc (1); +@@ -1030,7 +1030,7 @@ expand_and_quote_assoc_word (w, type) + nword[i++] = w[ind++]; + nword[i++] = w[ind++]; + +- t = expand_subscript_string (w+ind, 0); ++ t = expand_assignment_string_to_string (w+ind, 0); + s = (t && strchr (t, CTLESC)) ? quote_escapes (t) : t; + value = sh_single_quote (s ? s : ""); + if (s != t) +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 23 ++#define PATCHLEVEL 24 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/subst.c b/subst.c +--- a/subst.c ++++ b/subst.c +@@ -10802,7 +10802,11 @@ expand_subscript_string (string, quoted) + oe = expand_no_split_dollar_star; + ret = (char *)NULL; + ++#if 0 + td.flags = W_NOPROCSUB|W_NOTILDE|W_NOSPLIT2; /* XXX - W_NOCOMSUB? */ ++#else ++ td.flags = W_NOPROCSUB|W_NOSPLIT2; /* XXX - W_NOCOMSUB? */ ++#endif + td.word = savestring (string); /* in case it's freed on error */ + + expand_no_split_dollar_star = 1; diff --git a/bash-5.2-patch-25.patch b/bash-5.2-patch-25.patch new file mode 100644 index 0000000..fb03284 --- /dev/null +++ b/bash-5.2-patch-25.patch @@ -0,0 +1,24 @@ +diff --git a/execute_cmd.c b/execute_cmd.c +--- a/execute_cmd.c ++++ b/execute_cmd.c +@@ -1725,6 +1725,9 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) + return_code = (return_code == EXECUTION_SUCCESS) ? EXECUTION_FAILURE + : EXECUTION_SUCCESS; + ++ /* Check for terminating signals before we return to our caller, which we ++ expect to exit immediately anyway. */ ++ CHECK_TERMSIG; + + /* If we were explicitly placed in a subshell with (), we need + to do the `shell cleanup' things, such as running traps[0]. */ +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 24 ++#define PATCHLEVEL 25 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash-5.2-patch-26.patch b/bash-5.2-patch-26.patch new file mode 100644 index 0000000..00cb9ee --- /dev/null +++ b/bash-5.2-patch-26.patch @@ -0,0 +1,23 @@ +diff --git a/lib/readline/colors.c b/lib/readline/colors.c +--- a/lib/readline/colors.c ++++ b/lib/readline/colors.c +@@ -73,7 +73,7 @@ + static bool is_colored (enum indicator_no type); + static void restore_default_color (void); + +-#define RL_COLOR_PREFIX_EXTENSION "readline-colored-completion-prefix" ++#define RL_COLOR_PREFIX_EXTENSION ".readline-colored-completion-prefix" + + COLOR_EXT_TYPE *_rl_color_ext_list = 0; + +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 25 ++#define PATCHLEVEL 26 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash-5.2-patch-3.patch b/bash-5.2-patch-3.patch new file mode 100644 index 0000000..e8b2c55 --- /dev/null +++ b/bash-5.2-patch-3.patch @@ -0,0 +1,60 @@ +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 2 ++#define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/print_cmd.c b/print_cmd.c +--- a/print_cmd.c ++++ b/print_cmd.c +@@ -297,10 +297,12 @@ make_command_string_internal (command) + case '\n': /* special case this */ + { + char c = command->value.Connection->connector; ++ int was_newline; + + s[0] = printing_comsub ? c : ';'; + s[1] = '\0'; + ++ was_newline = deferred_heredocs == 0 && was_heredoc == 0 && c == '\n'; + if (deferred_heredocs == 0) + { + if (was_heredoc == 0) +@@ -314,6 +316,8 @@ make_command_string_internal (command) + + if (inside_function_def) + cprintf ("\n"); ++ else if (printing_comsub && c == '\n' && was_newline == 0) ++ cprintf ("\n"); /* preserve newlines in comsubs but don't double them */ + else + { + if (c == ';') +@@ -1365,7 +1369,11 @@ print_function_def (func) + cmdcopy->redirects = func_redirects; + } + else +- newline ("}"); ++ { ++ /* { */ ++ newline ("}"); ++ was_heredoc = 0; /* not printing any here-documents now */ ++ } + + dispose_command (cmdcopy); + } +@@ -1442,7 +1450,10 @@ named_function_string (name, command, flags) + cmdcopy->redirects = func_redirects; + } + else +- newline ("}"); ++ { /* { */ ++ newline ("}"); ++ was_heredoc = 0; ++ } + + result = the_printed_command; diff --git a/bash-5.2-patch-4.patch b/bash-5.2-patch-4.patch new file mode 100644 index 0000000..5cf7111 --- /dev/null +++ b/bash-5.2-patch-4.patch @@ -0,0 +1,50 @@ +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 3 ++#define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/subst.c b/subst.c +--- a/subst.c ++++ b/subst.c +@@ -1798,6 +1798,9 @@ extract_heredoc_dolbrace_string (string, sindex, quoted, flags) + return (result); + } + ++#define PARAMEXPNEST_MAX 32 // for now ++static int dbstate[PARAMEXPNEST_MAX]; ++ + /* Extract a parameter expansion expression within ${ and } from STRING. + Obey the Posix.2 rules for finding the ending `}': count braces while + skipping over enclosed quoted strings and command substitutions. +@@ -1828,6 +1831,8 @@ extract_dollar_brace_string (string, sindex, quoted, flags) + if (quoted == Q_HERE_DOCUMENT && dolbrace_state == DOLBRACE_QUOTE && (flags & SX_NOALLOC) == 0) + return (extract_heredoc_dolbrace_string (string, sindex, quoted, flags)); + ++ dbstate[0] = dolbrace_state; ++ + pass_character = 0; + nesting_level = 1; + slen = strlen (string + *sindex) + *sindex; +@@ -1852,6 +1857,8 @@ extract_dollar_brace_string (string, sindex, quoted, flags) + + if (string[i] == '$' && string[i+1] == LBRACE) + { ++ if (nesting_level < PARAMEXPNEST_MAX) ++ dbstate[nesting_level] = dolbrace_state; + nesting_level++; + i += 2; + if (dolbrace_state == DOLBRACE_QUOTE || dolbrace_state == DOLBRACE_WORD) +@@ -1864,6 +1871,7 @@ extract_dollar_brace_string (string, sindex, quoted, flags) + nesting_level--; + if (nesting_level == 0) + break; ++ dolbrace_state = (nesting_level < PARAMEXPNEST_MAX) ? dbstate[nesting_level] : dbstate[0]; /* Guess using initial state */ + i++; + continue; + } diff --git a/bash-5.2-patch-5.patch b/bash-5.2-patch-5.patch new file mode 100644 index 0000000..e45ae56 --- /dev/null +++ b/bash-5.2-patch-5.patch @@ -0,0 +1,24 @@ +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 4 ++#define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/subst.c b/subst.c +--- a/subst.c ++++ b/subst.c +@@ -8965,7 +8965,8 @@ pat_subst (string, pat, rep, mflags) + return (ret); + } + else if (*string == 0 && (match_pattern (string, pat, mtype, &s, &e) != 0)) +- return ((mflags & MATCH_EXPREP) ? strcreplace (rep, '&', "", 2) : savestring (rep)); ++ return (mflags & MATCH_EXPREP) ? strcreplace (rep, '&', "", 2) ++ : (rep ? savestring (rep) : savestring ("")); + + ret = (char *)xmalloc (rsize = 64); + ret[0] = '\0'; diff --git a/bash-5.2-patch-6.patch b/bash-5.2-patch-6.patch new file mode 100644 index 0000000..bcf4241 --- /dev/null +++ b/bash-5.2-patch-6.patch @@ -0,0 +1,230 @@ +diff --git a/builtins/common.h b/builtins/common.h +--- a/builtins/common.h ++++ b/builtins/common.h +@@ -257,6 +257,8 @@ extern int print_shift_error; + extern int expand_once_flag; + #endif + ++extern int expaliases_flag; ++ + /* variables from source.def */ + extern int source_searches_cwd; + extern int source_uses_path; +diff --git a/builtins/shopt.def b/builtins/shopt.def +--- a/builtins/shopt.def ++++ b/builtins/shopt.def +@@ -149,6 +149,9 @@ static int shopt_set_complete_direxpand PARAMS((char *, int)); + static int set_assoc_expand PARAMS((char *, int)); + #endif + ++int expaliases_flag = 0; ++static int shopt_set_expaliases PARAMS((char *, int)); ++ + static int shopt_set_debug_mode PARAMS((char *, int)); + + static int shopt_login_shell; +@@ -198,7 +201,7 @@ static struct { + #endif + { "dotglob", &glob_dot_filenames, (shopt_set_func_t *)NULL }, + { "execfail", &no_exit_on_failed_exec, (shopt_set_func_t *)NULL }, +- { "expand_aliases", &expand_aliases, (shopt_set_func_t *)NULL }, ++ { "expand_aliases", &expaliases_flag, shopt_set_expaliases }, + #if defined (DEBUGGER) + { "extdebug", &debugging_mode, shopt_set_debug_mode }, + #endif +@@ -350,7 +353,7 @@ reset_shopt_options () + check_window_size = CHECKWINSIZE_DEFAULT; + allow_null_glob_expansion = glob_dot_filenames = 0; + no_exit_on_failed_exec = 0; +- expand_aliases = 0; ++ expand_aliases = expaliases_flag = 0; + extended_quote = 1; + fail_glob_expansion = 0; + glob_asciirange = GLOBASCII_DEFAULT; +@@ -631,6 +634,15 @@ shopt_set_debug_mode (option_name, mode) + return (0); + } + ++static int ++shopt_set_expaliases (option_name, mode) ++ char *option_name; ++ int mode; ++{ ++ expand_aliases = expaliases_flag; ++ return 0; ++} ++ + #if defined (READLINE) + static int + shopt_enable_hostname_completion (option_name, mode) +diff --git a/execute_cmd.c b/execute_cmd.c +--- a/execute_cmd.c ++++ b/execute_cmd.c +@@ -1536,7 +1536,7 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) + expansion with `shopt -s expand_alias' to continue to expand + aliases. */ + if (ois != interactive_shell) +- expand_aliases = 0; ++ expand_aliases = expaliases_flag = 0; + } + + /* Subshells are neither login nor interactive. */ +diff --git a/general.c b/general.c +--- a/general.c ++++ b/general.c +@@ -91,7 +91,7 @@ static struct { + { + &interactive_comments, + &source_uses_path, +- &expand_aliases, ++ &expaliases_flag, + &inherit_errexit, + &print_shift_error, + 0 +@@ -106,7 +106,8 @@ posix_initialize (on) + /* Things that should be turned on when posix mode is enabled. */ + if (on != 0) + { +- interactive_comments = source_uses_path = expand_aliases = 1; ++ interactive_comments = source_uses_path = 1; ++ expand_aliases = expaliases_flag = 1; + inherit_errexit = 1; + source_searches_cwd = 0; + print_shift_error = 1; +@@ -116,13 +117,14 @@ posix_initialize (on) + else if (saved_posix_vars) /* on == 0, restore saved settings */ + { + set_posix_options (saved_posix_vars); ++ expand_aliases = expaliases_flag; + free (saved_posix_vars); + saved_posix_vars = 0; + } + else /* on == 0, restore a default set of settings */ + { + source_searches_cwd = 1; +- expand_aliases = interactive_shell; ++ expand_aliases = expaliases_flag = interactive_shell; /* XXX */ + print_shift_error = 0; + } + } +diff --git a/parse.y b/parse.y +--- a/parse.y ++++ b/parse.y +@@ -3306,6 +3306,8 @@ reset_parser () + if (parser_state & (PST_EXTPAT|PST_CMDSUBST)) + extended_glob = global_extglob; + #endif ++ if (parser_state & (PST_CMDSUBST|PST_STRING)) ++ expand_aliases = expaliases_flag; + + parser_state = 0; + here_doc_first_line = 0; +@@ -4388,6 +4390,7 @@ parse_string_to_command (string, flags) + if (flags & SX_COMPLETE) + parser_state |= PST_NOERROR; + ++ parser_state |= PST_STRING; + expand_aliases = 0; + + cmd = 0; +@@ -6401,7 +6404,7 @@ parse_string_to_word_list (s, flags, whom) + /* State flags we don't want to persist into compound assignments. */ + parser_state &= ~PST_NOEXPAND; /* parse_comsub sentinel */ + /* State flags we want to set for this run through the tokenizer. */ +- parser_state |= PST_COMPASSIGN|PST_REPARSE; ++ parser_state |= PST_COMPASSIGN|PST_REPARSE|PST_STRING; + } + + while ((tok = read_token (READ)) != yacc_EOF) +diff --git a/parser.h b/parser.h +--- a/parser.h ++++ b/parser.h +@@ -50,6 +50,7 @@ + #define PST_ENDALIAS 0x200000 /* just finished expanding and consuming an alias */ + #define PST_NOEXPAND 0x400000 /* don't expand anything in read_token_word; for command substitution */ + #define PST_NOERROR 0x800000 /* don't print error messages in yyerror */ ++#define PST_STRING 0x1000000 /* parsing a string to a command or word list */ + + /* Definition of the delimiter stack. Needed by parse.y and bashhist.c. */ + struct dstack { +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 5 ++#define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/shell.c b/shell.c +--- a/shell.c ++++ b/shell.c +@@ -1844,8 +1844,8 @@ reset_option_defaults () + static void + init_interactive () + { +- expand_aliases = interactive_shell = startup_state = 1; +- interactive = 1; ++ expand_aliases = expaliases_flag = 1; ++ interactive_shell = startup_state = interactive = 1; + #if defined (HISTORY) + if (enable_history_list == -1) + enable_history_list = 1; /* set default */ +@@ -1865,7 +1865,7 @@ init_noninteractive () + bash_history_reinit (0); + #endif /* HISTORY */ + interactive_shell = startup_state = interactive = 0; +- expand_aliases = posixly_correct; /* XXX - was 0 not posixly_correct */ ++ expand_aliases = expaliases_flag = posixly_correct; /* XXX - was 0 not posixly_correct */ + no_line_editing = 1; + #if defined (JOB_CONTROL) + /* Even if the shell is not interactive, enable job control if the -i or +@@ -1882,7 +1882,7 @@ init_interactive_script () + enable_history_list = 1; + #endif + init_noninteractive (); +- expand_aliases = interactive_shell = startup_state = 1; ++ expand_aliases = expaliases_flag = interactive_shell = startup_state = 1; + #if defined (HISTORY) + remember_on_history = enable_history_list; /* XXX */ + #endif +@@ -2025,7 +2025,7 @@ shell_reinitialize () + debugging = do_version = line_number = last_command_exit_value = 0; + forced_interactive = interactive_shell = 0; + subshell_environment = running_in_background = 0; +- expand_aliases = 0; ++ expand_aliases = expaliases_flag = 0; + bash_argv_initialized = 0; + + /* XXX - should we set jobs_m_flag to 0 here? */ +diff --git a/y.tab.c b/y.tab.c +--- a/y.tab.c ++++ b/y.tab.c +@@ -5617,6 +5617,8 @@ reset_parser () + if (parser_state & (PST_EXTPAT|PST_CMDSUBST)) + extended_glob = global_extglob; + #endif ++ if (parser_state & (PST_CMDSUBST|PST_STRING)) ++ expand_aliases = expaliases_flag; + + parser_state = 0; + here_doc_first_line = 0; +@@ -6699,6 +6701,7 @@ parse_string_to_command (string, flags) + if (flags & SX_COMPLETE) + parser_state |= PST_NOERROR; + ++ parser_state |= PST_STRING; + expand_aliases = 0; + + cmd = 0; +@@ -8712,7 +8715,7 @@ parse_string_to_word_list (s, flags, whom) + /* State flags we don't want to persist into compound assignments. */ + parser_state &= ~PST_NOEXPAND; /* parse_comsub sentinel */ + /* State flags we want to set for this run through the tokenizer. */ +- parser_state |= PST_COMPASSIGN|PST_REPARSE; ++ parser_state |= PST_COMPASSIGN|PST_REPARSE|PST_STRING; + } + + while ((tok = read_token (READ)) != yacc_EOF) diff --git a/bash-5.2-patch-7.patch b/bash-5.2-patch-7.patch new file mode 100644 index 0000000..0473773 --- /dev/null +++ b/bash-5.2-patch-7.patch @@ -0,0 +1,206 @@ +diff --git a/builtins/evalstring.c b/builtins/evalstring.c +--- a/builtins/evalstring.c ++++ b/builtins/evalstring.c +@@ -431,6 +431,8 @@ parse_and_execute (string, from_file, flags) + + if (parse_command () == 0) + { ++ int local_expalias, local_alflag; ++ + if ((flags & SEVAL_PARSEONLY) || (interactive_shell == 0 && read_but_dont_execute)) + { + last_result = EXECUTION_SUCCESS; +@@ -507,6 +509,19 @@ parse_and_execute (string, from_file, flags) + } + #endif /* ONESHOT */ + ++ /* We play tricks in the parser and command_substitute() turning ++ expand_aliases on and off depending on which parsing pass and ++ whether or not we're in posix mode. This only matters for ++ parsing, and we let the higher layers deal with that. We just ++ want to ensure that expand_aliases is set to the appropriate ++ global value when we go to execute this command, so we save ++ and restore it around the execution (we don't restore it if ++ the global value of the flag (expaliases_flag) changes). */ ++ local_expalias = expand_aliases; ++ local_alflag = expaliases_flag; ++ if (subshell_environment & SUBSHELL_COMSUB) ++ expand_aliases = expaliases_flag; ++ + /* See if this is a candidate for $( word : (char *)NULL; + if (tword) + dispose_word_desc (tword); +diff --git a/y.tab.c b/y.tab.c +--- a/y.tab.c ++++ b/y.tab.c +@@ -5923,6 +5923,7 @@ tokword: + #define P_BACKQUOTE 0x0010 /* parsing a backquoted command substitution */ + #define P_ARRAYSUB 0x0020 /* parsing a [...] array subscript for assignment */ + #define P_DOLBRACE 0x0040 /* parsing a ${...} construct */ ++#define P_ARITH 0x0080 /* parsing a $(( )) arithmetic expansion */ + + /* Lexical state while parsing a grouping construct or $(...). */ + #define LEX_WASDOL 0x0001 +@@ -6221,6 +6222,9 @@ parse_matched_pair (qc, open, close, lenp, flags) + } + else if ((flags & (P_ARRAYSUB|P_DOLBRACE)) && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ + goto parse_dollar_word; ++ else if ((flags & P_ARITH) && (tflags & LEX_WASDOL) && ch == '(') /*)*/ ++ /* $() inside $(( ))/$[ ] */ ++ goto parse_dollar_word; + #if defined (PROCESS_SUBSTITUTION) + /* XXX - technically this should only be recognized at the start of + a word */ +@@ -6251,7 +6255,7 @@ parse_dollar_word: + else if (ch == '{') /* } */ + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|P_DOLBRACE|rflags); + else if (ch == '[') /* ] */ +- nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags); ++ nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags|P_ARITH); + + CHECK_NESTRET_ERROR (); + APPEND_NESTRET (); +@@ -6390,7 +6394,7 @@ parse_comsub (qc, open, close, lenp, flags) + peekc = shell_getc (1); + shell_ungetc (peekc); + if (peekc == '(') /*)*/ +- return (parse_matched_pair (qc, open, close, lenp, 0)); ++ return (parse_matched_pair (qc, open, close, lenp, P_ARITH)); + } + + /*itrace("parse_comsub: qc = `%c' open = %c close = %c", qc, open, close);*/ +@@ -6811,7 +6815,7 @@ parse_arith_cmd (ep, adddq) + int ttoklen; + + exp_lineno = line_number; +- ttok = parse_matched_pair (0, '(', ')', &ttoklen, 0); ++ ttok = parse_matched_pair (0, '(', ')', &ttoklen, P_ARITH); + rval = 1; + if (ttok == &matched_pair_error) + return -1; +@@ -7326,7 +7330,7 @@ read_token_word (character) + pop_delimiter (dstack); + } + else +- ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0); ++ ttok = parse_matched_pair (cd, '[', ']', &ttoklen, P_ARITH); + if (ttok == &matched_pair_error) + return -1; /* Bail immediately. */ + RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 3, diff --git a/bash-5.2-patch-8.patch b/bash-5.2-patch-8.patch new file mode 100644 index 0000000..350bde3 --- /dev/null +++ b/bash-5.2-patch-8.patch @@ -0,0 +1,34 @@ +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 7 ++#define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/subst.c b/subst.c +--- a/subst.c ++++ b/subst.c +@@ -3819,6 +3819,10 @@ pos_params (string, start, end, quoted, pflags) + #define EXP_CHAR(s) (s == '$' || s == '`' || s == CTLESC || s == '~') + #endif + ++/* We don't perform process substitution in arithmetic expressions, so don't ++ bother checking for it. */ ++#define ARITH_EXP_CHAR(s) (s == '$' || s == '`' || s == CTLESC || s == '~') ++ + /* If there are any characters in STRING that require full expansion, + then call FUNC to expand STRING; otherwise just perform quote + removal if necessary. This returns a new string. */ +@@ -4028,7 +4032,7 @@ expand_arith_string (string, quoted) + i = saw_quote = 0; + while (string[i]) + { +- if (EXP_CHAR (string[i])) ++ if (ARITH_EXP_CHAR (string[i])) + break; + else if (string[i] == '\'' || string[i] == '\\' || string[i] == '"') + saw_quote = string[i]; diff --git a/bash-5.2-patch-9.patch b/bash-5.2-patch-9.patch new file mode 100644 index 0000000..ab4931f --- /dev/null +++ b/bash-5.2-patch-9.patch @@ -0,0 +1,23 @@ +diff --git a/expr.c b/expr.c +--- a/expr.c ++++ b/expr.c +@@ -1168,6 +1168,8 @@ expr_streval (tok, e, lvalue) + /* [[[[[ */ + #if defined (ARRAY_VARS) + aflag = tflag; /* use a different variable for now */ ++ if (shell_compatibility_level > 51) ++ aflag |= AV_ATSTARKEYS; + v = (e == ']') ? array_variable_part (tok, tflag, (char **)0, (int *)0) : find_variable (tok); + #else + v = find_variable (tok); +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 8 ++#define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash-5.3-sast.patch b/bash-5.3-sast.patch new file mode 100644 index 0000000..c4a84c8 --- /dev/null +++ b/bash-5.3-sast.patch @@ -0,0 +1,186 @@ +diff --git a/arrayfunc.c b/arrayfunc.c +--- a/arrayfunc.c ++++ b/arrayfunc.c +@@ -208,7 +208,10 @@ bind_assoc_var_internal (entry, hash, key, value, flags) + newval = make_array_variable_value (entry, 0, key, value, flags); + + if (entry->assign_func) +- (*entry->assign_func) (entry, newval, 0, key); ++ { ++ (*entry->assign_func) (entry, newval, 0, key); ++ FREE (key); ++ } + else + assoc_insert (hash, key, newval); + +@@ -985,6 +988,7 @@ quote_compound_array_word (w, type) + if (t != w+ind) + free (t); + strcpy (nword + i, value); ++ free (value); + + return nword; + } +diff --git a/builtins/evalfile.c b/builtins/evalfile.c +--- a/builtins/evalfile.c ++++ b/builtins/evalfile.c +@@ -79,7 +79,8 @@ _evalfile (filename, flags) + { + volatile int old_interactive; + procenv_t old_return_catch; +- int return_val, fd, result, pflags, i, nnull; ++ int return_val, fd, result, pflags, nnull; ++ size_t i; + ssize_t nr; /* return value from read(2) */ + char *string; + struct stat finfo; +@@ -112,10 +113,10 @@ _evalfile (filename, flags) + + if (fd < 0 || (fstat (fd, &finfo) == -1)) + { +- i = errno; ++ result = errno; + if (fd >= 0) + close (fd); +- errno = i; ++ errno = result; + + file_error_and_exit: + if (((flags & FEVAL_ENOENTOK) == 0) || errno != ENOENT) +diff --git a/lib/readline/text.c b/lib/readline/text.c +--- a/lib/readline/text.c ++++ b/lib/readline/text.c +@@ -1409,8 +1409,7 @@ rl_change_case (int count, int op) + #if defined (HANDLE_MULTIBYTE) + WCHAR_T wc, nwc; + char mb[MB_LEN_MAX+1]; +- int mlen; +- size_t m; ++ size_t m, mlen; + mbstate_t mps; + #endif + +@@ -1479,12 +1478,13 @@ rl_change_case (int count, int op) + + memset (&ts, 0, sizeof (mbstate_t)); + mlen = WCRTOMB (mb, nwc, &ts); +- if (mlen < 0) ++ ++ if (MB_INVALIDCH (mlen)) + { + nwc = wc; + memset (&ts, 0, sizeof (mbstate_t)); + mlen = WCRTOMB (mb, nwc, &ts); +- if (mlen < 0) /* should not happen */ ++ if (MB_INVALIDCH (mlen)) /* should not happen */ + strncpy (mb, rl_line_buffer + start, mlen = m); + } + if (mlen > 0) +diff --git a/lib/readline/util.c b/lib/readline/util.c +--- a/lib/readline/util.c ++++ b/lib/readline/util.c +@@ -556,7 +556,10 @@ _rl_audit_tty (char *string) + size = strlen (string) + 1; + + if (NLMSG_SPACE (size) > MAX_AUDIT_MESSAGE_LENGTH) +- return; ++ { ++ close (fd); ++ return; ++ } + + memset (&req, 0, sizeof(req)); + req.nlh.nlmsg_len = NLMSG_SPACE (size); +diff --git a/lib/sh/casemod.c b/lib/sh/casemod.c +--- a/lib/sh/casemod.c ++++ b/lib/sh/casemod.c +@@ -111,8 +111,7 @@ sh_modcase (string, pat, flags) + #if defined (HANDLE_MULTIBYTE) + wchar_t nwc; + char mb[MB_LEN_MAX+1]; +- int mlen; +- size_t m; ++ size_t m, mlen; + mbstate_t state; + #endif + +@@ -254,8 +253,9 @@ singlebyte: + else + { + mlen = wcrtomb (mb, nwc, &state); +- if (mlen > 0) +- mb[mlen] = '\0'; ++ if (MB_INVALIDCH (mlen)) ++ strncpy (mb, string + start, mlen = m); ++ mb[mlen] = '\0'; + /* Don't assume the same width */ + strncpy (ret + retind, mb, mlen); + retind += mlen; +diff --git a/lib/sh/zwrite.c b/lib/sh/zwrite.c +--- a/lib/sh/zwrite.c ++++ b/lib/sh/zwrite.c +@@ -41,7 +41,9 @@ zwrite (fd, buf, nb) + char *buf; + size_t nb; + { +- int n, i, nt; ++ int nt; ++ size_t n; ++ ssize_t i; + + for (n = nb, nt = 0;;) + { +diff --git a/subst.c b/subst.c +--- a/subst.c ++++ b/subst.c +@@ -4287,12 +4287,17 @@ expand_string_dollar_quote (string, flags) + continue; + } + trans = locale_expand (t, 0, news-sindex, 0, &translen); +- free (t); + if (singlequote_translations && + ((news-sindex-1) != translen || STREQN (t, trans, translen) == 0)) +- t = sh_single_quote (trans); ++ { ++ free (t); ++ t = sh_single_quote (trans); ++ } + else +- t = sh_mkdoublequoted (trans, translen, 0); ++ { ++ free (t); ++ t = sh_mkdoublequoted (trans, translen, 0); ++ } + sindex = news; + } + #endif /* TRANSLATABLE_STRINGS */ +diff --git a/support/bashbug.sh.in b/support/bashbug.sh.in +--- a/support/bashbug.sh.in ++++ b/support/bashbug.sh.in +@@ -132,9 +132,9 @@ if [ -z "$DEFEDITOR" ] && [ -z "$EDITOR" ]; then + DEFEDITOR=emacs + elif [ -x /usr/bin/xemacs ]; then + DEFEDITOR=xemacs +- elif [ -x /usr/bin/vim; then ++ elif [ -x /usr/bin/vim ]; then + DEFEDITOR=vim +- elif [ -x /usr/bin/gvim; then ++ elif [ -x /usr/bin/gvim ]; then + DEFEDITOR=gvim + elif [ -x /usr/bin/nano ]; then + DEFEDITOR=nano +diff --git a/support/man2html.c b/support/man2html.c +--- a/support/man2html.c ++++ b/support/man2html.c +@@ -809,7 +809,7 @@ out_html(char *c) + } else if (output_possible) { + while (*c) { + outbuffer[obp++] = *c; +- if (*c == '\n' || obp > HUGE_STR_MAX) { ++ if (*c == '\n' || obp >= HUGE_STR_MAX) { + outbuffer[obp] = '\0'; + add_links(outbuffer); + obp = 0; +-- +2.46.0 + diff --git a/bash-configure-c99-2.patch b/bash-configure-c99-2.patch new file mode 100644 index 0000000..98fbce4 --- /dev/null +++ b/bash-configure-c99-2.patch @@ -0,0 +1,20 @@ +Another C compatibility issue: char ** and char * are distinct types, +and strtold expects the former for its second argument. + +Submitted upstream: + + + +diff --git a/configure.ac b/configure.ac +index 6defea0835fe8877..955c1149a8141e19 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -885,7 +885,7 @@ AC_CHECK_DECLS([strtold], [ + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], +- [[long double r; char *foo, bar; r = strtold(foo, &bar);]] ++ [[long double r; char *foo, *bar; r = strtold(foo, &bar);]] + )], + [bash_cv_strtold_broken=no],[bash_cv_strtold_broken=yes]) + ] diff --git a/bash-configure-c99.patch b/bash-configure-c99.patch new file mode 100644 index 0000000..df0c4f9 --- /dev/null +++ b/bash-configure-c99.patch @@ -0,0 +1,21 @@ +Avoid an implicit declaration of dup2 in its configure probe. This +prevents build issues with future compilers. + +Already reported upstream: + + + +diff --git a/aclocal.m4 b/aclocal.m4 +index 6162f6eb9ef90754..5cbbe96d7158197a 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -238,6 +238,9 @@ AC_CACHE_VAL(bash_cv_dup2_broken, + #include + #include + #include ++#ifdef HAVE_UNISTD_H ++# include ++#endif /* HAVE_UNISTD_H */ + int + main() + { diff --git a/SOURCES/bash-requires.patch b/bash-requires.patch similarity index 71% rename from SOURCES/bash-requires.patch rename to bash-requires.patch index 2766431..674e5b9 100644 --- a/SOURCES/bash-requires.patch +++ b/bash-requires.patch @@ -1,83 +1,84 @@ diff --git a/builtins.h b/builtins.h -index 0cfea18..a6ef958 100644 --- a/builtins.h +++ b/builtins.h -@@ -42,6 +42,7 @@ - #define ASSIGNMENT_BUILTIN 0x10 /* This builtin takes assignment statements. */ +@@ -46,6 +46,7 @@ #define POSIX_BUILTIN 0x20 /* This builtins is special in the Posix command search order. */ #define LOCALVAR_BUILTIN 0x40 /* This builtin creates local variables */ -+#define REQUIRES_BUILTIN 0x80 /* This builtin requires other files. */ + #define ARRAYREF_BUILTIN 0x80 /* This builtin takes array references as arguments */ ++#define REQUIRES_BUILTIN 0x100 /* This builtin requires other files. */ #define BASE_INDENT 4 diff --git a/builtins/mkbuiltins.c b/builtins/mkbuiltins.c -index 4f51201..283bfea 100644 --- a/builtins/mkbuiltins.c +++ b/builtins/mkbuiltins.c -@@ -69,10 +69,15 @@ extern char *strcpy (); +@@ -69,11 +69,16 @@ extern char *strcpy (); #define whitespace(c) (((c) == ' ') || ((c) == '\t')) /* Flag values that builtins can have. */ -+/* These flags are for the C code generator, ++/* These flags are for the C code generator, + the C which is produced (./builtin.c) -+ includes the flags definitions found ++ includes the flags definitions found + in ../builtins.h */ #define BUILTIN_FLAG_SPECIAL 0x01 #define BUILTIN_FLAG_ASSIGNMENT 0x02 #define BUILTIN_FLAG_LOCALVAR 0x04 - #define BUILTIN_FLAG_POSIX_BUILTIN 0x08 -+#define BUILTIN_FLAG_REQUIRES 0x10 + #define BUILTIN_FLAG_POSIX_BUILTIN 0x08 + #define BUILTIN_FLAG_ARRAYREF_ARG 0x10 ++#define BUILTIN_FLAG_REQUIRES 0x20 #define BASE_INDENT 4 -@@ -173,11 +178,20 @@ char *posix_builtins[] = +@@ -189,13 +194,21 @@ char *arrayvar_builtins[] = + "typeset", "unset", "wait", /*]*/ (char *)NULL }; - +- ++ +/* The builtin commands that cause requirements on other files. */ +static char *requires_builtins[] = +{ + ".", "command", "exec", "source", "inlib", + (char *)NULL +}; -+ + /* Forward declarations. */ static int is_special_builtin (); static int is_assignment_builtin (); static int is_localvar_builtin (); static int is_posix_builtin (); + static int is_arrayvar_builtin (); +static int is_requires_builtin (); #if !defined (HAVE_RENAME) static int rename (); -@@ -831,6 +845,9 @@ builtin_handler (self, defs, arg) - new->flags |= BUILTIN_FLAG_LOCALVAR; - if (is_posix_builtin (name)) +@@ -856,6 +869,8 @@ builtin_handler (self, defs, arg) new->flags |= BUILTIN_FLAG_POSIX_BUILTIN; + if (is_arrayvar_builtin (name)) + new->flags |= BUILTIN_FLAG_ARRAYREF_ARG; + if (is_requires_builtin (name)) + new->flags |= BUILTIN_FLAG_REQUIRES; -+ array_add ((char *)new, defs->builtins); building_builtin = 1; -@@ -1250,12 +1267,13 @@ write_builtins (defs, structfile, externfile) +@@ -1275,13 +1290,14 @@ write_builtins (defs, structfile, externfile) else fprintf (structfile, "(sh_builtin_func_t *)0x0, "); -- fprintf (structfile, "%s%s%s%s%s, %s_doc,\n", -+ fprintf (structfile, "%s%s%s%s%s%s, %s_doc,\n", +- fprintf (structfile, "%s%s%s%s%s%s, %s_doc,\n", ++ fprintf (structfile, "%s%s%s%s%s%s%s, %s_doc,\n", "BUILTIN_ENABLED | STATIC_BUILTIN", (builtin->flags & BUILTIN_FLAG_SPECIAL) ? " | SPECIAL_BUILTIN" : "", (builtin->flags & BUILTIN_FLAG_ASSIGNMENT) ? " | ASSIGNMENT_BUILTIN" : "", (builtin->flags & BUILTIN_FLAG_LOCALVAR) ? " | LOCALVAR_BUILTIN" : "", (builtin->flags & BUILTIN_FLAG_POSIX_BUILTIN) ? " | POSIX_BUILTIN" : "", + (builtin->flags & BUILTIN_FLAG_ARRAYREF_ARG) ? " | ARRAYREF_BUILTIN" : "", + (builtin->flags & BUILTIN_FLAG_REQUIRES) ? " | REQUIRES_BUILTIN" : "", document_name (builtin)); /* Don't translate short document summaries that are identical -@@ -1645,6 +1663,13 @@ is_posix_builtin (name) - return (_find_in_table (name, posix_builtins)); +@@ -1678,6 +1694,13 @@ is_arrayvar_builtin (name) + return (_find_in_table (name, arrayvar_builtins)); } +static int @@ -91,15 +92,14 @@ index 4f51201..283bfea 100644 static int rename (from, to) diff --git a/doc/bash.1 b/doc/bash.1 -index c21e877..04ce845 100644 --- a/doc/bash.1 +++ b/doc/bash.1 -@@ -238,6 +238,14 @@ The shell becomes restricted (see +@@ -239,6 +239,14 @@ The shell becomes restricted (see .B "RESTRICTED SHELL" below). .TP +.B \-\-rpm-requires -+Produce the list of files that are required for the ++Produce the list of files that are required for the +shell script to run. This implies '-n' and is subject +to the same limitations as compile time error checking checking; +Command substitutions, Conditional expressions and @@ -110,15 +110,14 @@ index c21e877..04ce845 100644 Equivalent to \fB\-v\fP. .TP diff --git a/doc/bashref.texi b/doc/bashref.texi -index 06957b6..e3fe925 100644 --- a/doc/bashref.texi +++ b/doc/bashref.texi -@@ -6243,6 +6243,13 @@ standard. @xref{Bash POSIX Mode}, for a description of the Bash +@@ -6927,6 +6927,13 @@ standard. @xref{Bash POSIX Mode}, for a description of the Bash @item --restricted Make the shell a restricted shell (@pxref{The Restricted Shell}). +@item --rpm-requires -+Produce the list of files that are required for the ++Produce the list of files that are required for the +shell script to run. This implies '-n' and is subject +to the same limitations as compile time error checking checking; +Command substitutions, Conditional expressions and @command{eval} @@ -128,31 +127,22 @@ index 06957b6..e3fe925 100644 Equivalent to @option{-v}. Print shell input lines as they're read. diff --git a/eval.c b/eval.c -index db863e7..5a5af32 100644 --- a/eval.c +++ b/eval.c -@@ -56,6 +56,7 @@ extern int need_here_doc; - extern int current_command_number, current_command_line_count, line_number; - extern int expand_aliases; - extern char *ps0_prompt; -+extern int rpm_requires; - - #if defined (HAVE_POSIX_SIGNALS) - extern sigset_t top_level_mask; -@@ -148,7 +149,7 @@ reader_loop () +@@ -138,7 +138,8 @@ reader_loop () if (read_command () == 0) { - if (interactive_shell == 0 && read_but_dont_execute) ++ + if (interactive_shell == 0 && (read_but_dont_execute && !rpm_requires)) { - last_command_exit_value = EXECUTION_SUCCESS; + set_exit_status (last_command_exit_value); dispose_command (global_command); diff --git a/execute_cmd.c b/execute_cmd.c -index b5cd405..88c7a5c 100644 --- a/execute_cmd.c +++ b/execute_cmd.c -@@ -533,6 +533,8 @@ async_redirect_stdin () +@@ -561,6 +561,8 @@ async_redirect_stdin () #define DESCRIBE_PID(pid) do { if (interactive) describe_pid (pid); } while (0) @@ -160,25 +150,25 @@ index b5cd405..88c7a5c 100644 + /* Execute the command passed in COMMAND, perhaps doing it asynchronously. COMMAND is exactly what read_command () places into GLOBAL_COMMAND. - ASYNCHROUNOUS, if non-zero, says to do this command in the background. -@@ -565,7 +567,13 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out, + ASYNCHRONOUS, if non-zero, says to do this command in the background. +@@ -592,7 +594,13 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out, if (breaking || continuing) return (last_command_exit_value); -- if (command == 0 || read_but_dont_execute) +- if (read_but_dont_execute) + if (command == 0 || (read_but_dont_execute && !rpm_requires)) + return (EXECUTION_SUCCESS); + if (rpm_requires && command->type == cm_function_def) + return last_command_exit_value = + execute_intern_function (command->value.Function_def->name, + command->value.Function_def); -+ if (read_but_dont_execute) ++ if (read_but_dont_execute) + return (last_command_exit_value); + if (command == 0) return (EXECUTION_SUCCESS); - - QUIT; -@@ -5752,7 +5760,7 @@ execute_intern_function (name, funcdef) - - if (check_identifier (name, posixly_correct) == 0) +@@ -2883,7 +2891,7 @@ execute_for_command (for_command) + save_line_number = line_number; + if (check_identifier (for_command->name, 1) == 0) { - if (posixly_correct && interactive_shell == 0) + if (posixly_correct && interactive_shell == 0 && rpm_requires == 0) @@ -186,50 +176,31 @@ index b5cd405..88c7a5c 100644 last_command_exit_value = EX_BADUSAGE; jump_to_top_level (ERREXIT); diff --git a/execute_cmd.h b/execute_cmd.h -index 62bec82..d42dc85 100644 --- a/execute_cmd.h +++ b/execute_cmd.h -@@ -22,6 +22,8 @@ +@@ -22,6 +22,9 @@ #define _EXECUTE_CMD_H_ #include "stdc.h" +#include "variables.h" +#include "command.h" ++ #if defined (ARRAY_VARS) struct func_array_state diff --git a/make_cmd.c b/make_cmd.c -index b42e9ff..a982fe0 100644 --- a/make_cmd.c +++ b/make_cmd.c -@@ -42,11 +42,15 @@ - #include "flags.h" - #include "make_cmd.h" - #include "dispose_cmd.h" -+#include "execute_cmd.h" - #include "variables.h" - #include "subst.h" - #include "input.h" - #include "ocache.h" - #include "externs.h" +@@ -35,6 +35,8 @@ + #include "bashintl.h" + + #include "shell.h" +#include "builtins.h" -+ +#include "builtins/common.h" - - #if defined (JOB_CONTROL) - #include "jobs.h" -@@ -57,6 +61,10 @@ - extern int line_number, current_command_line_count, parser_state; - extern int last_command_exit_value; - extern int shell_initialized; -+extern int rpm_requires; -+ -+static char *alphabet_set = "abcdefghijklmnopqrstuvwxyz" -+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - - int here_doc_first_line = 0; - -@@ -839,6 +847,27 @@ make_coproc_command (name, command) + #include "execute_cmd.h" + #include "parser.h" + #include "flags.h" +@@ -839,6 +841,30 @@ make_coproc_command (name, command) return (make_command (cm_coproc, (SIMPLE_COM *)temp)); } @@ -238,12 +209,15 @@ index b42e9ff..a982fe0 100644 +const char *deptype; +char *filename; +{ ++ static char *alphabet_set = "abcdefghijklmnopqrstuvwxyz" ++ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; ++ + if (strchr(filename, '$') || (filename[0] != '/' && strchr(filename, '/'))) + return; + -+ /* ++ /* + if the executable is called via variable substitution we can -+ not dermine what it is at compile time. ++ not dermine what it is at compile time. + + if the executable consists only of characters not in the + alphabet we do not consider it a dependency just an artifact @@ -257,7 +231,7 @@ index b42e9ff..a982fe0 100644 /* Reverse the word list and redirection list in the simple command has just been parsed. It seems simpler to do this here the one time then by any other method that I can think of. */ -@@ -856,6 +885,27 @@ clean_simple_command (command) +@@ -856,6 +882,28 @@ clean_simple_command (command) REVERSE_LIST (command->value.Simple->redirects, REDIRECT *); } @@ -281,15 +255,15 @@ index b42e9ff..a982fe0 100644 + output_requirement (find_function(cmd0) ? "function" : "executable", cmd0); + } + } /*rpm_requires*/ ++ + parser_state &= ~PST_REDIRLIST; return (command); } diff --git a/shell.c b/shell.c -index 7f63969..a0fb7ce 100644 --- a/shell.c +++ b/shell.c -@@ -201,6 +201,9 @@ int have_devfd = 0; +@@ -196,6 +196,9 @@ int have_devfd = 0; /* The name of the .(shell)rc file. */ static char *bashrc_file = DEFAULT_BASHRC; @@ -299,7 +273,7 @@ index 7f63969..a0fb7ce 100644 /* Non-zero means to act more like the Bourne shell on startup. */ static int act_like_sh; -@@ -264,6 +267,7 @@ static const struct { +@@ -266,6 +269,7 @@ static const struct { { "protected", Int, &protected_mode, (char **)0x0 }, #endif { "rcfile", Charp, (int *)0x0, &bashrc_file }, @@ -307,9 +281,9 @@ index 7f63969..a0fb7ce 100644 #if defined (RESTRICTED_SHELL) { "restricted", Int, &restricted, (char **)0x0 }, #endif -@@ -500,6 +504,12 @@ main (argc, argv, env) - if (dump_translatable_strings) +@@ -510,6 +514,12 @@ main (argc, argv, env) read_but_dont_execute = 1; + #endif + if (rpm_requires) + { @@ -320,6 +294,14 @@ index 7f63969..a0fb7ce 100644 if (running_setuid && privileged_mode == 0) disable_priv_mode (); --- -2.9.3 - +diff --git a/shell.h b/shell.h +--- a/shell.h ++++ b/shell.h +@@ -100,6 +100,7 @@ extern int interactive, interactive_shell; + extern int startup_state; + extern int reading_shell_script; + extern int shell_initialized; ++extern int rpm_requires; + extern int bash_argv_initialized; + extern int subshell_environment; + extern int current_command_number; diff --git a/SOURCES/bash-setlocale.patch b/bash-setlocale.patch similarity index 100% rename from SOURCES/bash-setlocale.patch rename to bash-setlocale.patch diff --git a/SOURCES/bash-tty-tests.patch b/bash-tty-tests.patch similarity index 68% rename from SOURCES/bash-tty-tests.patch rename to bash-tty-tests.patch index 83569b1..ad8a50b 100644 --- a/SOURCES/bash-tty-tests.patch +++ b/bash-tty-tests.patch @@ -1,8 +1,7 @@ diff --git a/tests/exec.right b/tests/exec.right -index 81224fa..ff77f09 100644 --- a/tests/exec.right +++ b/tests/exec.right -@@ -51,7 +51,6 @@ this is ohio-state +@@ -60,7 +60,6 @@ this is ohio-state 0 1 testb @@ -11,42 +10,42 @@ index 81224fa..ff77f09 100644 1 1 diff --git a/tests/execscript b/tests/execscript -index 3415ae3..75c48a4 100644 --- a/tests/execscript +++ b/tests/execscript @@ -108,8 +108,6 @@ ${THIS_SH} ./exec6.sub # checks for properly deciding what constitutes an executable file ${THIS_SH} ./exec7.sub --${THIS_SH} -i ./exec8.sub +-${THIS_SH} -i ${PWD}/exec8.sub - ${THIS_SH} ./exec9.sub ${THIS_SH} ./exec10.sub diff --git a/tests/read.right b/tests/read.right -index 73cb704..a92fe7f 100644 --- a/tests/read.right +++ b/tests/read.right -@@ -33,14 +33,6 @@ a = abcdefg +@@ -34,17 +34,6 @@ xyz a = xyz a = -xyz 123- a = abc -timeout 1: ok -- +-unset or null 1 -timeout 2: ok -- --./read2.sub: line 23: read: -3: invalid timeout specification +-unset or null 2 +-timeout 3: ok +-unset or null 3 +-./read2.sub: line 45: read: -3: invalid timeout specification -1 - -abcde - ./read3.sub: line 4: read: -1: invalid number +-abcde + ./read3.sub: line 17: read: -1: invalid number abc - ab + defg diff --git a/tests/read.tests b/tests/read.tests -index fe27dae..10346f7 100644 --- a/tests/read.tests +++ b/tests/read.tests -@@ -82,9 +82,6 @@ echo " foo" | { IFS=$':' ; read line; recho "$line"; } +@@ -95,9 +95,6 @@ echo " foo" | { IFS=$':' ; read line; recho "$line"; } # test read -d delim behavior ${THIS_SH} ./read1.sub @@ -56,6 +55,3 @@ index fe27dae..10346f7 100644 # test read -n nchars behavior ${THIS_SH} ./read3.sub --- -2.9.3 - diff --git a/SPECS/bash.spec b/bash.spec similarity index 85% rename from SPECS/bash.spec rename to bash.spec index 3e649cc..7ed457e 100644 --- a/SPECS/bash.spec +++ b/bash.spec @@ -1,42 +1,50 @@ #% define beta_tag rc2 -%global _hardened_build 1 -%define patchleveltag .20 -%define baseversion 4.4 +%define patchlevel 26 +%define baseversion 5.2 %bcond_without tests -Version: %{baseversion}%{patchleveltag} +Version: %{baseversion}.%{patchlevel} Name: bash Summary: The GNU Bourne Again shell -Release: 5%{?dist} -License: GPLv3+ +Release: 6%{?dist} +License: GPL-3.0-or-later Url: https://www.gnu.org/software/bash Source0: https://ftp.gnu.org/gnu/bash/bash-%{baseversion}.tar.gz - # For now there isn't any doc -#Source2: ftp://ftp.gnu.org/gnu/bash/bash-doc-%{version}.tar.gz +#Source2: ftp://ftp.gnu.org/gnu/bash/bash-doc-%%{version}.tar.gz Source1: dot-bashrc Source2: dot-bash_profile Source3: dot-bash_logout +Source4: https://ftp.gnu.org/gnu/bash/bash-%{baseversion}.tar.gz.sig +# Retreived from https://tiswww.cwru.edu/~chet/gpgkey.asc +# which is the https version of the link on http://tiswww.case.edu/php/chet/bash/bashtop.html +Source5: chet-gpgkey.asc # Official upstream patches # Patches are converted to apply with '-p1' -%{lua:for i=1,20 do print(string.format("Patch%u: bash-4.4-patch-%u.patch\n", i, i)) end} +%{lua:for i=1,rpm.expand('%{patchlevel}') do + print(string.format('Patch%u: bash-%s-patch-%u.patch\n', i, rpm.expand('%{baseversion}'), i)) +end} # Other patches -Patch101: bash-2.02-security.patch -Patch102: bash-2.03-paths.patch -Patch103: bash-2.03-profile.patch -Patch104: bash-2.05a-interpreter.patch -Patch105: bash-2.05b-debuginfo.patch -Patch106: bash-2.05b-manso.patch -Patch107: bash-2.05b-pgrp_sync.patch -Patch108: bash-2.05b-xcc.patch -Patch110: bash-3.2-ssh_source_bash.patch -Patch112: bash-infotags.patch -Patch113: bash-requires.patch -Patch114: bash-setlocale.patch -Patch115: bash-tty-tests.patch +# Non-interactive shells beginning with argv[0][0] == '-' should run the startup files when not in posix mode. +Patch102: bash-2.03-profile.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=60870 +Patch103: bash-2.05a-interpreter.patch +# Generate info for debuginfo files. +Patch104: bash-2.05b-debuginfo.patch +# Pid passed to setpgrp() can not be pid of a zombie process. +Patch105: bash-2.05b-pgrp_sync.patch +# Source bashrc file when bash is run under ssh. +Patch107: bash-3.2-ssh_source_bash.patch +# Use makeinfo to generate .texi file +# Patch108: bash-infotags.patch +# Try to pick up latest `--rpm-requires` patch from http://git.altlinux.org/gears/b/bash4.git +Patch109: bash-requires.patch +Patch110: bash-setlocale.patch +# Disable tty tests while doing bash builds +Patch111: bash-tty-tests.patch # 484809, check if interp section is NOBITS Patch116: bash-4.0-nobits.patch @@ -54,16 +62,16 @@ Patch119: bash-4.2-rc2-logout.patch # Static analyzis shows some issues in bash-2.05a-interpreter.patch Patch120: bash-4.2-coverity.patch -# Don't call malloc in signal handler -Patch121: bash-4.1-defer-sigchld-trap.patch - # 799958, updated info about trap +# This patch should be upstreamed. Patch122: bash-4.2-manpage_trap.patch # https://www.securecoding.cert.org/confluence/display/seccode/INT32-C.+Ensure+that+operations+on+signed+integers+do+not+result+in+overflow +# This patch should be upstreamed. Patch123: bash-4.2-size_type.patch # 1112710 - mention ulimit -c and -f POSIX block size +# This patch should be upstreamed. Patch124: bash-4.3-man-ulimit.patch # 1102815 - fix double echoes in vi visual mode @@ -76,53 +84,26 @@ Patch126: bash-4.3-memleak-lc_all.patch # this patch disables it Patch127: bash-4.4-no-loadable-builtins.patch -# 1068697 - Explicitly unset nonblocking mode while reading from stdin -# This should be dropped while rebasing to bash-4.5 -Patch128: bash-4.4-unset-nonblock-stdin.patch - -# 1389838 - command builtin should not abort on variable assignment errors -# This should be dropped while rebasing to bash-4.5 -Patch129: bash-4.4-assignment-error.patch - -# 1458008 - test builtin ignores subsecond while comparing file modification times -# This should be dropped while rebasing to bash-4.5 -Patch130: bash-4.5-test-modification-time.patch - -# 1556867 - case in a for loop inside subshell causes syntax error -# This should be dropped while rebasing to bash-4.5 -Patch131: bash-4.4-case-in-command-subst.patch - -Patch132: bash-4.4-coverity.patch - -# 1687835 - [RFE] Add a runtime option to enable history logging to syslog -# This should be dropped while rebasing to bash-5.0 -Patch133: bash-5.0-syslog-history.patch - -# 1727952 - Parsing commands break when using $$ in command substitution $(..) -# https://lists.gnu.org/archive/html/bug-bash/2017-01/msg00065.html -Patch134: bash-5.0-shellpid-subshell.patch - -# 1793943 - CVE-2019-18276: when effective UID is not equal to its real UID the saved UID is -# not dropped -Patch135: bash-5.0-cve-2019-18276.patch -Patch136: bash-5.0-cve-2019-18276-2.patch - -# 1890888 - Took long time to return when bash -c 'exit 2 & wait $!' run in the big size LimitNPROC -# values -Patch137: bash-5.0-bgp-resize.patch - -# 1794884 - HISTTIMEFORMAT causes Segmentation fault under certain conditions -Patch138: bash-5.0-histtimeformat-segfault.patch - -#2062291 - Segfault in 'buffered_getchar()' function in bash -Patch139: bash-4.4-fix-buffered_getchar-crash.patch +# 2020528 - Add a runtime option to enable history logging to syslog +# This option is undocumented in upstream and is documented by this patch +Patch128: bash-5.0-syslog-history.patch +Patch129: bash-configure-c99.patch +Patch130: bash-configure-c99-2.patch # Enable audit logs -Patch140: bash-4.3-audit.patch +Patch131: bash-4.3-audit.patch +# Fixes for issues found by OpenScanHub +Patch132: bash-5.3-sast.patch + +BuildRequires: gcc BuildRequires: texinfo bison BuildRequires: ncurses-devel BuildRequires: autoconf, gettext +BuildRequires: gnupg2 +# Required for bash tests +BuildRequires: glibc-all-langpacks +BuildRequires: make BuildRequires: audit-libs-devel Requires: filesystem >= 3 Provides: /bin/sh @@ -136,8 +117,7 @@ incorporates useful features from the Korn shell (ksh) and the C shell %package devel Summary: Development headers for %{name} -Requires: %{name} = %{version}-%{release} -Requires: pkgconf-pkg-config +Requires: %{name}%{?_isa} = %{version}-%{release} %description devel This package contains development headers for %{name}. @@ -150,6 +130,7 @@ Requires: %{name} = %{version}-%{release} This package contains documentation files for %{name}. %prep +%{gpgverify} --keyring='%{SOURCE5}' --signature='%{SOURCE4}' --data='%{SOURCE0}' %autosetup -n %{name}-%{baseversion} -p1 echo %{version} > _distribution @@ -165,7 +146,12 @@ autoconf # Recycles pids is neccessary. When bash's last fork's pid was X # and new fork's pid is also X, bash has to wait for this same pid. # Without Recycles pids bash will not wait. -make "CPPFLAGS=-D_GNU_SOURCE -DRECYCLES_PIDS -DDEFAULT_PATH_VALUE='\"/usr/local/bin:/usr/bin\"' `getconf LFS_CFLAGS` -DSYSLOG_HISTORY" %{?_smp_mflags} +MFLAGS="CPPFLAGS=-D_GNU_SOURCE -DRECYCLES_PIDS -DDEFAULT_PATH_VALUE='\"/usr/local/bin:/usr/bin\"' -DSTANDARD_UTILS_PATH='\"/bin:/usr/bin:/usr/sbin:/sbin\"' `getconf LFS_CFLAGS` -DSYSLOG_HISTORY -DSYSLOG_SHOPT=0" + +# work around missing deps in Makefiles +make "$MFLAGS" version.h +make "$MFLAGS" %{?_smp_mflags} -C builtins +make "$MFLAGS" %{?_smp_mflags} %install if [ -e autoconf ]; then @@ -178,7 +164,7 @@ sed -i -e 's,bashref\.info,bash.info,' doc/bashref.info %make_install install-headers -mkdir -p %{buildroot}/etc +mkdir -p %{buildroot}/%{_sysconfdir} # make manpages for bash builtins as per suggestion in DOC/README pushd doc @@ -215,7 +201,7 @@ rm -f %{buildroot}/%{_mandir}/man1/false.1 ln -sf bash %{buildroot}%{_bindir}/sh rm -f %{buildroot}%{_infodir}/dir -mkdir -p %{buildroot}/etc/skel +mkdir -p %{buildroot}%{_sysconfdir}/skel install -p -m644 %SOURCE1 %{buildroot}/etc/skel/.bashrc install -p -m644 %SOURCE2 %{buildroot}/etc/skel/.bash_profile install -p -m644 %SOURCE3 %{buildroot}/etc/skel/.bash_logout @@ -258,7 +244,7 @@ mkdir -p %{buildroot}/%{_pkgdocdir}/doc rm -rf examples/loadables for file in CHANGES COMPAT NEWS NOTES POSIX RBASH README examples do - cp -rp "$file" %{buildroot}/%{_pkgdocdir}/"$file" + cp -rp "$file" %{buildroot}%{_pkgdocdir}/"$file" echo "%%doc %{_pkgdocdir}/$file" >> %{name}-doc.files done echo "%%doc %{_pkgdocdir}/doc" >> %{name}-doc.files @@ -288,7 +274,7 @@ end %postun -p -- Run it only if we are uninstalling -if arg[2] == "0" +if arg[2] == 0 then t={} for line in io.lines("/etc/shells") @@ -344,72 +330,174 @@ end %{_libdir}/pkgconfig/%{name}.pc %changelog -* Fri Feb 09 2024 Siteshwar Vashisht - 4.4.20-5 -- Restore audit logs in bash-4.3 or newer versions - Resolves: RHEL-24990 +* Tue Oct 29 2024 Troy Dawson - 5.2.26-6 +- Bump release for October 2024 mass rebuild: + Resolves: RHEL-64018 -* Tue Apr 05 2022 Siteshwar Vashisht - 4.4.20-4 -- Fix a crash in buffered_getchar() function - Resolves: #2062291 +* Thu Aug 29 2024 Siteshwar Vashisht - 5.2.26-5 +- Fix issues identified by OpenScanHub + Resolves: RHEL-44649 -* Thu Sep 30 2021 Siteshwar Vashisht - 4.4.20-3 +* Mon Jun 24 2024 Troy Dawson - 5.2.26-4 +- Bump release for June 2024 mass rebuild + +* Fri Feb 09 2024 Siteshwar Vashisht - 5.2.26-3 +- Update patch for audit logs + Resolves: RHEL-22619 + +* Tue Jan 23 2024 Fedora Release Engineering - 5.2.26-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Siteshwar Vashisht - 5.2.26-1 +- Update to bash-5.2 patchlevel 26 + Resolves: #2259619 + +* Fri Jan 19 2024 Fedora Release Engineering - 5.2.21-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Nov 20 2023 Florian Weimer - 5.2.21-2 +- Fix another C compatibility issue in the configure script + +* Fri Nov 10 2023 Siteshwar Vashisht - 5.2.21-1 +- Update to bash-5.2 patchlevel 21 + Resolves: #2248970 + +* Wed Jul 19 2023 Fedora Release Engineering - 5.2.15-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Apr 11 2023 Lukáš Zaoral - 5.2.15-4 +- migrate to SPDX license format + +* Mon Feb 06 2023 Florian Weimer - 5.2.15-3 +- Fix C99 compatibility issue on configure script + +* Wed Jan 18 2023 Fedora Release Engineering - 5.2.15-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Jan 02 2023 Siteshwar Vashisht - 5.2.15-1 +- Update to bash-5.2 patchlevel 15 + Resolves: #2152991 + +* Fri Nov 18 2022 Debarshi Ray - 5.2.9-3 +- Override STANDARD_UTILS_PATH in the same way as DEFAULT_PATH_VALUE + Related: #2132363 + +* Fri Nov 18 2022 Siteshwar Vashisht - 5.2.9-2 +- Fix binary file detection + Resolves: #2135537 + +* Fri Nov 18 2022 Siteshwar Vashisht - 5.2.9-1 +- Update to bash-5.2 patchlevel 9 + Resolves: #2140722 + +* Mon Oct 10 2022 Siteshwar Vashisht - 5.2.2-2 +- Fix an issue with nested expansions + Resolves: #2133097 + +* Thu Oct 06 2022 Siteshwar Vashisht - 5.2.2-1 +- Update to bash-5.2 patchlevel 2 + +* Wed Oct 05 2022 Siteshwar Vashisht - 5.2.0-2 - Bump version number - Resolves: #2004189 + Related: #2129927 -* Mon Jul 26 2021 Siteshwar Vashisht - 4.4.20-2 -- Fix crash if a timestamp in a history file overflowed a time_t - Resolves: #1794884 +* Tue Oct 04 2022 Siteshwar Vashisht - 5.2.0-1 +- Update to bash-5.2 + Resolves: #2129927 -* Fri Mar 26 2021 Siteshwar Vashisht - 4.4.20-1 -- Fix infinite loop in long running scripts - Resolves: #1943495 +* Mon Sep 26 2022 Siteshwar Vashisht - 5.1.16-4 +- Add a null check in parameter_brace_transform() function + Resolves: #2122331 -* Wed Nov 04 2020 Siteshwar Vashisht - 4.4.19-14 -- Fix hang when limit for nproc is very high - Resolves: #1890888 +* Wed Jul 20 2022 Fedora Release Engineering - 5.1.16-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild -* Fri Oct 09 2020 Siteshwar Vashisht - 4.4.19-13 -- Correctly drop saved UID when effective UID is not equal to its real UID - Resolves: #1793943 +* Wed Jan 19 2022 Fedora Release Engineering - 5.1.16-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild -* Mon Jun 22 2020 Siteshwar Vashisht - 4.4.19-12 -- Avoid duplicating user path entries - Resolves: #1667008 +* Mon Jan 17 2022 Siteshwar Vashisht - 5.1.16-1 +- Update to bash-5.1 patchlevel 16 + Resolves: #2037042 -* Mon Jun 22 2020 Siteshwar Vashisht - 4.4.19-11 -- Drop saved UID when effective UID is not equal to its real UID - Resolves: #1793943 +* Fri Nov 26 2021 Siteshwar Vashisht - 5.1.12-1 +- Update to bash-5.1 patchlevel 12 -* Thu Aug 22 2019 Siteshwar Vashisht - 4.4.19-10 -- Fix runtime option to enable history logging to syslog - Related: #1687835 - -* Wed Jul 10 2019 Siteshwar Vashisht - 4.4.19-9 -- Fix `$$` expansion in subshell - Resolves: #1727952 - -* Mon May 27 2019 Siteshwar Vashisht - 4.4.19-8 +* Fri Nov 05 2021 Siteshwar Vashisht - 5.1.8-3 - Add a runtime option to enable history logging to syslog - Resolves: #1687835 + Resolves: #2020528 -* Mon Jan 14 2019 Siteshwar Vashisht - 4.4.19-7 -- Bump version number - Resolves: #1650059 +* Wed Jul 21 2021 Fedora Release Engineering - 5.1.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild -* Tue Oct 09 2018 Siteshwar Vashisht - 4.4.19-6 -- Set custom PATH in non-login shells - Resolves: #1627074 +* Sat May 29 2021 Siteshwar Vashisht - 5.1.8-1 +- Update to bash-5.1 patchlevel 8 -* Thu Sep 20 2018 Siteshwar Vashisht - 4.4.19-5 +* Wed Feb 17 2021 Siteshwar Vashisht - 5.1.4-1 +- Update to bash-5.1 patchlevel 4 + +* Tue Jan 26 2021 Fedora Release Engineering - 5.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jan 6 10:40:25 CET 2021 Siteshwar Vashisht - 5.1.0-1 +- Rebase to bash 5.1 + Resolves: #1904866 + +* Fri Dec 4 14:44:06 CET 2020 Siteshwar Vashisht - 5.0.17-3 +- Enable sourcing files from ~/.bashrc.d + Resolves: #1726397 + +* Mon Jul 27 2020 Fedora Release Engineering - 5.0.17-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jun 01 2020 Siteshwar Vashisht - 5.0.17-1 +- Update to bash-5.0 patchlevel 17 + +* Tue Jan 28 2020 Fedora Release Engineering - 5.0.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Dec 06 2019 Siteshwar Vashisht - 5.0.11-1 +- Update to bash-5.0 patchlevel 11 + Resolves: #1745602 + +* Fri Aug 02 2019 Kamil Dudka - 5.0.7-3 +- Sanitize public header file + Resolves: #1736676 + +* Wed Jul 24 2019 Fedora Release Engineering - 5.0.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue May 07 2019 Siteshwar Vashisht - 5.0.7-1 +- Update to bash-5.0 patchlevel 7 + +* Thu Feb 14 2019 Siteshwar Vashisht - 5.0.2-1 +- Rebase to bash 5.0 + Resolves: #1675080 + +* Thu Jan 31 2019 Fedora Release Engineering - 4.4.23-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 10 2019 Siteshwar Vashisht - 4.4.23-6 +- Avoid duplicating user path entries + Resolves: #1652639 + +* Mon Oct 08 2018 Siteshwar Vashisht - 4.4.23-5 - Fix some issues identified by coverity - Resolves: #1602450 -* Mon Aug 06 2018 Siteshwar Vashisht - 4.4.19-4 -- Bump version number +* Mon Sep 10 2018 Siteshwar Vashisht - 4.4.23-4 +- Set custom PATH in non-login shells + Resolves: #1615131 -* Tue Jun 26 2018 Siteshwar Vashisht - 4.4.19-3 +* Thu Jul 12 2018 Fedora Release Engineering - 4.4.23-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jun 25 2018 Miro Hrončok - 4.4.23-2 - Move user bin directories in front of the PATH - Resolves: #1595223 + See: https://fedoraproject.org/wiki/Changes/UserPathPrioritization + Resolves: #1595098 + +* Tue Jun 12 2018 Siteshwar Vashisht - 4.4.23-1 +- Update to bash-4.4 patchlevel 23 + Resolves: #1585510 * Thu Mar 15 2018 Siteshwar Vashisht - 4.4.19-2 - Fix handling case statement in command subsitution @@ -995,8 +1083,8 @@ end - Rebuild * Mon Aug 20 2007 Pete Graner - 3.2-15 -- Update to the Improve bash $RANDOM pseudo RNG (bug #234906) - now works with subshells and make $RANDOM on demand thus reducing the +- Update to the Improve bash $RANDOM pseudo RNG (bug #234906) + now works with subshells and make $RANDOM on demand thus reducing the amount of AVCs thrown. * Thu Aug 16 2007 Pete Graner - 3.2-15 @@ -1311,7 +1399,7 @@ end * Mon Jun 28 2004 Tim Waugh 2.05b-42 - Fixed multibyte variable substitution patch (bug #126399). -* Thu Jun 17 2004 Karsten Hopp 2.05b-41 +* Thu Jun 17 2004 Karsten Hopp 2.05b-41 - remove bashbug script/docs to avoid conflicting files in biarch installs. @@ -1427,7 +1515,7 @@ end - Force pgrp synchronization (bug #81653). * Thu Dec 05 2002 Elliot Lee 2.05b-13 -- (patch26) Don't call 'size' in makefile. Pointless, and interferes with +- (patch26) Don't call 'size' in makefile. Pointless, and interferes with cross compiles. * Tue Dec 3 2002 Tim Waugh 2.05b-12 @@ -1600,7 +1688,7 @@ end * Thu Nov 16 2000 Bernhard Rosenkraenzer - restore the ^Hs in documentation, they're highlighting sequences - for less (#20654) + for less (#20654) * Fri Sep 15 2000 Florian La Roche - bash-2.04-export.patch is reported to fix compilation @@ -1669,7 +1757,7 @@ end * Fri Jul 16 1999 Ken Estes - patch to detect what executables are required by a script. -* Sun Mar 21 1999 Cristian Gafton +* Sun Mar 21 1999 Cristian Gafton - auto rebuild in the new build environment (release 4) * Fri Mar 19 1999 Jeff Johnson @@ -1732,7 +1820,7 @@ end * Mon Oct 20 1997 Erik Troan - added comment explaining why install-info isn't used -- added mips patch +- added mips patch * Fri Oct 17 1997 Donnie Barnes - added BuildRoot diff --git a/chet-gpgkey.asc b/chet-gpgkey.asc new file mode 100644 index 0000000..a99dc8e --- /dev/null +++ b/chet-gpgkey.asc @@ -0,0 +1,24 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.2.4 (Darwin) + +mQGiBEEOsGwRBACFa0A1oa71HSZLWxAx0svXzhOZNQZOzqHmSuGOG92jIpQpr8Dp +vgRh40YpAwdcXb8QG1J5yGAKeevNE1zCFaA725vGSdHUyypHouV0xoWwukYO6qly +yX+2BZU+okBUqoWQkoWxiYaCSfzB2Ln7pmdys1fJhcgBKf3VjWCjd2XJTwCgoFJO +wyBFJdugjfwjSoRSwDOIMf0D/iQKqlWhIO1LGpMrGX0il0/x4zj0NAcSwAk7LaPZ +bN4UPjn5pqGEHBlf1+xDDQCkAoZ/VqESGZragl4VqJfxBr29Ag0UDvNbUbXoxQsA +Rdero1M8GiAIRc50hj7HXFoERwenbNDJL86GPLAQOTGOCa4W2o29nFfFjQrsrrYH +zVtyA/9oyKvTeEMJ7NA3VJdWcmn7gOu0FxEmSNhSoV1T4vP21Wf7f5niCCRKQLNy +Uy0wEApQi4tSysdz+AbgAc0b/bHYVzIf2uO2lIEZQNNt+3g2bmXgloWmW5fsm/di +50Gm1l1Na63d3RZ00SeFQos6WEwLUHEB0yp6KXluXLLIZitEJLQaQ2hldCBSYW1l +eSA8Y2hldEBjd3J1LmVkdT6IXgQTEQIAHgUCQQ6wbAIbAwYLCQgHAwIDFQIDAxYC +AQIeAQIXgAAKCRC7WGnwZOp0q87NAJ99FEzFvDdYzqCczXF6KKXi7YN5OACfacDY +soZcnnsy7EjBZL0zwGwb/sG5AQ0EQQ6wbxAEAJCukwDigRDPhAuI+lf+6P64lWan +IFOXIndqhvU13cDbQ/Wt5LwPzm2QTvd7F+fcHOgZ8KOFScbDpjJaRqwIybMTcIN0 +B2pBLX/C10W1aY+cUrXZgXUGVISEMmpaP9v02auToo7XXVEHC+XLO9IU7/xaU98F +L69l6/K4xeNSBRM/AAMHA/wNAmRBpcyK0+VggZ5esQaIP/LyolAm2qwcmrd3dZi+ +g24s7yjV0EUwvRP7xHRDQFgkAo6++QbuecU/J90lxrVnQwucZmfz9zgWDkT/MpfB +/CNRSKLFjhYq2yHmHWT6vEjw9Ry/hF6Pc0oh1a62USdfaKAiim0nVxxQmPmiRvtC +mYhJBBgRAgAJBQJBDrBvAhsMAAoJELtYafBk6nSr43AAn2ZZFQg8Gs/zUzvXMt7e +vaFqVTzcAJ0cHtKpP1i/4H4R9+OsYeQdxxWxTQ== +=2MjR +-----END PGP PUBLIC KEY BLOCK----- diff --git a/SOURCES/dot-bash_logout b/dot-bash_logout similarity index 100% rename from SOURCES/dot-bash_logout rename to dot-bash_logout diff --git a/SOURCES/dot-bash_profile b/dot-bash_profile similarity index 88% rename from SOURCES/dot-bash_profile rename to dot-bash_profile index 55136b9..baaaa32 100644 --- a/SOURCES/dot-bash_profile +++ b/dot-bash_profile @@ -2,7 +2,7 @@ # Get the aliases and functions if [ -f ~/.bashrc ]; then - . ~/.bashrc + . ~/.bashrc fi # User specific environment and startup programs diff --git a/SOURCES/dot-bashrc b/dot-bashrc similarity index 58% rename from SOURCES/dot-bashrc rename to dot-bashrc index d81e0b5..1ed1d53 100644 --- a/SOURCES/dot-bashrc +++ b/dot-bashrc @@ -2,12 +2,11 @@ # Source global definitions if [ -f /etc/bashrc ]; then - . /etc/bashrc + . /etc/bashrc fi # User specific environment -if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]] -then +if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]; then PATH="$HOME/.local/bin:$HOME/bin:$PATH" fi export PATH @@ -16,3 +15,11 @@ export PATH # export SYSTEMD_PAGER= # User specific aliases and functions +if [ -d ~/.bashrc.d ]; then + for rc in ~/.bashrc.d/*; do + if [ -f "$rc" ]; then + . "$rc" + fi + done +fi +unset rc diff --git a/sources b/sources new file mode 100644 index 0000000..33a942a --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +SHA512 (bash-5.2.tar.gz) = 5647636223ba336bf33e0c65e516d8ebcf6932de8b44f37bc468eedb87579c628ad44213f78534beb10f47aebb9c6fa670cb0bed3b4e7717e5faf7e9a1ef81ae +SHA512 (bash-5.2.tar.gz.sig) = a161664f124f906be32709f66702f8f780e6d52e558ea45e71ec60a959c9435ff68477ee65a0a9f6c0051d5592f5044fb3b410cf3cd3ae5a8a323789b01be258